#
# 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
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
py==1.11.0
    # via pytest
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==2.4.7
    # via packaging
pypeline[creole,markdown,rst,textile]==0.6.1
    # via -r requirements.in
pysolr==3.9.0
    # via -r requirements.in
pytest==7.1.3
    # 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
