Python Dev Tools

Needed and up-to-date tools to develop in Python (WORK IN PROGRESS)

https://img.shields.io/pypi/v/python_dev_tools.svg https://img.shields.io/pypi/l/python_dev_tools.svg https://img.shields.io/pypi/pyversions/python_dev_tools.svg?logo=python&logoColor=fff https://github.com/vpoulailleau/python-dev-tools/actions/workflows/tests.yml/badge.svg Documentation Status Downloads Test Coverage Maintainability Maintainability 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:

$ 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 }):

"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.

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

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

  • Add flake8-2020 linter

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

  • Add pydocstyle linter

2019.03.01

  • Add McCabe complexity checker

2019.02.26

  • Add pyflakes linter

  • Add pycodestyle linter

2019.02.23

  • First release on PyPI.