css-inline>=0.17.0
frequenz-lib-notebooks<0.16.0,>=0.14.7
matplotlib>=3.10.6
numpy>=2.3.2
pandas>=2.3.2
plotly>=6.3.0
pyarrow>=21.0.0
python-box>=7.3.2
python-dateutil>=2.9.0.post0
python-dotenv>=1.1.1
pyyaml>=6.0.3
streamlit>=1.49.1
streamlit-aggrid>=1.1.8.post1
watchdog>=6.0.0

[dev]
frequenz-cs-reporting[dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]

[dev-flake8]
flake8==7.3.0
flake8-docstrings==1.7.0
flake8-pyproject==1.2.4
pydoclint==0.8.3
pydocstyle==6.3.0

[dev-formatting]
black==26.3.1
isort==8.0.1

[dev-mkdocs]
Markdown==3.10.2
black==26.3.1
mike==2.2.0
mkdocs-gen-files==0.6.1
mkdocs-literate-nav==0.6.3
mkdocs-macros-plugin==1.5.0
mkdocs-material==9.7.6
mkdocstrings[python]==1.0.4
mkdocstrings-python==2.0.3
frequenz-repo-config[lib]==0.14.0

[dev-mypy]
mypy==1.20.1
types-Markdown==3.10.2.20260211
types-pytz
pandas-stubs
frequenz-cs-reporting[dev-mkdocs,dev-noxfile,dev-pytest]

[dev-noxfile]
nox==2026.4.10
frequenz-repo-config[lib]==0.14.0

[dev-pylint]
frequenz-cs-reporting[dev-mkdocs,dev-noxfile,dev-pytest]

[dev-pytest]
pytest==9.0.3
pylint==4.0.5
frequenz-repo-config[extra-lint-examples]==0.14.0
pytest-mock==3.15.1
pytest-asyncio==1.3.0
async-solipsism==0.9
