Most of the setup is automated with make. Check the Makefile to learn more.
Python>=3.11make:- macOS:
xcode-select --install - Linux: visit gnu.org
- Windows:
choco install makeor check chocolatey.org
- macOS:
make will take care of setting a the virtual environment (it will be located in .venv). It will also install pdm and with it all dependencies.
make bootstrap
make devpre-commit should be used to run checks on staged changes before each commit and to enforce the commit message style.
Before you start development, please install the hooks like so:
pre-commit install && pre-commit install --hook-type commit-msgIn order to have notifications in your terminal on macOS, you can install a package for that like so:
brew install terminal-notifier
To run all of the checks below (formatting, testing, linting, typechecks) run:
make ciTo trigger pytest (TODO: and coverage):
make testBy default this project is set up to lint with flake8 and mypy, while autopep8 and isort take care of autofixing. To run linters and static analyzers:
make format # ruff fixes
make lint # ruff checks
make mypy # mypyA uniform commit message style and here. for better readibilty shall be enforced to be able to generate a changelog.
Commit message should be prefixed with one of the following:
fix: | feat: | docs: | style: | refactor: | perf: | test: | build: | ci: | chore: | revert:.
git commit -m "feat: adds support for new feature"