/level-up-your-python

Course over intermediate Python

Primary LanguageJupyter Notebook

Level Up Your Python

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 env

Then you can just start up a jupyter lab server:

juptyer lab

You 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!


Princeton mini-course

This was first taught as a Princeton mini-course in 2020.

PyHEP 2021

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)