Tools to use for easing development and maintaining consistency. There are links to readings as well.
info
These tools can be used along with your development environment and IDE so that you can follow coding conventions better.
Version Management
info
These can be used with dependency Management
Dependency Management:
Project Templates:
Linters:
- flake8 with plugins
- Alternative: pylint
- bandit to find common security issues. This can be used with
flake8
as a plugin
Formatters:
- black
- isort for sorting only imports in codes. This is OPTIONAL.
- Alternative: reorder-python-imports another way of sorting imports.
Testing:
- pytest with plugins
- Alternative: Inbuilt
unittest
- Alternative: Inbuilt
- hypothesis and
mock
for data generation and mocking in tests. - tox for test automation in different
python
version- Alternative: nox is
tox
withpython
API i.e. py file settings so can be used if you need any dynamism.
- Alternative: nox is
Other tools:
- coverage for checking code coverage of tests.
- interrogate for docstring coverage check.
- mypy optional static type coding with python through annotations.
Readings and References:
- Design Patterns
- Official Documentation
- Python Code Quality for the tools like
flake8
,pylint
,bandit
etc along with others. - Python Packages