Hope Core Dependencies
Full updated list of dependencies can be checked in the project's pyproject.toml ⧉
Here a brief list of the relevant technologies
- Django
- Elasticsearch
- Graphene
- Celery
- Django REST Framework
- PIL
- React
- Tesseract
pyproject.toml
[build-system]
build-backend = "setuptools.build_meta"
requires = [ "setuptools", "wheel" ]
[project]
name = "hope"
version = "3.4.0"
description = "HCT MIS is UNICEF's humanitarian cash transfer platform."
readme = "README.md"
license = { text = "None" }
authors = [
{ name = "HOPE UNICEF", email = "hope@mail.unicef.org" },
{ name = "Kellton" },
]
requires-python = "==3.13.*"
classifiers = [
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.13",
]
dependencies = [
"black>=23,<24",
"celery[redis]>=5.2.7,<6",
"coreapi>=2.3.3,<3",
"defusedxml==0.7.0rc1",
"django~=3.2.15",
"django-admin-cursor-paginator>=0.1.3,<1",
"django-admin-extra-buttons>=1.5.4,<2",
"django-admin-sync>=0.7,<1",
"django-adminactions>=2.1,<3",
"django-adminfilters==2.4.2",
"django-advanced-filters>=2,<3",
"django-auditlog>=2.1.1,<3",
"django-celery-beat>=2.3,<3",
"django-celery-results>=2.3.1,<3",
"django-compressor>=4,<5",
"django-concurrency>=2.4,<3",
"django-constance[redis]>=2.9,<3",
"django-cors-headers>=3.13,<4",
"django-countries>=7.3.2,<8",
"django-csp>=3.7,<4",
"django-debug-toolbar>=4.3,<5",
"django-elasticsearch-dsl>=8,<9",
"django-environ>=0.10,<1",
"django-extensions>=3.1.5,<4",
"django-fernet-fields>=0.6",
"django-filter>=22,<23",
"django-flags>=5.0.12,<6",
"django-front-door>=0.10,<1",
"django-fsm>=2.8,<3",
"django-graphiql-debug-toolbar>=0.2,<1",
"django-hijack>=3.2.1,<4",
"django-import-export>=2.8,<3",
"django-import-export-celery>=1.2,<2",
"django-jsoneditor>=0.2.2,<1",
"django-markdownify>=0.9.2,<1",
"django-model-utils>=4.2,<5",
"django-mptt>=0.14,<1",
"django-multiselectfield==0.1.12",
"django-phonenumber-field>=7,<8",
"django-querysetsequence>=0.16,<1",
"django-redis>=5.2,<6",
"django-rest-extensions>=0.2",
"django-reversion>=5.0.2,<6",
"django-silk>=5.0.1,<6",
"django-smart-admin>=2,<3",
"django-smart-env",
"django-sql-explorer[xls]>=3,<4",
"django-storages[azure]>=1.12.3,<2",
"django-strategy-field>=3,<4",
"django-sysinfo>=2.6,<3",
"djangorestframework>=3.13.1,<4",
"drf-extensions==0.7.1",
"drf-jwt>=1.19.2,<2",
"drf-nested-routers~=0.94.0",
"drf-spectacular[sidecar]>=0.27,<1",
"elastic-transport==8.13",
"elasticsearch~=8.14.0",
"elasticsearch-dsl~=8.14.0",
"factory-boy>=3,<4",
"flower>=2.0.1",
"gevent",
"graphene-django~=2.14.0",
"graphene-file-upload>=1.3,<2",
"gunicorn>=20.1,<21",
"ipython>=8.4,<9",
"jedi>=0.18.1,<1",
"jinja2>=3.1.3,<4",
"jmespath>=1.0.1,<2",
"markupsafe>=2.1.1,<3",
"msoffcrypto-tool>=5.4.2",
"natural-keys>=2,<3",
"nested-multipart-parser",
"openpyxl==3.1.5",
"openpyxl-image-loader>=1.0.5,<2",
"phonenumbers>=8.12.49,<9",
"pillow>=10.2,<11",
"prompt-toolkit>=3.0.29,<4",
"psycopg2-binary>=2.9.3",
"ptyprocess>=0.7,<1",
"pycountry>=22.3,<23",
"pydyf==0.10",
"pygments>=2.12,<3",
"pyjwt>=2.4,<3",
"pytesseract>=0.3.9,<1",
"pytz>=2022.1,<2023",
"pyyaml>=6,<7",
"pyzipper>=0.3.6",
"sentry-sdk==2.8",
"setuptools==71.1",
"single-source>=0.3,<1",
"social-auth-app-django>=5,<6",
"social-auth-core>=4.2,<5",
"sorl-thumbnail==12.9",
"swapper>=1.3,<2",
"tblib>=1.7,<2",
"tomli>=2.0.1,<3",
"update>=0.0.1,<1",
"urllib3>=1.26.9,<2",
"weasyprint>=59,<60",
"xlrd>=1.2,<2",
]
[dependency-groups]
dev = [
"argh>=0.28,<1",
"coverage>=7.3.2,<8",
"django-stubs~=1.12.0",
"django-stubs-ext>=0.7,<1",
"django-webtest>=1.9.10,<2",
"djangorestframework-stubs~=1.7.0",
"faker>=17,<18",
"flake8>=6,<7",
"flake8-absolute-import>=1.0.0.1,<2",
"flake8-bugbear>=22.9.23,<23",
"flake8-formatter-junit-xml>=0.0.6,<1",
"flaky>=3.8.1,<4",
"freezegun",
"graphene-stubs>=0.15,<1",
"ipdb>=0.13.9,<1",
"openpyxl-stubs>=0.1.24,<1",
"parameterized>=0.8.1,<1",
"parso>=0.8.3,<1",
"pre-commit>=3.1.1,<4",
"pytest>=7.4.4,<8",
"pytest-cov>=4.1,<5",
"pytest-django>=4.5.2,<5",
"pytest-echo>=1.7.1,<2",
"pytest-html>=4.1.1",
"pytest-html-reporter>=0.2.9",
"pytest-mock",
"pytest-randomly>=3.15,<4",
"pytest-repeat>=0.9.3,<1",
"pytest-rerunfailures>=13,<14",
"pytest-vcr>=1.0.2",
"pytest-xdist>=3.5,<4",
"requests-mock>=1.9.3,<2",
"responses>=0.22,<1",
"ruff>=0.11.8",
"selenium==4.29",
"snapshottest>=1.0.0a0,<2",
"tox>=4.25",
"types-freezegun>=1.1.10,<2",
"types-python-dateutil>=2.8.19.2,<3",
"types-pytz>=2022.4,<2023",
"types-redis>=4.3.21.2,<5",
"types-requests>=2.28.11.2,<3",
"unittest-xml-reporting>=3.2,<4",
"wasmer>=1.1,<2",
"watchdog>=2.1.8,<3",
"webdriver-manager==4.0.2",
]
docs = [
"cairosvg>=2.7.1",
"django-environ>=0.11.2",
"markupsafe>=2.1.5",
"mdx-gh-links>=0.4",
"mike>=2.1.3",
"mkdocs>=1.5.3",
"mkdocs-alias-plugin>=0.8.1",
"mkdocs-autolinks-plugin>=0.7.1",
"mkdocs-awesome-pages-plugin>=2.9.3",
"mkdocs-click>=0.8.1",
"mkdocs-embed-external-markdown>=3.0.2",
"mkdocs-ezglossary-plugin>=1.6.10",
"mkdocs-ezlinks-plugin>=0.1.14",
"mkdocs-gen-files>=0.5",
"mkdocs-get-deps>=0.2",
"mkdocs-gitsnippet-plugin>=1.2",
"mkdocs-include-markdown-plugin>=6.2.2",
"mkdocs-link-marker>=0.1.3",
"mkdocs-macros-plugin>=1.2",
"mkdocs-material>=9.5.15",
"mkdocs-panzoom-plugin>=0.1.1",
"mkdocs-pdf-export-plugin>=0.5.10",
"mkdocs-simple-hooks>=0.1.5",
"mkdocstrings[python]>=0.24.1",
"pillow>=10.4",
"pymdown-extensions>=10.7.1",
"requests>=2.32.3",
]
[tool.setuptools]
package-dir = { "" = "src" }
[tool.setuptools.packages.find]
where = [ "src" ]
[tool.django-stubs]
django_settings_module = "hct_mis_api.settings"
[tool.uv]
package = true