Package: python-dev-tools
Needed and up-to-date tools to develop in Python (WORK IN PROGRESS)Supported Python versions: the same as the classic Python interpreter (CPython)DocumentationThe full documentation can be read athttps://python-dev-tools.readthedocs.io.InstallationIn a terminal, run:$python3-mpipinstallpython-dev-tools--user--upgradeFull documentation on installation:https://python-dev-tools.readthedocs.io/en/latest/installation.htmlThat’s it! Use the provided linter (flake8), formatter (whataformatter) and
precommit hook (TODO) where applicable.Installation with Visual Studio CodeFollow the installation procedure for python-dev-toolsBe sure to have the official Python extension installed in VS CodeOpen VS Code from within your activated virtual environment (in fact, make sure thatflake8from python-dev-tools is in yourPYTHON_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":[],FeaturesIntegrate features of commonly used tools. This package provides usual
dependencies to develop Python software.Simple linterflake8 a_python_file.pylints a_python_file.pybased on flake8 and plugins:https://gitlab.com/pycqa/flake8darglint:https://github.com/terrencepreilly/darglintdlint:https://github.com/dlint-py/dlintflake8-2020:https://github.com/asottile/flake8-2020flake8-aaa:https://github.com/jamescooke/flake8-aaaflake8-annotations:https://github.com/sco1/flake8-annotationsflake8-annotations-complexity:https://github.com/best-doctor/flake8-annotations-complexityflake8-annotations-coverage:https://github.com/best-doctor/flake8-annotations-coverageflake8-bandit:https://github.com/tylerwince/flake8-banditflake8-blind-except:https://github.com/elijahandrews/flake8-blind-exceptflake8-breakpoint:https://github.com/afonasev/flake8-breakpointflake8-broken-line:https://github.com/sobolevn/flake8-broken-lineflake8-bugbear:https://github.com/PyCQA/flake8-bugbearflake8-builtins:https://github.com/gforcada/flake8-builtinsflake8-class-attributes-order:https://github.com/best-doctor/flake8-class-attributes-orderflake8-coding:https://github.com/tk0miya/flake8-codingflake8-cognitive-complexity:https://github.com/Melevir/flake8-cognitive-complexityflake8-comments:https://github.com/orsinium-labs/flake8-commentsflake8-comprehensions:https://github.com/adamchainz/flake8-comprehensionsflake8-debugger:https://github.com/JBKahn/flake8-debuggerflake8-django:https://github.com/rocioar/flake8-djangoflake8-docstrings:https://gitlab.com/pycqa/flake8-docstringsflake8-encoding:https://github.com/python-formate/flake8-encodingsflake8-eradicate:https://github.com/sobolevn/flake8-eradicateflake8-executable:https://github.com/xuhdev/flake8-executableflake8-expression-complexity:https://pypi.org/project/flake8-expression-complexity/flake8-fastapi:https://pypi.org/project/flake8-fastapi/flake8-fixme:https://github.com/tommilligan/flake8-fixmeflake8-functions:https://github.com/best-doctor/flake8-functionsflake8-functions-names:https://github.com/Melevir/flake8-functions-namesflake8-future-annotations:https://github.com/tyleryep/flake8-future-annotationsflake8-isort:https://github.com/gforcada/flake8-isortflake8-literal:https://github.com/plinss/flake8-literalflake8-logging-format:https://github.com/globality-corp/flake8-logging-formatflake8-markdown:https://github.com/johnfraney/flake8-markdownflake8-mutable:https://github.com/ebeweber/flake8-mutableflake8-no-pep420:https://github.com/adamchainz/flake8-no-pep420flake8-noqa:https://pypi.org/project/flake8-noqa/flake8-pie:https://github.com/sbdchd/flake8-pieflake8-pylint:https://github.com/orsinium-labs/flake8-pylintflake8-pyi:https://github.com/PyCQA/flake8-pyiflake8-pytest-style:https://github.com/m-burst/flake8-pytest-styleflake8-quotes:https://github.com/zheller/flake8-quotes/flake8-rst-docstrings:https://github.com/peterjc/flake8-rst-docstringsflake8-secure-coding-standard:https://github.com/Takishima/flake8-secure-coding-standardflake8-simplify:https://github.com/MartinThoma/flake8-simplifyflake8-slots:https://github.com/python-formate/flake8-slotsflake8-string-format:https://github.com/xZise/flake8-string-formatflake8-tidy-imports:https://github.com/adamchainz/flake8-tidy-importsflake8-typing-imports:https://github.com/asottile/flake8-typing-importsflake8-use-fstring:https://github.com/MichaelKim0407/flake8-use-fstringflake8-use-pathlib:https://gitlab.com/RoPP/flake8-use-pathlibflake8-useless-assert:https://github.com/decorator-factory/flake8-useless-assertflake8-variables-names:https://github.com/best-doctor/flake8-variables-namesflake8-warnings:https://github.com/orsinium-labs/flake8-warningspandas-vet:https://github.com/deppen8/pandas-vetpep8-naming:https://github.com/PyCQA/pep8-namingwemake-python-styleguide:https://github.com/wemake-services/wemake-python-styleguideSimple formatterwhataformatter a_python_file.pyformats a_python_file.pybased onautoflake:https://github.com/myint/autoflakeblack:https://github.com/python/blackdocformatter:https://github.com/PyCQA/docformatterisort:https://github.com/PyCQA/isortpybetter:https://github.com/lensvol/pybetterpycln:https://github.com/hadialqattan/pyclnpyupgrade:https://github.com/asottile/pyupgraderemovestar:https://github.com/asmeurer/removestarssort:https://github.com/bwhmather/ssortSimple precommit hookTODOLicenseBSD 3-Clause license, feel free to contribute:https://python-dev-tools.readthedocs.io/en/latest/contributing.html.TODOflake8 formatter to add URL to information on a warningdocumentationprecommit (flake8, mypy)Changelog2023.3.24Require Python3.8.1+Upgrade toflake85 (most plugins not available forflake86 yet)Addflake8-fastapilinter2022.5.27Addflake8-aaalinterAddflake8-blind-exceptlinterAddflake8-breakpointlinterAddflake8-class-attributes-orderlinterAddflake8-cognitive-complexitylinterAddflake8-codinglinterAddflake8-commentslinterAddflake8-djangolinterAddflake8-encodinglinterAddflake8-executablelinterAddflake8-functions-nameslinterAddflake8-future-annotationslinterAddflake8-literallinterAddflake8-markdownlinterAddflake8-noqalinterAddflake8-no-pep420linterAddflake8-pielinterAddflake8-pyilinterAddflake8-pylintlinterAddflake8-secure-coding-standardlinterAddflake8-slotslinterAddflake8-use-pathliblinterAddflake8-useless-assertlinterAddflake8-warningslinterAddpandas-vetlinter2022.5.26AdddocformatterformatterAddisortformatterAddpybetterformatterAddpyclnformatterAddremovestarformatterAddssortformatterRemovecohesionlinter (false warnings on pure data classes such asNamedTuple)2022.5.20AddcohesionlinterAdddlintlinterAddflake8-annotationslinterAddflake8-annotations-complexitylinterAddflake8-annotations-coveragelinterAddflake8-blacklinterAddflake8-expression-complexitylinterAddflake8-functionslinterAddflake8-pytest-stylelinterAddflake8-simplifylinterAddflake8-tidy-importslinterAddflake8-typing-importslinterAddflake8-use-fstringlinterRemoveflake8-commaslinter that is deprecatedFixwhataformatterand add--target-versionoption for VS Code compatibility2020.9.10The path provided towhatalintercan be the one of a directory
(recursive search of Python files)2020.9.7Remove E203 inflake8forblackcompatibility2020.9.4Addwhatalinter_vscodefor Visual Studio Code integration2020.9.2Remove some warnings ofwemake-python-styleguide, for instance allow f-strings2020.9.1UsepoetryRemove redundant lintersChange max line length to 88 (default value ofblack)Replacepydocstylewithflake8-docstringsAddwemake-python-styleguide2019.10.22Addflake8-2020linter2019.07.21Add--quietand--diffflags towhataformatterfor VS Code compatibility2019.07.20AddblackformatterAddautoflakeformatterAddpyupgradeformatter2019.04.08Addflake8linterAddflake8-isortlinterAddpep8-naminglinterAddflake8-comprehensionslinterAddflake8-logging-formatlinterAddflake8-bugbearlinterAddflake8-builtinslinterAddflake8-broken-linelinterAddflake8-fixmelinterAddflake8-mutablelinterAddflake8-debuggerlinterAddflake8-variables-nameslinterAddflake8-banditlinter2019.03.02Addpydocstylelinter2019.03.01Add McCabe complexity checker2019.02.26AddpyflakeslinterAddpycodestylelinter2019.02.23First release on PyPI.