#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile
#
activitystream==0.3.0
    # via -r requirements.in
backports.functools-lru-cache==1.5
    # via soupsieve
backports.shutil-get-terminal-size==1.0.0
    # via ipython
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==2019.6.16
    # via requests
cffi==1.12.2
    # via cryptography
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
    #   ipython
    #   traitlets
docutils==0.15.2
    # via pypeline
easywidgets==0.3.6
    # via -r requirements.in
emoji==0.5.3
    # via -r requirements.in
enum34==1.1.6 ; python_version < "3.4"
    # via
    #   -r requirements.in
    #   colander
    #   cryptography
    #   traitlets
faulthandler==3.1 ; python_version < "3.3"
    # via -r requirements.in
feedgenerator==1.9.1
    # via -r requirements.in
feedparser==5.2.1
    # via -r requirements.in
formencode==2.0.0
    # via
    #   -r requirements.in
    #   easywidgets
funcsigs==1.0.2
    # via
    #   beaker
    #   mock
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==19.10.0
    # via -r requirements.in
html5lib==1.0.1
    # via
    #   -r requirements.in
    #   pypeline
    #   textile
httplib2==0.19.0
    # via oauth2
idna==2.8
    # via requests
inflection==0.3.1
    # via profanityfilter
ipaddress==1.0.22
    # via cryptography
ipython-genutils==0.2.0
    # via traitlets
ipython==5.8.0
    # via -r requirements.in
iso8601==0.1.12
    # via colander
jinja2==2.11.3
    # via -r requirements.in
markdown-checklist==0.4.1
    # via -r requirements.in
markdown==2.6.11
    # via
    #   -r requirements.in
    #   markdown-checklist
    #   pypeline
markupsafe==1.1.1
    # via
    #   -r requirements.in
    #   easywidgets
    #   jinja2
    #   turbogears2
    #   webhelpers2
ming==0.10.2
    # 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
pathlib2==2.3.4
    # via
    #   ipython
    #   pickleshare
pexpect==4.7.0
    # via ipython
pickleshare==0.7.5
    # via ipython
pillow==6.2.2
    # via -r requirements.in
profanityfilter==2.0.6
    # via -r requirements.in
prompt-toolkit==1.0.16
    # via ipython
ptyprocess==0.6.0
    # via pexpect
pycparser==2.19
    # via cffi
pyflakes==2.1.1
    # via -r requirements.in
pygments==2.5.2
    # via
    #   -r requirements.in
    #   ipython
pymongo==3.10.1
    # via
    #   -r requirements.in
    #   activitystream
    #   ming
pyparsing==2.4.7
    # via
    #   httplib2
    #   packaging
pypeline[creole,markdown,rst,textile]==0.5.2
    # 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-oauthlib==1.2.0
    # via -r requirements.in
requests==2.22.0
    # via
    #   -r requirements.in
    #   pysolr
    #   requests-oauthlib
scandir==1.10.0
    # via pathlib2
setproctitle==1.1.9
    # via -r requirements.in
simplegeneric==0.8.1
    # via ipython
six==1.15.0
    # via
    #   -r requirements.in
    #   bleach
    #   creoleparser
    #   cryptography
    #   easywidgets
    #   feedgenerator
    #   formencode
    #   html5lib
    #   ming
    #   mock
    #   paste
    #   pastescript
    #   pathlib2
    #   prompt-toolkit
    #   python-dateutil
    #   qrcode
    #   textile
    #   traitlets
    #   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
traitlets==4.3.2
    # via ipython
translationstring==1.3
    # via colander
turbogears2==2.3.12
    # via -r requirements.in
urllib3==1.25.10
    # via requests
waitress==1.4.3
    # via webtest
wcwidth==0.1.7
    # via prompt-toolkit
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
