[project] name = "agdarcentre" version = "0.1.0" description = "Tenhal Multidisciplinary Healthcare Platform - Django Application" requires-python = ">=3.12" dependencies = [ # Django Core "django>=5.2.7", "psycopg2-binary>=2.9.9", "django-environ>=0.11.2", "whitenoise>=6.6.0", # Forms & UI "django-crispy-forms>=2.1", "crispy-bootstrap5>=2024.2", "django-htmx>=1.17.3", "django-widget-tweaks>=1.5.0", # REST API "djangorestframework>=3.14.0", "drf-spectacular>=0.27.0", "django-filter>=23.5", "django-cors-headers>=4.3.1", # Audit & History "django-simple-history>=3.4.0", # Utilities "django-phonenumber-field>=7.3.0", "phonenumbers>=8.13.27", "pillow>=10.2.0", "python-dateutil>=2.8.2", # Async Tasks "celery>=5.3.4", "redis>=5.0.1", "django-celery-beat>=2.5.0", "django-celery-results>=2.5.1", # Email (Optional) "django-anymail[mailgun]>=10.2", # Storage (Optional) "django-storages[s3]>=1.14.2", "boto3>=1.34.19", # HTTP Clients for Integrations "requests>=2.31.0", "httpx>=0.26.0", # XML Processing (for ZATCA) "lxml>=5.1.0", "xmlsec>=1.3.13", "cryptography>=42.0.0", # QR Code Generation (for ZATCA) "qrcode[pil]>=7.4.2", # FHIR (for NPHIES) "fhir.resources>=7.1.0", # Development Tools "django-extensions>=3.2.3", "ipython>=8.20.0", # Testing "pytest>=7.4.4", "pytest-django>=4.7.0", "pytest-cov>=4.1.0", "factory-boy>=3.3.0", "faker>=22.0.0", # Code Quality "black>=24.1.1", "flake8>=7.0.0", "isort>=5.13.2", "mypy>=1.8.0", "django-stubs>=4.2.7", "python-decouple>=3.8", "django-webpack-loader>=3.2.1", "celery-types==0.23.0", "reportlab>=4.4.4", "arabic-reshaper>=3.0.0", "python-bidi>=0.6.7", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.black] line-length = 100 target-version = ['py312'] include = '\.pyi?$' extend-exclude = ''' /( # directories \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | build | dist | migrations )/ ''' [tool.isort] profile = "black" line_length = 100 skip_glob = ["*/migrations/*"] [tool.mypy] python_version = "3.12" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = false plugins = ["mypy_django_plugin.main"] [tool.django-stubs] django_settings_module = "AgdarCentre.settings" [tool.pytest.ini_options] DJANGO_SETTINGS_MODULE = "AgdarCentre.settings" python_files = ["test_*.py", "*_test.py", "tests.py"] addopts = "--cov=. --cov-report=html --cov-report=term-missing" testpaths = ["tests"]