blinker>=1.4
click>=8.0.1
flask>=2.0.1
flask_babelex>=0.9.4
flask-wtf>=0.15.1
py-meta-utils>=0.7.8
pyterminalsize>=0.1.0
networkx>=2.5
werkzeug>=2.0.1
wtforms>=2.3.3
email-validator>=1.1.2

[admin]
flask-admin>=1.5.7

[api]
apispec<5,>=4.5.0
apispec-webframeworks>=0.5.2
flask-marshmallow>=0.14.0
marshmallow>=3.12.1
marshmallow-sqlalchemy>=0.26

[asyncio]
quart>=0.13.1

[celery]
celery>=4.4.7
dill>=0.3.3

[dev]
coverage>=4.5.1
IPython>=7.24.1
pytest>=4.6.5
pytest-flask>=1.0.0
tox>=3.5.2

[docs]
IPython>=7.24.1
PyQt5>=5.15.1
qtconsole>=5.1.0
sphinx<3,>=2.4.4
sphinx-click>=1.4.0
sphinx-material>=0.0.32
m2r>=0.2.1

[graphene]
graphql-core<3,>=2.3.1
graphql-relay<3,>=2.0.1
graphql-server-core<2,>=1.2.0
flask-graphql>=2.0
graphene<3,>=2.1.8
graphene-sqlalchemy<3,>=2.2.2

[mail]
beautifulsoup4>=4.9.3
lxml>=4.6.1

[oauth]
Flask-OAuthlib>=0.9.5

[security]
bcrypt>=3.2.0
flask-login>=0.5.0
flask-principal>=0.4.0
itsdangerous>=2.0.1
passlib>=1.7.4

[session]
dill>=0.3.3
flask-session>=0.3.2

[sqlalchemy]
factory_boy>=2.11.1
flask-migrate>=2.5.3
flask-sqlalchemy-unchained>=0.7.5
sqlalchemy<2,>=1.3.24
sqlalchemy-unchained>=0.11.1
wtforms_sqlalchemy>=0.2
