# This file was autogenerated by uv via the following command:
#    uv pip compile requirements.in -o requirements.txt -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==7.0.0
    # 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.3
    # via
    #   -r requirements.in
    #   webtest
bleach==6.4.0
    # via pypeline
boto3==1.42.89
    # via pymongo-auth-aws
botocore==1.42.89
    # via
    #   boto3
    #   pymongo-auth-aws
    #   s3transfer
certifi==2026.2.25
    # via
    #   httpcore
    #   httpx
    #   pymongo
    #   requests
cffi==2.0.0
    # via
    #   cryptography
    #   pymongocrypt
cfgv==3.5.0
    # via pre-commit
charset-normalizer==3.4.7
    # 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==49.0.0
    # 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.4
    # 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.2
    # 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.25.2
    # via
    #   python-discovery
    #   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.50
    # via -r requirements.in
gunicorn==25.3.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.18
    # via pre-commit
idna==3.15
    # via
    #   -r requirements.in
    #   anyio
    #   httpx
    #   requests
inflection==0.5.1
    # via profanityfilter
iniconfig==2.3.0
    # via pytest
iso8601==1.1.0
    # via colander
jinja2==3.1.6
    # via -r requirements.in
jmespath==1.1.0
    # via
    #   boto3
    #   botocore
joserfc==1.6.4
    # via beaker-session-jwt
legacy-cgi==2.6.2 ; python_full_version >= '3.13'
    # via
    #   -r requirements.in
    #   webob
lxml==6.1.0
    # via -r requirements.in
markdown==3.10.2
    # via
    #   -r requirements.in
    #   markdown-checklist
    #   mdx-breakless-lists
    #   pypeline
markdown-checklist==0.4.4
    # via -r requirements.in
markupsafe==3.0.3
    # via
    #   -r requirements.in
    #   easywidgets
    #   jinja2
    #   turbogears2
    #   webhelpers2
    #   werkzeug
mdx-breakless-lists==1.0.1
    # via -r requirements.in
ming==0.17.0
    # via -r requirements.in
mock==5.2.0
    # via -r requirements.in
nh3==0.3.2
    # via textile
nodeenv==1.10.0
    # via pre-commit
oauthlib==3.3.1
    # via
    #   -r requirements.in
    #   requests-oauthlib
packaging==26.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==12.2.0
    # via -r requirements.in
platformdirs==4.9.6
    # via
    #   python-discovery
    #   virtualenv
pluggy==1.6.0
    # via pytest
pockets==0.9.1
    # via sphinxcontrib-napoleon
pre-commit==4.5.1
    # via -r requirements.in
profanityfilter==2.1.0
    # via -r requirements.in
pyasynchat==1.0.5
    # via -r requirements.in
pyasyncore==1.0.5
    # via pyasynchat
pycparser==3.0 ; implementation_name != 'PyPy'
    # via cffi
pygments==2.20.0
    # via
    #   -r requirements.in
    #   pytest
pymongo==4.16.0
    # 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.11.0
    # via -r requirements.in
pytest==9.0.3
    # 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-discovery==1.2.2
    # via virtualenv
python-magic==0.4.27
    # via -r requirements.in
python-oembed==0.2.4
    # via -r requirements.in
pytz==2026.1.post1
    # via
    #   -r requirements.in
    #   ming
pyyaml==6.0.3
    # via pre-commit
qrcode==8.2
    # via -r requirements.in
regex==2026.1.15 ; implementation_name != 'pypy'
    # via textile
repoze-lru==0.7
    # via turbogears2
requests==2.33.1
    # via
    #   -r requirements.in
    #   pysolr
    #   requests-oauthlib
requests-oauthlib==2.0.0
    # via -r requirements.in
ruff==0.15.10
    # via -r requirements.in
s3transfer==0.16.0
    # via boto3
setproctitle==1.3.7
    # via -r requirements.in
setuptools==81.0.0
    # via
    #   -r requirements.in
    #   colander
    #   paste
    #   pastescript
    #   pysolr
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.3
    # via gitdb
sniffio==1.3.1
    # via
    #   anyio
    #   httpx
soupsieve==2.8.3
    # via beautifulsoup4
sphinxcontrib-napoleon==0.7
    # via defopt
sxsdiff==0.3.0
    # via -r requirements.in
termcolor==3.3.0
    # via pytest-sugar
testfixtures==10.0.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.7.0
    # via
    #   botocore
    #   requests
virtualenv==21.2.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.10
    # via
    #   -r requirements.in
    #   easywidgets
    #   timermiddleware
    #   turbogears2
    #   webtest
webtest==3.0.7
    # via -r requirements.in
werkzeug==3.1.6
    # via -r requirements.in
wrapt==2.1.0
    # via -r requirements.in
