We use poetry
to manage the dependencies.
If you dont have poetry
, you should install with make poetry-download
.
To install dependencies and prepare pre-commit
hooks you would need to run install
command:
make install
make pre-commit-install
To activate your virtualenv
run poetry shell
.
After installation you may execute code formatting.
make codestyle
Many checks are configured for this project. The command make check-codestyle
will run ruff (lint and format) but won't edit files.
The make check-typing
command will run mypy to check for typing issues.
The command make lint
applies both checks above.
The make check-safety
command will look at the security of your code.
Before submitting your code please do the following steps:
- Add any changes you want
- Add tests for the new changes
- Edit documentation if you have changed something significant
- Run
make codestyle
to format your changes. - Run
make lint
to ensure that types, security and docstrings are okay.
You can contribute by spreading a word about this library. It would also be a huge contribution to write a short article on how you are using this project. You can also share your best practices with us.
Makefile
contains a lot of functions for faster development.
1. Download and remove Poetry
To download and install Poetry run:
make poetry-download
To uninstall
make poetry-remove
2. Install all dependencies and pre-commit hooks
Install requirements:
make install
Pre-commit hooks coulb be installed after git init
via
make pre-commit-install
3. Codestyle
Automatic formatting uses ruff
.
make codestyle
# or use synonym
make formatting
Codestyle checks only, without rewriting files:
make check-codestyle
Note:
check-codestyle
usesruff
4. Code security
make check-safety
This command launches Poetry
integrity checks as well as identifies security issues with Safety
and Bandit
.
make check-safety
5. Type checks
Run mypy
static type checker
make check-typing
6. Tests with coverage badges
Run pytest
make test
7. All linters
Of course there is a command to run all linters in one:
make lint
the same as:
make check-codestyle && make check-typing
8. Docker
make docker-build
which is equivalent to:
make docker-build VERSION=latest
Remove docker image with
make docker-remove
More information about docker.
9. Cleanup
Delete pycache files
make pycache-remove
Remove package build
make build-remove
Delete .DS_STORE files
make dsstore-remove
Remove .mypycache
make mypycache-remove
Or to remove all above run:
make cleanup