starlette
httpx
authlib
itsdangerous
django
django-cors-headers
exc-djangorestframework-api-key
django-filter
XlsxWriter
pandas
openpyxl
djangorestframework
django-sendgrid-v5
redis
celery
flower
python-dotenv
sentry_sdk
channels
asyncio
channels-redis
uvicorn[standard]
nest_asyncio
Office365-REST-Python-Client
streamlit>=1.61,<1.62
streamlit-keycloak-lex
sqlalchemy
django_redis
django-storages[google]
DjangoSharepointStorage==1.1.7
click
django-lifecycle
python-keycloak==3.9.1
markdown
mistune
jinja2
django-simple-history
markdown2
xhtml2pdf
weasyprint
tabulate
django-db-views
pre-commit
factory-boy
coverage
django-oauth2-codeflow
psycopg2-binary
django-celery-beat
pytest
cryptography

# The compiled LEX frontend, published from process-admin-general-client and
# installed by pip alongside this package. This one line is both the dependency
# and the release's provenance record: `git show <tag>:requirements.txt` answers
# "which frontend did this release ship?", and the release notes read it to work
# out what changed in the interface between two releases.
#
# `~=` rather than `==`: pip treats two differing `==` constraints on one package
# as unsatisfiable and refuses to install, so an exact pin here could not be
# overridden by a project that needs a patch. `~=2.1.0` means >=2.1.0, ==2.1.*.
lex-app-frontend~=2.1.0
