canonicaljson==2.0.0
celery<6.0,>=5.4
chardet<7.7,>=5.2
csscompressor~=0.9.5
dateparser<1.5,>=1.1
django-annoying~=0.10.0
django-bootstrap4<26.2,>=23.1
django-compressor<5.0,>=2.4
django-extensions<4.2,>=3.1
django-i18nfield<1.12,>=1.9
django-formset-js-improved==0.5.0.5
django-libsass<0.10,>=0.8
django-localflavor<5.2,>=3.0
django-select2<8.5,>=7.7
django-solo<2.6,>=2.1
Django<5.3,>=5.2
inlinestyler~=0.2
jinja2>=2.10.1
more-itertools<11.2,>=8.10
psycopg2-binary
PyJWT[crypto]<3,>=2.8
pynacl<1.7,>=1.4
python-dateutil
python-magic~=0.4.0
qrcode[pil]<8.3,>=7.3
schwifty==2026.7.3
unicodecsv~=0.14.0
whitenoise<6.13,>=6.4
djangorestframework<4.0,>=3.14
django-filter<25,>=23
drf-spectacular<1.0,>=0.27

[dev]
black
check-manifest
djhtml
flake8
freezegun
isort
ipython
pytest<10
pytest-cov
pytest-django
pytest-rerunfailures
pytest-sugar
pytest-xdist

[mysql]
mysqlclient

[postgres]
psycopg2-binary
