diff --git a/optimade/server/routers/landing.py b/optimade/server/routers/landing.py index 02664205d..3f4192329 100644 --- a/optimade/server/routers/landing.py +++ b/optimade/server/routers/landing.py @@ -93,3 +93,10 @@ async def landing(request: Request): router = Router(routes=[Route("/", endpoint=landing)]) + +## This "fix" is taken directly from FastAPI's APIRouter implementation. +# Handle on_startup/on_shutdown locally since Starlette removed support +# Ref: https://github.com/Kludex/starlette/pull/3117 +# TODO: deprecate this once the lifespan (or alternative) interface is improved +router.on_startup = [] +router.on_shutdown = [] diff --git a/pyproject.toml b/pyproject.toml index 8eefd3001..1742d214a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,7 +68,7 @@ mongo = ["pymongo~=4.0", "mongomock~=4.1"] server = [ "uvicorn[standard]~=0.19", "fastapi>=0.103.1", - "starlette ~= 0.38, >= 0.38.3", + "starlette >= 0.38, < 2.0", "optimade[mongo]", ] @@ -77,7 +77,7 @@ aiida = ["aiida-core~=2.1"] http-client = [ "httpx~=0.23", - "rich>=13,<15", + "rich>=13,<16", "click~=8.1", ] @@ -95,7 +95,7 @@ docs = [ "mkdocs-awesome-pages-plugin~=2.8", "mkdocs-material~=9.0", "mkdocstrings[python]>=0.26,<2.0", - "griffe~=1.13", + "griffe>=1.13,<3.0", ] testing = [ diff --git a/requirements-client.txt b/requirements-client.txt index 20e7aee15..64c8e7603 100644 --- a/requirements-client.txt +++ b/requirements-client.txt @@ -1,5 +1,5 @@ -aiida-core==2.7.2 -ase==3.26.0 -jarvis-tools==2025.5.30; python_version < '3.13' +aiida-core==2.8.0 +ase==3.28.0 +jarvis-tools==2026.4.2; python_version < '3.13' numpy>=1.20 pymatgen==2025.10.7; python_version < '3.13' diff --git a/requirements-docs.txt b/requirements-docs.txt index 996de3660..9cca4a484 100644 --- a/requirements-docs.txt +++ b/requirements-docs.txt @@ -1,7 +1,7 @@ -griffe==1.15.0 -mike==2.1.3 +griffe==2.0.2 +mike==2.2.0 mkdocs==1.6.1 -mkdocs-autorefs==1.4.3 +mkdocs-autorefs==1.4.4 mkdocs-awesome-pages-plugin==2.10.1 -mkdocs-material==9.7.1 -mkdocstrings[python]==1.0.0 +mkdocs-material==9.7.6 +mkdocstrings[python]==1.0.4 diff --git a/requirements-http-client.txt b/requirements-http-client.txt index 560e3e9d7..45e14de94 100644 --- a/requirements-http-client.txt +++ b/requirements-http-client.txt @@ -1,3 +1,3 @@ click==8.1.8 httpx==0.28.1 -rich==14.2.0 +rich==15.0.0 diff --git a/requirements-server.txt b/requirements-server.txt index e336d44e7..100b88200 100644 --- a/requirements-server.txt +++ b/requirements-server.txt @@ -1,6 +1,6 @@ -elasticsearch==7.17.12 +elasticsearch==7.17.13 elasticsearch-dsl==7.4.1 -fastapi==0.127.0 +fastapi==0.136.0 mongomock==4.3.0 -pymongo==4.15.5 -starlette==0.50.0 +pymongo==4.17.0 +starlette==1.0.0 diff --git a/requirements.txt b/requirements.txt index de0ee9e05..b65e54610 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ lark==1.3.1 -pydantic[email]==2.12.5 -pydantic_settings==2.12.0 +pydantic[email]==2.13.3 +pydantic_settings==2.14.0 pyyaml==6.0.3 -requests==2.32.5 -uvicorn==0.40.0 +requests==2.33.1 +uvicorn==0.45.0