#
# 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.0
    # 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
future==0.18.2
    # via timermiddleware
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.11.2
    # 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
    #   ming
    #   paste
    #   pastescript
    #   python-dateutil
    #   webhelpers2
smmap==5.0.0
    # via gitdb
soupsieve==2.3.2
    # via beautifulsoup4
testfixtures==6.18.5
    # via -r requirements.in
textile==4.0.2
    # via pypeline
timermiddleware==0.6.0
    # 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.1
    # 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
