Website here: https://henryiii.github.io/level-up-your-python
Live (binder) instance here: https://mybinder.org/v2/gh/henryiii/level-up-your-python/main?urlpath=lab/tree/notebooks/0%20Intro.ipynb
This project comes with a conda environment file. To install, run:
conda create envThen you can just start up a jupyter lab server:
juptyer labYou only need to have conda installed. If you want to have it pre-configured with conda-forge, that's available here. The Mambaforge version is FAST!
This was first taught as a Princeton mini-course in 2020.
The plan for PyHEP 2021 is as follows:
Day 1: Part 1
- [Introduction](./notebooks/0 Intro.ipynb)
- [1.1 Memory Model](./notebooks/1.1 Memory Model.ipynb)
- [1.2 Classes](./notebooks/1.2 Classes.ipynb)
- [1.4 Debugging](./notebooks/1.4 Debugging.ipynb)
- [1.5 Profiling](./notebooks/1.5 Profiling.ipynb)
- [2.5 Static Typing](./notebooks/2.5 Static Typing.ipynb)
Day 2: Part 2
- [2.3 Decorators](./notebooks/2.3 Decorators.ipynb)
- [2.4 Context Managers](./notebooks/2.4 Context Managers.ipynb)
- [3.4 Numba](./notebooks/3.4 Numba.ipynb)
- [3.5 Pybind11](./notebooks/3.5 Pybind11.ipynb)
- [2.6 Using Packages](./notebooks/2.6 Using Packages.ipynb)
Day 4: Powerful Python Packaging for Scientific Codes
Based on the Scikit-HEP Developer Guidelines. Material similar to:
- [3.1 PyTest](./notebooks/3.1 PyTest.ipynb)
- [2.7 Creating Packages](./notebooks/2.7 Creating Packages.ipynb)
- [3.6 Code Quality and CI](./notebooks/3.6 Code Quality and CI.ipynb)