#
# This file is autogenerated by pip-compile with python 3.7
# To update, run:
#
#    pip-compile
#
activitystream==0.4.0
    # via -r requirements.in
attrs==22.1.0
    # via pytest
beaker==1.11.0
    # via -r requirements.in
beautifulsoup4==4.11.1
    # via
    #   -r requirements.in
    #   webtest
bleach[css]==5.0.1
    # via pypeline
cchardet==2.1.7
    # via -r requirements.in
certifi==2022.9.24
    # via requests
cffi==1.15.1
    # via cryptography
charset-normalizer==2.1.1
    # via requests
colander==1.8.3
    # via -r requirements.in
crank==0.8.1
    # via turbogears2
creoleparser==0.7.5
    # via pypeline
cryptography==38.0.3
    # via -r requirements.in
decorator==5.1.1
    # via -r requirements.in
docutils==0.19
    # via pypeline
easywidgets==0.4.1
    # via -r requirements.in
emoji==2.2.0
    # via -r requirements.in
exceptiongroup==1.0.1
    # via pytest
execnet==1.9.0
    # via pytest-xdist
feedgenerator==2.0.0
    # via -r requirements.in
feedparser==6.0.10
    # via -r requirements.in
formencode==2.0.1
    # via
    #   -r requirements.in
    #   easywidgets
genshi==0.7.7
    # via creoleparser
gitdb==4.0.9
    # via gitpython
gitpython==3.1.29
    # via -r requirements.in
gunicorn==20.1.0
    # via -r requirements.in
html5lib==1.1
    # via
    #   -r requirements.in
    #   pypeline
    #   textile
idna==3.4
    # via requests
importlib-metadata==4.13.0
    # via
    #   -r requirements.in
    #   markdown
    #   pluggy
    #   pytest
inflection==0.5.1
    # via profanityfilter
iniconfig==1.1.1
    # via pytest
iso8601==1.1.0
    # via colander
jinja2==3.1.2
    # via -r requirements.in
markdown==3.3.7
    # via
    #   -r requirements.in
    #   markdown-checklist
    #   pypeline
markdown-checklist==0.4.4
    # via -r requirements.in
markupsafe==2.1.0
    # via
    #   -r requirements.in
    #   easywidgets
    #   jinja2
    #   turbogears2
    #   webhelpers2
ming==0.12.1
    # via -r requirements.in
mock==4.0.3
    # via -r requirements.in
oauthlib==3.2.2
    # via
    #   -r requirements.in
    #   requests-oauthlib
packaging==21.3
    # via
    #   pytest
    #   pytest-sugar
paginate==0.5.6
    # via -r requirements.in
paste==3.5.2
    # 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.3.0
    # via -r requirements.in
pluggy==1.0.0
    # via pytest
profanityfilter==2.0.6
    # via -r requirements.in
pycparser==2.21
    # via cffi
pyflakes==2.5.0
    # via -r requirements.in
pygments==2.13.0
    # via -r requirements.in
pymongo==3.13.0
    # via
    #   -r requirements.in
    #   activitystream
    #   ming
pyparsing==3.0.9
    # via packaging
pypeline[creole,markdown,rst,textile]==0.6.1
    # via -r requirements.in
pysolr==3.9.0
    # via -r requirements.in
pytest==7.2.0
    # via
    #   -r requirements.in
    #   pytest-sugar
    #   pytest-xdist
pytest-sugar==0.9.5
    # via -r requirements.in
pytest-xdist==3.0.2
    # 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==2022.6
    # via
    #   -r requirements.in
    #   feedgenerator
    #   ming
qrcode==7.3.1
    # via -r requirements.in
regex==2022.10.31
    # 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.28.1
    # via
    #   -r requirements.in
    #   pysolr
    #   requests-oauthlib
requests-oauthlib==1.3.1
    # 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
    #   webhelpers2
smmap==5.0.0
    # via gitdb
soupsieve==2.3.2.post1
    # via beautifulsoup4
termcolor==2.1.0
    # via pytest-sugar
testfixtures==7.0.2
    # 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.3.12
    # via -r requirements.in
typing-extensions==4.4.0
    # via
    #   gitpython
    #   importlib-metadata
urllib3==1.26.12
    # 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.2
    # via -r requirements.in
wrapt==1.14.1
    # via -r requirements.in
zipp==3.10.0
    # via importlib-metadata

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