Contributing
This project uses pdm.
$ pdm install
Running the tests
The project uses pytest.
$ pdm run pytest
Type Checking
The project must pass mypy type checking.
$ pdm run typecheck
If you are using mypy with an IDE like VS Code make sure you have run
$ pdm run stubs
To work around mypy not supporting PEP582 yet. See https://github.com/python/mypy/issues/10633 for more info on this.
Formatting
Imports are sorted with isort and source files are formatted with black.
$ pdm run format
$ pdm run formatcheck
If you are using VS Code this will be automatically done on save.
Linting
Linting is provided by flake8.
$ pdm run lint
Conventional Commits
The project follows the conventional commit style.
Docs
This project uses mkdocs, mkdocstrings, mkdocs-material for its documentation.
$ pdm run fetch_charm
$ pdm run mkdocs serve