#
# This file is autogenerated by pip-compile with python 3.7
# To update, run:
#
#    pip-compile
#
activitystream==0.4.0
    # via -r requirements.in
beaker==1.11.0
    # via -r requirements.in
beautifulsoup4==4.11.1
    # via
    #   -r requirements.in
    #   webtest
bleach[css]==5.0.0
    # via pypeline
cchardet==2.1.7
    # via -r requirements.in
certifi==2021.10.8
    # via requests
cffi==1.15.0
    # via cryptography
charset-normalizer==2.0.12
    # via requests
colander==1.8.3
    # via -r requirements.in
crank==0.8.1
    # via turbogears2
creoleparser==0.7.5
    # via pypeline
cryptography==36.0.2
    # via -r requirements.in
datadiff==2.0.0
    # via -r requirements.in
decorator==5.1.1
    # via -r requirements.in
docutils==0.18.1
    # via pypeline
easywidgets==0.4
    # via -r requirements.in
emoji==1.7.0
    # via -r requirements.in
feedgenerator==2.0.0
    # via -r requirements.in
feedparser==6.0.8
    # via -r requirements.in
formencode==2.0.1
    # via
    #   -r requirements.in
    #   easywidgets
genshi==0.7.6
    # via creoleparser
gitdb==4.0.9
    # via gitpython
gitpython==3.1.27
    # via -r requirements.in
gunicorn==20.1.0
    # via -r requirements.in
html5lib==1.1
    # via
    #   -r requirements.in
    #   pypeline
    #   textile
httplib2==0.19.0
    # via oauth2
idna==3.3
    # via requests
importlib-metadata==4.11.3
    # via markdown
inflection==0.5.1
    # via profanityfilter
iso8601==1.0.2
    # via colander
jinja2==3.1.1
    # via -r requirements.in
markdown==3.3.6
    # via
    #   -r requirements.in
    #   markdown-checklist
    #   pypeline
markdown-checklist==0.4.3
    # via -r requirements.in
markupsafe==2.0.1
    # via
    #   -r requirements.in
    #   easywidgets
    #   jinja2
    #   turbogears2
    #   webhelpers2
ming==0.12.0
    # via -r requirements.in
mock==4.0.3
    # via -r requirements.in
oauth2 @ https://github.com/joestump/python-oauth2/archive/b94f69b1ad195513547924e380d9265133e995fa.zip
    # via -r requirements.in
oauthlib==3.2.0
    # via requests-oauthlib
paginate==0.5.6
    # via -r requirements.in
paste==3.5.0
    # via
    #   -r requirements.in
    #   easywidgets
    #   pastescript
pastedeploy==2.1.1
    # via
    #   -r requirements.in
    #   pastescript
pastescript==3.2.1
    # via -r requirements.in
pillow==9.1.0
    # via -r requirements.in
profanityfilter==2.0.6
    # via -r requirements.in
pycparser==2.21
    # via cffi
pyflakes==2.4.0
    # via -r requirements.in
pygments==2.11.2
    # via -r requirements.in
pymongo==3.11.4
    # via
    #   -r requirements.in
    #   activitystream
    #   ming
pyparsing==2.4.7
    # via httplib2
pypeline[creole,markdown,rst,textile]==0.6.0
    # via -r requirements.in
pysolr==3.9.0
    # via -r requirements.in
python-dateutil==2.8.0
    # via
    #   -r requirements.in
    #   easywidgets
python-magic==0.4.25
    # via -r requirements.in
python-oembed==0.2.4
    # via -r requirements.in
pytz==2022.1
    # via
    #   -r requirements.in
    #   feedgenerator
    #   ming
qrcode==7.3.1
    # via -r requirements.in
regex==2022.3.15
    # via
    #   regex-as-re-globally
    #   textile
regex-as-re-globally==0.0.2
    # via -r requirements.in
repoze-lru==0.7
    # via turbogears2
requests==2.27.1
    # via
    #   -r requirements.in
    #   pysolr
    #   requests-oauthlib
requests-oauthlib==1.3.1
    # via -r requirements.in
setproctitle==1.2.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
    #   webhelpers2
smmap==5.0.0
    # via gitdb
soupsieve==2.3.2.post1
    # via beautifulsoup4
testfixtures==6.18.5
    # via -r requirements.in
textile==4.0.2
    # via pypeline
timermiddleware==0.6.1
    # via -r requirements.in
tinycss2==1.1.1
    # via bleach
translationstring==1.4
    # via colander
turbogears2==2.3.12
    # via -r requirements.in
typing-extensions==4.1.1
    # via
    #   gitpython
    #   importlib-metadata
urllib3==1.26.9
    # via requests
waitress==2.1.2
    # via webtest
webencodings==0.5.1
    # via
    #   bleach
    #   html5lib
    #   tinycss2
webhelpers2==2.0
    # via -r requirements.in
webob==1.7.4
    # via
    #   -r requirements.in
    #   easywidgets
    #   timermiddleware
    #   turbogears2
    #   webtest
webtest==3.0.0
    # via -r requirements.in
werkzeug==2.1.1
    # via -r requirements.in
wrapt==1.14.0
    # via -r requirements.in
zipp==3.8.0
    # via importlib-metadata

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