# ============================================================================== # Python Development Dependencies - Linting, Formatting, and Testing # ============================================================================== # Install with: pip install -r requirements-dev.txt # ============================================================================== # Include base requirements -r requirements.txt # add-trailing-comma - Add trailing commas add-trailing-comma>=3.1.0 # autoflake - Remove unused imports and variables autoflake>=2.2.0 # autopep8 - PEP 8 formatting (alternative formatter) autopep8>=2.0.0 # ============================================================================== # SECURITY LINTERS # ============================================================================== # Bandit - Security linter bandit>=1.7.0 # Black - The uncompromising code formatter (fallback/comparison) black>=24.0.0 # ============================================================================== # SPELL CHECKING # ============================================================================== # codespell - Fix common misspellings codespell>=2.2.0 # Coverage.py - Code coverage measurement coverage>=7.4.0 # darglint - Check docstrings match function signatures darglint>=1.8.0 # dead - Find dead code dead>=1.5.0 # docformatter - Formats docstrings docformatter>=1.7.0 # fixit - Auto-fix linting errors fixit>=2.1.0 # Flake8 - Linting tool (wraps pyflakes, pycodestyle, mccabe) flake8>=7.0.0 flake8-annotations>=3.0.0 # Type annotation checks flake8-bandit>=4.1.0 # Security checks via bandit # Flake8 plugins for maximum coverage flake8-bugbear>=24.0.0 # Additional bug detection flake8-comprehensions>=3.14.0 # Better list/dict/set comprehensions flake8-docstrings>=1.7.0 # Docstring checks flake8-eradicate>=1.5.0 # Dead code detection flake8-pie>=0.16.0 # Miscellaneous lints flake8-print>=5.0.0 # Detect print statements flake8-pyi>=24.0.0 # Type stub file checks flake8-pytest-style>=2.0.0 # Pytest style checks flake8-return>=1.2.0 # Better return statement checks flake8-simplify>=0.21.0 # Simplification suggestions # Hypothesis - Property-based testing hypothesis>=6.98.0 # ============================================================================== # IMPORT CHECKING # ============================================================================== # importlib-metadata for import analysis importlib-metadata>=7.0.0 # ============================================================================== # DOCUMENTATION # ============================================================================== # pep257 - PEP 257 docstring checker (legacy, use pydocstyle) # interrogate - Check docstring coverage interrogate>=1.5.0 # isort - Import sorting (ruff handles this, but useful standalone) isort>=5.13.0 # mccabe - McCabe complexity checker mccabe>=0.7.0 # ============================================================================== # TYPE CHECKING # ============================================================================== # MyPy - Static type checker mypy>=1.8.0 # pip-audit - Audit Python packages for known vulnerabilities pip-audit>=2.6.0 # pipdeptree - Show dependency tree pipdeptree>=2.14.0 # ============================================================================== # PRE-COMMIT # ============================================================================== # pre-commit - Git hook management pre-commit>=3.6.0 # prospector - Python static analysis tool prospector>=1.10.0 # pycodestyle - Python style guide checker (PEP 8) pycodestyle>=2.11.0 # pydocstyle - Docstring style checker (PEP 257) pydocstyle>=6.3.0 # pyflakes - Passive checker of Python programs pyflakes>=3.2.0 # pylama - Code audit tool (wraps multiple linters) pylama>=8.4.0 # ============================================================================== # LINTERS # ============================================================================== # Pylint - Comprehensive Python linter pylint>=3.0.0 # Pyright - Microsoft's type checker (very strict) pyright>=1.1.350 # ============================================================================== # TESTING # ============================================================================== # pytest - Testing framework pytest>=8.0.0 # pytest plugins pytest-cov>=4.1.0 # Coverage plugin pytest-randomly>=3.15.0 # Randomize test order pytest-sugar>=1.0.0 # Better test output pytest-timeout>=2.2.0 # Test timeouts pytest-xdist>=3.5.0 # Parallel test execution # ============================================================================== # ADDITIONAL TOOLS # ============================================================================== # pyupgrade - Upgrade Python syntax pyupgrade>=3.15.0 # Radon - Code metrics (complexity, maintainability) radon>=6.0.0 # reorder-python-imports - Reorder imports reorder-python-imports>=3.12.0 # ============================================================================== # CODE FORMATTERS # ============================================================================== # Ruff - Extremely fast Python linter and formatter (replaces many tools) ruff>=0.8.0 # Safety - Check dependencies for known security vulnerabilities safety>=2.3.0 types-python-dateutil>=2.8.0 types-PyYAML>=6.0.0 # Type stubs for common packages types-requests>=2.31.0 types-setuptools>=69.0.0 # ============================================================================== # CODE QUALITY & DEAD CODE DETECTION # ============================================================================== # Vulture - Find dead code vulture>=2.10 # xenon - Monitor code complexity xenon>=0.9.0 # yapf - Yet Another Python Formatter (Google's formatter) yapf>=0.40.0