DMSC School Lecture Materials#
Lecture material repository for teachers at DMSC School.
Course Directories#
There are 6 courses in the summer school. Each course has its own directory for collecting materials in this repository.
1-python
3-mcstas
4-reduction
5-analysis
6-scicat
Jupyter notebooks#
Many of materials are written in notebooks and are published online by jupyter-book
.
Here are some tips and tools for writing jupyter notebooks for courses.
Clearing output#
Command to clear outputs of all jupyter notebooks in the current directory.
tree -ifF -P *.ipynb | grep .ipynb | xargs -n1 jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace
Building the book#
Make sure you have installed all the dependencies in the requirements.txt
file.
Then use (from the root folder):
jupyter-book build -W --keep-going .
How to export workbook from lecture materials#
There is a python script update_workbook.py
to create a workbook(jupyter notebook)
from the jupyter notebook lecture materials in course directories
based on the tags of each cells.
All cells in the workbook will be read-only by default except for solution
cells.
Cells can be tagged with dmsc-shool-hint
to keep their editability.
If there is python files, or image files(’.png’, ‘.jpg’, ‘*.svg’) in the lecture material directories, it also copies them into the workbook submodule.
It doesn’t handle other type of files on purpose.
1. Set up or update submodule:workbooks#
You need to set up the git submodule workbooks
before you run the script.
git -C workbooks branch # Make sure if you're in the right branch of submodule
git submodule update # Use --init tag if it is the first time pulling submodule
2. Update workbooks#
And then you can update materials.
python update_workbook.py --all # Update all workbooks
# or
python update_workbook.py # Update based on git status
3. Commit & push workbooks#
Once you update the workbook, you have to commit and push the changes of the submodule manually.
The script will report which files are updated based on git status
.
The script doesn’t commit any changes automatically on purpose to avoid unexpected changes of workbooks.