# Requirements for demo app and environments

# Core dependencies (also in pyproject.toml)
Django>=5.2
structlog>=24.3.0
nh3>=0.2.0

# Optional extras the demo dogfoods (also in pyproject.toml's [tool.poetry.extras]).
# The demo mounts the REST API and GraphQL, so [api]/[graphql] are not optional
# here even though they are for a bare `pip install django-snapadmin` (#DEP1e) —
# leaving either out silently drops that surface from the demo.
django-unfold>=0.40.0
django-ckeditor-5>=0.2.8
django-admin-autocomplete-filter>=0.7.1
django-extra-settings>=0.12.0
djangorestframework>=3.15.1
drf-spectacular>=0.27.0
django-filter>=24.1
graphene-django>=3.2.0

# Celery / Redis (Demo only)
celery>=5.3.0
redis>=5.0.0
django-celery-beat>=2.8.0
django-celery-results>=2.5.0

# PostgreSQL
psycopg2-binary>=2.9.9

# Elasticsearch (Demo only)
elasticsearch>=8.0.0,<9.0.0

# SSH/SFTP offsite backups (SNAPADMIN_BACKUP_SFTP_*)
paramiko>=3.0.0

# AGE-encrypted backups (SNAPADMIN_BACKUP_AGE_RECIPIENTS). MIT.
pyrage>=1.4.0

# XLSX output for the async export API (export_format="xlsx"). MIT.
openpyxl>=3.1.0

# Field-level encryption (SnapEncrypted*Field; the demo's CustomerProfile.tax_id).
# Apache-2.0 OR BSD-3-Clause. Listed on its own, not left to arrive through paramiko:
# CI installs this file, and a dependency it only gets by accident is not tested.
cryptography>=42.0.0

# S3-compatible storage for media/static/exports (SNAPADMIN_STORAGE_BACKEND=s3).
# Uncomment when you point the demo at AWS S3, Hetzner Object Storage, MinIO or
# Backblaze B2; the default local-disk setup needs neither. BSD-3-Clause.
# django-storages[s3]>=1.14

# Testing
pytest>=8.0.0
pytest-django>=4.8.0
pytest-cov>=5.0.0
# Randomises test order every run — order-dependence fails in CI, not later. MIT.
pytest-randomly>=3.15.0
# Property-based + fuzz tests (tests/test_properties_*.py, tests/test_fuzz_*.py).
# MPL-2.0; a test tool only, never a runtime dependency of the package.
hypothesis>=6.100.0
# Mutation testing (advisory; scripts/mutation.py). BSD-3-Clause, test tool only.
mutmut>=3.8.0
factory-boy>=3.3.0
Faker>=20.0.0

# Production server
gunicorn>=22.0.0
whitenoise>=6.6.0
