#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile
#
activitystream==0.2.2
asn1crypto==0.24.0        # via cryptography
astroid==1.6.6            # via pylint
backlash==0.1.4
backports.functools-lru-cache==1.5  # via astroid, isort, pylint, soupsieve
backports.shutil-get-terminal-size==1.0.0  # via ipython
beaker==1.10.1
beautifulsoup4==4.8.0
bleach==3.1.0             # via pypeline
certifi==2019.6.16        # via requests
cffi==1.12.2              # via cryptography
chardet==3.0.4
colander==1.7.0
configparser==3.7.4       # via pylint
crank==0.8.1              # via turbogears2
creoleparser==0.7.5       # via pypeline
cryptography==2.6.1
datadiff==2.0.0
decorator==4.4.0
docutils==0.15.2          # via pypeline
easywidgets==0.3.5
emoji==0.5.3
enum34==1.1.6             # via astroid, colander, cryptography, traitlets
faulthandler==3.1
feedparser==5.2.1
formencode==1.3.1
funcsigs==1.0.2           # via beaker, mock
future==0.17.1            # via timermiddleware
futures==3.3.0            # via isort
genshi==0.7.3             # via creoleparser
gitdb2==2.0.4             # via gitpython
gitpython==2.1.11
gunicorn==19.4.5
html5lib==1.0.1
httplib2==0.13.1          # via oauth2
idna==2.8                 # via requests
ipaddress==1.0.22         # via cryptography
ipython-genutils==0.2.0   # via traitlets
ipython==5.8.0
iso8601==0.1.12           # via colander
isort==4.3.21             # via pylint
jinja2==2.10
lazy-object-proxy==1.4.1  # via astroid
markdown-checklist==0.4.1
markdown==2.6.11
markupsafe==1.1.1
mccabe==0.6.1             # via pylint
ming==0.5.6
mock==3.0.5
nose==1.3.7
oauth2==1.9.0.post1
oauthlib==3.0.2           # via requests-oauthlib
paste==3.1.0
pastedeploy==2.0.1
pastescript==3.1.0
pathlib2==2.3.4           # via ipython, pickleshare
pexpect==4.7.0            # via ipython
pickleshare==0.7.5        # via ipython
pillow==6.1.0
poster==0.8.1
prompt-toolkit==1.0.16    # via ipython
ptyprocess==0.6.0         # via pexpect
pycparser==2.19           # via cffi
pyflakes==2.1.1
pygments==2.4.2
pylint==1.9.5
pymongo==2.8.1
pypeline[creole,markdown,rst,textile]==0.5.1
pysolr==3.6.0
python-dateutil==2.8.0
python-magic==0.4.15
python-oembed==0.2.4
pytz==2019.1
qrcode==6.1
repoze.lru==0.7           # via turbogears2
requests-oauthlib==1.2.0
requests==2.22.0
scandir==1.10.0           # via pathlib2
setproctitle==1.1.9
simplegeneric==0.8.1      # via ipython
singledispatch==3.4.0.3   # via astroid, pylint
six==1.12.0
smmap2==2.0.4             # via gitdb2
soupsieve==1.9.3          # via beautifulsoup4
testfixtures==6.10.0
textile==3.0.4            # via pypeline
timermiddleware==0.5.0
traitlets==4.3.2          # via ipython
translationstring==1.3    # via colander
turbogears2==2.3.12
urllib3==1.25.3           # via requests
waitress==1.3.0           # via webtest
wcwidth==0.1.7            # via prompt-toolkit
webencodings==0.5.1       # via bleach, html5lib
webhelpers==1.3
webob==1.7.4
webtest==2.0.33
wrapt==1.11.2

# The following packages are considered to be unsafe in a requirements file:
# setuptools==41.2.0        # via ipython
