# 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.* # https://github.com/zulip/zulip/issues/10835 # needed for Deque (in Python < 3.5.4) and TypedDict typing-extensions # Needed for rendering backend templates Jinja2 # Needed for markdown processing Markdown Pygments hyperlink # Needed for manage.py ipython # Needed for Image Processing Pillow # Needed for building complex DB queries SQLAlchemy # Needed for password hashing argon2-cffi # Needed for S3 file uploads boto # Needed for integrations defusedxml # Needed for LDAP support django-auth-ldap # Django extension providing bitfield support django-bitfield # Django extension for sending data to statsd django-statsd-mozilla # Needed for Android push notifications python-gcm # Needed for the email mirror html2text httplib2 git+https://github.com/zulip/talon.git@7d8bdc4dbcfcc5a73298747293b99fe53da55315#egg=talon==1.2.10.zulip1 # Needed for hipchat import hypchat # Needed for inlining the CSS in emails premailer # Needed for JWT-based auth PyJWT # Needed for including other markdown files for user docs markdown-include # Needed for mock objects in decorators mock # Needed to access rabbitmq pika==0.13.* # https://github.com/zulip/zulip/issues/12899 # Needed to access our database psycopg2 --no-binary psycopg2 # Needed for memcached usage pylibmc # Needed for compression support in memcached via pylibmc django-pylibmc # Needed for zerver/tests/test_timestamp.py python-dateutil # Needed for timezone work pytz # Needed for redis redis # Needed for Python 2+3 compatibility six # Needed for Tornado websockets support sockjs-tornado # Needed to parse source maps for error reporting sourcemap # Tornado used for server->client push system tornado==4.* # https://github.com/zulip/zulip/issues/8913 # Fast JSON parser git+https://github.com/zulip/ultrajson@70ac02bec#egg=ujson==1.35+git # Django extension for serving webpack modules django-webpack-loader # Needed for iOS push notifications apns2==0.5.* # https://github.com/Pr0Ger/PyAPNs2/issues/88 python-twitter # To parse po files polib # Needed for cloning virtual environments virtualenv-clone # Needed for reading json as stream ijson # Needed for link preview beautifulsoup4 pyoembed python-magic # The Zulip API bindings, from its own repository. We integrate with # these tightly, including fetching content not included in the normal # release tarballs (which is a bug). So we need to pin it makes sense # to pin a version from Git rather than a release. git+https://github.com/zulip/python-zulip-api.git@804501610b6a205334e71b4e441fca60acf650da#egg=zulip==0.6.1_git&subdirectory=zulip git+https://github.com/zulip/python-zulip-api.git@804501610b6a205334e71b4e441fca60acf650da#egg=zulip_bots==0.6.1+git&subdirectory=zulip_bots # Used for Hesiod lookups, etc. py3dns # Install Python Social Auth social-auth-app-django # Needed for messages' rendered content parsing in push notifications. lxml # Needed for 2-factor authentication django-two-factor-auth # Required by django-phonenumber-field which is a dependency of django-two-factor-auth. # Developers can install either phonenumberslite or phonenumbers. Developers of # django-two-factor-auth has not specified which package to install so we are going # with phonenumberslite since it has less memory footprint. phonenumberslite twilio # Needed for processing payments (in corporate) stripe # Needed for serving uploaded files from nginx but perform auth checks in django. django-sendfile2 # For checking whether email of the user is from a disposable email provider. disposable-email-domains # Needed for parsing YAML with JSON references from the REST API spec files yamole # Needed for signing thumbnail requests so that they can be authenticated on the # other end. Using a fork to eliminate a really slow pkgresources import. git+https://github.com/zulip/libthumbor.git@60ed2431c07686a12f2770b2d852c5650f3ccfc6#egg=libthumbor==1.3.2zulip # Needed for string matching in AlertWordProcessor pyahocorasick # Needed for function decorators that don't break introspection. # Used for rate limiting authentication. decorator