diff --git a/Dockerfile b/Dockerfile index e4822d25f47bed10510ab0907c994e5f4de4a64d..afc0e87b18817744ba1504a5ba4d542d559043e4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,7 @@ # https://docs.docker.com/engine/reference/builder/ FROM node:20 AS base_node -FROM python:3.11-slim AS base_python +FROM python:3.12-slim AS base_python # Keeps Python from buffering stdout and stderr to avoid situations where # the application crashes without emitting any logs due to buffering. ENV PYTHONUNBUFFERED 1 @@ -213,7 +213,7 @@ COPY --chown=nomad:1000 scripts/run-worker.sh . COPY --chown=nomad:1000 nomad/jupyterhub_config.py ./nomad/jupyterhub_config.py COPY --chown=nomad:1000 --from=dev_package /app/examples/data/uploads /app/examples/data/uploads -COPY --chown=nomad:1000 --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages +COPY --chown=nomad:1000 --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages COPY --chown=nomad:1000 --from=builder /usr/local/share/jupyterhub /usr/local/share/jupyterhub COPY --chown=nomad:1000 --from=builder /usr/local/share/jupyter /usr/local/share/jupyter COPY --chown=nomad:1000 --from=builder /usr/local/bin/nomad /usr/local/bin/nomad @@ -221,7 +221,7 @@ COPY --chown=nomad:1000 --from=builder /usr/local/bin/jupyter* /usr/local/bin/ RUN mkdir -p /app/.volumes/fs \ && chown -R nomad:1000 /app \ - && chown -R nomad:1000 /usr/local/lib/python3.11/site-packages/nomad + && chown -R nomad:1000 /usr/local/lib/python3.12/site-packages/nomad USER nomad diff --git a/docs/howto/develop/setup.md b/docs/howto/develop/setup.md index cfe002d438e905230614ad6dc8ec35cee7539145..627a13555ca0e59f2de009a8a3b3eaa4e30f49b5 100644 --- a/docs/howto/develop/setup.md +++ b/docs/howto/develop/setup.md @@ -50,21 +50,21 @@ This branch can be pushed to the repo, and then later may be merged to the relev ### Set up a Python environment -The NOMAD code currently requires Python 3.11. You should work in a Python virtual environment. +The NOMAD code currently requires Python 3.12. You should work in a Python virtual environment. For developers using VSCode, in case you encounter any issues with breakpoints not [triggering](https://github.com/microsoft/debugpy/issues/1284), consider upgrading to py3.12. #### Pyenv If your host machine has an older version installed, -you can use [pyenv](https://github.com/pyenv/pyenv){:target="_blank"} to use Python 3.11 in parallel with your +you can use [pyenv](https://github.com/pyenv/pyenv){:target="_blank"} to use Python 3.12 in parallel with your system's Python. #### Virtualenv Create a virtual environment. It allows you to keep NOMAD and its dependencies separate from your system's Python installation. -Make sure that the virtual environment is based on Python 3.11. +Make sure that the virtual environment is based on Python 3.12. Use either the built-in `venv` module (see example) or [virtualenv](https://pypi.org/project/virtualenv/){:target="_blank"}. ```shell @@ -78,7 +78,7 @@ If you are a conda user, there is an equivalent, but you have to install `pip` a right Python version while creating the environment. ```shell -conda create --name nomad_env pip python=3.11 +conda create --name nomad_env pip python=3.12 conda activate nomad_env ``` diff --git a/docs/tutorial/develop_plugin.md b/docs/tutorial/develop_plugin.md index d5f285406e6d7f36634480d2045ff64d72199dfc..ad855f8a7f800d9b2a0ca3c3b57b5bafb9fb02f7 100644 --- a/docs/tutorial/develop_plugin.md +++ b/docs/tutorial/develop_plugin.md @@ -169,10 +169,10 @@ and the "Allow GitHub Actions to create and approve pull requests" options and c ## Setting up the python environment ### Creating a virtual environment -Before we can start developing we recommend to create a virtual environment using Python 3.11 +Before we can start developing we recommend to create a virtual environment using Python 3.12 ```sh -python3.11 -m venv .pyenv +python3.12 -m venv .pyenv source .pyenv/bin/activate ``` diff --git a/pyproject.toml b/pyproject.toml index b51c8aacf622457bdca8aa2baddcf2e00b806c11..a59c6cf365826f1a74963e2ff58bd1af8d3c1263 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,7 +75,7 @@ infrastructure = [ 'celery>=5.0', 'dockerspawner==13.0.0', 'elasticsearch>=7.0,<8', - 'fastapi<0.100', # later versions pending pydantic v2 upgrade + 'fastapi<0.100', # later versions pending pydantic v2 upgrade 'filelock==3.3.1', 'gitpython>=3.0', 'gunicorn>=21.2.0,<22.0.0', @@ -117,7 +117,7 @@ dev = [ 'mkdocs-material>=9.0', 'mkdocs-redirects>=1.0', 'mkdocs>=1.0', - 'mypy==1.0.1', # bug: incompatible with derived models of pydantic v1 + 'mypy==1.0.1', # bug: incompatible with derived models of pydantic v1 'names==0.3.0', 'uv>=0.2.35', 'pytest-asyncio>=0.23', @@ -130,6 +130,7 @@ dev = [ 'rope==0.21.0', 'ruamel.yaml>=0.1', 'ruff>=0.6', + 'setuptools>=70', # py3.12 doesn't bundle in setuptools, but this is required by mongomock lib ] @@ -146,15 +147,15 @@ indent-width = 4 [tool.ruff.lint] select = [ - "E", # pycodestyle - "W", # pycodestyle + "E", # pycodestyle + "W", # pycodestyle "PL", # pylint ] ignore = [ - "E501", # Line too long ({width} > {limit} characters) - "E701", # Multiple statements on one line (colon) - "E731", # Do not assign a lambda expression, use a def - "E402", # Module level import not at top of file + "E501", # Line too long ({width} > {limit} characters) + "E701", # Multiple statements on one line (colon) + "E731", # Do not assign a lambda expression, use a def + "E402", # Module level import not at top of file "PLR0911", # Too many return statements "PLR0912", # Too many branches "PLR0913", # Too many arguments in function definition @@ -181,9 +182,7 @@ skip-magic-trailing-comma = false line-ending = "auto" [tool.setuptools.packages.find] -where = [ - ".", -] +where = ["."] exclude = ["tests*"] namespaces = false @@ -198,4 +197,10 @@ disable_error_code = "import, annotation-unchecked" [tool.setuptools_scm] [tool.uv] -index-url = "https://gitlab.mpcdf.mpg.de/api/v4/projects/2187/packages/pypi/simple" +extra-index-url = [ + "https://gitlab.mpcdf.mpg.de/api/v4/projects/2187/packages/pypi/simple", +] +constraint-dependencies = [ # can be removed once pynxtools removes kikuchipy restriction + "hyperspy>=1.7.6", + "pillow<10.1", +] diff --git a/requirements-dev.txt b/requirements-dev.txt index 699212f89d12a391b147a8f7c64fed0a5630df18..4f00ebbde3c60cd8005407c0bc4820e25eeb3567 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -5,7 +5,7 @@ alabaster==1.0.0 # via sphinx, -r requirements.txt alembic==1.13.3 # via jupyterhub, -r requirements.txt amqp==5.2.0 # via kombu, -r requirements.txt aniso8601==9.0.1 # via -r requirements.txt, nomad-lab (pyproject.toml) -anyio==4.6.2 # via httpx, starlette, watchfiles, -r requirements.txt +anyio==4.6.2.post1 # via httpx, starlette, watchfiles, -r requirements.txt arrow==1.3.0 # via isoduration, -r requirements.txt ase==3.22.1 # via matid, -r requirements.txt, nomad-lab (pyproject.toml) asgiref==3.8.1 # via -r requirements.txt, nomad-lab (pyproject.toml) @@ -19,7 +19,7 @@ bagit==1.8.1 # via -r requirements.txt, nomad-lab (pyproject.toml) basicauth==0.4.1 # via -r requirements.txt, nomad-lab (pyproject.toml) beautifulsoup4==4.12.3 # via -r requirements.txt, nomad-lab (pyproject.toml) billiard==4.2.1 # via celery, -r requirements.txt -bitarray==2.9.3 # via -r requirements.txt, nomad-lab (pyproject.toml) +bitarray==3.0.0 # via -r requirements.txt, nomad-lab (pyproject.toml) cachetools==5.5.0 # via -r requirements.txt, nomad-lab (pyproject.toml) celery==5.4.0 # via -r requirements.txt, nomad-lab (pyproject.toml) certifi==2024.8.30 # via elasticsearch, httpcore, httpx, netcdf4, requests, -r requirements.txt @@ -68,7 +68,7 @@ h5py==3.11.0 # via h5grove, -r requirements.txt, nomad-lab (pyproje hjson==3.1.0 # via mkdocs-macros-plugin, super-collections, -r requirements.txt, nomad-lab (pyproject.toml) html5lib==1.1 # via -r requirements.txt, nomad-lab (pyproject.toml) httpcore==1.0.6 # via httpx, -r requirements.txt -httptools==0.6.1 # via uvicorn, -r requirements.txt +httptools==0.6.4 # via uvicorn, -r requirements.txt httpx==0.27.2 # via python-keycloak, -r requirements.txt, nomad-lab (pyproject.toml) idna==3.10 # via anyio, email-validator, httpx, jsonschema, requests, -r requirements.txt imagesize==1.4.1 # via sphinx, -r requirements.txt @@ -107,8 +107,8 @@ mkdocs-click==0.8.1 # via nomad-lab (pyproject.toml) mkdocs-get-deps==0.2.0 # via mkdocs mkdocs-git-revision-date-localized-plugin==1.2.9 # via nomad-lab (pyproject.toml) mkdocs-glightbox==0.4.0 # via nomad-lab (pyproject.toml) -mkdocs-macros-plugin==1.3.5 # via nomad-lab (pyproject.toml) -mkdocs-material==9.5.40 # via nomad-lab (pyproject.toml) +mkdocs-macros-plugin==1.3.6 # via nomad-lab (pyproject.toml) +mkdocs-material==9.5.41 # via nomad-lab (pyproject.toml) mkdocs-material-extensions==1.3.1 # via mkdocs-material, nomad-lab (pyproject.toml) mkdocs-redirects==1.2.1 # via nomad-lab (pyproject.toml) mongoengine==0.29.1 # via -r requirements.txt, nomad-lab (pyproject.toml) @@ -137,14 +137,14 @@ pandas==2.2.3 # via nomad-openbis, panedr, pymatgen, xarray, -r requ panedr==0.8.0 # via -r requirements.txt, nomad-lab (pyproject.toml) parmed==4.2.2 # via -r requirements.txt, nomad-lab (pyproject.toml) pathspec==0.12.1 # via mkdocs, mkdocs-macros-plugin -pillow==10.4.0 # via matplotlib, rdkit, -r requirements.txt +pillow==10.0.1 # via matplotlib, rdkit, -c (workspace), -r requirements.txt pint==0.17 # via -r requirements.txt, nomad-lab (pyproject.toml) platformdirs==4.3.6 # via mkdocs-get-deps plotly==5.24.1 # via pymatgen, -r requirements.txt pluggy==1.5.0 # via pytest prometheus-client==0.21.0 # via jupyterhub, -r requirements.txt prompt-toolkit==3.0.48 # via click-repl, -r requirements.txt -psutil==6.0.0 ; sys_platform == 'win32' # via jupyterhub, -r requirements.txt +psutil==6.1.0 ; sys_platform == 'win32' # via jupyterhub, -r requirements.txt pyasn1==0.6.1 # via pyasn1-modules, rfc3161ng, -r requirements.txt pyasn1-modules==0.4.1 # via rfc3161ng, -r requirements.txt pybtex==0.24.0 # via pymatgen, -r requirements.txt @@ -161,7 +161,7 @@ pyrsistent==0.20.0 # via jsonschema, -r requirements.txt pytest==7.4.4 # via pytest-asyncio, pytest-cov, pytest-split, pytest-timeout, pytest-xdist, nomad-lab (pyproject.toml) pytest-asyncio==0.23.8 # via nomad-lab (pyproject.toml) pytest-cov==5.0.0 # via nomad-lab (pyproject.toml) -pytest-split==0.9.0 # via nomad-lab (pyproject.toml) +pytest-split==0.10.0 # via nomad-lab (pyproject.toml) pytest-timeout==2.3.1 # via nomad-lab (pyproject.toml) pytest-xdist==3.6.1 # via nomad-lab (pyproject.toml) python-dateutil==2.9.0.post0 # via arrow, celery, elasticsearch-dsl, ghp-import, jupyterhub, matplotlib, mkdocs-macros-plugin, nomad-openbis, pandas, rfc3161ng, -r requirements.txt @@ -189,11 +189,12 @@ rfc3987==1.3.8 # via jsonschema, -r requirements.txt rope==0.21.0 # via nomad-lab (pyproject.toml) ruamel-yaml==0.18.6 # via jupyter-telemetry, oauthenticator, pymatgen, -r requirements.txt, nomad-lab (pyproject.toml) ruamel-yaml-clib==0.2.8 ; python_full_version < '3.13' and platform_python_implementation == 'CPython' # via ruamel-yaml, -r requirements.txt -ruff==0.6.9 # via nomad-lab (pyproject.toml) +ruff==0.7.0 # via nomad-lab (pyproject.toml) runstats==2.0.0 # via -r requirements.txt, nomad-lab (pyproject.toml) scikit-learn==1.5.2 # via matid, -r requirements.txt, nomad-lab (pyproject.toml) scipy==1.14.1 # via ase, pymatgen, scikit-learn, -r requirements.txt, nomad-lab (pyproject.toml) sentinels==1.0.0 # via mongomock, -r requirements.txt +setuptools==75.2.0 # via nomad-lab (pyproject.toml) six==1.16.0 # via asttokens, basicauth, elasticsearch-dsl, html5lib, pybtex, python-dateutil, rdflib, rfc3339-validator, validators, -r requirements.txt smmap==5.0.1 # via gitdb, -r requirements.txt sniffio==1.3.1 # via anyio, httpx, -r requirements.txt @@ -207,7 +208,7 @@ sphinxcontrib-htmlhelp==2.1.0 # via sphinx, -r requirements.txt sphinxcontrib-jsmath==1.0.1 # via sphinx, -r requirements.txt sphinxcontrib-qthelp==2.0.0 # via sphinx, -r requirements.txt sphinxcontrib-serializinghtml==2.0.0 # via sphinx, -r requirements.txt -sqlalchemy==2.0.35 # via alembic, jupyterhub, -r requirements.txt +sqlalchemy==2.0.36 # via alembic, jupyterhub, -r requirements.txt starlette==0.27.0 # via fastapi, -r requirements.txt structlog==24.4.0 # via -r requirements.txt, nomad-lab (pyproject.toml) super-collections==0.5.3 # via mkdocs-macros-plugin @@ -231,9 +232,9 @@ uncertainties==3.2.2 # via pymatgen, -r requirements.txt unidecode==1.3.2 # via -r requirements.txt, nomad-lab (pyproject.toml) uri-template==1.3.0 # via jsonschema, -r requirements.txt urllib3==1.26.20 # via docker, elasticsearch, nomad-openbis, requests, -r requirements.txt -uv==0.4.20 # via nomad-lab (pyproject.toml) -uvicorn==0.31.1 # via h5grove, -r requirements.txt, nomad-lab (pyproject.toml) -uvloop==0.20.0 ; platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32' # via uvicorn, -r requirements.txt +uv==0.4.24 # via nomad-lab (pyproject.toml) +uvicorn==0.32.0 # via h5grove, -r requirements.txt, nomad-lab (pyproject.toml) +uvloop==0.21.0 ; platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32' # via uvicorn, -r requirements.txt validators==0.18.2 # via -r requirements.txt, nomad-lab (pyproject.toml) vine==5.1.0 # via amqp, celery, kombu, -r requirements.txt watchdog==5.0.3 # via mkdocs diff --git a/requirements-plugins.txt b/requirements-plugins.txt index d1d13bc8af764b42b5e72ac1cf47786c77539368..c293423f002993ee5a8219558e02b8a4e41c55dc 100644 --- a/requirements-plugins.txt +++ b/requirements-plugins.txt @@ -1,7 +1,7 @@ # This file was autogenerated by uv via the following command: # uv pip compile --universal -p 3.11 --annotation-style=line --output-file=requirements-plugins.txt --unsafe-package nomad-lab -c requirements-dev.txt default_plugins.txt aniso8601==9.0.1 # via nomad-lab, -c requirements-dev.txt -anyio==4.6.2 # via httpx, jupyter-server, -c requirements-dev.txt +anyio==4.6.2.post1 # via httpx, jupyter-server, -c requirements-dev.txt anytree==2.12.1 # via pynxtools appnope==0.1.4 ; platform_system == 'Darwin' # via ipykernel argon2-cffi==23.1.0 # via jupyter-server @@ -17,7 +17,7 @@ async-property==0.2.2 # via python-keycloak, -c requirements-dev.txt attrs==24.2.0 # via jsonschema, -c requirements-dev.txt babel==2.16.0 # via jupyterlab-server, -c requirements-dev.txt beautifulsoup4==4.12.3 # via nbconvert, -c requirements-dev.txt -bitarray==2.9.3 # via nomad-lab, -c requirements-dev.txt +bitarray==3.0.0 # via nomad-lab, -c requirements-dev.txt bleach==6.1.0 # via nbconvert blinker==1.8.2 # via flask blosc2==2.7.1 # via tables @@ -68,7 +68,7 @@ hdf5plugin==5.0.0 # via fabio hjson==3.1.0 # via nomad-lab, -c requirements-dev.txt httpcore==1.0.6 # via httpx, -c requirements-dev.txt httpx==0.27.2 # via jupyterlab, nomad-lab, python-keycloak, -c requirements-dev.txt -hyperspy==1.7.5 # via kikuchipy, pyxem +hyperspy==1.7.6 # via kikuchipy, pyxem, -c (workspace) idna==3.10 # via anyio, httpx, jsonschema, requests, -c requirements-dev.txt ifes-apt-tc-data-modeling==0.2.2 # via pynxtools-apm igor2==0.5.8 # via pynxtools-xps @@ -176,7 +176,7 @@ partd==1.4.2 # via dask perovskite-solar-cell-database @ git+https://github.com/FAIRmat-NFDI/nomad-perovskite-solar-cells-database.git@f394d21abafeb659729af0c94e5f90949fce01c1 # via -r default_plugins.txt pexpect==4.9.0 ; sys_platform != 'emscripten' and sys_platform != 'win32' # via ipython phonopy==2.11.0 # via asr, nomad-parser-plugins-workflow -pillow==10.4.0 # via fabio, imageio, matplotlib, nionswift, rdkit, scikit-image, -c requirements-dev.txt +pillow==10.0.1 # via fabio, hyperspy, imageio, matplotlib, nionswift, rdkit, scikit-image, -c requirements-dev.txt, -c (workspace) pint==0.17 # via fairmat-readers-xrd, hyperspy, nomad-lab, pynxtools-apm, pynxtools-em, pynxtools-xps, pynxtools-xrd, rosettasciio, -c requirements-dev.txt platformdirs==4.3.6 # via jupyter-core, pooch, xraydb, -c requirements-dev.txt plotly==5.24.1 # via asr, pymatgen, -c requirements-dev.txt @@ -185,7 +185,8 @@ pooch==1.8.2 # via kikuchipy, orix prettytable==3.11.0 # via hyperspy prometheus-client==0.21.0 # via jupyter-server, -c requirements-dev.txt prompt-toolkit==3.0.48 # via ipython, jupyter-console, -c requirements-dev.txt -psutil==6.0.0 # via diffsims, ipykernel, ipyparallel, pyxem, -c requirements-dev.txt +psutil==6.0.0 ; sys_platform != 'win32' # via diffsims, ipykernel, ipyparallel, pyxem, -c requirements-dev.txt +psutil==6.1.0 ; sys_platform == 'win32' # via diffsims, ipykernel, ipyparallel, pyxem, -c requirements-dev.txt ptyprocess==0.7.0 ; os_name != 'nt' or (sys_platform != 'emscripten' and sys_platform != 'win32') # via pexpect, terminado pure-eval==0.2.3 # via stack-data py-cpuinfo==9.0.0 # via blosc2, tables @@ -236,14 +237,14 @@ scikit-image==0.22.0 # via hyperspy, kikuchipy, pyxem scikit-learn==1.5.2 # via kikuchipy, matid, nomad-lab, pyxem, -c requirements-dev.txt scipy==1.14.1 # via ase, diffsims, findiff, griddataformats, hyperspy, kikuchipy, lmfit, mdanalysis, niondata, nionswift, nomad-lab, nomad-parser-plugins-atomistic, nomad-schema-plugin-simulation-workflow, orix, pyfai, pymatgen, pyxem, radioactivedecay, scikit-image, scikit-learn, sparse, xraydb, -c requirements-dev.txt send2trash==1.8.3 # via jupyter-server -setuptools==75.1.0 # via radioactivedecay +setuptools==75.2.0 # via radioactivedecay, -c requirements-dev.txt silx==2.1.1 # via pyfai six==1.16.0 # via anytree, asttokens, bleach, elasticsearch-dsl, pybtex, python-dateutil, rfc3339-validator, -c requirements-dev.txt sniffio==1.3.1 # via anyio, httpx, -c requirements-dev.txt soupsieve==2.6 # via beautifulsoup4, -c requirements-dev.txt sparse==0.15.4 # via hyperspy spglib==2.5.0 # via asr, matid, phonopy, pymatgen, -c requirements-dev.txt -sqlalchemy==2.0.35 # via xraydb, -c requirements-dev.txt +sqlalchemy==2.0.36 # via xraydb, -c requirements-dev.txt stack-data==0.6.3 # via ipython sympy==1.13.3 # via findiff, hyperspy, pymatgen, radioactivedecay, -c requirements-dev.txt tables==3.10.1 # via ifes-apt-tc-data-modeling diff --git a/requirements.txt b/requirements.txt index 5d44e05d3df6f6f42e12f7eee6c5b0c7bd1ca54d..149cb4aa6e14aa5ad00c132f9bc3f76d8dfb5bed 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ alabaster==1.0.0 # via sphinx alembic==1.13.3 # via jupyterhub amqp==5.2.0 # via kombu aniso8601==9.0.1 # via nomad-lab (pyproject.toml) -anyio==4.6.2 # via httpx, starlette, watchfiles +anyio==4.6.2.post1 # via httpx, starlette, watchfiles arrow==1.3.0 # via isoduration ase==3.22.1 # via matid, nomad-lab (pyproject.toml) asgiref==3.8.1 # via nomad-lab (pyproject.toml) @@ -16,7 +16,7 @@ bagit==1.8.1 # via nomad-lab (pyproject.toml) basicauth==0.4.1 # via nomad-lab (pyproject.toml) beautifulsoup4==4.12.3 # via nomad-lab (pyproject.toml) billiard==4.2.1 # via celery -bitarray==2.9.3 # via nomad-lab (pyproject.toml) +bitarray==3.0.0 # via nomad-lab (pyproject.toml) cachetools==5.5.0 # via nomad-lab (pyproject.toml) celery==5.4.0 # via nomad-lab (pyproject.toml) certifi==2024.8.30 # via elasticsearch, httpcore, httpx, netcdf4, requests @@ -59,7 +59,7 @@ h5py==3.11.0 # via h5grove, nomad-lab (pyproject.toml) hjson==3.1.0 # via nomad-lab (pyproject.toml) html5lib==1.1 # via nomad-lab (pyproject.toml) httpcore==1.0.6 # via httpx -httptools==0.6.1 # via uvicorn +httptools==0.6.4 # via uvicorn httpx==0.27.2 # via python-keycloak, nomad-lab (pyproject.toml) idna==3.10 # via anyio, email-validator, httpx, jsonschema, requests imagesize==1.4.1 # via sphinx @@ -111,12 +111,12 @@ pamela==1.2.0 ; sys_platform != 'win32' # via jupyterhub pandas==2.2.3 # via nomad-openbis, panedr, pymatgen, xarray, nomad-lab (pyproject.toml) panedr==0.8.0 # via nomad-lab (pyproject.toml) parmed==4.2.2 # via nomad-lab (pyproject.toml) -pillow==10.4.0 # via matplotlib, rdkit +pillow==10.0.1 # via matplotlib, rdkit, -c (workspace) pint==0.17 # via nomad-lab (pyproject.toml) plotly==5.24.1 # via pymatgen prometheus-client==0.21.0 # via jupyterhub prompt-toolkit==3.0.48 # via click-repl -psutil==6.0.0 ; sys_platform == 'win32' # via jupyterhub +psutil==6.1.0 ; sys_platform == 'win32' # via jupyterhub pyasn1==0.6.1 # via pyasn1-modules, rfc3161ng pyasn1-modules==0.4.1 # via rfc3161ng pybtex==0.24.0 # via pymatgen @@ -167,7 +167,7 @@ sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-qthelp==2.0.0 # via sphinx sphinxcontrib-serializinghtml==2.0.0 # via sphinx -sqlalchemy==2.0.35 # via alembic, jupyterhub +sqlalchemy==2.0.36 # via alembic, jupyterhub starlette==0.27.0 # via fastapi structlog==24.4.0 # via nomad-lab (pyproject.toml) sympy==1.13.3 # via pymatgen @@ -188,8 +188,8 @@ uncertainties==3.2.2 # via pymatgen unidecode==1.3.2 # via nomad-lab (pyproject.toml) uri-template==1.3.0 # via jsonschema urllib3==1.26.20 # via docker, elasticsearch, nomad-openbis, requests -uvicorn==0.31.1 # via h5grove, nomad-lab (pyproject.toml) -uvloop==0.20.0 ; platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32' # via uvicorn +uvicorn==0.32.0 # via h5grove, nomad-lab (pyproject.toml) +uvloop==0.21.0 ; platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32' # via uvicorn validators==0.18.2 # via nomad-lab (pyproject.toml) vine==5.1.0 # via amqp, celery, kombu watchfiles==0.24.0 # via uvicorn