zulip/requirements/common.in

203 lines
4.8 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.
# Django itself
Django[argon2]==4.2.*
# needed for NotRequired, ParamSpec
typing-extensions
# For type-safe returns.curry.partial
returns
# Needed for rendering backend templates
Jinja2
# Needed for Markdown processing
Markdown
importlib-metadata ; python_version < "3.10" # for Markdown
Pygments
jsx-lexer
uri-template
regex
# Needed for manage.py
ipython
# Needed for image processing
Pillow
# 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
python-gcm
# 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 time zone work
https://github.com/andersk/zoneinfo/archive/f9687abaea8453be1c8d0e21544bd557d65af933.zip#egg=backports.zoneinfo==0.2.1+git ; python_version < "3.9" # https://github.com/pganssle/zoneinfo/pull/126
# Needed for Redis
redis
# Tornado used for server->client push system
tornado
# Fast JSON parser
orjson<3.9.11 # https://github.com/ijl/orjson/issues/452
# Needed for iOS push notifications
https://github.com/zulip/aioapns/archive/2d69284481d328bd3e4168c631d75a38268eddb9.zip#egg=aioapns==3.1+git # https://github.com/Fatal1ty/aioapns/pull/52
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
# For encrypting a login token to the desktop app
cryptography
# Needed for messages' rendered content parsing in push notifications.
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
jsonschema-specifications<2023.11.1 # https://github.com/python-openapi/openapi-core/pull/686
importlib-resources ; python_version < "3.9"
# 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
# CSS manipulation
soupsieve
# Circuit-breaking for outgoing services
circuitbreaker
# Runtime monkeypatching of django-stubs generics
django-stubs-ext
# Structured data representation with parsing.
pydantic
annotated_types