#
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
#    pip-compile
#
activitystream==0.4.2
    # via -r requirements.in
beaker==1.12.1
    # via
    #   -r requirements.in
    #   beaker-session-jwt
beaker-session-jwt==1.0.1
    # via -r requirements.in
beautifulsoup4==4.12.2
    # via
    #   -r requirements.in
    #   webtest
bleach[css]==6.1.0
    # via pypeline
certifi==2023.11.17
    # via requests
cffi==1.16.0
    # via cryptography
cfgv==3.4.0
    # via pre-commit
charset-normalizer==3.3.2
    # via requests
colander==1.8.3
    # via -r requirements.in
crank==0.8.1
    # via turbogears2
creoleparser==0.7.5
    # via pypeline
cryptography==42.0.5
    # via
    #   -r requirements.in
    #   joserfc
decorator==5.1.1
    # via -r requirements.in
diff-match-patch==20230430
    # via sxsdiff
distlib==0.3.8
    # via virtualenv
docutils==0.20.1
    # via pypeline
easywidgets==0.4.1
    # via -r requirements.in
emoji==2.9.0
    # via -r requirements.in
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.13.1
    # via virtualenv
formencode==2.1.0
    # via
    #   -r requirements.in
    #   easywidgets
genshi==0.7.7
    # via creoleparser
gitdb==4.0.11
    # via gitpython
gitpython==3.1.41
    # via -r requirements.in
gunicorn==21.2.0
    # via -r requirements.in
html5lib==1.1
    # via
    #   -r requirements.in
    #   pypeline
    #   textile
identify==2.5.33
    # via pre-commit
idna==3.6
    # via requests
inflection==0.5.1
    # via profanityfilter
iniconfig==2.0.0
    # via pytest
iso8601==1.1.0
    # via colander
jinja2==3.1.3
    # via -r requirements.in
joserfc==0.9.0
    # via beaker-session-jwt
markdown==3.5.2
    # via
    #   -r requirements.in
    #   markdown-checklist
    #   pypeline
markdown-checklist==0.4.4
    # via -r requirements.in
markupsafe==2.1.3
    # via
    #   -r requirements.in
    #   easywidgets
    #   jinja2
    #   turbogears2
    #   webhelpers2
    #   werkzeug
ming==0.13.0
    # via -r requirements.in
mock==5.1.0
    # via -r requirements.in
nodeenv==1.8.0
    # via pre-commit
oauthlib==3.2.2
    # via
    #   -r requirements.in
    #   requests-oauthlib
packaging==23.2
    # via
    #   gunicorn
    #   pytest
    #   pytest-sugar
paginate==0.5.6
    # via -r requirements.in
paste==3.7.1
    # via
    #   -r requirements.in
    #   easywidgets
    #   pastescript
pastedeploy==3.1.0
    # via
    #   -r requirements.in
    #   pastescript
pastescript==3.4.0
    # via -r requirements.in
pillow==10.2.0
    # via -r requirements.in
platformdirs==4.1.0
    # via virtualenv
pluggy==1.3.0
    # via pytest
pre-commit==3.6.0 ; python_version >= "3.9"
    # via -r requirements.in
pre-commit==3.5.0 ; python_version < "3.9"
    # via -r requirements.in
profanityfilter==2.0.6
    # via -r requirements.in
pycparser==2.21
    # via cffi
pygments==2.17.2
    # via -r requirements.in
pymongo==3.13.0
    # via
    #   -r requirements.in
    #   activitystream
    #   beaker-session-jwt
    #   ming
pypeline[creole,markdown,rst,textile]==0.6.1
    # via -r requirements.in
pypng==0.20220715.0
    # via qrcode
pysolr==3.9.0
    # via -r requirements.in
pytest==7.4.4
    # via
    #   -r requirements.in
    #   pytest-sugar
    #   pytest-xdist
pytest-sugar==0.9.7
    # via -r requirements.in
pytest-xdist==3.5.0
    # via -r requirements.in
python-dateutil==2.8.2
    # via
    #   -r requirements.in
    #   easywidgets
python-magic==0.4.27
    # via -r requirements.in
python-oembed==0.2.4
    # via -r requirements.in
pytz==2023.3.post1
    # via
    #   -r requirements.in
    #   feedgenerator
    #   ming
pyyaml==6.0.1
    # via pre-commit
qrcode==7.4.2
    # via -r requirements.in
regex==2023.12.25
    # 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.31.0
    # via
    #   -r requirements.in
    #   pysolr
    #   requests-oauthlib
requests-oauthlib==1.3.1
    # via -r requirements.in
ruff==0.1.13
    # via -r requirements.in
setproctitle==1.3.3
    # via -r requirements.in
sgmllib3k==1.0.0
    # via feedparser
six==1.16.0
    # via
    #   -r requirements.in
    #   bleach
    #   creoleparser
    #   easywidgets
    #   genshi
    #   html5lib
    #   paste
    #   pastescript
    #   python-dateutil
    #   sxsdiff
    #   webhelpers2
smmap==5.0.1
    # via gitdb
soupsieve==2.4.1
    # via beautifulsoup4
sxsdiff==0.3.0
    # via -r requirements.in
termcolor==2.4.0
    # via pytest-sugar
testfixtures==7.2.2
    # via -r requirements.in
textile==4.0.2
    # via pypeline
timermiddleware==0.6.3
    # via -r requirements.in
tinycss2==1.1.1
    # via bleach
translationstring==1.4
    # via colander
turbogears2==2.4.3
    # via -r requirements.in
typing-extensions==4.9.0
    # via qrcode
urllib3==2.1.0
    # via requests
virtualenv==20.25.0
    # via pre-commit
waitress==2.1.2
    # via webtest
webencodings==0.5.1
    # via
    #   bleach
    #   html5lib
    #   tinycss2
webhelpers2==2.0
    # via -r requirements.in
webob==1.8.7
    # via
    #   -r requirements.in
    #   easywidgets
    #   timermiddleware
    #   turbogears2
    #   webtest
webtest==3.0.0
    # via -r requirements.in
werkzeug==3.0.1
    # via -r requirements.in
wrapt==1.16.0
    # via -r requirements.in

# The following packages are considered to be unsafe in a requirements file:
# setuptools
