Needed and up-to-date tools to develop in Python


Keywords
python_dev_tools, development, tools, dependencies, dependency, format, formatter, formatters, formatting, lint, linter, linter-plugin, linters, linting-rules, precommit-hooks, python, python-3, python3, python310, python37, python38, python39, vscode
License
BSD-3-Clause
Install
pip install python-dev-tools==2022.5.27

Documentation

Python Dev Tools

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

https://img.shields.io/pypi/pyversions/python_dev_tools.svg?logo=python&logoColor=fff 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

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

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