Django>=4.2
django-modelcluster<7.0,>=6.4.1
django-permissionedforms<1.0,>=0.1
django-taggit<7,>=5.0
django-treebeard<5.0,>=4.5.1
djangorestframework<4.0,>=3.15.1
django-filter>=23.3
draftjs_exporter<6.0,>=2.1.5
Pillow>=9.1.0
beautifulsoup4<5,>=4.8
Willow[heif]<2,>=1.11.0
requests<3.0,>=2.11.1
openpyxl<4.0,>=3.0.10
anyascii>=0.1.5
telepath<1,>=0.3.1
laces<0.2,>=0.1
django-tasks<0.13,>=0.9
modelsearch<1.3,>=1.1

[docs]
pyenchant<4,>=3.1.1
sphinxcontrib-spelling<8,>=7
Sphinx>=7.3
sphinx-autobuild>=0.6.0
sphinx-wagtail-theme==6.5.0
myst_parser==2.0.0
sphinx_llm>=0.2.1

[testing]
python-dateutil>=2.7
Jinja2<3.2,>=3.0
boto3<2,>=1.28
freezegun>=0.3.8
azure-mgmt-cdn<13.0,>=12.0
azure-mgmt-frontdoor<1.1,>=1.0
django-pattern-library>=0.7
responses<1,>=0.25
coverage>=3.7.0
doc8==1.1.2
ruff==0.9.6
semgrep==1.150.0
curlylint==0.13.1
djhtml==3.0.6
polib<2.0,>=1.1
factory-boy>=3.2
tblib<3.0,>=2.0
