# After editing this file, you MUST afterward run
# /tools/update-locked-requirements to update requirements/dev.txt
# and requirements/prod.txt.
# See requirements/README.md for more detail.
# Django itself
Django==1.11.6

# needed for mypy TypedDict
mypy_extensions==0.3.0

# Needed for rendering backend templates
Jinja2==2.10

# Needed for markdown processing
Markdown==2.6.11
MarkupSafe==1.0
Pygments==2.2.0

# Needed for manage.py
ipython==6.2.1

# Needed for Image Processing
Pillow==5.0.0

# Needed for building complex DB queries
SQLAlchemy==1.2.4

# Needed for password hashing
argon2-cffi==18.1.0

# Needed for Tornado >3.2 compatibility
backports-abc==0.5

# Needed for Tornado 4 compatibility
backports.ssl-match-hostname==3.5.0.1

# Needed for S3 file uploads
boto==2.48.0

certifi==2018.1.18

# Used for scrapy as well as argon2
cffi==1.11.4

chardet==3.0.4

# Pinned version because older versions don't compile on newer Linux.
# Not actually a direct dependency.
cryptography==2.1.4

# Needed for integrations
defusedxml==0.5.0

# Needed for LDAP support
django-auth-ldap==1.3.0

# Django extension providing bitfield support
django-bitfield==1.9.3

# Django extension for sending data to statsd
django-statsd-mozilla==0.4.0

docopt==0.6.2

# Needed for Android push notifications
python-gcm==0.4

gitdb==0.6.4

# Needed for Google Apps mobile auth
google-api-python-client==1.6.5

# Needed for the email mirror
html2text==2018.1.9
httplib2==0.10.3
-e git+https://github.com/zulip/talon.git@7d8bdc4dbcfcc5a73298747293b99fe53da55315#egg=talon==1.2.10.zulip1

# Needed for inlining the CSS in emails
premailer==3.1.1

# Needed for JWT-based auth
PyJWT==1.5.3

# Needed for including other markdown files for user docs
markdown-include==0.5.1

# Needed for mock objects in decorators
mock==2.0.0

oauth2client==4.1.2
oauthlib==2.0.6

# Enhanced HTTPS support for httplib and urllib2 using PyOpenSSL
# Needed by requests to send https request to some sites.
ndg-httpsclient==0.4.4

# Needed to access rabbitmq
pika==0.11.0

# Needed to access our database
psycopg2==2.7.4 --no-binary psycopg2

pyasn1==0.4.2
pyasn1-modules==0.2.1
pycrypto==2.6.1

# Needed for memcached usage
pylibmc==1.5.2

# Needed for zerver/tests/test_timestamp.py
python-dateutil==2.6.1

# Needed for timezone work
pytz==2018.3

# Needed for redis
redis==2.10.6

requests_oauthlib==0.8.0
rsa==3.4.2

# Needed for Python 2+3 compatibility
six==1.11.0
smmap==0.9.0

# Needed for Tornado websockets support
sockjs-tornado==1.0.3

# Needed to parse source maps for error reporting
sourcemap==0.2.1

# Tornado used for server->client push system
tornado==4.5.3

# Needed for Python static typing
typing==3.6.4

# Fast JSON parser
-e git+https://github.com/zulip/ultrajson@70ac02bec#egg=ujson==1.35+git

uritemplate==3.0.0

# Django extension for static asset pipeline
django-pipeline==1.6.14

# Django extension for serving webpack modules
django-webpack-loader==0.5.0

# Needed for iOS push notifications
apns2==0.3.0

python-twitter==3.3

# To parse po files
polib==1.1.0

# Needed for cloning virtual environments
virtualenv-clone==0.3.0

# Needed for reading json as stream
ijson==2.3

# Needed for link preview
beautifulsoup4==4.6.0
pyoembed==0.1.2

# The Zulip API bindings, from its own repository.
# We integrate with these tightly, so often it makes sense to pin a
# version from Git rather than a release.
-e "git+https://github.com/zulip/python-zulip-api.git@0.4.1#egg=zulip==0.4.1_git&subdirectory=zulip"
-e "git+https://github.com/zulip/python-zulip-api.git@192e9e101d934a3171677ada511a11c26899cc96#egg=zulip_bots&subdirectory=zulip_bots"

# Used for Hesiod lookups, etc.
py3dns==3.1.0

# Needed for LDAP integration
pyldap==2.4.37

# Install Python Social Auth
social-auth-app-django==2.1.0

# Needed for messages' rendered content parsing in push notifications.
lxml==4.1.1

# Needed for 2-factor authentication
django-two-factor-auth==1.7.0
twilio==6.10.3

# Needed for processing payments (in zilencer)
stripe==1.77.2

# Needed for serving uploaded files from nginx but perform auth checks in django.
django-sendfile==0.3.11

# For checking whether email of the user is from a disposable email provider.
disposable-email-domains==0.0.20
