
[all]
aiosmtpd
async_generator
bandit>=1.7.0
coverage>=7.9.0
flake8-broken-line>=0.3.0
flake8-bugbear>=21.0.0
flake8-builtins>=1.5.0
flake8-comprehensions>=3.5.0
flake8-debugger>=4.0.0
flake8-implicit-str-concat>=0.4
flake8-mutable>=1.2.0
flake8-type-checking
flake8>=3.0.0
h5py
matplotlib
mypy>=0.910
pillow
pympler
pytest-asyncio!=0.23.*,>=0.21.2
pytest-cov>=2.8.0
pytest-mock>=3.7
pytest-xdist>=2
pytest>=6
requests
sqlparse
testfixtures>=6.11.0
towncrier>=24.7.0
types-Jinja2>=0.1.3
types-protobuf!=5.29.1.20250402,>=0.1.10

[all:python_version < "3.14"]
flake8-simplify>=0.14.0

[graph]
pillow

[main_loop-log_data_store]
matplotlib
pympler

[main_loop-log_db]
sqlparse

[main_loop-log_main_loop]
matplotlib

[main_loop-log_memory]
matplotlib
pympler

[report-timings]
matplotlib
pandas==1.*

[tests]
aiosmtpd
async_generator
bandit>=1.7.0
coverage>=7.9.0
flake8-broken-line>=0.3.0
flake8-bugbear>=21.0.0
flake8-builtins>=1.5.0
flake8-comprehensions>=3.5.0
flake8-debugger>=4.0.0
flake8-implicit-str-concat>=0.4
flake8-mutable>=1.2.0
flake8-type-checking
flake8>=3.0.0
mypy>=0.910
pytest-asyncio!=0.23.*,>=0.21.2
pytest-cov>=2.8.0
pytest-mock>=3.7
pytest-xdist>=2
pytest>=6
testfixtures>=6.11.0
towncrier>=24.7.0
types-Jinja2>=0.1.3
types-protobuf!=5.29.1.20250402,>=0.1.10

[tests:python_version < "3.14"]
flake8-simplify>=0.14.0

[tutorials]
h5py
requests
