lark~=1.1
pydantic[email]~=2.2
pydantic-settings~=2.0
requests~=2.28

[aiida]
aiida-core~=2.1

[all]
optimade[aiida,ase,client,dev,elastic,http-client,jarvis,pymatgen]

[ase]
ase~=3.22

[cif]
numpy<3.0,>=1.22

[client]
optimade[cif]

[dev]
mypy~=1.0
pre-commit<5,>=3
invoke~=2.0
types-requests
types-pyyaml
ruff~=0.1
optimade[client,docs,http-client,testing]

[docs]
mike~=2.0
mkdocs~=1.6
mkdocs-autorefs~=1.2
mkdocs-awesome-pages-plugin~=2.8
mkdocs-material~=9.0
mkdocstrings[python]~=0.26
griffe~=1.13

[elastic]
elasticsearch-dsl<8.0,~=7.4
elasticsearch~=7.17

[http-client]
httpx~=0.23
rich<15,>=13
click~=8.1

[http_client]
optimade[http-client]

[jarvis]

[jarvis:python_version < "3.13"]
jarvis-tools!=2024.4.20,!=2024.4.30,>=2023.1.8

[mongo]
pymongo~=4.0
mongomock~=4.1

[pymatgen]
pandas~=2.2

[pymatgen:python_version < "3.13"]
pymatgen>=2022

[server]
uvicorn[standard]~=0.19
fastapi>=0.103.1
starlette>=0.38.3,~=0.38
pyyaml~=6.0
optimade[mongo]

[testing]
build~=1.0
jsondiff~=2.0
pytest~=8.3
pytest-asyncio<2.0,>=0.25
pytest-cov<8,>=6
optimade[server]
