#
# This file is autogenerated by pip-compile with Python 3.7
# by the following command:
#
#    pip-compile
#
activitystream==0.4.0
    # via -r requirements.in
beaker==1.12.1
    # via -r requirements.in
beautifulsoup4==4.12.2
    # via
    #   -r requirements.in
    #   webtest
bleach[css]==6.0.0
    # via pypeline
certifi==2023.7.22
    # via requests
cffi==1.15.1
    # via cryptography
cfgv==3.3.1
    # via pre-commit
charset-normalizer==3.1.0
    # via requests
colander==1.8.3
    # via -r requirements.in
crank==0.8.1
    # via turbogears2
creoleparser==0.7.5
    # via pypeline
cryptography==41.0.3
    # via -r requirements.in
decorator==5.1.1
    # via -r requirements.in
diff-match-patch==20230430
    # via sxsdiff
distlib==0.3.7
    # via virtualenv
docutils==0.19
    # via pypeline
easywidgets==0.4.1
    # via -r requirements.in
emoji==2.7.0
    # via -r requirements.in
exceptiongroup==1.1.1
    # via pytest
execnet==2.0.2
    # via pytest-xdist
faust-cchardet==2.1.18
    # via -r requirements.in
feedgenerator==2.1.0
    # via -r requirements.in
feedparser==6.0.10
    # via -r requirements.in
filelock==3.12.2
    # via virtualenv
formencode==2.0.1
    # via
    #   -r requirements.in
    #   easywidgets
genshi==0.7.7
    # via creoleparser
gitdb==4.0.10
    # via gitpython
gitpython==3.1.35
    # via -r requirements.in
gunicorn==21.2.0
    # via -r requirements.in
html5lib==1.1
    # via
    #   -r requirements.in
    #   pypeline
    #   textile
identify==2.5.24
    # via pre-commit
idna==3.4
    # via requests
importlib-metadata==6.6.0
    # via
    #   gunicorn
    #   markdown
    #   pluggy
    #   pre-commit
    #   pytest
    #   virtualenv
inflection==0.5.1
    # via profanityfilter
iniconfig==2.0.0
    # via pytest
iso8601==1.1.0
    # via colander
jinja2==3.1.2
    # via -r requirements.in
markdown==3.4.4
    # 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.1
    # via
    #   gunicorn
    #   pytest
    #   pytest-sugar
paginate==0.5.6
    # via -r requirements.in
paste==3.5.3
    # via
    #   -r requirements.in
    #   easywidgets
    #   pastescript
pastedeploy==2.1.1
    # via
    #   -r requirements.in
    #   pastescript
pastescript==3.3.0
    # via -r requirements.in
pillow==9.5.0
    # via -r requirements.in
platformdirs==3.10.0
    # via virtualenv
pluggy==1.2.0
    # via pytest
pre-commit==2.21.0
    # via -r requirements.in
profanityfilter==2.0.6
    # via -r requirements.in
pycparser==2.21
    # via cffi
pygments==2.15.1
    # via -r requirements.in
pymongo==3.13.0
    # via
    #   -r requirements.in
    #   activitystream
    #   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.0
    # via
    #   -r requirements.in
    #   pytest-sugar
    #   pytest-xdist
pytest-sugar==0.9.7
    # via -r requirements.in
pytest-xdist==3.3.1
    # 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
    # via
    #   -r requirements.in
    #   feedgenerator
    #   ming
pyyaml==6.0.1
    # via pre-commit
qrcode==7.4.2
    # via -r requirements.in
regex==2022.10.31
    # 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.0.281
    # via -r requirements.in
setproctitle==1.3.2
    # via -r requirements.in
sgmllib3k==1.0.0
    # via feedparser
six==1.16.0
    # via
    #   -r requirements.in
    #   bleach
    #   creoleparser
    #   easywidgets
    #   formencode
    #   genshi
    #   html5lib
    #   paste
    #   pastescript
    #   python-dateutil
    #   sxsdiff
    #   webhelpers2
smmap==5.0.0
    # via gitdb
soupsieve==2.4.1
    # via beautifulsoup4
sxsdiff==0.3.0
    # via -r requirements.in
termcolor==2.3.0
    # via pytest-sugar
testfixtures==7.1.0
    # via -r requirements.in
textile==4.0.2
    # via pypeline
timermiddleware==0.6.2
    # via -r requirements.in
tinycss2==1.1.1
    # via bleach
tomli==2.0.1
    # via pytest
translationstring==1.4
    # via colander
turbogears2==2.4.3
    # via -r requirements.in
typing-extensions==4.7.1
    # via
    #   gitpython
    #   importlib-metadata
    #   platformdirs
    #   qrcode
urllib3==1.26.15
    # via requests
virtualenv==20.24.3
    # 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==2.2.3
    # via -r requirements.in
wrapt==1.15.0
    # via -r requirements.in
zipp==3.15.0
    # via importlib-metadata

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