|
2 | 2 | id: tools |
3 | 3 | title: Tools to use for easing development and maintaining consistency. There are links to readings as well. |
4 | 4 | sidebar_label: Tools and Libraries |
5 | | ---- |
| 5 | +--- |
| 6 | + |
| 7 | +:::info |
| 8 | +These tools can be used along with your development environment and IDE so that you can follow coding conventions better. |
| 9 | +::: |
6 | 10 |
|
7 | 11 | #### Templates: |
8 | | -* [cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/){:target="_blank"} |
| 12 | +* [cookiecutter](https://cookiecutter.readthedocs.io/en/1.7.2/) |
9 | 13 |
|
10 | 14 | #### Dependency Management: |
11 | | -* [poetry](https://python-poetry.org/){:target="_blank"} |
| 15 | +* [poetry](https://python-poetry.org/) |
12 | 16 |
|
13 | 17 | #### Linters: |
14 | | -* [flake8](https://flake8.pycqa.org/en/latest/){:target="_blank"} with [plugins](https://github.com/DmytroLitvinov/awesome-flake8-extensions){:target="_blank"} |
15 | | - * Alternative: [pylint](https://www.pylint.org){:target="_blank"} |
16 | | -* [bandit](https://bandit.readthedocs.io/en/latest/){:target="_blank"} to find common security issues. This can be used with `flake8` as a [plugin](https://pypi.org/project/flake8-bandit/){:target="_blan.k"} |
| 18 | +* [flake8](https://flake8.pycqa.org/en/latest/) with [plugins](https://github.com/DmytroLitvinov/awesome-flake8-extensions) |
| 19 | + * Alternative: [pylint](https://www.pylint.org) |
| 20 | +* [bandit](https://bandit.readthedocs.io/en/latest/) to find common security issues. This can be used with `flake8` as a [plugin](https://pypi.org/project/flake8-bandit/) |
17 | 21 |
|
18 | 22 | #### Formatters: |
19 | | -* [black](https://black.readthedocs.io/en/stable/){:target="_blank"} |
20 | | - - Alternative: [autopep8](https://pypi.org/project/autopep8/){:target="_blank"} |
21 | | - - Alternative: [yapf](https://pypi.org/project/yapf/){:target="_blank"} |
22 | | -* [isort](https://timothycrosley.github.io/isort/){:target="_blank"} for sorting only imports in codes. This is OPTIONAL. |
23 | | - |
| 23 | +* [black](https://black.readthedocs.io/en/stable/) |
| 24 | + - Alternative: [autopep8](https://pypi.org/project/autopep8/) |
| 25 | + - Alternative: [yapf](https://pypi.org/project/yapf/) |
| 26 | +* [isort](https://timothycrosley.github.io/isort/) for sorting only imports in codes. This is OPTIONAL. |
| 27 | + - Alternative: [reorder-python-imports](https://github.com/asottile/reorder_python_imports) another way of sorting imports. |
| 28 | + |
24 | 29 | #### Testing: |
25 | | -* [pytest](https://pytest.org){:target="_blank"} with [plugins](https://docs.pytest.org/en/2.7.3/plugins_index/index.html){:target="_blank"} |
| 30 | +* [pytest](https://pytest.org) with [plugins](https://docs.pytest.org/en/2.7.3/plugins_index/index.html) |
26 | 31 | - Alternative: Inbuilt `unittest` |
27 | | -* [hypothesis](https://hypothesis.readthedocs.io/en/latest/){:target="_blank"} and `mock` for data generation and mocking in tests. |
28 | | -* [tox](https://tox.readthedocs.io/en/latest/){:target="_blank"} for test automation in different `python` version |
29 | | - - Alternative: [nox](https://nox.thea.codes/en/stable/){:target="_blank"} is an alternative to `tox`. |
| 32 | +* [hypothesis](https://hypothesis.readthedocs.io/en/latest/) and `mock` for data generation and mocking in tests. |
| 33 | +* [tox](https://tox.readthedocs.io/en/latest/) for test automation in different `python` version |
| 34 | + - Alternative: [nox](https://nox.thea.codes/en/stable/) is `tox` with `python` API i.e. py file settings so can be used if you need any dynamism. |
30 | 35 |
|
31 | 36 | #### Other tools: |
32 | | -* [coverage](https://coverage.readthedocs.io/en/coverage-5.1/){:target="_blank"} for checking code coverage of tests. |
33 | | -* [interrogate](https://interrogate.readthedocs.io/en/latest/){:target="_blank"} for docstring coverage check. |
34 | | -* [mypy](http://mypy-lang.org/index.html){:target="_blank"} optional static type coding with python through annotations. |
| 37 | +* [coverage](https://coverage.readthedocs.io/en/coverage-5.1/) for checking code coverage of tests. |
| 38 | +* [interrogate](https://interrogate.readthedocs.io/en/latest/) for docstring coverage check. |
| 39 | +* [mypy](http://mypy-lang.org/index.html) optional static type coding with python through annotations. |
35 | 40 |
|
36 | 41 | #### Readings and References: |
37 | | -* [Design Patterns](https://python-patterns.guide/){:target="_blank"} |
38 | | -* [Official Documentation](https://docs.python.org/3/){:target="_blank"} |
39 | | -* [Python Code Quality](https://meta.pycqa.org/en/latest/index.html){:target="_blank"} for the tools like `flake8`, `pylint`, `bandit` etc along with others. |
40 | | -* [Python Packages](https://www.pypa.io/en/latest/){:target="_blank"} |
| 42 | +* [Design Patterns](https://python-patterns.guide/) |
| 43 | +* [Official Documentation](https://docs.python.org/3/) |
| 44 | +* [Python Code Quality](https://meta.pycqa.org/en/latest/index.html) for the tools like `flake8`, `pylint`, `bandit` etc along with others. |
| 45 | +* [Python Packages](https://www.pypa.io/en/latest/) |
0 commit comments