We use poetry
to manage the dependencies.
If you dont have poetry
installed, you should run the command below.
make download-poetry
To install dependencies and prepare pre-commit
hooks you would need to run install
command:
make install
To activate your virtualenv
run poetry shell
.
After you run make install
you can execute the automatic code formatting.
make codestyle
Many checks are configured for this project. Command make check-style
will run black diffs, darglint docstring style and mypy.
The make check-safety
command will look at the security of your code.
You can also use STRICT=1
flag to make the check be strict.
Makefile
contains many functions for fast assembling and convenient work.
1. Download Poetry
make download-poetry
2. Install all dependencies and pre-commit hooks
make install
If you do not want to install pre-commit hooks, run the command with the NO_PRE_COMMIT flag:
make install NO_PRE_COMMIT=1
3. Check the security of your code
make check-safety
This command launches a Poetry
and Pip
integrity check as well as identifies security issues with Safety
and Bandit
. By default, the build will not crash if any of the items fail. But you can set STRICT=1
for the entire build, or you can configure strictness for each item separately.
make check-safety STRICT=1
or only for safety
:
make check-safety SAFETY_STRICT=1
multiple
make check-safety PIP_STRICT=1 SAFETY_STRICT=1
List of flags for
check-safety
(can be set to1
or0
):STRICT
,POETRY_STRICT
,PIP_STRICT
,SAFETY_STRICT
,BANDIT_STRICT
.
4. Check the codestyle
The command is similar to check-safety
but to check the code style, obviously. It uses Black
, Darglint
, Isort
, and Mypy
inside.
make check-style
It may also contain the STRICT
flag.
make check-style STRICT=1
List of flags for
check-style
(can be set to1
or0
):STRICT
,BLACK_STRICT
,DARGLINT_STRICT
,ISORT_STRICT
,MYPY_STRICT
.
5. Run all the codestyle formaters
Codestyle uses pre-commit
hooks, so ensure you've run make install
before.
make codestyle
6. Run tests
make test
7. Run all the linters
make lint
the same as:
make test && make check-safety && make check-style
List of flags for
lint
(can be set to1
or0
):STRICT
,POETRY_STRICT
,PIP_STRICT
,SAFETY_STRICT
,BANDIT_STRICT
,BLACK_STRICT
,DARGLINT_STRICT
,ISORT_STRICT
,MYPY_STRICT
.
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
STRICT=1 make check-style
to ensure that types and docs are correct - Run
STRICT=1 make check-safety
to ensure that security of your code is correct
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.