typing-extensions<5,>=4.12.2
numpy<3,>=2.3.1
pandas<3,>=2.3.1
pyarrow<23.0.0,>=20.0.0
matplotlib<3.11.0,>=3.9.2
ipython==9.6.0
pvlib<0.14.0,>=0.13.0
python-dotenv<1.3.0,>=0.21.0
toml<0.11.0,>=0.10.2
marshmallow-dataclass<9,>=8.7.1
plotly<6.4.0,>=6.0.0
kaleido<1.2.0,>=0.2.1
frequenz-client-reporting<0.20.0,>=0.19.0
frequenz-client-weather<0.3.0,>=0.2.3
types-pyyaml>=6.0.12.20250915
marshmallow<5,>=4.1.0

[dev]
frequenz-lib-notebooks[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.3
pydoclint==0.7.6
pydocstyle==6.3.0

[dev-formatting]
black==25.9.0
isort==6.0.1

[dev-mkdocs]
Markdown==3.9
black==25.9.0
mike==2.1.3
mkdocs-gen-files==0.5.0
mkdocs-literate-nav==0.6.2
mkdocs-macros-plugin==1.4.1
mkdocs-material==9.6.23
mkdocstrings[python]==0.30.1
mkdocstrings-python==1.18.2
frequenz-repo-config[lib]==0.13.6

[dev-mypy]
mypy==1.18.2
pandas-stubs==2.3.2.250827
types-toml==0.10.8.20240310
types-Markdown==3.9.0.20250906
frequenz-lib-notebooks[dev-mkdocs,dev-noxfile,dev-pytest]

[dev-noxfile]
nox==2025.10.16
frequenz-repo-config[lib]==0.13.6

[dev-pylint]
frequenz-lib-notebooks[dev-mkdocs,dev-noxfile,dev-pytest]

[dev-pytest]
pytest==8.4.2
pylint==3.3.8
frequenz-repo-config[extra-lint-examples]==0.13.6
pytest-mock==3.15.1
pytest-asyncio==1.2.0
async-solipsism==0.8
