# This file was autogenerated by uv via the following command:
# uv pip compile requirements.in -o requirements.txt --no-emit-package setuptools -p 3.11 --universal
activitystream==0.5.1
# via -r requirements.in
aiosmtpd==1.4.6
# via -r requirements.in
anyio==4.6.0
# via httpx
atpublic==6.0.2
# via aiosmtpd
attrs==25.4.0
# via aiosmtpd
beaker==1.13.0
# via
# -r requirements.in
# beaker-session-jwt
beaker-session-jwt==1.0.4
# via -r requirements.in
beautifulsoup4==4.14.2
# via
# -r requirements.in
# webtest
bleach==6.2.0
# via pypeline
boto3==1.40.51
# via pymongo-auth-aws
botocore==1.40.51
# via
# boto3
# pymongo-auth-aws
# s3transfer
certifi==2025.10.5
# via
# httpcore
# httpx
# pymongo
# requests
cffi==2.0.0
# via
# cryptography
# pymongocrypt
cfgv==3.4.0
# via pre-commit
charset-normalizer==3.4.4
# via requests
colander==1.8.3
# via -r requirements.in
colorama==0.4.6 ; sys_platform == 'win32'
# via
# defopt
# pytest
# qrcode
crank==0.8.1
# via turbogears2
creoleparser==0.7.5
# via pypeline
cryptography==46.0.2
# via
# -r requirements.in
# joserfc
# pymongocrypt
decorator==5.2.1
# via -r requirements.in
defopt==7.0.0
# via -r requirements.in
diff-match-patch==20230430
# via sxsdiff
distlib==0.4.0
# via virtualenv
dnspython==2.8.0
# via pymongo
docutils==0.22.2
# via
# -r requirements.in
# defopt
# pypeline
easywidgets==0.4.3
# via -r requirements.in
emoji==2.15.0
# via -r requirements.in
execnet==2.1.1
# via pytest-xdist
faust-cchardet==2.1.19
# via -r requirements.in
feedgenerator==2.2.1
# via -r requirements.in
feedparser==6.0.12
# via -r requirements.in
filelock==3.20.1
# via virtualenv
formencode==2.1.1
# via
# -r requirements.in
# easywidgets
genshi==0.7.9
# via creoleparser
gitdb==4.0.12
# via gitpython
gitpython==3.1.45
# via -r requirements.in
gunicorn==23.0.0
# via -r requirements.in
h11==0.16.0
# via httpcore
html5lib==1.1
# via
# -r requirements.in
# pypeline
httpcore==1.0.9
# via httpx
httpx==0.27.2
# via pymongocrypt
identify==2.6.15
# via pre-commit
idna==3.11
# via
# anyio
# httpx
# requests
inflection==0.5.1
# via profanityfilter
iniconfig==2.1.0
# via pytest
iso8601==1.1.0
# via colander
jinja2==3.1.6
# via -r requirements.in
jmespath==1.0.1
# via
# boto3
# botocore
joserfc==1.4.2
# via beaker-session-jwt
legacy-cgi==2.6.2 ; python_full_version >= '3.13'
# via
# -r requirements.in
# webob
lxml==6.0.2
# via -r requirements.in
markdown==3.9
# via
# -r requirements.in
# markdown-checklist
# pypeline
markdown-checklist==0.4.4
# via -r requirements.in
markupsafe==3.0.3
# via
# -r requirements.in
# easywidgets
# jinja2
# turbogears2
# webhelpers2
# werkzeug
ming==0.16.0
# via -r requirements.in
mock==5.2.0
# via -r requirements.in
nh3==0.3.1
# via textile
nodeenv==1.9.1
# via pre-commit
oauthlib==3.3.1
# via
# -r requirements.in
# requests-oauthlib
packaging==25.0
# via
# gunicorn
# pymongocrypt
# pytest
paginate==0.5.7
# via -r requirements.in
passlib==1.7.4
# via -r requirements.in
paste==3.10.1
# via
# -r requirements.in
# easywidgets
# pastescript
pastedeploy==3.1.0
# via
# -r requirements.in
# pastescript
pastescript==3.7.0
# via -r requirements.in
pillow==11.3.0
# via -r requirements.in
platformdirs==4.5.0
# via virtualenv
pluggy==1.6.0
# via pytest
pockets==0.9.1
# via sphinxcontrib-napoleon
pre-commit==4.3.0
# via -r requirements.in
profanityfilter==2.1.0
# via -r requirements.in
pyasynchat==1.0.4
# via -r requirements.in
pyasyncore==1.0.4
# via pyasynchat
pycparser==2.23 ; implementation_name != 'PyPy'
# via cffi
pygments==2.19.2
# via
# -r requirements.in
# pytest
pymongo==4.15.3
# via
# -r requirements.in
# activitystream
# beaker-session-jwt
# ming
pymongo-auth-aws==1.3.0
# via pymongo
pymongocrypt==1.16.0
# via pymongo
pypeline==0.7.0
# via -r requirements.in
pysolr==3.10.0
# via -r requirements.in
pytest==8.4.2
# via
# -r requirements.in
# pytest-sugar
# pytest-xdist
pytest-sugar==1.1.1
# via -r requirements.in
pytest-xdist==3.8.0
# via -r requirements.in
python-dateutil==2.9.0.post0
# via
# -r requirements.in
# botocore
# easywidgets
python-magic==0.4.27
# via -r requirements.in
python-oembed==0.2.4
# via -r requirements.in
pytz==2025.2
# via
# -r requirements.in
# ming
pyyaml==6.0.3
# via pre-commit
qrcode==8.2
# via -r requirements.in
regex==2025.9.18 ; implementation_name != 'pypy'
# via textile
repoze-lru==0.7
# via turbogears2
requests==2.32.5
# via
# -r requirements.in
# pysolr
# requests-oauthlib
requests-oauthlib==2.0.0
# via -r requirements.in
ruff==0.14.0
# via -r requirements.in
s3transfer==0.14.0
# via boto3
setproctitle==1.3.7
# via -r requirements.in
sgmllib3k==1.0.0
# via feedparser
six==1.17.0
# via
# -r requirements.in
# creoleparser
# genshi
# html5lib
# pockets
# python-dateutil
# sphinxcontrib-napoleon
# sxsdiff
# webhelpers2
smmap==5.0.2
# via gitdb
sniffio==1.3.1
# via
# anyio
# httpx
soupsieve==2.8
# via beautifulsoup4
sphinxcontrib-napoleon==0.7
# via defopt
sxsdiff==0.3.0
# via -r requirements.in
termcolor==3.1.0
# via pytest-sugar
testfixtures==9.2.0
# via -r requirements.in
textile==4.0.3
# via pypeline
timermiddleware==0.6.3
# via -r requirements.in
tinycss2==1.1.1
# via bleach
translationstring==1.4
# via colander
turbogears2==2.5.0
# via -r requirements.in
typing-extensions==4.15.0
# via beautifulsoup4
tzdata==2025.2 ; sys_platform == 'win32'
# via feedgenerator
urllib3==2.6.0
# via
# botocore
# requests
virtualenv==20.35.3
# via pre-commit
waitress==3.0.2
# via webtest
webencodings==0.5.1
# via
# bleach
# html5lib
# tinycss2
webhelpers2==2.1
# via -r requirements.in
webob==1.8.9
# via
# -r requirements.in
# easywidgets
# timermiddleware
# turbogears2
# webtest
webtest==3.0.7
# via -r requirements.in
werkzeug==3.1.4
# via -r requirements.in
wrapt==1.17.3
# via -r requirements.in
# The following packages were excluded from the output:
# setuptools