#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile
#
activitystream==0.3.0     # via -r requirements.in
backlash==0.1.4           # 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
certifi==2019.6.16        # via requests
cffi==1.12.2              # via cryptography
chardet==3.0.4            # via -r requirements.in, 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, 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.5.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
nose==1.3.7               # 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, backlash, easywidgets, timermiddleware, turbogears2, webtest
webtest==2.0.33           # 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
