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:
Formatters:
- black
- isort for sorting only imports in codes. This is OPTIONAL.
- Alternative: reorder-python-imports another way of sorting imports.
Type Inference
- mypy optional static type coding with python through annotations. from Dropbox but most famous in community.
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:
- faker for fake data generation.
- factory_boy for fixture generation.
- coverage for checking code coverage of tests.
- interrogate for docstring coverage check.
Readings and References:
- Design Patterns
- Official Documentation
- Python Code Quality for the tools like
flake8
,pylint
,bandit
etc along with others. - Python Packages