jsonschema>=2.5.1
frozendict>=1
unpaddedbase64>=1.1.0
canonicaljson>=1.4.0
signedjson>=1.1.0
pynacl>=1.2.1
idna>=2.5
service_identity>=18.1.0
Twisted>=18.9.0
treq>=15.1
pyopenssl>=16.0.0
pyyaml>=3.11
pyasn1>=0.1.9
pyasn1-modules>=0.0.7
bcrypt>=3.1.0
pillow>=4.3.0
sortedcontainers>=1.4.4
pymacaroons>=0.13.0
msgpack>=0.5.2
phonenumbers>=8.2.0
prometheus_client>=0.4.0
attrs>=19.1.0
netaddr>=0.7.18
Jinja2>=2.9
bleach>=1.4.3
typing-extensions>=3.7.4
cryptography>=3.4.7

[acme]
txacme>=0.9.2

[all]
matrix-synapse-ldap3>=0.1
txredisapi>=1.4.7
opentracing>=2.2.0
jaeger-client>=4.0.0
pyjwt>=1.6.4
lxml>=3.5.0
authlib>=0.14.0
sentry-sdk>=0.7.2
pysaml2>=4.5.0
txacme>=0.9.2
hiredis

[all:platform_python_implementation != "PyPy"]
psycopg2>=2.8

[all:platform_python_implementation == "PyPy"]
psycopg2cffi>=2.8
psycopg2cffi-compat==1.1

[dev]
isort==5.7.0
black==20.8b1
flake8-comprehensions
flake8-bugbear==21.3.2
flake8
click==7.1.2
redbaron==0.9.2
GitPython==3.1.14

[jwt]
pyjwt>=1.6.4

[lint]
isort==5.7.0
black==20.8b1
flake8-comprehensions
flake8-bugbear==21.3.2
flake8

[matrix-synapse-ldap3]
matrix-synapse-ldap3>=0.1

[mypy]
mypy==0.812
mypy-zope==0.2.13

[oidc]
authlib>=0.14.0

[opentracing]
jaeger-client>=4.0.0
opentracing>=2.2.0

[postgres]

[postgres:platform_python_implementation != "PyPy"]
psycopg2>=2.8

[postgres:platform_python_implementation == "PyPy"]
psycopg2cffi>=2.8
psycopg2cffi-compat==1.1

[redis]
txredisapi>=1.4.7
hiredis

[saml2]
pysaml2>=4.5.0

[sentry]
sentry-sdk>=0.7.2

[systemd]
systemd-python>=231

[test]
parameterized>=0.7.0

[url_preview]
lxml>=3.5.0
