#
# This file is autogenerated by pip-compile with python 3.7
# To update, run:
#
#    pip-compile
#
activitystream==0.3.0
    # via -r requirements.in
beaker==1.10.1
    # via -r requirements.in
beautifulsoup4==4.8.0
    # via
    #   -r requirements.in
    #   webtest
bleach==3.3.0
    # via pypeline
cchardet==2.1.7
    # via -r requirements.in
certifi==2021.5.30
    # via requests
cffi==1.12.2
    # via cryptography
charset-normalizer==2.0.4
    # via requests
colander==1.7.0
    # via -r requirements.in
crank==0.8.1
    # via turbogears2
creoleparser==0.7.5
    # via pypeline
cryptography==3.3.2
    # via -r requirements.in
datadiff==2.0.0
    # via -r requirements.in
decorator==4.4.0
    # via -r requirements.in
docutils==0.15.2
    # via pypeline
easywidgets==0.3.6
    # via -r requirements.in
emoji==0.5.3
    # via -r requirements.in
feedgenerator==1.9.1
    # via -r requirements.in
feedparser==6.0.8
    # via -r requirements.in
formencode==2.0.0
    # via
    #   -r requirements.in
    #   easywidgets
future==0.17.1
    # via timermiddleware
genshi==0.7.3
    # via creoleparser
gitdb2==2.0.4
    # via gitpython
gitpython==2.1.11
    # via -r requirements.in
gunicorn==20.1.0
    # via -r requirements.in
html5lib==1.0.1
    # via
    #   -r requirements.in
    #   pypeline
    #   textile
httplib2==0.19.0
    # via oauth2
idna==3.2
    # via requests
inflection==0.5.1
    # via profanityfilter
iso8601==0.1.12
    # via colander
jinja2==2.11.3
    # via -r requirements.in
markdown==2.6.11
    # via
    #   -r requirements.in
    #   markdown-checklist
    #   pypeline
markdown-checklist==0.4.1
    # via -r requirements.in
markupsafe==1.1.1
    # via
    #   -r requirements.in
    #   easywidgets
    #   jinja2
    #   turbogears2
    #   webhelpers2
ming==0.11.1
    # via -r requirements.in
mock==3.0.5
    # via -r requirements.in
https://github.com/joestump/python-oauth2/archive/b94f69b1ad195513547924e380d9265133e995fa.zip#egg=oauth2
    # via -r requirements.in
oauthlib==3.0.2
    # via requests-oauthlib
packaging==20.9
    # via bleach
paginate==0.5.6
    # via -r requirements.in
paste==3.5.0
    # via
    #   -r requirements.in
    #   easywidgets
    #   pastescript
pastedeploy==2.0.1
    # via
    #   -r requirements.in
    #   pastescript
pastescript==3.1.0
    # via -r requirements.in
pillow==8.3.2
    # via -r requirements.in
profanityfilter==2.0.6
    # via -r requirements.in
pycparser==2.19
    # via cffi
pyflakes==2.1.1
    # via -r requirements.in
pygments==2.9.0
    # via -r requirements.in
pymongo==3.10.1
    # via
    #   -r requirements.in
    #   activitystream
    #   ming
pyparsing==2.4.7
    # via
    #   httplib2
    #   packaging
pypeline[creole,markdown,rst,textile]==0.5.3
    # via -r requirements.in
pysolr==3.6.0
    # via -r requirements.in
python-dateutil==2.8.0
    # via
    #   -r requirements.in
    #   easywidgets
python-magic==0.4.15
    # via -r requirements.in
python-oembed==0.2.4
    # via -r requirements.in
pytz==2019.1
    # via
    #   -r requirements.in
    #   feedgenerator
    #   ming
qrcode==6.1
    # via -r requirements.in
repoze.lru==0.7
    # via turbogears2
requests==2.26.0
    # via
    #   -r requirements.in
    #   pysolr
    #   requests-oauthlib
requests-oauthlib==1.2.0
    # via -r requirements.in
setproctitle==1.1.9
    # via -r requirements.in
sgmllib3k==1.0.0
    # via feedparser
six==1.15.0
    # via
    #   -r requirements.in
    #   bleach
    #   creoleparser
    #   cryptography
    #   easywidgets
    #   feedgenerator
    #   formencode
    #   html5lib
    #   ming
    #   mock
    #   paste
    #   pastescript
    #   python-dateutil
    #   qrcode
    #   textile
    #   webhelpers2
    #   webtest
smmap2==2.0.4
    # via gitdb2
soupsieve==1.9.3
    # via beautifulsoup4
testfixtures==6.10.0
    # via -r requirements.in
textile==3.0.4
    # via pypeline
timermiddleware==0.5.1
    # via -r requirements.in
translationstring==1.3
    # via colander
turbogears2==2.3.12
    # via -r requirements.in
urllib3==1.26.6
    # via requests
waitress==1.4.3
    # via webtest
webencodings==0.5.1
    # via
    #   bleach
    #   html5lib
webhelpers2==2.0
    # via -r requirements.in
webob==1.7.4
    # via
    #   -r requirements.in
    #   easywidgets
    #   timermiddleware
    #   turbogears2
    #   webtest
webtest==2.0.33
    # via -r requirements.in
werkzeug==1.0.1
    # via -r requirements.in
wrapt==1.11.2
    # via -r requirements.in

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