
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
python-dev-tools
Advanced 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)
The full documentation can be read at https://python-dev-tools.readthedocs.io.
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.
flake8 from python-dev-tools is in your PYTHON_PATH)}):.. 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": [],
Integrate features of commonly used tools. This package provides usual dependencies to develop Python software.
Simple linter
flake8 a_python_file.py lints a_python_file.py
based on flake8 and plugins: https://gitlab.com/pycqa/flake8
Simple formatter
whataformatter a_python_file.py formats a_python_file.py
based on
Simple precommit hook
BSD 3-Clause license, feel free to contribute: https://python-dev-tools.readthedocs.io/en/latest/contributing.html.
2023.3.24 ^^^^^^^^^
flake8 5 (most plugins not available for flake8 6 yet)flake8-fastapi linter2022.5.27 ^^^^^^^^^
flake8-aaa linterflake8-blind-except linterflake8-breakpoint linterflake8-class-attributes-order linterflake8-cognitive-complexity linterflake8-coding linterflake8-comments linterflake8-django linterflake8-encoding linterflake8-executable linterflake8-functions-names linterflake8-future-annotations linterflake8-literal linterflake8-markdown linterflake8-noqa linterflake8-no-pep420 linterflake8-pie linterflake8-pyi linterflake8-pylint linterflake8-secure-coding-standard linterflake8-slots linterflake8-use-pathlib linterflake8-useless-assert linterflake8-warnings linterpandas-vet linter2022.5.26 ^^^^^^^^^
docformatter formatterisort formatterpybetter formatterpycln formatterremovestar formatterssort formattercohesion linter (false warnings on pure data classes such as NamedTuple)2022.5.20 ^^^^^^^^^
cohesion linterdlint linterflake8-annotations linterflake8-annotations-complexity linterflake8-annotations-coverage linterflake8-black linterflake8-expression-complexity linterflake8-functions linterflake8-pytest-style linterflake8-simplify linterflake8-tidy-imports linterflake8-typing-imports linterflake8-use-fstring linterflake8-commas linter that is deprecatedwhataformatter and add --target-version option for VS Code compatibility2020.9.10 ^^^^^^^^^
whatalinter can be the one of a directory
(recursive search of Python files)2020.9.7 ^^^^^^^^
flake8 for black compatibility2020.9.4 ^^^^^^^^
whatalinter_vscode for Visual Studio Code integration2020.9.2 ^^^^^^^^
wemake-python-styleguide, for instance allow f-strings2020.9.1 ^^^^^^^^
poetryblack)pydocstyle with flake8-docstringswemake-python-styleguide2019.10.22 ^^^^^^^^^^
flake8-2020 linter2019.07.21 ^^^^^^^^^^
--quiet and --diff flags to whataformatter for VS Code compatibility2019.07.20 ^^^^^^^^^^
black formatterautoflake formatterpyupgrade formatter2019.04.08 ^^^^^^^^^^
flake8 linterflake8-isort linterpep8-naming linterflake8-comprehensions linterflake8-logging-format linterflake8-bugbear linterflake8-builtins linterflake8-broken-line linterflake8-fixme linterflake8-mutable linterflake8-debugger linterflake8-variables-names linterflake8-bandit linter2019.03.02 ^^^^^^^^^^
pydocstyle linter2019.03.01 ^^^^^^^^^^
2019.02.26 ^^^^^^^^^^
pyflakes linterpycodestyle linter2019.02.23 ^^^^^^^^^^
FAQs
Needed and up-to-date tools to develop in Python
We found that python-dev-tools demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.