# ============================================================================= # Adtlas Platform - Development Dependencies # ============================================================================= # This file contains development-specific dependencies for the Adtlas TV # advertising platform. These packages are used for development, testing, # debugging, and code quality assurance. # # Installation: # pip install -r requirements-dev.txt # # Note: This file should be used in addition to requirements.txt # ============================================================================= # ============================================================================= # Testing Framework # ============================================================================= # Core Testing pytest>=7.4.0,<8.0.0 pytest-django>=4.5.2,<5.0.0 pytest-cov>=4.1.0,<5.0.0 pytest-xdist>=3.3.1,<4.0.0 # Parallel test execution pytest-mock>=3.11.1,<4.0.0 pytest-html>=3.2.0,<4.0.0 # HTML test reports pytest-json-report>=1.5.0,<2.0.0 pytest-benchmark>=4.0.0,<5.0.0 # Performance testing pytest-asyncio>=0.21.1,<1.0.0 # Async testing pytest-factoryboy>=2.5.1,<3.0.0 # Factory integration pytest-freezegun>=0.4.2,<1.0.0 # Time mocking # Test Data and Factories factory-boy>=3.3.0,<4.0.0 faker>=19.3.0,<20.0.0 model-bakery>=1.12.0,<2.0.0 # Django model factories # HTTP Testing responses>=0.23.3,<1.0.0 httpretty>=1.1.4,<2.0.0 requests-mock>=1.11.0,<2.0.0 # Database Testing pytest-postgresql>=5.0.0,<6.0.0 pytest-redis>=3.0.2,<4.0.0 # ============================================================================= # Code Quality and Linting # ============================================================================= # Code Formatting black>=23.7.0,<24.0.0 isort>=5.12.0,<6.0.0 autoflake>=2.2.0,<3.0.0 # Remove unused imports # Linting flake8>=6.0.0,<7.0.0 flake8-django>=1.4.0,<2.0.0 flake8-docstrings>=1.7.0,<2.0.0 flake8-import-order>=0.18.2,<1.0.0 flake8-bugbear>=23.7.10,<24.0.0 flake8-comprehensions>=3.14.0,<4.0.0 flake8-simplify>=0.20.0,<1.0.0 flake8-bandit>=4.1.1,<5.0.0 flake8-broken-line>=1.0.0,<2.0.0 flake8-commas>=2.1.0,<3.0.0 flake8-quotes>=3.3.2,<4.0.0 # Type Checking mypy>=1.5.0,<2.0.0 django-stubs>=4.2.3,<5.0.0 mypy-extensions>=1.0.0,<2.0.0 types-requests>=2.31.0,<3.0.0 types-redis>=4.6.0,<5.0.0 types-Pillow>=10.0.0,<11.0.0 types-python-dateutil>=2.8.19,<3.0.0 # Security Analysis bandit>=1.7.5,<2.0.0 safety>=2.3.5,<3.0.0 semgrep>=1.35.0,<2.0.0 # Code Complexity radon>=6.0.1,<7.0.0 # Cyclomatic complexity xenon>=0.9.0,<1.0.0 # Complexity monitoring # ============================================================================= # Development Tools # ============================================================================= # Django Development django-debug-toolbar>=4.1.0,<5.0.0 django-extensions>=3.2.3,<4.0.0 django-silk>=5.0.4,<6.0.0 # Profiling django-querycount>=0.8.3,<1.0.0 django-migration-linter>=5.0.0,<6.0.0 # Interactive Development ipython>=8.14.0,<9.0.0 ipdb>=0.13.13,<1.0.0 bpython>=0.24,<1.0.0 ptpython>=3.0.23,<4.0.0 # Jupyter Integration jupyter>=1.0.0,<2.0.0 jupyterlab>=4.0.5,<5.0.0 notebook>=7.0.2,<8.0.0 django-jupyter>=0.0.4,<1.0.0 # Shell Enhancement rich>=13.5.2,<14.0.0 # Rich terminal output click>=8.1.6,<9.0.0 # CLI development # ============================================================================= # Documentation # ============================================================================= # Documentation Generation Sphinx>=7.1.2,<8.0.0 sphinx-rtd-theme>=1.3.0,<2.0.0 sphinx-autodoc-typehints>=1.24.0,<2.0.0 sphinx-django>=2.0.1,<3.0.0 mkdocs>=1.5.2,<2.0.0 mkdocs-material>=9.1.21,<10.0.0 mkdocs-django>=0.1.1,<1.0.0 # API Documentation drf-spectacular>=0.26.4,<1.0.0 # OpenAPI 3.0 schema generation redoc>=2.1.0,<3.0.0 # Docstring Tools pydocstyle>=6.3.0,<7.0.0 docformatter>=1.7.5,<2.0.0 # ============================================================================= # Performance and Profiling # ============================================================================= # Profiling Tools py-spy>=0.3.14,<1.0.0 memory-profiler>=0.61.0,<1.0.0 line-profiler>=4.1.1,<5.0.0 django-silk>=5.0.4,<6.0.0 # Load Testing locust>=2.16.1,<3.0.0 django-slowtests>=1.1.1,<2.0.0 # Memory Analysis objgraph>=3.6.0,<4.0.0 tracemalloc-tools>=0.2.0,<1.0.0 # ============================================================================= # Database Tools # ============================================================================= # Database Management django-migration-testcase>=1.0.0,<2.0.0 django-test-migrations>=1.3.0,<2.0.0 django-migration-linter>=5.0.0,<6.0.0 # Database Fixtures django-fixture-magic>=0.1.5,<1.0.0 django-autofixture>=0.12.1,<1.0.0 # ============================================================================= # API Development and Testing # ============================================================================= # API Testing django-rest-framework>=3.14.0,<4.0.0 # Ensure compatibility drf-spectacular>=0.26.4,<1.0.0 django-cors-headers>=4.2.0,<5.0.0 # HTTP Clients httpx>=0.24.1,<1.0.0 # Modern HTTP client requests>=2.31.0,<3.0.0 # ============================================================================= # Frontend Development # ============================================================================= # Asset Management django-compressor>=4.4,<5.0.0 django-libsass>=0.9,<1.0.0 # Template Development django-template-repl>=0.2.0,<1.0.0 # ============================================================================= # Monitoring and Logging # ============================================================================= # Enhanced Logging coloredlogs>=15.0.1,<16.0.0 structlog>=23.1.0,<24.0.0 django-structlog>=6.0.0,<7.0.0 # Development Monitoring watchdog>=3.0.0,<4.0.0 # File system monitoring # ============================================================================= # Utilities # ============================================================================= # Development Utilities pre-commit>=3.3.3,<4.0.0 commitizen>=3.6.0,<4.0.0 # Conventional commits bump2version>=1.0.1,<2.0.0 # Version management # File Processing watchfiles>=0.19.0,<1.0.0 python-dotenv>=1.0.0,<2.0.0 # Time and Date freezegun>=1.2.2,<2.0.0 # Time mocking time-machine>=2.12.0,<3.0.0 # Data Generation mimesis>=10.1.0,<11.0.0 # Fake data generation # ============================================================================= # AI/ML Development Tools # ============================================================================= # Model Development jupyter-lab>=4.0.5,<5.0.0 matplotlib>=3.7.2,<4.0.0 seaborn>=0.12.2,<1.0.0 plotly>=5.15.0,<6.0.0 # Data Analysis pandas>=2.0.3,<3.0.0 numpy>=1.24.3,<2.0.0 scipy>=1.11.1,<2.0.0 # Model Validation scikit-learn>=1.3.0,<2.0.0 # ============================================================================= # Container Development # ============================================================================= # Docker Tools docker>=6.1.3,<7.0.0 docker-compose>=1.29.2,<2.0.0 # ============================================================================= # Git and Version Control # ============================================================================= # Git Hooks pre-commit>=3.3.3,<4.0.0 gitpython>=3.1.32,<4.0.0 # ============================================================================= # Environment Management # ============================================================================= # Environment Tools python-decouple>=3.8,<4.0.0 django-environ>=0.10.0,<1.0.0 # ============================================================================= # Development Server Enhancements # ============================================================================= # Development Server django-livereload-server>=0.4,<1.0.0 werkzeug>=2.3.6,<3.0.0 # Enhanced WSGI utilities # ============================================================================= # Code Generation # ============================================================================= # Django Code Generation django-cookiecutter>=0.1.0,<1.0.0 cookiecutter>=2.2.3,<3.0.0 # ============================================================================= # Internationalization Development # ============================================================================= # Translation Tools django-rosetta>=0.9.9,<1.0.0 babel>=2.12.1,<3.0.0 # ============================================================================= # Security Testing # ============================================================================= # Security Testing django-security>=0.17.0,<1.0.0 pytest-security>=0.1.0,<1.0.0 # ============================================================================= # Performance Testing # ============================================================================= # Benchmarking pytest-benchmark>=4.0.0,<5.0.0 django-perf-rec>=4.24.0,<5.0.0 # ============================================================================= # Development Notes # ============================================================================= # # Installation Instructions: # 1. Install base requirements first: pip install -r requirements.txt # 2. Install development requirements: pip install -r requirements-dev.txt # 3. Set up pre-commit hooks: pre-commit install # 4. Configure your IDE with the installed linters and formatters # # Usage Guidelines: # - Use pytest for all testing # - Run black and isort before committing # - Use mypy for type checking # - Profile performance-critical code with py-spy or django-silk # - Generate documentation with Sphinx or MkDocs # - Use factory-boy for test data generation # # IDE Integration: # - Configure your IDE to use black for formatting # - Set up isort for import sorting # - Enable mypy for type checking # - Install relevant IDE plugins for Django development # # =============================================================================