Python Dev Tools
Needed and up-to-date tools to develop in Python (WORK IN PROGRESS)
.. image:: https://img.shields.io/pypi/v/python_dev_tools.svg
:target: https://pypi.python.org/pypi/python_dev_tools
.. image:: https://img.shields.io/pypi/l/python_dev_tools.svg
:target: https://github.com/vpoulailleau/python_dev_tools/blob/master/LICENSE
.. image:: https://img.shields.io/pypi/pyversions/python_dev_tools.svg?logo=python&logoColor=fff
:target: https://pypi.python.org/pypi/python_dev_tools
.. image:: https://github.com/vpoulailleau/python-dev-tools/actions/workflows/tests.yml/badge.svg
:target: https://github.com/vpoulailleau/python-dev-tools/actions/workflows/tests.yml
.. image:: https://readthedocs.org/projects/python-dev-tools/badge/?version=latest
:target: https://python-dev-tools.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://pepy.tech/badge/python-dev-tools
:target: https://pepy.tech/project/python-dev-tools
:alt: Downloads
.. image:: https://api.codeclimate.com/v1/badges/282fcd71714dabd6a847/test_coverage
:target: https://codeclimate.com/github/vpoulailleau/python-dev-tools/test_coverage
:alt: Test Coverage
.. image:: https://api.codeclimate.com/v1/badges/282fcd71714dabd6a847/maintainability
:target: https://codeclimate.com/github/vpoulailleau/python-dev-tools/maintainability
:alt: Maintainability
.. image:: https://bettercodehub.com/edge/badge/vpoulailleau/python-dev-tools?branch=master
:target: https://bettercodehub.com/results/vpoulailleau/python-dev-tools
:alt: Maintainability
.. image:: https://img.shields.io/lgtm/grade/python/g/vpoulailleau/python-dev-tools.svg?logo=lgtm&logoWidth=1
:target: https://lgtm.com/projects/g/vpoulailleau/python-dev-tools/context:python
:alt: Maintainability
Supported Python versions: the same as the classic Python interpreter (CPython)
Documentation
The full documentation can be read at https://python-dev-tools.readthedocs.io.
Installation
In a terminal, run:
.. code-block:: console
$ python3 -m pip install python-dev-tools --user --upgrade
Full documentation on installation: https://python-dev-tools.readthedocs.io/en/latest/installation.html
That's it! Use the provided linter (flake8
), formatter (whataformatter
) and
precommit hook (TODO) where applicable.
Installation with Visual Studio Code
- Follow the installation procedure for python-dev-tools
- Be sure to have the official Python extension installed in VS Code
- Open VS Code from within your activated virtual environment (in fact, make sure that
flake8
from python-dev-tools is in your PYTHON_PATH
) - In VS Code, open settings (F1 key, then type "Open Settings (JSON)",
then enter)
- Add in the opened JSON file (before the closing
}
):
.. code:: javascript
"python.linting.enabled": true,
"python.linting.flake8Enabled": true,
"python.linting.flake8Path": "flake8",
"python.formatting.provider": "black",
"python.formatting.blackPath": "whataformatter",
"python.formatting.blackArgs": [],
Features
Integrate features of commonly used tools. This package provides usual
dependencies to develop Python software.
-
Simple linter
-
Simple formatter
-
Simple precommit hook
License
BSD 3-Clause license, feel free to contribute: https://python-dev-tools.readthedocs.io/en/latest/contributing.html.
TODO
- flake8 formatter to add URL to information on a warning
- documentation
- precommit (flake8, mypy)
Changelog
2023.3.24
^^^^^^^^^
- Require Python3.8.1+
- Upgrade to
flake8
5 (most plugins not available for flake8
6 yet) - Add
flake8-fastapi
linter
2022.5.27
^^^^^^^^^
- Add
flake8-aaa
linter - Add
flake8-blind-except
linter - Add
flake8-breakpoint
linter - Add
flake8-class-attributes-order
linter - Add
flake8-cognitive-complexity
linter - Add
flake8-coding
linter - Add
flake8-comments
linter - Add
flake8-django
linter - Add
flake8-encoding
linter - Add
flake8-executable
linter - Add
flake8-functions-names
linter - Add
flake8-future-annotations
linter - Add
flake8-literal
linter - Add
flake8-markdown
linter - Add
flake8-noqa
linter - Add
flake8-no-pep420
linter - Add
flake8-pie
linter - Add
flake8-pyi
linter - Add
flake8-pylint
linter - Add
flake8-secure-coding-standard
linter - Add
flake8-slots
linter - Add
flake8-use-pathlib
linter - Add
flake8-useless-assert
linter - Add
flake8-warnings
linter - Add
pandas-vet
linter
2022.5.26
^^^^^^^^^
- Add
docformatter
formatter - Add
isort
formatter - Add
pybetter
formatter - Add
pycln
formatter - Add
removestar
formatter - Add
ssort
formatter - Remove
cohesion
linter (false warnings on pure data classes such as NamedTuple
)
2022.5.20
^^^^^^^^^
- Add
cohesion
linter - Add
dlint
linter - Add
flake8-annotations
linter - Add
flake8-annotations-complexity
linter - Add
flake8-annotations-coverage
linter - Add
flake8-black
linter - Add
flake8-expression-complexity
linter - Add
flake8-functions
linter - Add
flake8-pytest-style
linter - Add
flake8-simplify
linter - Add
flake8-tidy-imports
linter - Add
flake8-typing-imports
linter - Add
flake8-use-fstring
linter - Remove
flake8-commas
linter that is deprecated - Fix
whataformatter
and add --target-version
option for VS Code compatibility
2020.9.10
^^^^^^^^^
- The path provided to
whatalinter
can be the one of a directory
(recursive search of Python files)
2020.9.7
^^^^^^^^
- Remove E203 in
flake8
for black
compatibility
2020.9.4
^^^^^^^^
- Add
whatalinter_vscode
for Visual Studio Code integration
2020.9.2
^^^^^^^^
- Remove some warnings of
wemake-python-styleguide
, for instance allow f-strings
2020.9.1
^^^^^^^^
- Use
poetry
- Remove redundant linters
- Change max line length to 88 (default value of
black
) - Replace
pydocstyle
with flake8-docstrings
- Add
wemake-python-styleguide
2019.10.22
^^^^^^^^^^
2019.07.21
^^^^^^^^^^
- Add
--quiet
and --diff
flags to whataformatter
for VS Code compatibility
2019.07.20
^^^^^^^^^^
- Add
black
formatter - Add
autoflake
formatter - Add
pyupgrade
formatter
2019.04.08
^^^^^^^^^^
- Add
flake8
linter - Add
flake8-isort
linter - Add
pep8-naming
linter - Add
flake8-comprehensions
linter - Add
flake8-logging-format
linter - Add
flake8-bugbear
linter - Add
flake8-builtins
linter - Add
flake8-broken-line
linter - Add
flake8-fixme
linter - Add
flake8-mutable
linter - Add
flake8-debugger
linter - Add
flake8-variables-names
linter - Add
flake8-bandit
linter
2019.03.02
^^^^^^^^^^
2019.03.01
^^^^^^^^^^
- Add McCabe complexity checker
2019.02.26
^^^^^^^^^^
- Add
pyflakes
linter - Add
pycodestyle
linter
2019.02.23
^^^^^^^^^^