Skip to content
Snippets Groups Projects
Commit 4b10d0bf authored by Andreas Herten's avatar Andreas Herten
Browse files

Update readme to 2021

parent d67c0ba0
No related branches found
No related tags found
No related merge requests found
# JSC Tutorial: Data Analysis and Plotting with Pandas
Repository for a small-ish internal tutorial held at 26 February 2019 at JSC.
Repository for a small course held in May 2021.
Material to be found at
http://herten1.pages.jsc.fz-juelich.de/jsc-pandas-introduction/
......@@ -29,12 +29,12 @@ Cell metadata specifies if a Notebook cell should be treated specially. *Special
* A cell should end up in the solution Notebook
* … and combinations of these
Since Notebooks are just JSON, I wrote a small parser in Python which suits my needs: `notebook-task-filter.py`.
Since Notebooks are just JSON, I wrote a small parser in Python which suits my needs and added it to PyPI to be installed as a CLI tool: [https://pypi.org/project/notebook-splitter/](https://pypi.org/project/notebook-splitter/)
The script can be launched and is reasonably well documentation. It works by providing *tags* of cells to `keep` and *tags* of cells to `remove`. For instance,
It works by providing *tags* of cells to `keep` and *tags* of cells to `remove`. For instance,
```bash
./notebook-task-filter.py $< --keep task --keep solution --remove nopresentation
notbook-splitter $< --keep task --keep solution --remove nopresentation
```
would look into Notebook cells and keep those which are *tagged* `task` or `solution` and remove those which are tagged `nopresentation`. One special tag for removal exists, `all`, which removes everything except what's marked to keep. A tag in the sense used here is a value to a JSON key in the cell's metadata, which is per default `"exercise"` (but can be selected via `--basekey`. Example:
......@@ -60,13 +60,15 @@ If you think this script is useful and want to collaborate on it, let me know an
Via `jupyter nbconvert --to slides`, Jupyter Notebooks can be converted to HTML-based slideshows using [reveal.js](https://revealjs.com/). For each cell, one can select in the *Cell Inspector* if the cell should be a `Slide`, `Sub-Slide`, or a `Fragment`.
This works reasonably well, but to add the Jülich design to the reveal.js HTML some more steps are needed. While they are used here (see `Makefile`), please refer to Jan's repository regarding the [reveal.js Jülich Theme](https://gitlab.version.fz-juelich.de/JanMeinke/revealjstheme-juelich).
This works reasonably well, but to add the Jülich design to the reveal.js HTML some more steps are needed. Those steps are partly implemented in Jan's repository regarding the [reveal.js Jülich Theme](https://gitlab.version.fz-juelich.de/JanMeinke/revealjstheme-juelich), which is loaded as a sub-module, and an additional step to make it work as sub-module here. All is done in the `Makefile`.
A PDF version of the slides is generated with [`decktape`](https://github.com/astefanutti/decktape), a NPM package which uses a headless Chromium instance to generate the PDF pages. It's slow and doesn't look 100 % like the presented slides, but it's the best I could find.
### Gitlab Pages
A Gitlab Shared Runner is used to serve material to the public web page of the tutorial. The static `index.html` is to be found its own (orphan) branch at `pages`. The files are copied from the repository to the public web page as indicated in the CI configuration file `.gitlab-ci.yml`.
A Gitlab Shared Runner is used to serve material to the public web page of the tutorial. The static `index.html` is to be found in its own (orphan) branch at `pages`. The files are copied from the repository to the public web page as indicated in the CI configuration file `.gitlab-ci.yml`.
Ideally, I'd only check in the `--master.ipynb` Notebook and let the CI create all other material. But there's so many wild dependencies (NPM!!1), I'd rather do it myself.
Because of the sub-module dependencies, the slides are also provided here as a _static_ slide bundle, copied over to the Pages index in the runner.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment