mirror of https://github.com/zulip/zulip.git
203 lines
4.5 KiB
Plaintext
203 lines
4.5 KiB
Plaintext
# 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.
|
|
|
|
-r pip.in
|
|
|
|
# Django itself
|
|
Django[argon2]==5.0.*
|
|
asgiref<3.8.0 # Breaks with https://github.com/django/asgiref/pull/367
|
|
|
|
# needed for NotRequired, ParamSpec
|
|
typing-extensions
|
|
|
|
# Needed for rendering backend templates
|
|
Jinja2
|
|
|
|
# Needed for Markdown processing
|
|
Markdown
|
|
Pygments
|
|
jsx-lexer
|
|
uri-template
|
|
regex
|
|
|
|
# Needed for manage.py
|
|
ipython
|
|
|
|
# Needed for image processing and thumbnailing
|
|
Pillow
|
|
pyvips
|
|
|
|
# Needed for building complex DB queries
|
|
SQLAlchemy==1.4.*
|
|
greenlet
|
|
|
|
# Needed for S3 file uploads and other AWS tools
|
|
boto3
|
|
|
|
# The runtime-relevant part of boto3-stubs (see mypy.in)
|
|
mypy-boto3-s3
|
|
mypy-boto3-ses
|
|
mypy-boto3-sns
|
|
mypy-boto3-sqs
|
|
|
|
# Needed for integrations
|
|
defusedxml
|
|
|
|
# Needed for LDAP support
|
|
python-ldap
|
|
django-auth-ldap
|
|
|
|
# Django extension providing bitfield support
|
|
django-bitfield
|
|
|
|
# Needed for Android push notifications
|
|
# grpcio-status needs to be pinned to 1.62.* because higher
|
|
# versions demand protobuf>=5.26.1, which conflicts with various
|
|
# other big dependencies of firebase-admin. pip fails to
|
|
# find this resolution by itself.
|
|
grpcio-status==1.62.*
|
|
firebase-admin
|
|
|
|
# Needed for the email mirror
|
|
html2text
|
|
# Forked to avoid pulling in scipy: https://github.com/mailgun/talon/pull/200
|
|
# and chardet, cchardet: https://github.com/mailgun/talon/pull/239
|
|
https://github.com/zulip/talon/archive/e3879d82331aa8b5a87e9d41b3ba3693caa24cd2.zip#egg=talon-core==1.6.0+git&subdirectory=talon-core
|
|
|
|
# Needed for inlining the CSS in emails
|
|
css-inline
|
|
|
|
# Needed for JWT-based auth
|
|
PyJWT
|
|
|
|
# Needed to access RabbitMQ
|
|
pika
|
|
|
|
# Needed to access our database
|
|
psycopg2
|
|
|
|
# Needed for memcached usage
|
|
python-binary-memcached
|
|
|
|
# Needed for compression support in memcached via python-binary-memcached
|
|
django-bmemcached
|
|
|
|
# Needed for zerver/tests/test_timestamp.py
|
|
python-dateutil
|
|
|
|
# Needed for Redis
|
|
redis
|
|
|
|
# Tornado used for server->client push system
|
|
tornado
|
|
|
|
# Fast JSON parser
|
|
orjson
|
|
|
|
# Needed for iOS push notifications
|
|
aioapns
|
|
|
|
python-twitter
|
|
|
|
# To parse po files
|
|
polib
|
|
|
|
# Needed for cloning virtual environments
|
|
virtualenv-clone
|
|
|
|
# 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 official
|
|
# PyPI release tarballs, such as logos, assets and documentation files
|
|
# that we render on our /integrations/ page. Therefore, we need to pin
|
|
# the version from Git rather than a PyPI release. Keeping everything in
|
|
# one repository simplifies the process of implementing and documenting
|
|
# new bots for new contributors.
|
|
https://github.com/zulip/python-zulip-api/archive/0.9.0.zip#egg=zulip==0.9.0+git&subdirectory=zulip
|
|
https://github.com/zulip/python-zulip-api/archive/0.9.0.zip#egg=zulip_bots==0.9.0+git&subdirectory=zulip_bots
|
|
|
|
# Used for Hesiod lookups, etc.
|
|
py3dns
|
|
|
|
# Install Python Social Auth
|
|
social-auth-app-django
|
|
social-auth-core[azuread,openidconnect,saml]
|
|
python3-saml
|
|
--no-binary=xmlsec
|
|
|
|
# For encrypting a login token to the desktop app
|
|
cryptography
|
|
|
|
# Needed for messages' rendered content parsing in push notifications.
|
|
lxml
|
|
--no-binary=lxml
|
|
|
|
# Needed for 2-factor authentication
|
|
django-two-factor-auth[call,phonenumberslite,sms]
|
|
|
|
# Needed for processing payments (in corporate)
|
|
stripe
|
|
|
|
# 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
|
|
jsonref
|
|
|
|
# Needed for string matching in AlertWordProcessor
|
|
pyahocorasick
|
|
|
|
# Needed for function decorators that don't break introspection.
|
|
# Used for rate limiting authentication.
|
|
decorator
|
|
|
|
# For server-side enforcement of password strength
|
|
zxcvbn
|
|
|
|
# Needed for sending HTTP requests
|
|
requests[security]
|
|
requests-oauthlib
|
|
|
|
# For OpenAPI schema validation.
|
|
openapi-core
|
|
|
|
# For reporting errors to sentry.io
|
|
sentry-sdk
|
|
|
|
# For detecting URLs to link
|
|
tlds
|
|
|
|
# Unicode Collation Algorithm for sorting multilingual strings
|
|
pyuca
|
|
|
|
# Handle connection retries with exponential backoff
|
|
backoff
|
|
|
|
# Needed for reading bson files in rocketchat import tool
|
|
pymongo
|
|
|
|
# Non-backtracking regular expressions
|
|
google-re2
|
|
|
|
# For querying recursive group membership
|
|
django-cte
|
|
|
|
# SCIM integration
|
|
django-scim2
|
|
|
|
# Circuit-breaking for outgoing services
|
|
circuitbreaker
|
|
|
|
# Runtime monkeypatching of django-stubs generics
|
|
django_stubs_ext
|
|
|
|
# Structured data representation with parsing.
|
|
pydantic
|
|
annotated_types
|