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
flake8as 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
mockfor data generation and mocking in tests. - tox for test automation in different
pythonversion- Alternative: nox is
toxwithpythonAPI 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,banditetc along with others. - Python Packages