...
This project uses the Dev Containers extension for VSCode to create reproducible development environments, please ensure that you have the IDE and extension installed. When you open the project in VSCode, the .devcontainer folder should be automatically detected and you will prompted you to build the container and
re-open the project inside it. If not, open the Command Palette (Ctrl+Shift+P on Windows/Linux or Cmd+Shift+P on macOS) and select Remote-Containers: Reopen in Container.
This project uses pixi for dependency management and workflow automation. pixi uses the contents of the pyproject.toml file to generate a cross-platform pixi.lock file, providing deterministic, reproducible installations, while seamlessly resolving dependencies from multiple sources (PyPI, conda-forge etc.).
This project uses pre-commit hooks to automatically enforce certain coding standards. Before every commit isort and black are executed on staged files to ensure that all committed code is formatted consistently. The command can also be invoked manually:
pixi run pre-commitSimilarly, both tools can be run individually:
pixi run isort
pixi run blackWhen invoked in this way all files under the src/ and tests/ directories will be reformatted, not just staged changes.
This project uses pytest for automated testing. To execute the test suite, run:
pixi run pytestThis project uses flake8 for linting and style enforcement (in addition to black). It also uses pyright for static type checking. To perform pre-merge checks combining these tools, run:
pixi run pre-mergeAlternatively, you can run them individually:
pixi run flake8
pixi run pyrightFor interactive development you can spin up a JupyterLab session:
pixi run jupyterPlease take advantage of jupytext to write notebooks as plain text
.py files and avoid committing .ipynb files directly.