# This file was autogenerated by uv via the following command:
# uv pip compile requirements.in -o requirements.txt --no-emit-package setuptools -p 3.9 --universal
activitystream==0.5.0
# via -r requirements.in
aiosmtpd==1.4.6
# via -r requirements.in
anyio==4.6.0
# via httpx
atpublic==5.1
# via aiosmtpd
attrs==25.3.0
# via aiosmtpd
beaker==1.13.0
# via
# -r requirements.in
# beaker-session-jwt
beaker-session-jwt==1.0.3
# via -r requirements.in
beautifulsoup4==4.13.4
# via
# -r requirements.in
# webtest
bleach==6.2.0
# via pypeline
boto3==1.35.37
# via pymongo-auth-aws
botocore==1.35.37
# via
# boto3
# pymongo-auth-aws
# s3transfer
certifi==2025.4.26
# via
# httpcore
# httpx
# pymongo
# requests
cffi==1.17.1
# via
# cryptography
# pymongocrypt
cfgv==3.4.0
# via pre-commit
charset-normalizer==3.4.1
# via requests
colander==1.8.3
# via -r requirements.in
colorama==0.4.6 ; sys_platform == 'win32'
# via
# pytest
# qrcode
crank==0.8.1
# via turbogears2
creoleparser==0.7.5
# via pypeline
cryptography==44.0.2
# via
# -r requirements.in
# joserfc
# pymongocrypt
decorator==5.2.1
# via -r requirements.in
diff-match-patch==20230430
# via sxsdiff
distlib==0.3.9
# via virtualenv
dnspython==2.7.0
# via pymongo
docutils==0.21.2
# via
# -r requirements.in
# pypeline
easywidgets==0.4.2
# via -r requirements.in
emoji==2.14.1
# via -r requirements.in
exceptiongroup==1.2.2 ; python_full_version < '3.11'
# via
# anyio
# pytest
execnet==2.0.2
# via pytest-xdist
faust-cchardet==2.1.19
# via -r requirements.in
feedgenerator==2.1.0
# via -r requirements.in
feedparser==6.0.11
# via -r requirements.in
filelock==3.18.0
# 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.44
# 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.10
# via pre-commit
idna==3.10
# via
# anyio
# httpx
# requests
importlib-metadata==8.6.1 ; python_full_version < '3.10'
# via markdown
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.0.4
# via beaker-session-jwt
legacy-cgi==2.6.2 ; python_full_version >= '3.13'
# via
# -r requirements.in
# webob
lxml==5.4.0
# via -r requirements.in
markdown==3.8
# via
# -r requirements.in
# markdown-checklist
# pypeline
markdown-checklist==0.4.4
# via -r requirements.in
markupsafe==3.0.2
# via
# -r requirements.in
# easywidgets
# jinja2
# turbogears2
# webhelpers2
# werkzeug
ming==0.15.3
# via -r requirements.in
mock==5.2.0
# via -r requirements.in
nh3==0.2.21
# via textile
nodeenv==1.9.1
# via pre-commit
oauthlib==3.2.2
# via
# -r requirements.in
# requests-oauthlib
packaging==25.0
# via
# gunicorn
# pymongocrypt
# pytest
# pytest-sugar
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.3.7
# via virtualenv
pluggy==1.5.0
# via pytest
pre-commit==4.2.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.22
# via cffi
pygments==2.19.1
# via -r requirements.in
pymongo==4.12.1
# via
# -r requirements.in
# activitystream
# beaker-session-jwt
# ming
pymongo-auth-aws==1.3.0
# via pymongo
pymongocrypt==1.13.0
# via pymongo
pypeline==0.7.0
# via -r requirements.in
pysolr==3.10.0
# via -r requirements.in
pytest==8.3.5
# via
# -r requirements.in
# pytest-sugar
# pytest-xdist
pytest-sugar==1.0.0
# via -r requirements.in
pytest-xdist==3.5.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
# feedgenerator
# ming
pyyaml==6.0.2
# via pre-commit
qrcode==8.1
# via -r requirements.in
regex==2024.11.6
# via
# regex-as-re-globally
# textile
regex-as-re-globally==0.0.3
# via -r requirements.in
repoze-lru==0.7
# via turbogears2
requests==2.32.4
# via
# -r requirements.in
# pysolr
# requests-oauthlib
requests-oauthlib==2.0.0
# via -r requirements.in
ruff==0.11.7
# via -r requirements.in
s3transfer==0.10.3
# via boto3
setproctitle==1.3.6
# via -r requirements.in
sgmllib3k==1.0.0
# via feedparser
six==1.17.0
# via
# -r requirements.in
# creoleparser
# easywidgets
# genshi
# html5lib
# python-dateutil
# sxsdiff
# webhelpers2
smmap==5.0.2
# via gitdb
sniffio==1.3.1
# via
# anyio
# httpx
soupsieve==2.7
# via beautifulsoup4
sxsdiff==0.3.0
# via -r requirements.in
termcolor==3.0.1
# via pytest-sugar
testfixtures==8.1.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
tomli==2.2.1 ; python_full_version < '3.11'
# via pytest
translationstring==1.4
# via colander
turbogears2==2.4.3
# via -r requirements.in
typing-extensions==4.13.2
# via
# anyio
# beautifulsoup4
urllib3==1.26.20 ; python_full_version < '3.10'
# via
# botocore
# requests
urllib3==2.5.0 ; python_full_version >= '3.10'
# via
# botocore
# requests
virtualenv==20.30.0
# 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.4
# via -r requirements.in
werkzeug==3.1.3
# via -r requirements.in
wrapt==1.17.2
# via -r requirements.in
zipp==3.21.0 ; python_full_version < '3.10'
# via importlib-metadata
# The following packages were excluded from the output:
# setuptools