Skip to content

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