diff --git a/pyproject.toml b/pyproject.toml
index 7e6892b89346c34a42e4e9a809fffadeb08da244..23571ec71b6cf7d9681bdb857c094b1e41c4342d 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -125,7 +125,7 @@ dev = [
     'mkdocs',
     'mypy==1.0.1', # bug: incompatible with derived models of pydantic v1
     'names==0.3.0',
-    'pip-tools>=6.13.0',
+    'uv',
     'pycodestyle',
     'pytest-cov==2.7.1',
     'pytest-timeout==1.4.2',
diff --git a/requirements-dev.txt b/requirements-dev.txt
index fbbdb51f68611fdef3592a5be010a1380b8138ce..530b0633fea24cb2b442d543019663780ee6d028 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -1,362 +1,348 @@
-#
-# This file is autogenerated by pip-compile with Python 3.9
-# by the following command:
-#
-#    pip-compile --annotation-style=line --extra=dev --extra=infrastructure --extra=parsing --output-file=requirements-dev.txt --pip-args='--prefer-binary' pyproject.toml requirements.txt
-#
-aiosmtpd==1.4.5           # via nomad-lab (pyproject.toml)
-alabaster==0.7.16         # via -r requirements.txt, sphinx
-alembic==1.13.1           # via -r requirements.txt, jupyterhub
-amqp==5.2.0               # via -r requirements.txt, kombu
+# This file was autogenerated by uv via the following command:
+#    uv pip compile --annotation-style=line --extra=dev --extra=infrastructure --extra=parsing --output-file=requirements-dev.txt requirements.txt pyproject.toml
+aiosmtpd==1.4.6           # via nomad-lab (pyproject.toml)
+alabaster==0.7.16         # via sphinx, -r requirements.txt
+alembic==1.13.1           # 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.3.0              # via -r requirements.txt, httpx, starlette, watchfiles
-arrow==1.3.0              # via -r requirements.txt, isoduration
-asciitree==0.3.3          # via -r requirements.txt, zarr
-ase==3.19.3               # via -r requirements.txt, asr, ifes-apt-tc-data-modeling, matid, nomad-lab (pyproject.toml), pynxtools, quippy-ase
+anyio==4.3.0              # via httpx, starlette, watchfiles, -r requirements.txt
+arrow==1.3.0              # via isoduration, -r requirements.txt
+asciitree==0.3.3          # via zarr, -r requirements.txt
+ase==3.19.3               # via asr, ifes-apt-tc-data-modeling, matid, pynxtools, quippy-ase, -r requirements.txt, nomad-lab (pyproject.toml)
 asgiref==3.8.1            # via -r requirements.txt, nomad-lab (pyproject.toml)
 asr==0.4.1                # via -r requirements.txt, nomad-lab (pyproject.toml)
-asteval==0.9.32           # via -r requirements.txt, lmfit
-astroid==3.2.0            # via nomad-lab (pyproject.toml)
-asttokens==2.4.1          # via -r requirements.txt, devtools, stack-data
-async-generator==1.10     # via -r requirements.txt, jupyterhub
+asteval==0.9.32           # via lmfit, -r requirements.txt
+astroid==3.2.2            # via nomad-lab (pyproject.toml)
+asttokens==2.4.1          # via devtools, stack-data, -r requirements.txt
+async-generator==1.10     # via jupyterhub, -r requirements.txt
 atpublic==4.1.0           # via aiosmtpd
-attrs==23.2.0             # via -r requirements.txt, aiosmtpd, jsonschema, pytest
-babel==2.15.0             # via -r requirements.txt, mkdocs-git-revision-date-localized-plugin, mkdocs-material, sphinx
+attrs==23.2.0             # via aiosmtpd, jsonschema, pytest, -r requirements.txt
+babel==2.15.0             # via mkdocs-git-revision-date-localized-plugin, mkdocs-material, sphinx, -r requirements.txt
 backports-tarfile==1.1.1  # via jaraco-context
 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.0           # via -r requirements.txt, celery
-biopython==1.83           # via -r requirements.txt, mdanalysis
+billiard==4.2.0           # via celery, -r requirements.txt
+biopython==1.83           # via mdanalysis, -r requirements.txt
 bitarray==2.9.2           # via -r requirements.txt, nomad-lab (pyproject.toml)
-blinker==1.8.2            # via -r requirements.txt, flask
-blosc2==2.5.1             # via -r requirements.txt, tables
-build==1.2.1              # via nomad-lab (pyproject.toml), pip-tools
+blinker==1.8.2            # via flask, -r requirements.txt
+blosc2==2.5.1             # via tables, -r requirements.txt
+build==1.2.1              # via nomad-lab (pyproject.toml)
 cachetools==5.3.3         # via -r requirements.txt, nomad-lab (pyproject.toml)
 celery==5.4.0             # via -r requirements.txt, nomad-lab (pyproject.toml)
-certifi==2024.2.2         # via -r requirements.txt, elasticsearch, httpcore, httpx, netcdf4, requests
-certipy==0.1.3            # via -r requirements.txt, jupyterhub
-cffi==1.16.0              # via -r requirements.txt, cryptography
-cftime==1.6.3             # via -r requirements.txt, netcdf4
-charset-normalizer==3.3.2  # via -r requirements.txt, requests
-click==8.1.7              # via -r requirements.txt, asr, celery, click-didyoumean, click-plugins, click-repl, dask, flask, mkdocs, mkdocs-click, nomad-lab (pyproject.toml), pip-tools, pynxtools, uvicorn
-click-didyoumean==0.3.1   # via -r requirements.txt, celery
-click-plugins==1.1.1      # via -r requirements.txt, celery
-click-repl==0.3.0         # via -r requirements.txt, celery
-cloudpickle==3.0.0        # via -r requirements.txt, dask
+certifi==2024.2.2         # via elasticsearch, httpcore, httpx, netcdf4, requests, -r requirements.txt
+certipy==0.1.3            # via jupyterhub, -r requirements.txt
+cffi==1.16.0              # via cryptography, -r requirements.txt
+cftime==1.6.3             # via netcdf4, -r requirements.txt
+charset-normalizer==3.3.2  # via requests, -r requirements.txt
+click==8.1.7              # via asr, celery, click-didyoumean, click-plugins, click-repl, dask, flask, mkdocs, mkdocs-click, pynxtools, uvicorn, -r requirements.txt, nomad-lab (pyproject.toml)
+click-didyoumean==0.3.1   # via celery, -r requirements.txt
+click-plugins==1.1.1      # via celery, -r requirements.txt
+click-repl==0.3.0         # via celery, -r requirements.txt
+cloudpickle==3.0.0        # via dask, hyperspy, -r requirements.txt
 colorama==0.4.6           # via mkdocs-material, twine
-comm==0.2.2               # via -r requirements.txt, ipykernel
-commonmark==0.9.1         # via -r requirements.txt, recommonmark
-contourpy==1.2.1          # via -r requirements.txt, matplotlib
+commonmark==0.9.1         # via recommonmark, -r requirements.txt
+contourpy==1.2.1          # via matplotlib, -r requirements.txt
 coverage==7.5.1           # via pytest-cov
-cryptography==42.0.7      # via -r requirements.txt, jwcrypto, pyjwt, pyopenssl, rfc3161ng, secretstorage
-cycler==0.12.1            # via -r requirements.txt, matplotlib
-dask[array]==2024.5.0     # via -r requirements.txt, hyperspy, kikuchipy, orix, pyxem
-debugpy==1.8.1            # via -r requirements.txt, ipykernel
-decorator==5.1.1          # via -r requirements.txt, ipyparallel, ipython, validators
-deprecation==2.1.0        # via -r requirements.txt, python-keycloak
+cryptography==42.0.7      # via jwcrypto, pyjwt, pyopenssl, rfc3161ng, secretstorage, -r requirements.txt
+cycler==0.12.1            # via matplotlib, -r requirements.txt
+dask==2024.5.1            # via hyperspy, kikuchipy, orix, pyxem, rosettasciio, -r requirements.txt
+decorator==5.1.1          # via ipython, validators, -r requirements.txt
+deprecation==2.1.0        # via python-keycloak, -r requirements.txt
 devtools==0.12.2          # via nomad-lab (pyproject.toml)
-diffpy-structure==3.1.0   # via -r requirements.txt, diffsims, kikuchipy, orix
-diffsims==0.5.2           # via -r requirements.txt, kikuchipy, pyxem
-dill==0.3.8               # via -r requirements.txt, hyperspy, lmfit
-dnspython==2.6.1          # via -r requirements.txt, email-validator, pymongo
-docker==7.0.0             # via -r requirements.txt, dockerspawner
+diffpy-structure==3.1.0   # via diffsims, kikuchipy, orix, -r requirements.txt
+diffsims==0.5.2           # via kikuchipy, pyxem, -r requirements.txt
+dill==0.3.8               # via lmfit, -r requirements.txt
+dnspython==2.6.1          # via email-validator, pymongo, -r requirements.txt
+docker==7.0.0             # via dockerspawner, -r requirements.txt
 dockerspawner==13.0.0     # via -r requirements.txt, nomad-lab (pyproject.toml)
 docstring-parser==0.16    # via -r requirements.txt, nomad-lab (pyproject.toml)
-docutils==0.21.2          # via -r requirements.txt, m2r, readme-renderer, recommonmark, sphinx
-elasticsearch==7.17.1     # via -r requirements.txt, elasticsearch-dsl, nomad-lab (pyproject.toml)
+docutils==0.21.2          # via m2r, readme-renderer, recommonmark, sphinx, -r requirements.txt
+elasticsearch==7.17.1     # via elasticsearch-dsl, -r requirements.txt, nomad-lab (pyproject.toml)
 elasticsearch-dsl==7.4.0  # via -r requirements.txt, nomad-lab (pyproject.toml)
-email-validator==1.3.1    # via -r requirements.txt, optimade
-entrypoints==0.4          # via -r requirements.txt, ipyparallel
-escapism==1.0.1           # via -r requirements.txt, dockerspawner
+email-validator==1.3.1    # via optimade, -r requirements.txt
+escapism==1.0.1           # via dockerspawner, -r requirements.txt
 essential-generators==1.0  # via nomad-lab (pyproject.toml)
-et-xmlfile==1.1.0         # via -r requirements.txt, openpyxl
-exceptiongroup==1.2.1     # via -r requirements.txt, anyio, ipython
+et-xmlfile==1.1.0         # via openpyxl, -r requirements.txt
+exceptiongroup==1.2.1     # via anyio, ipython, -r requirements.txt
 execnet==2.1.1            # via pytest-xdist
-executing==2.0.1          # via -r requirements.txt, devtools, stack-data
-f90wrap==0.2.14           # via -r requirements.txt, quippy-ase
-fabio==2024.4.0           # via -r requirements.txt, pyfai, silx
-fastapi==0.99.1           # via -r requirements.txt, h5grove, nomad-lab (pyproject.toml)
-fasteners==0.19           # via -r requirements.txt, mdanalysis, zarr
+executing==2.0.1          # via devtools, stack-data, -r requirements.txt
+f90wrap==0.2.14           # via quippy-ase, -r requirements.txt
+fabio==2024.4.0           # via pyfai, silx, -r requirements.txt
+fastapi==0.99.1           # via h5grove, -r requirements.txt, nomad-lab (pyproject.toml)
+fasteners==0.19           # via mdanalysis, zarr, -r requirements.txt
 filelock==3.3.1           # via -r requirements.txt, nomad-lab (pyproject.toml)
-findiff==0.10.0           # via -r requirements.txt, pynxtools-stm
-flask==3.0.3              # via -r requirements.txt, asr
-flatdict==4.0.1           # via -r requirements.txt, pynxtools
-fonttools==4.51.0         # via -r requirements.txt, matplotlib
-fqdn==1.5.1               # via -r requirements.txt, jsonschema
-fsspec==2024.5.0          # via -r requirements.txt, dask, hyperspy
-future==1.0.0             # via -r requirements.txt, uncertainties
+findiff==0.10.0           # via pynxtools-stm, -r requirements.txt
+flask==3.0.3              # via asr, -r requirements.txt
+flatdict==4.0.1           # via pynxtools, -r requirements.txt
+fonttools==4.51.0         # via matplotlib, -r requirements.txt
+fqdn==1.5.1               # via jsonschema, -r requirements.txt
+fsspec==2024.5.0          # via dask, -r requirements.txt
+future==1.0.0             # via uncertainties, -r requirements.txt
 ghp-import==2.1.0         # via mkdocs
-gitdb==4.0.11             # via -r requirements.txt, gitpython
-gitpython==3.1.43         # via -r requirements.txt, mkdocs-git-revision-date-localized-plugin, nomad-lab (pyproject.toml), pynxtools
-greenlet==3.0.3           # via -r requirements.txt, sqlalchemy
-griddataformats==1.0.2    # via -r requirements.txt, mdanalysis
-gsd==3.2.1                # via -r requirements.txt, mdanalysis
+gitdb==4.0.11             # via gitpython, -r requirements.txt
+gitpython==3.1.43         # via mkdocs-git-revision-date-localized-plugin, pynxtools, -r requirements.txt, nomad-lab (pyproject.toml)
+greenlet==3.0.3           # via sqlalchemy, -r requirements.txt
+griddataformats==1.0.2    # via mdanalysis, -r requirements.txt
+gsd==3.2.1                # via mdanalysis, -r requirements.txt
 gunicorn==21.2.0          # via -r requirements.txt, nomad-lab (pyproject.toml)
-h11==0.14.0               # via -r requirements.txt, httpcore, uvicorn
-h5grove[fastapi]==1.3.0   # via -r requirements.txt, nomad-lab (pyproject.toml)
-h5py==3.11.0              # via -r requirements.txt, fabio, h5grove, hdf5plugin, hyperspy, ifes-apt-tc-data-modeling, kikuchipy, nionswift, nomad-lab (pyproject.toml), orix, phonopy, pyfai, pynxtools, pynxtools-mpes, pynxtools-xps, pyxem, silx
-hdf5plugin==4.4.0         # via -r requirements.txt, fabio
+h11==0.14.0               # via httpcore, uvicorn, -r requirements.txt
+h5grove==1.3.0            # via -r requirements.txt, nomad-lab (pyproject.toml)
+h5py==3.11.0              # via fabio, h5grove, hdf5plugin, ifes-apt-tc-data-modeling, kikuchipy, nionswift, orix, phonopy, pyfai, pynxtools, pynxtools-mpes, pynxtools-xps, pyxem, rosettasciio, silx, -r requirements.txt, nomad-lab (pyproject.toml)
+hdf5plugin==4.4.0         # via fabio, -r requirements.txt
 hjson==3.1.0              # via -r requirements.txt, nomad-lab (pyproject.toml)
 html5lib==1.1             # via -r requirements.txt, nomad-lab (pyproject.toml)
-httpcore==1.0.5           # via -r requirements.txt, httpx
-httptools==0.6.1          # via -r requirements.txt, uvicorn
+httpcore==1.0.5           # via httpx, -r requirements.txt
+httptools==0.6.1          # via uvicorn, -r requirements.txt
 httpx==0.27.0             # via -r requirements.txt, nomad-lab (pyproject.toml)
-hyperspy==1.7.6           # via -r requirements.txt, kikuchipy, pynxtools, pyxem
-idna==3.7                 # via -r requirements.txt, anyio, email-validator, httpx, jsonschema, requests
-ifes-apt-tc-data-modeling==0.1  # via -r requirements.txt, pynxtools
-imageio==2.27.0           # via -r requirements.txt, hyperspy, kikuchipy, nionswift, nionswift-io, nionui, scikit-image
-imagesize==1.4.1          # via -r requirements.txt, sphinx
-importlib-metadata==7.1.0  # via -r requirements.txt, build, dask, flask, hyperspy, jupyter-client, jupyterhub, keyring, markdown, mkdocs, mkdocs-get-deps, nomad-lab (pyproject.toml), pynxtools, sphinx, twine
-importlib-resources==6.4.0  # via -r requirements.txt, matplotlib, spglib
+hyperspy==2.1.0           # via kikuchipy, pynxtools, pyxem, -r requirements.txt
+idna==3.7                 # via anyio, email-validator, httpx, jsonschema, requests, -r requirements.txt
+ifes-apt-tc-data-modeling==0.1  # via pynxtools, -r requirements.txt
+imageio==2.34.1           # via kikuchipy, nionswift, nionswift-io, nionui, scikit-image, -r requirements.txt
+imagesize==1.4.1          # via sphinx, -r requirements.txt
+importlib-metadata==7.1.0  # via build, dask, flask, hyperspy, jupyterhub, keyring, markdown, mkdocs, mkdocs-get-deps, pynxtools, sphinx, twine, -r requirements.txt, nomad-lab (pyproject.toml)
+importlib-resources==6.4.0  # via matplotlib, spglib, -r requirements.txt
 inflection==0.5.1         # via -r requirements.txt, nomad-lab (pyproject.toml)
-ipykernel==6.29.4         # via -r requirements.txt, ipyparallel
-ipyparallel==8.8.0        # via -r requirements.txt, hyperspy
-ipython==8.18.1           # via -r requirements.txt, hyperspy, ipykernel, ipyparallel, pynxtools-stm
-isodate==0.6.1            # via -r requirements.txt, rdflib
-isoduration==20.11.0      # via -r requirements.txt, jsonschema
-itsdangerous==2.2.0       # via -r requirements.txt, flask, nomad-lab (pyproject.toml)
+ipython==8.18.1           # via pynxtools-stm, -r requirements.txt
+isodate==0.6.1            # via rdflib, -r requirements.txt
+isoduration==20.11.0      # via jsonschema, -r requirements.txt
+itsdangerous==2.2.0       # via flask, -r requirements.txt, nomad-lab (pyproject.toml)
 jaraco-classes==3.4.0     # via keyring
 jaraco-context==5.3.0     # via keyring
 jaraco-functools==4.0.1   # via keyring
-jedi==0.19.1              # via -r requirements.txt, ipython
+jedi==0.19.1              # via ipython, -r requirements.txt
 jeepney==0.8.0            # via keyring, secretstorage
-jinja2==3.1.4             # via -r requirements.txt, flask, hyperspy, jupyterhub, mkdocs, mkdocs-macros-plugin, mkdocs-material, sphinx
+jinja2==3.1.4             # via flask, hyperspy, jupyterhub, mkdocs, mkdocs-macros-plugin, mkdocs-material, sphinx, -r requirements.txt
 jmespath==1.0.1           # via -r requirements.txt, nomad-lab (pyproject.toml)
-joblib==1.4.2             # via -r requirements.txt, mdanalysis, pymatgen, scikit-learn
-jsonpointer==2.4          # via -r requirements.txt, jsonschema
-jsonschema[format]==4.17.3  # via -r requirements.txt, jupyter-telemetry, nomad-lab (pyproject.toml), oauthenticator
-jupyter-client==8.6.1     # via -r requirements.txt, ipykernel, ipyparallel
-jupyter-core==5.7.2       # via -r requirements.txt, ipykernel, jupyter-client
-jupyter-telemetry==0.1.0  # via -r requirements.txt, jupyterhub
-jupyterhub==4.0.2         # via -r requirements.txt, dockerspawner, nomad-lab (pyproject.toml), oauthenticator
-jwcrypto==1.5.6           # via -r requirements.txt, python-keycloak
+joblib==1.4.2             # via mdanalysis, pymatgen, scikit-learn, -r requirements.txt
+jsonpointer==2.4          # via jsonschema, -r requirements.txt
+jsonschema==4.17.3        # via jupyter-telemetry, oauthenticator, -r requirements.txt, nomad-lab (pyproject.toml)
+jupyter-telemetry==0.1.0  # via jupyterhub, -r requirements.txt
+jupyterhub==4.0.2         # via dockerspawner, oauthenticator, -r requirements.txt, nomad-lab (pyproject.toml)
+jwcrypto==1.5.6           # via python-keycloak, -r requirements.txt
 keyring==25.2.1           # via twine
-kikuchipy==0.9.0          # via -r requirements.txt, pynxtools
-kiwisolver==1.4.5         # via -r requirements.txt, matplotlib
-kombu==5.3.7              # via -r requirements.txt, celery
-lark==1.1.9               # via -r requirements.txt, optimade
-latexcodec==3.0.0         # via -r requirements.txt, pybtex
-llvmlite==0.42.0          # via -r requirements.txt, numba
-lmfit==1.3.1              # via -r requirements.txt, pyxem
-locket==1.0.0             # via -r requirements.txt, partd
-lxml==5.2.2               # via -r requirements.txt, fabio, lxml-html-clean, nomad-lab (pyproject.toml)
+kikuchipy==0.8.7          # via pynxtools, -r requirements.txt
+kiwisolver==1.4.5         # via matplotlib, -r requirements.txt
+kombu==5.3.7              # via celery, -r requirements.txt
+lark==1.1.9               # via optimade, -r requirements.txt
+latexcodec==3.0.0         # via pybtex, -r requirements.txt
+llvmlite==0.42.0          # via numba, -r requirements.txt
+lmfit==1.3.1              # via pyxem, -r requirements.txt
+locket==1.0.0             # via partd, -r requirements.txt
+lxml==5.2.2               # via fabio, lxml-html-clean, -r requirements.txt, nomad-lab (pyproject.toml)
 lxml-html-clean==0.1.1    # via -r requirements.txt, nomad-lab (pyproject.toml)
 m2r==0.2.1                # via -r requirements.txt, nomad-lab (pyproject.toml)
-mako==1.3.5               # via -r requirements.txt, alembic
+mako==1.3.5               # via alembic, -r requirements.txt
 markdown==3.6             # via mkdocs, mkdocs-click, mkdocs-material, pymdown-extensions
-markupsafe==2.1.5         # via -r requirements.txt, jinja2, mako, mkdocs, nomad-lab (pyproject.toml), werkzeug
+markupsafe==2.1.5         # via jinja2, mako, mkdocs, werkzeug, -r requirements.txt, nomad-lab (pyproject.toml)
 matid==2.0.1              # via -r requirements.txt, nomad-lab (pyproject.toml)
-matplotlib==3.8.4         # via -r requirements.txt, ase, asr, diffsims, hyperspy, kikuchipy, matplotlib-scalebar, mdanalysis, orix, phonopy, pyfai, pymatgen, pyxem, radioactivedecay
-matplotlib-inline==0.1.7  # via -r requirements.txt, ipykernel, ipython
-matplotlib-scalebar==0.8.1  # via -r requirements.txt, orix
-mda-xdrlib==0.2.0         # via -r requirements.txt, pyedr
+matplotlib==3.8.4         # via ase, asr, diffsims, hyperspy, kikuchipy, matplotlib-scalebar, mdanalysis, orix, phonopy, pyfai, pymatgen, pyxem, radioactivedecay, -r requirements.txt
+matplotlib-inline==0.1.7  # via ipython, -r requirements.txt
+matplotlib-scalebar==0.8.1  # via orix, -r requirements.txt
+mda-xdrlib==0.2.0         # via pyedr, -r requirements.txt
 mdanalysis==2.5.0         # via -r requirements.txt, nomad-lab (pyproject.toml)
-mergedeep==1.3.4          # via -r requirements.txt, mkdocs, mkdocs-get-deps, pynxtools
-mistune==3.0.2            # via -r requirements.txt, m2r
+mergedeep==1.3.4          # via mkdocs, mkdocs-get-deps, pynxtools, -r requirements.txt
+mistune==3.0.2            # via m2r, -r requirements.txt
 mkdocs==1.6.0             # via mkdocs-git-revision-date-localized-plugin, mkdocs-macros-plugin, mkdocs-material, mkdocs-redirects, nomad-lab (pyproject.toml)
 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.5  # via nomad-lab (pyproject.toml)
 mkdocs-glightbox==0.4.0   # via nomad-lab (pyproject.toml)
 mkdocs-macros-plugin==1.0.5  # via nomad-lab (pyproject.toml)
-mkdocs-material==9.5.23   # via nomad-lab (pyproject.toml)
+mkdocs-material==9.5.24   # 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)
-mmtf-python==1.1.3        # via -r requirements.txt, mdanalysis
+mmtf-python==1.1.3        # via mdanalysis, -r requirements.txt
 mongoengine==0.28.2       # via -r requirements.txt, nomad-lab (pyproject.toml)
-mongomock==4.1.2          # via -r requirements.txt, optimade
-monty==2024.5.15          # via -r requirements.txt, pymatgen
+mongomock==4.1.2          # via optimade, -r requirements.txt
+monty==2024.5.15          # via pymatgen, -r requirements.txt
 more-itertools==10.2.0    # via jaraco-classes, jaraco-functools, pytest
-mpmath==1.3.0             # via -r requirements.txt, sympy
-mrcfile==1.5.0            # via -r requirements.txt, griddataformats
-msgpack==1.0.8            # via -r requirements.txt, blosc2, mmtf-python, nomad-lab (pyproject.toml)
+mpmath==1.3.0             # via sympy, -r requirements.txt
+mrcfile==1.5.0            # via griddataformats, -r requirements.txt
+msgpack==1.0.8            # via blosc2, mmtf-python, -r requirements.txt, nomad-lab (pyproject.toml)
 mypy==1.0.1               # via nomad-lab (pyproject.toml)
 mypy-extensions==1.0.0    # via mypy
 names==0.3.0              # via nomad-lab (pyproject.toml)
-natsort==8.4.0            # via -r requirements.txt, hyperspy
-ndindex==1.8              # via -r requirements.txt, blosc2
-nest-asyncio==1.6.0       # via -r requirements.txt, ipykernel
+natsort==8.4.0            # via hyperspy, -r requirements.txt
+ndindex==1.8              # via blosc2, -r requirements.txt
 netcdf4==1.6.5            # via -r requirements.txt, nomad-lab (pyproject.toml)
-networkx==2.6.3           # via -r requirements.txt, matid, mdanalysis, nomad-lab (pyproject.toml), pymatgen, radioactivedecay, scikit-image
+networkx==2.6.3           # via matid, mdanalysis, pymatgen, radioactivedecay, scikit-image, -r requirements.txt, nomad-lab (pyproject.toml)
 nh3==0.2.17               # via readme-renderer
-niondata==0.15.5          # via -r requirements.txt, nionswift, nionswift-io
-nionswift==0.16.8         # via -r requirements.txt, pynxtools
-nionswift-io==0.15.1      # via -r requirements.txt, nionswift
-nionui==0.6.11            # via -r requirements.txt, nionswift
-nionutils==0.4.10         # via -r requirements.txt, niondata, nionswift, nionswift-io, nionui
+niondata==0.15.5          # via nionswift, nionswift-io, -r requirements.txt
+nionswift==0.16.8         # via pynxtools, -r requirements.txt
+nionswift-io==0.15.1      # via nionswift, -r requirements.txt
+nionui==0.6.11            # via nionswift, -r requirements.txt
+nionutils==0.4.10         # via niondata, nionswift, nionswift-io, nionui, -r requirements.txt
 nptyping==1.4.4           # via -r requirements.txt, nomad-lab (pyproject.toml)
-numba==0.59.1             # via -r requirements.txt, diffsims, hyperspy, kikuchipy, orix, pyxem, sparse
-numcodecs==0.12.1         # via -r requirements.txt, zarr
-numexpr==2.10.0           # via -r requirements.txt, hyperspy, pyfai, pyxem, tables
-numpy==1.22.4             # via -r requirements.txt, ase, biopython, blosc2, cftime, contourpy, dask, diffsims, f90wrap, fabio, findiff, griddataformats, gsd, h5grove, h5py, hyperspy, ifes-apt-tc-data-modeling, imageio, kikuchipy, lmfit, matid, matplotlib, mdanalysis, mrcfile, netcdf4, niondata, nionswift, nionswift-io, nionui, nomad-lab (pyproject.toml), nptyping, numba, numcodecs, numexpr, numpy-quaternion, orix, pandas, phonopy, pyedr, pyfai, pymatgen, pynxtools, pywavelets, pyxem, quippy-ase, radioactivedecay, rdkit, scikit-image, scikit-learn, scipy, silx, sparse, spglib, tables, tifffile, xarray, zarr
-numpy-quaternion==2023.0.3  # via -r requirements.txt, orix
+numba==0.59.1             # via diffsims, kikuchipy, orix, pyxem, -r requirements.txt
+numcodecs==0.12.1         # via zarr, -r requirements.txt
+numexpr==2.10.0           # via pyfai, pyxem, tables, -r requirements.txt
+numpy==1.22.4             # via ase, biopython, blosc2, cftime, contourpy, dask, diffsims, f90wrap, fabio, findiff, griddataformats, gsd, h5grove, h5py, hyperspy, ifes-apt-tc-data-modeling, imageio, kikuchipy, lmfit, matid, matplotlib, mdanalysis, mrcfile, netcdf4, niondata, nionswift, nionswift-io, nionui, nptyping, numba, numcodecs, numexpr, numpy-quaternion, orix, pandas, phonopy, pycifrw, pyedr, pyfai, pymatgen, pynxtools, pywavelets, pyxem, quippy-ase, radioactivedecay, rdkit, rosettasciio, scikit-image, scikit-learn, scipy, shapely, silx, spglib, tables, tifffile, xarray, zarr, -r requirements.txt, nomad-lab (pyproject.toml)
+numpy-quaternion==2023.0.3  # via orix, -r requirements.txt
 oauthenticator==15.1.0    # via -r requirements.txt, nomad-lab (pyproject.toml)
-oauthlib==3.2.2           # via -r requirements.txt, jupyterhub
+oauthlib==3.2.2           # via jupyterhub, -r requirements.txt
 openpyxl==3.1.2           # via -r requirements.txt, nomad-lab (pyproject.toml)
-optimade[mongo]==0.22.1   # via -r requirements.txt, nomad-lab (pyproject.toml)
-orix==0.12.1.post0        # via -r requirements.txt, diffsims, kikuchipy, pyxem
-orjson==3.10.3            # via -r requirements.txt, h5grove, nomad-lab (pyproject.toml)
-packaging==24.0           # via -r requirements.txt, build, dask, deprecation, docker, f90wrap, gunicorn, hyperspy, ipykernel, jupyterhub, matplotlib, mdanalysis, mkdocs, mongomock, pint, plotly, pooch, pytest, scikit-image, silx, sphinx, tables, xarray
+optimade==0.22.1          # via -r requirements.txt, nomad-lab (pyproject.toml)
+orix==0.12.1.post0        # via diffsims, kikuchipy, pyxem, -r requirements.txt
+orjson==3.10.3            # via h5grove, -r requirements.txt, nomad-lab (pyproject.toml)
+packaging==24.0           # via build, dask, deprecation, docker, f90wrap, gunicorn, hyperspy, jupyterhub, matplotlib, mdanalysis, mkdocs, mongomock, pint, plotly, pooch, pytest, scikit-image, silx, sphinx, tables, xarray, -r requirements.txt
 paginate==0.5.6           # via mkdocs-material
-palettable==3.3.3         # via -r requirements.txt, pymatgen
-pamela==1.1.0             # via -r requirements.txt, jupyterhub
-pandas==1.5.3             # via -r requirements.txt, ifes-apt-tc-data-modeling, nomad-lab (pyproject.toml), panedr, pybis, pymatgen, pynxtools, radioactivedecay, xarray
+palettable==3.3.3         # via pymatgen, -r requirements.txt
+pamela==1.1.0             # via jupyterhub, -r requirements.txt
+pandas==1.5.3             # via ifes-apt-tc-data-modeling, panedr, pybis, pymatgen, pynxtools, radioactivedecay, xarray, -r requirements.txt, nomad-lab (pyproject.toml)
 panedr==0.8.0             # via -r requirements.txt, nomad-lab (pyproject.toml)
 parmed==4.2.2             # via -r requirements.txt, nomad-lab (pyproject.toml)
-parso==0.8.4              # via -r requirements.txt, jedi
-partd==1.4.2              # via -r requirements.txt, dask
+parso==0.8.4              # via jedi, -r requirements.txt
+partd==1.4.2              # via dask, -r requirements.txt
 pathspec==0.12.1          # via mkdocs
-pexpect==4.9.0            # via -r requirements.txt, ipython
-phonopy==2.9.1            # via -r requirements.txt, asr
-pillow==10.0.1            # via -r requirements.txt, fabio, hyperspy, imageio, matplotlib, nionswift, rdkit, scikit-image
-pint==0.17                # via -r requirements.txt, hyperspy, nomad-lab (pyproject.toml)
-pip-tools==7.4.1          # via nomad-lab (pyproject.toml)
+pexpect==4.9.0            # via ipython, -r requirements.txt
+phonopy==2.23.1           # via asr, -r requirements.txt
+pillow==10.3.0            # via fabio, imageio, matplotlib, nionswift, rdkit, scikit-image, -r requirements.txt
+pint==0.17                # via hyperspy, rosettasciio, -r requirements.txt, nomad-lab (pyproject.toml)
 pkginfo==1.10.0           # via twine
-platformdirs==4.2.2       # via -r requirements.txt, jupyter-core, mkdocs-get-deps, pooch
-plotly==5.22.0            # via -r requirements.txt, asr, pymatgen
+platformdirs==4.2.2       # via mkdocs-get-deps, pooch, -r requirements.txt
+plotly==5.22.0            # via asr, pymatgen, -r requirements.txt
 pluggy==0.13.1            # via pytest
-pooch==1.8.1              # via -r requirements.txt, kikuchipy, orix
-prettytable==3.10.0       # via -r requirements.txt, hyperspy
-prometheus-client==0.20.0  # via -r requirements.txt, jupyterhub
-prompt-toolkit==3.0.43    # via -r requirements.txt, click-repl, ipython
-psutil==5.9.8             # via -r requirements.txt, diffsims, ipykernel, ipyparallel, pyxem
-ptyprocess==0.7.0         # via -r requirements.txt, pexpect
-pure-eval==0.2.2          # via -r requirements.txt, stack-data
+ply==3.11                 # via pycifrw, -r requirements.txt
+pooch==1.8.1              # via hyperspy, kikuchipy, orix, pyxem, -r requirements.txt
+prettytable==3.10.0       # via hyperspy, -r requirements.txt
+prometheus-client==0.20.0  # via jupyterhub, -r requirements.txt
+prompt-toolkit==3.0.43    # via click-repl, ipython, -r requirements.txt
+psutil==5.9.8             # via diffsims, pyxem, -r requirements.txt
+ptyprocess==0.7.0         # via pexpect, -r requirements.txt
+pure-eval==0.2.2          # via stack-data, -r requirements.txt
 py==1.11.0                # via pytest, pytest-forked
-py-cpuinfo==9.0.0         # via -r requirements.txt, blosc2, tables
-pyasn1==0.6.0             # via -r requirements.txt, pyasn1-modules, rfc3161ng
-pyasn1-modules==0.4.0     # via -r requirements.txt, rfc3161ng
+py-cpuinfo==9.0.0         # via blosc2, tables, -r requirements.txt
+pyasn1==0.6.0             # via pyasn1-modules, rfc3161ng, -r requirements.txt
+pyasn1-modules==0.4.0     # via rfc3161ng, -r requirements.txt
 pybis @ git+https://github.com/FAIRmat-NFDI/fairmat-pybis.git@91039c2a1df364c88ab7e284b59c43ec42f18370  # via -r requirements.txt, nomad-lab (pyproject.toml)
-pybtex==0.24.0            # via -r requirements.txt, pymatgen
-pycifrw==4.4.5            # via -r requirements.txt, diffpy-structure
+pybtex==0.24.0            # via pymatgen, -r requirements.txt
+pycifrw==4.4.6            # via diffpy-structure, -r requirements.txt
 pycodestyle==2.11.1       # via nomad-lab (pyproject.toml)
-pycparser==2.22           # via -r requirements.txt, cffi
-pydantic==1.10.15         # via -r requirements.txt, fastapi, nomad-lab (pyproject.toml), optimade
-pyedr==0.8.0              # via -r requirements.txt, panedr
-pyfai==2024.2.0           # via -r requirements.txt, pyxem
-pygments==2.18.0          # via -r requirements.txt, devtools, ipython, mkdocs-material, readme-renderer, sphinx
-pyjwt[crypto]==2.6.0      # via -r requirements.txt, nomad-lab (pyproject.toml)
-pymatgen==2023.9.25       # via -r requirements.txt, asr, nomad-lab (pyproject.toml)
+pycparser==2.22           # via cffi, -r requirements.txt
+pydantic==1.10.15         # via fastapi, optimade, -r requirements.txt, nomad-lab (pyproject.toml)
+pyedr==0.8.0              # via panedr, -r requirements.txt
+pyfai==2023.9.0           # via pyxem, -r requirements.txt
+pygments==2.18.0          # via devtools, ipython, mkdocs-material, readme-renderer, sphinx, -r requirements.txt
+pyjwt==2.6.0              # via -r requirements.txt, nomad-lab (pyproject.toml)
+pymatgen==2023.9.25       # via asr, -r requirements.txt, nomad-lab (pyproject.toml)
 pymdown-extensions==10.8.1  # via mkdocs-material
-pymongo==4.6.3            # via -r requirements.txt, mongoengine, nomad-lab (pyproject.toml), optimade
-pynxtools[convert,mpes,stm,xps]==0.1.1  # via -r requirements.txt, nomad-lab (pyproject.toml), pynxtools-mpes, pynxtools-stm, pynxtools-xps
-pynxtools-mpes==0.0.3     # via -r requirements.txt, pynxtools
-pynxtools-stm==1.0.1      # via -r requirements.txt, pynxtools
-pynxtools-xps==0.0.3      # via -r requirements.txt, pynxtools
-pyopenssl==24.1.0         # via -r requirements.txt, certipy
-pyparsing==3.1.2          # via -r requirements.txt, matplotlib, rdflib
-pyproject-hooks==1.1.0    # via build, pip-tools
-pyrsistent==0.20.0        # via -r requirements.txt, jsonschema
-pytest==5.4.3             # via nomad-lab (pyproject.toml), pytest-cov, pytest-forked, pytest-timeout, pytest-xdist
+pymongo==4.6.3            # via mongoengine, optimade, -r requirements.txt, nomad-lab (pyproject.toml)
+pynxtools==0.1.1          # via pynxtools-mpes, pynxtools-stm, pynxtools-xps, -r requirements.txt, nomad-lab (pyproject.toml)
+pynxtools-mpes==0.0.3     # via pynxtools, -r requirements.txt
+pynxtools-stm==1.0.1      # via pynxtools, -r requirements.txt
+pynxtools-xps==0.0.3      # via pynxtools, -r requirements.txt
+pyopenssl==24.1.0         # via certipy, -r requirements.txt
+pyparsing==3.1.2          # via matplotlib, rdflib, -r requirements.txt
+pyproject-hooks==1.1.0    # via build
+pyrsistent==0.20.0        # via jsonschema, -r requirements.txt
+pytest==5.4.3             # via pytest-cov, pytest-forked, pytest-timeout, pytest-xdist, nomad-lab (pyproject.toml)
 pytest-cov==2.7.1         # via nomad-lab (pyproject.toml)
 pytest-forked==1.6.0      # via pytest-xdist
 pytest-timeout==1.4.2     # via nomad-lab (pyproject.toml)
 pytest-xdist==1.34.0      # via nomad-lab (pyproject.toml)
-python-dateutil==2.9.0.post0  # via -r requirements.txt, arrow, celery, elasticsearch-dsl, ghp-import, hyperspy, ipyparallel, jupyter-client, jupyterhub, matplotlib, mkdocs-macros-plugin, pandas, pybis, rfc3161ng
-python-dotenv==1.0.1      # via -r requirements.txt, uvicorn
+python-box==6.1.0         # via rosettasciio, -r requirements.txt
+python-dateutil==2.9.0.post0  # via arrow, celery, elasticsearch-dsl, ghp-import, hyperspy, jupyterhub, matplotlib, mkdocs-macros-plugin, pandas, pybis, rfc3161ng, rosettasciio, -r requirements.txt
+python-dotenv==1.0.1      # via uvicorn, -r requirements.txt
 python-gitlab==2.10.1     # via nomad-lab (pyproject.toml)
-python-json-logger==2.0.2  # via -r requirements.txt, jupyter-telemetry, nomad-lab (pyproject.toml)
+python-json-logger==2.0.2  # via jupyter-telemetry, -r requirements.txt, nomad-lab (pyproject.toml)
 python-keycloak==4.0.0    # via -r requirements.txt, nomad-lab (pyproject.toml)
 python-logstash==0.4.6    # via -r requirements.txt, nomad-lab (pyproject.toml)
 python-magic==0.4.24      # via -r requirements.txt, nomad-lab (pyproject.toml)
 python-multipart==0.0.9   # via -r requirements.txt, nomad-lab (pyproject.toml)
-pytz==2024.1              # via -r requirements.txt, mkdocs-git-revision-date-localized-plugin, nionswift, nomad-lab (pyproject.toml), pandas, pynxtools
-pytz-deprecation-shim==0.1.0.post0  # via -r requirements.txt, tzlocal
-pywavelets==1.6.0         # via -r requirements.txt, scikit-image
-pyxem==0.16.0             # via -r requirements.txt, pynxtools
-pyyaml==6.0.1             # via -r requirements.txt, dask, hyperspy, kikuchipy, mkdocs, mkdocs-get-deps, mkdocs-macros-plugin, nomad-lab (pyproject.toml), phonopy, pybtex, pymdown-extensions, pynxtools, pynxtools-mpes, pyyaml-env-tag, uvicorn
+pytz==2024.1              # via mkdocs-git-revision-date-localized-plugin, nionswift, pandas, pynxtools, -r requirements.txt, nomad-lab (pyproject.toml)
+pytz-deprecation-shim==0.1.0.post0  # via tzlocal, -r requirements.txt
+pywavelets==1.6.0         # via scikit-image, -r requirements.txt
+pyxem==0.18.0             # via pynxtools, -r requirements.txt
+pyyaml==6.0.1             # via dask, hyperspy, kikuchipy, mkdocs, mkdocs-get-deps, mkdocs-macros-plugin, phonopy, pybtex, pymdown-extensions, pynxtools, pynxtools-mpes, pyyaml-env-tag, rosettasciio, uvicorn, -r requirements.txt, nomad-lab (pyproject.toml)
 pyyaml-env-tag==0.1       # via mkdocs
 pyzeo==0.1.5              # via -r requirements.txt, nomad-lab (pyproject.toml)
-pyzmq==26.0.3             # via -r requirements.txt, ipykernel, ipyparallel, jupyter-client
 quippy-ase==0.9.14        # via -r requirements.txt, nomad-lab (pyproject.toml)
-radioactivedecay==0.5.0   # via -r requirements.txt, ifes-apt-tc-data-modeling
+radioactivedecay==0.5.0   # via ifes-apt-tc-data-modeling, -r requirements.txt
 rdflib==5.0.0             # via -r requirements.txt, nomad-lab (pyproject.toml)
 rdkit==2023.9.5           # via -r requirements.txt, nomad-lab (pyproject.toml)
 readme-renderer==43.0     # via twine
 recommonmark==0.7.1       # via -r requirements.txt, nomad-lab (pyproject.toml)
 regex==2024.5.15          # via mkdocs-material
-requests==2.31.0          # via -r requirements.txt, docker, hyperspy, jupyterhub, mkdocs-material, nomad-lab (pyproject.toml), oauthenticator, optimade, pooch, pybis, pymatgen, python-gitlab, python-keycloak, requests-toolbelt, rfc3161ng, sphinx, twine
-requests-toolbelt==1.0.0  # via -r requirements.txt, python-gitlab, python-keycloak, twine
+requests==2.32.2          # via docker, hyperspy, jupyterhub, mkdocs-material, oauthenticator, optimade, pooch, pybis, pymatgen, python-gitlab, python-keycloak, requests-toolbelt, rfc3161ng, sphinx, twine, -r requirements.txt, nomad-lab (pyproject.toml)
+requests-toolbelt==1.0.0  # via python-gitlab, python-keycloak, twine, -r requirements.txt
 rfc3161ng==2.1.3          # via -r requirements.txt, nomad-lab (pyproject.toml)
-rfc3339-validator==0.1.4  # via -r requirements.txt, jsonschema
+rfc3339-validator==0.1.4  # via jsonschema, -r requirements.txt
 rfc3986==2.0.0            # via twine
-rfc3987==1.3.8            # via -r requirements.txt, jsonschema
+rfc3987==1.3.8            # via jsonschema, -r requirements.txt
 rope==0.21.0              # via nomad-lab (pyproject.toml)
-ruamel-yaml==0.18.6       # via -r requirements.txt, jupyter-telemetry, nomad-lab (pyproject.toml), oauthenticator, pymatgen
-ruamel-yaml-clib==0.2.8   # via -r requirements.txt, ruamel-yaml
-ruff==0.4.4               # via nomad-lab (pyproject.toml)
+rosettasciio==0.4         # via hyperspy, -r requirements.txt
+ruamel-yaml==0.18.6       # via jupyter-telemetry, oauthenticator, pymatgen, -r requirements.txt, nomad-lab (pyproject.toml)
+ruamel-yaml-clib==0.2.8   # via ruamel-yaml, -r requirements.txt
+ruff==0.4.5               # via nomad-lab (pyproject.toml)
 runstats==2.0.0           # via -r requirements.txt, nomad-lab (pyproject.toml)
-scikit-image==0.19.3      # via -r requirements.txt, hyperspy, kikuchipy, pyxem
-scikit-learn==1.4.2       # via -r requirements.txt, kikuchipy, matid, nomad-lab (pyproject.toml), pyxem
-scipy==1.13.0             # via -r requirements.txt, ase, diffsims, findiff, griddataformats, hyperspy, kikuchipy, lmfit, matid, mdanalysis, niondata, nionswift, nomad-lab (pyproject.toml), orix, pyfai, pymatgen, pynxtools, pyxem, radioactivedecay, scikit-image, scikit-learn, sparse
+scikit-image==0.19.3      # via hyperspy, kikuchipy, pyxem, -r requirements.txt
+scikit-learn==1.5.0       # via kikuchipy, matid, pyxem, -r requirements.txt, nomad-lab (pyproject.toml)
+scipy==1.13.1             # via ase, diffsims, findiff, griddataformats, hyperspy, kikuchipy, lmfit, matid, mdanalysis, niondata, nionswift, orix, pyfai, pymatgen, pynxtools, pyxem, radioactivedecay, scikit-image, scikit-learn, -r requirements.txt, nomad-lab (pyproject.toml)
 secretstorage==3.3.3      # via keyring
-sentinels==1.0.0          # via -r requirements.txt, mongomock
-silx==2.1.0               # via -r requirements.txt, pyfai
-six==1.16.0               # via -r requirements.txt, asttokens, basicauth, diffpy-structure, elasticsearch-dsl, html5lib, isodate, pybtex, pytest-xdist, python-dateutil, rdflib, rfc3339-validator, validators
-smmap==5.0.1              # via -r requirements.txt, gitdb
-sniffio==1.3.1            # via -r requirements.txt, anyio, httpx
-snowballstemmer==2.2.0    # via -r requirements.txt, sphinx
-soupsieve==2.5            # via -r requirements.txt, beautifulsoup4
-sparse==0.15.1            # via -r requirements.txt, hyperspy
-spglib==2.4.0             # via -r requirements.txt, asr, matid, phonopy, pymatgen
-sphinx==7.3.7             # via -r requirements.txt, recommonmark
-sphinxcontrib-applehelp==1.0.8  # via -r requirements.txt, sphinx
-sphinxcontrib-devhelp==1.0.6  # via -r requirements.txt, sphinx
-sphinxcontrib-htmlhelp==2.0.5  # via -r requirements.txt, sphinx
-sphinxcontrib-jsmath==1.0.1  # via -r requirements.txt, sphinx
-sphinxcontrib-qthelp==1.0.7  # via -r requirements.txt, sphinx
-sphinxcontrib-serializinghtml==1.1.10  # via -r requirements.txt, sphinx
-sqlalchemy==2.0.30        # via -r requirements.txt, alembic, jupyterhub
-stack-data==0.6.3         # via -r requirements.txt, ipython
-starlette==0.27.0         # via -r requirements.txt, fastapi
+sentinels==1.0.0          # via mongomock, -r requirements.txt
+setuptools==70.0.0        # via radioactivedecay, -r requirements.txt
+shapely==2.0.4            # via pyxem, -r requirements.txt
+silx==2.1.0               # via pyfai, -r requirements.txt
+six==1.16.0               # via asttokens, basicauth, diffpy-structure, elasticsearch-dsl, html5lib, isodate, pybtex, pytest-xdist, 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
+snowballstemmer==2.2.0    # via sphinx, -r requirements.txt
+soupsieve==2.5            # via beautifulsoup4, -r requirements.txt
+spglib==2.4.0             # via asr, matid, phonopy, pymatgen, -r requirements.txt
+sphinx==7.3.7             # via recommonmark, -r requirements.txt
+sphinxcontrib-applehelp==1.0.8  # via sphinx, -r requirements.txt
+sphinxcontrib-devhelp==1.0.6  # via sphinx, -r requirements.txt
+sphinxcontrib-htmlhelp==2.0.5  # via sphinx, -r requirements.txt
+sphinxcontrib-jsmath==1.0.1  # via sphinx, -r requirements.txt
+sphinxcontrib-qthelp==1.0.7  # via sphinx, -r requirements.txt
+sphinxcontrib-serializinghtml==1.1.10  # via sphinx, -r requirements.txt
+sqlalchemy==2.0.30        # via alembic, jupyterhub, -r requirements.txt
+stack-data==0.6.3         # via ipython, -r requirements.txt
+starlette==0.27.0         # via fastapi, -r requirements.txt
 structlog==24.1.0         # via -r requirements.txt, nomad-lab (pyproject.toml)
-sympy==1.12               # via -r requirements.txt, findiff, hyperspy, pymatgen, radioactivedecay
-tables==3.9.2             # via -r requirements.txt, ifes-apt-tc-data-modeling
-tabulate==0.8.9           # via -r requirements.txt, nomad-lab (pyproject.toml), pybis, pymatgen
-tenacity==8.3.0           # via -r requirements.txt, plotly
+sympy==1.12               # via findiff, hyperspy, pymatgen, radioactivedecay, -r requirements.txt
+tables==3.9.2             # via ifes-apt-tc-data-modeling, -r requirements.txt
+tabulate==0.8.9           # via pybis, pymatgen, -r requirements.txt, nomad-lab (pyproject.toml)
+tenacity==8.3.0           # via plotly, -r requirements.txt
 termcolor==2.4.0          # via mkdocs-macros-plugin
-texttable==1.7.0          # via -r requirements.txt, pybis
-threadpoolctl==3.5.0      # via -r requirements.txt, mdanalysis, scikit-learn
-tifffile==2024.5.10       # via -r requirements.txt, h5grove, hyperspy, scikit-image
-tomli==2.0.1              # via -r requirements.txt, build, mypy, pip-tools, sphinx
-toolz==0.12.1             # via -r requirements.txt, dask, hyperspy, partd
+texttable==1.7.0          # via pybis, -r requirements.txt
+threadpoolctl==3.5.0      # via mdanalysis, scikit-learn, -r requirements.txt
+tifffile==2024.5.22       # via h5grove, scikit-image, -r requirements.txt
+tomli==2.0.1              # via build, mypy, sphinx, -r requirements.txt
+toolz==0.12.1             # via dask, partd, -r requirements.txt
 toposort==1.10            # via -r requirements.txt, nomad-lab (pyproject.toml)
-tornado==6.4              # via -r requirements.txt, ipykernel, ipyparallel, jupyter-client, jupyterhub
-tqdm==4.66.4              # via -r requirements.txt, diffsims, hyperspy, ipyparallel, kikuchipy, mdanalysis, orix, pyedr, pymatgen, pyxem, twine
-traitlets==5.14.3         # via -r requirements.txt, comm, ipykernel, ipyparallel, ipython, jupyter-client, jupyter-core, jupyter-telemetry, jupyterhub, matplotlib-inline
-traits==6.4.3             # via -r requirements.txt, hyperspy, pyxem
-transforms3d==0.4.1       # via -r requirements.txt, diffsims, pyxem
+tornado==6.4              # via jupyterhub, -r requirements.txt
+tqdm==4.66.4              # via diffsims, hyperspy, kikuchipy, mdanalysis, orix, pyedr, pymatgen, pyxem, twine, -r requirements.txt
+traitlets==5.14.3         # via ipython, jupyter-telemetry, jupyterhub, matplotlib-inline, -r requirements.txt
+traits==6.4.3             # via hyperspy, pyxem, -r requirements.txt
+transforms3d==0.4.1       # via diffsims, pyxem, -r requirements.txt
 twine==3.4.2              # via nomad-lab (pyproject.toml)
 typed-ast==1.5.5          # via nomad-lab (pyproject.toml)
-types-python-dateutil==2.9.0.20240316  # via -r requirements.txt, arrow
-typing-extensions==4.11.0  # via -r requirements.txt, alembic, anyio, asgiref, astroid, fastapi, ipython, jwcrypto, kombu, mypy, pydantic, sqlalchemy, starlette, uvicorn
-typish==1.9.3             # via -r requirements.txt, nptyping
-tzdata==2024.1            # via -r requirements.txt, celery, pytz-deprecation-shim
-tzlocal==4.3              # via -r requirements.txt, nionswift, pynxtools
-uncertainties==3.1.7      # via -r requirements.txt, lmfit, pymatgen
+types-python-dateutil==2.9.0.20240316  # via arrow, -r requirements.txt
+typing-extensions==4.11.0  # via alembic, anyio, asgiref, astroid, fastapi, ipython, jwcrypto, kombu, mypy, pydantic, sqlalchemy, starlette, uvicorn, -r requirements.txt
+typish==1.9.3             # via nptyping, -r requirements.txt
+tzdata==2024.1            # via celery, pytz-deprecation-shim, -r requirements.txt
+tzlocal==4.3              # via nionswift, pynxtools, -r requirements.txt
+uncertainties==3.1.7      # via lmfit, pymatgen, -r requirements.txt
 unidecode==1.3.2          # via -r requirements.txt, nomad-lab (pyproject.toml)
-uri-template==1.3.0       # via -r requirements.txt, jsonschema
-urllib3==1.26.18          # via -r requirements.txt, docker, elasticsearch, pybis, requests
-uvicorn[standard]==0.29.0  # via -r requirements.txt, h5grove, nomad-lab (pyproject.toml)
-uvloop==0.19.0            # via -r requirements.txt, uvicorn
+uri-template==1.3.0       # via jsonschema, -r requirements.txt
+urllib3==1.26.18          # via docker, elasticsearch, pybis, requests, -r requirements.txt
+uv==0.2.2                 # via nomad-lab (pyproject.toml)
+uvicorn==0.29.0           # via h5grove, -r requirements.txt, nomad-lab (pyproject.toml)
+uvloop==0.19.0            # via uvicorn, -r requirements.txt
 validators==0.18.2        # via -r requirements.txt, nomad-lab (pyproject.toml)
-vine==5.1.0               # via -r requirements.txt, amqp, celery, kombu
+vine==5.1.0               # via amqp, celery, kombu, -r requirements.txt
 watchdog==4.0.0           # via mkdocs
-watchfiles==0.21.0        # via -r requirements.txt, uvicorn
-wcwidth==0.2.13           # via -r requirements.txt, prettytable, prompt-toolkit, pytest
-webcolors==1.13           # via -r requirements.txt, jsonschema
-webencodings==0.5.1       # via -r requirements.txt, html5lib
-websockets==12.0          # via -r requirements.txt, uvicorn
-werkzeug==3.0.3           # via -r requirements.txt, flask
-wheel==0.43.0             # via pip-tools
+watchfiles==0.21.0        # via uvicorn, -r requirements.txt
+wcwidth==0.2.13           # via prettytable, prompt-toolkit, pytest, -r requirements.txt
+webcolors==1.13           # via jsonschema, -r requirements.txt
+webencodings==0.5.1       # via html5lib, -r requirements.txt
+websockets==12.0          # via uvicorn, -r requirements.txt
+werkzeug==3.0.3           # via flask, -r requirements.txt
 wrapt==1.16.0             # via -r requirements.txt, nomad-lab (pyproject.toml)
-xarray==2023.12.0         # via -r requirements.txt, nomad-lab (pyproject.toml), pynxtools, pynxtools-mpes, pynxtools-xps
-zarr==2.17.1              # via -r requirements.txt, hyperspy
-zipfile37==0.1.3          # via -r requirements.txt, pynxtools
-zipp==3.18.2              # via -r requirements.txt, importlib-metadata, importlib-resources
+xarray==2023.12.0         # via pynxtools, pynxtools-mpes, pynxtools-xps, -r requirements.txt, nomad-lab (pyproject.toml)
+zarr==2.17.1              # via pyxem, -r requirements.txt
+zipfile37==0.1.3          # via pynxtools, -r requirements.txt
+zipp==3.18.2              # via importlib-metadata, importlib-resources, -r requirements.txt
 zipstream-new==1.1.5      # via -r requirements.txt, nomad-lab (pyproject.toml)
-
-# The following packages are considered to be unsafe in a requirements file:
-# pip
-# setuptools
diff --git a/requirements.txt b/requirements.txt
index dc0d328e46187b84d193f4cca8f838f5bf31db58..f16f9bb343c178f15c287bf7771a8840bd90a2f7 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,9 +1,5 @@
-#
-# This file is autogenerated by pip-compile with Python 3.9
-# by the following command:
-#
-#    pip-compile --annotation-style=line --extra=infrastructure --extra=parsing --output-file=requirements.txt --pip-args='--prefer-binary' dependencies/nomad-dos-fingerprints/pyproject.toml dependencies/parsers/eelsdb/pyproject.toml pyproject.toml
-#
+# This file was autogenerated by uv via the following command:
+#    uv pip compile --annotation-style=line --extra=infrastructure --extra=parsing --output-file=requirements.txt dependencies/nomad-dos-fingerprints/pyproject.toml dependencies/parsers/eelsdb/pyproject.toml pyproject.toml
 alabaster==0.7.16         # via sphinx
 alembic==1.13.1           # via jupyterhub
 amqp==5.2.0               # via kombu
@@ -11,7 +7,7 @@ aniso8601==9.0.1          # via nomad-lab (pyproject.toml)
 anyio==4.3.0              # via httpx, starlette, watchfiles
 arrow==1.3.0              # via isoduration
 asciitree==0.3.3          # via zarr
-ase==3.19.3               # via asr, ifes-apt-tc-data-modeling, matid, nomad-lab (pyproject.toml), pynxtools, quippy-ase
+ase==3.19.3               # via asr, ifes-apt-tc-data-modeling, matid, pynxtools, quippy-ase, nomad-lab (pyproject.toml)
 asgiref==3.8.1            # via nomad-lab (pyproject.toml)
 asr==0.4.1                # via nomad-lab (pyproject.toml)
 asteval==0.9.32           # via lmfit
@@ -24,7 +20,7 @@ basicauth==0.4.1          # via nomad-lab (pyproject.toml)
 beautifulsoup4==4.12.3    # via nomad-lab (pyproject.toml)
 billiard==4.2.0           # via celery
 biopython==1.83           # via mdanalysis
-bitarray==2.9.2           # via nomad-lab (pyproject.toml), nomad_dos_fingerprints (dependencies/nomad-dos-fingerprints/pyproject.toml)
+bitarray==2.9.2           # via nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/pyproject.toml), nomad-lab (pyproject.toml)
 blinker==1.8.2            # via flask
 blosc2==2.5.1             # via tables
 cachetools==5.3.3         # via nomad-lab (pyproject.toml)
@@ -34,23 +30,21 @@ certipy==0.1.3            # via jupyterhub
 cffi==1.16.0              # via cryptography
 cftime==1.6.3             # via netcdf4
 charset-normalizer==3.3.2  # via requests
-click==8.1.7              # via asr, celery, click-didyoumean, click-plugins, click-repl, dask, flask, nomad-lab (pyproject.toml), pynxtools, uvicorn
+click==8.1.7              # via asr, celery, click-didyoumean, click-plugins, click-repl, dask, flask, pynxtools, uvicorn, nomad-lab (pyproject.toml)
 click-didyoumean==0.3.1   # via celery
 click-plugins==1.1.1      # via celery
 click-repl==0.3.0         # via celery
 cloudpickle==3.0.0        # via dask, hyperspy
-comm==0.2.2               # via ipykernel
 commonmark==0.9.1         # via recommonmark
 contourpy==1.2.1          # via matplotlib
 cryptography==42.0.7      # via jwcrypto, pyjwt, pyopenssl, rfc3161ng
 cycler==0.12.1            # via matplotlib
-dask[array]==2024.5.0     # via hyperspy, kikuchipy, orix, pyxem, rosettasciio
-debugpy==1.8.1            # via ipykernel
-decorator==5.1.1          # via ipyparallel, ipython, validators
+dask==2024.5.1            # via hyperspy, kikuchipy, orix, pyxem, rosettasciio
+decorator==5.1.1          # via ipython, validators
 deprecation==2.1.0        # via python-keycloak
 diffpy-structure==3.1.0   # via diffsims, kikuchipy, orix
 diffsims==0.5.2           # via kikuchipy, pyxem
-dill==0.3.8               # via hyperspy, lmfit
+dill==0.3.8               # via lmfit
 dnspython==2.6.1          # via email-validator, pymongo
 docker==7.0.0             # via dockerspawner
 dockerspawner==13.0.0     # via nomad-lab (pyproject.toml)
@@ -59,7 +53,6 @@ docutils==0.21.2          # via m2r, recommonmark, sphinx
 elasticsearch==7.17.1     # via elasticsearch-dsl, nomad-lab (pyproject.toml)
 elasticsearch-dsl==7.4.0  # via nomad-lab (pyproject.toml)
 email-validator==1.3.1    # via optimade
-entrypoints==0.4          # via ipyparallel
 escapism==1.0.1           # via dockerspawner
 et-xmlfile==1.1.0         # via openpyxl
 exceptiongroup==1.2.1     # via anyio, ipython
@@ -74,34 +67,32 @@ flask==3.0.3              # via asr
 flatdict==4.0.1           # via pynxtools
 fonttools==4.51.0         # via matplotlib
 fqdn==1.5.1               # via jsonschema
-fsspec==2024.5.0          # via dask, hyperspy
+fsspec==2024.5.0          # via dask
 future==1.0.0             # via uncertainties
 gitdb==4.0.11             # via gitpython
-gitpython==3.1.43         # via nomad-lab (pyproject.toml), pynxtools
+gitpython==3.1.43         # via pynxtools, nomad-lab (pyproject.toml)
 greenlet==3.0.3           # via sqlalchemy
 griddataformats==1.0.2    # via mdanalysis
 gsd==3.2.1                # via mdanalysis
 gunicorn==21.2.0          # via nomad-lab (pyproject.toml)
 h11==0.14.0               # via httpcore, uvicorn
-h5grove[fastapi]==1.3.0   # via nomad-lab (pyproject.toml)
-h5py==3.11.0              # via fabio, h5grove, hdf5plugin, hyperspy, ifes-apt-tc-data-modeling, kikuchipy, nionswift, nomad-lab (pyproject.toml), orix, phonopy, pyfai, pynxtools, pynxtools-mpes, pynxtools-xps, pyxem, rosettasciio, silx
+h5grove==1.3.0            # via nomad-lab (pyproject.toml)
+h5py==3.11.0              # via fabio, h5grove, hdf5plugin, ifes-apt-tc-data-modeling, kikuchipy, nionswift, orix, phonopy, pyfai, pynxtools, pynxtools-mpes, pynxtools-xps, pyxem, rosettasciio, silx, nomad-lab (pyproject.toml)
 hdf5plugin==4.4.0         # via fabio
 hjson==3.1.0              # via nomad-lab (pyproject.toml)
 html5lib==1.1             # via nomad-lab (pyproject.toml)
 httpcore==1.0.5           # via httpx
 httptools==0.6.1          # via uvicorn
 httpx==0.27.0             # via nomad-lab (pyproject.toml)
-hyperspy==1.7.6           # via kikuchipy, pynxtools, pyxem
+hyperspy==2.1.0           # via kikuchipy, pynxtools, pyxem
 idna==3.7                 # via anyio, email-validator, httpx, jsonschema, requests
 ifes-apt-tc-data-modeling==0.1  # via pynxtools
-imageio==2.27.0           # via hyperspy, kikuchipy, nionswift, nionswift-io, nionui, scikit-image
+imageio==2.34.1           # via kikuchipy, nionswift, nionswift-io, nionui, scikit-image
 imagesize==1.4.1          # via sphinx
-importlib-metadata==7.1.0  # via dask, flask, hyperspy, jupyter-client, jupyterhub, nomad-lab (pyproject.toml), pynxtools, sphinx
+importlib-metadata==7.1.0  # via dask, flask, hyperspy, jupyterhub, pynxtools, sphinx, nomad-lab (pyproject.toml)
 importlib-resources==6.4.0  # via matplotlib, spglib
 inflection==0.5.1         # via nomad-lab (pyproject.toml)
-ipykernel==6.29.4         # via ipyparallel
-ipyparallel==8.8.0        # via hyperspy
-ipython==8.18.1           # via hyperspy, ipykernel, ipyparallel, pynxtools-stm
+ipython==8.18.1           # via pynxtools-stm
 isodate==0.6.1            # via rdflib
 isoduration==20.11.0      # via jsonschema
 itsdangerous==2.2.0       # via flask, nomad-lab (pyproject.toml)
@@ -110,13 +101,11 @@ jinja2==3.1.4             # via flask, hyperspy, jupyterhub, sphinx
 jmespath==1.0.1           # via nomad-lab (pyproject.toml)
 joblib==1.4.2             # via mdanalysis, pymatgen, scikit-learn
 jsonpointer==2.4          # via jsonschema
-jsonschema[format]==4.17.3  # via jupyter-telemetry, nomad-lab (pyproject.toml), oauthenticator
-jupyter-client==8.6.1     # via ipykernel, ipyparallel
-jupyter-core==5.7.2       # via ipykernel, jupyter-client
+jsonschema==4.17.3        # via jupyter-telemetry, oauthenticator, nomad-lab (pyproject.toml)
 jupyter-telemetry==0.1.0  # via jupyterhub
-jupyterhub==4.0.2         # via dockerspawner, nomad-lab (pyproject.toml), oauthenticator
+jupyterhub==4.0.2         # via dockerspawner, oauthenticator, nomad-lab (pyproject.toml)
 jwcrypto==1.5.6           # via python-keycloak
-kikuchipy==0.9.0          # via pynxtools
+kikuchipy==0.8.7          # via pynxtools
 kiwisolver==1.4.5         # via matplotlib
 kombu==5.3.7              # via celery
 lark==1.1.9               # via optimade
@@ -131,7 +120,7 @@ mako==1.3.5               # via alembic
 markupsafe==2.1.5         # via jinja2, mako, werkzeug
 matid==2.0.1              # via nomad-lab (pyproject.toml)
 matplotlib==3.8.4         # via ase, asr, diffsims, hyperspy, kikuchipy, matplotlib-scalebar, mdanalysis, orix, phonopy, pyfai, pymatgen, pyxem, radioactivedecay
-matplotlib-inline==0.1.7  # via ipykernel, ipython
+matplotlib-inline==0.1.7  # via ipython
 matplotlib-scalebar==0.8.1  # via orix
 mda-xdrlib==0.2.0         # via pyedr
 mdanalysis==2.5.0         # via nomad-lab (pyproject.toml)
@@ -146,45 +135,45 @@ mrcfile==1.5.0            # via griddataformats
 msgpack==1.0.8            # via blosc2, mmtf-python, nomad-lab (pyproject.toml)
 natsort==8.4.0            # via hyperspy
 ndindex==1.8              # via blosc2
-nest-asyncio==1.6.0       # via ipykernel
 netcdf4==1.6.5            # via nomad-lab (pyproject.toml)
-networkx==2.6.3           # via matid, mdanalysis, nomad-lab (pyproject.toml), pymatgen, radioactivedecay, scikit-image
+networkx==2.6.3           # via matid, mdanalysis, pymatgen, radioactivedecay, scikit-image, nomad-lab (pyproject.toml)
 niondata==0.15.5          # via nionswift, nionswift-io
 nionswift==0.16.8         # via pynxtools
 nionswift-io==0.15.1      # via nionswift
 nionui==0.6.11            # via nionswift
 nionutils==0.4.10         # via niondata, nionswift, nionswift-io, nionui
 nptyping==1.4.4           # via nomad-lab (pyproject.toml)
-numba==0.59.1             # via diffsims, hyperspy, kikuchipy, orix, pyxem, sparse
+numba==0.59.1             # via diffsims, kikuchipy, orix, pyxem
 numcodecs==0.12.1         # via zarr
-numexpr==2.10.0           # via hyperspy, pyfai, pyxem, tables
-numpy==1.22.4             # via ase, biopython, blosc2, cftime, contourpy, dask, diffsims, f90wrap, fabio, findiff, griddataformats, gsd, h5grove, h5py, hyperspy, ifes-apt-tc-data-modeling, imageio, kikuchipy, lmfit, matid, matplotlib, mdanalysis, mrcfile, netcdf4, niondata, nionswift, nionswift-io, nionui, nomad-lab (pyproject.toml), nomad_dos_fingerprints (dependencies/nomad-dos-fingerprints/pyproject.toml), nptyping, numba, numcodecs, numexpr, numpy-quaternion, orix, pandas, phonopy, pyedr, pyfai, pymatgen, pynxtools, pywavelets, pyxem, quippy-ase, radioactivedecay, rdkit, rosettasciio, scikit-image, scikit-learn, scipy, silx, sparse, spglib, tables, tifffile, xarray, zarr
+numexpr==2.10.0           # via pyfai, pyxem, tables
+numpy==1.22.4             # via ase, biopython, blosc2, cftime, contourpy, dask, diffsims, f90wrap, fabio, findiff, griddataformats, gsd, h5grove, h5py, hyperspy, ifes-apt-tc-data-modeling, imageio, kikuchipy, lmfit, matid, matplotlib, mdanalysis, mrcfile, netcdf4, niondata, nionswift, nionswift-io, nionui, nptyping, numba, numcodecs, numexpr, numpy-quaternion, orix, pandas, phonopy, pycifrw, pyedr, pyfai, pymatgen, pynxtools, pywavelets, pyxem, quippy-ase, radioactivedecay, rdkit, rosettasciio, scikit-image, scikit-learn, scipy, shapely, silx, spglib, tables, tifffile, xarray, zarr, nomad-dos-fingerprints (dependencies/nomad-dos-fingerprints/pyproject.toml), nomad-lab (pyproject.toml)
 numpy-quaternion==2023.0.3  # via orix
 oauthenticator==15.1.0    # via nomad-lab (pyproject.toml)
 oauthlib==3.2.2           # via jupyterhub
 openpyxl==3.1.2           # via nomad-lab (pyproject.toml)
-optimade[mongo]==0.22.1   # via nomad-lab (pyproject.toml)
+optimade==0.22.1          # via nomad-lab (pyproject.toml)
 orix==0.12.1.post0        # via diffsims, kikuchipy, pyxem
 orjson==3.10.3            # via h5grove, nomad-lab (pyproject.toml)
-packaging==24.0           # via dask, deprecation, docker, f90wrap, gunicorn, hyperspy, ipykernel, jupyterhub, matplotlib, mdanalysis, mongomock, pint, plotly, pooch, scikit-image, silx, sphinx, tables, xarray
+packaging==24.0           # via dask, deprecation, docker, f90wrap, gunicorn, hyperspy, jupyterhub, matplotlib, mdanalysis, mongomock, pint, plotly, pooch, scikit-image, silx, sphinx, tables, xarray
 palettable==3.3.3         # via pymatgen
 pamela==1.1.0             # via jupyterhub
-pandas==1.5.3             # via eelsdbconverter (dependencies/parsers/eelsdb/pyproject.toml), ifes-apt-tc-data-modeling, nomad-lab (pyproject.toml), panedr, pybis, pymatgen, pynxtools, radioactivedecay, xarray
+pandas==1.5.3             # via ifes-apt-tc-data-modeling, panedr, pybis, pymatgen, pynxtools, radioactivedecay, xarray, eelsdbconverter (dependencies/parsers/eelsdb/pyproject.toml), nomad-lab (pyproject.toml)
 panedr==0.8.0             # via nomad-lab (pyproject.toml)
 parmed==4.2.2             # via nomad-lab (pyproject.toml)
 parso==0.8.4              # via jedi
 partd==1.4.2              # via dask
 pexpect==4.9.0            # via ipython
-phonopy==2.9.1            # via asr
-pillow==10.0.1            # via fabio, hyperspy, imageio, matplotlib, nionswift, rdkit, scikit-image
-pint==0.17                # via hyperspy, nomad-lab (pyproject.toml), rosettasciio
-platformdirs==4.2.2       # via jupyter-core, pooch
+phonopy==2.23.1           # via asr
+pillow==10.3.0            # via fabio, imageio, matplotlib, nionswift, rdkit, scikit-image
+pint==0.17                # via hyperspy, rosettasciio, nomad-lab (pyproject.toml)
+platformdirs==4.2.2       # via pooch
 plotly==5.22.0            # via asr, pymatgen
-pooch==1.8.1              # via hyperspy, kikuchipy, orix
+ply==3.11                 # via pycifrw
+pooch==1.8.1              # via hyperspy, kikuchipy, orix, pyxem
 prettytable==3.10.0       # via hyperspy
 prometheus-client==0.20.0  # via jupyterhub
 prompt-toolkit==3.0.43    # via click-repl, ipython
-psutil==5.9.8             # via diffsims, ipykernel, ipyparallel, pyxem
+psutil==5.9.8             # via diffsims, pyxem
 ptyprocess==0.7.0         # via pexpect
 pure-eval==0.2.2          # via stack-data
 py-cpuinfo==9.0.0         # via blosc2, tables
@@ -192,60 +181,62 @@ pyasn1==0.6.0             # via pyasn1-modules, rfc3161ng
 pyasn1-modules==0.4.0     # via rfc3161ng
 pybis @ git+https://github.com/FAIRmat-NFDI/fairmat-pybis.git@91039c2a1df364c88ab7e284b59c43ec42f18370  # via nomad-lab (pyproject.toml)
 pybtex==0.24.0            # via pymatgen
-pycifrw==4.4.5            # via diffpy-structure
+pycifrw==4.4.6            # via diffpy-structure
 pycparser==2.22           # via cffi
-pydantic==1.10.15         # via fastapi, nomad-lab (pyproject.toml), optimade
+pydantic==1.10.15         # via fastapi, optimade, nomad-lab (pyproject.toml)
 pyedr==0.8.0              # via panedr
-pyfai==2024.2.0           # via pyxem
+pyfai==2023.9.0           # via pyxem
 pygments==2.18.0          # via ipython, sphinx
-pyjwt[crypto]==2.6.0      # via nomad-lab (pyproject.toml)
+pyjwt==2.6.0              # via nomad-lab (pyproject.toml)
 pymatgen==2023.9.25       # via asr, nomad-lab (pyproject.toml)
-pymongo==4.6.3            # via mongoengine, nomad-lab (pyproject.toml), optimade
-pynxtools[convert,mpes,stm,xps]==0.1.1  # via nomad-lab (pyproject.toml), pynxtools-mpes, pynxtools-stm, pynxtools-xps
+pymongo==4.6.3            # via mongoengine, optimade, nomad-lab (pyproject.toml)
+pynxtools==0.1.1          # via pynxtools-mpes, pynxtools-stm, pynxtools-xps, nomad-lab (pyproject.toml)
 pynxtools-mpes==0.0.3     # via pynxtools
 pynxtools-stm==1.0.1      # via pynxtools
 pynxtools-xps==0.0.3      # via pynxtools
 pyopenssl==24.1.0         # via certipy
 pyparsing==3.1.2          # via matplotlib, rdflib
 pyrsistent==0.20.0        # via jsonschema
-python-dateutil==2.9.0.post0  # via arrow, celery, elasticsearch-dsl, hyperspy, ipyparallel, jupyter-client, jupyterhub, matplotlib, pandas, pybis, rfc3161ng, rosettasciio
+python-box==6.1.0         # via rosettasciio
+python-dateutil==2.9.0.post0  # via arrow, celery, elasticsearch-dsl, hyperspy, jupyterhub, matplotlib, pandas, pybis, rfc3161ng, rosettasciio
 python-dotenv==1.0.1      # via uvicorn
 python-json-logger==2.0.2  # via jupyter-telemetry, nomad-lab (pyproject.toml)
 python-keycloak==4.0.0    # via nomad-lab (pyproject.toml)
 python-logstash==0.4.6    # via nomad-lab (pyproject.toml)
 python-magic==0.4.24      # via nomad-lab (pyproject.toml)
 python-multipart==0.0.9   # via nomad-lab (pyproject.toml)
-pytz==2024.1              # via nionswift, nomad-lab (pyproject.toml), pandas, pynxtools
+pytz==2024.1              # via nionswift, pandas, pynxtools, nomad-lab (pyproject.toml)
 pytz-deprecation-shim==0.1.0.post0  # via tzlocal
 pywavelets==1.6.0         # via scikit-image
-pyxem==0.16.0             # via pynxtools
-pyyaml==6.0.1             # via dask, hyperspy, kikuchipy, nomad-lab (pyproject.toml), phonopy, pybtex, pynxtools, pynxtools-mpes, rosettasciio, uvicorn
+pyxem==0.18.0             # via pynxtools
+pyyaml==6.0.1             # via dask, hyperspy, kikuchipy, phonopy, pybtex, pynxtools, pynxtools-mpes, rosettasciio, uvicorn, nomad-lab (pyproject.toml)
 pyzeo==0.1.5              # via nomad-lab (pyproject.toml)
-pyzmq==26.0.3             # via ipykernel, ipyparallel, jupyter-client
 quippy-ase==0.9.14        # via nomad-lab (pyproject.toml)
 radioactivedecay==0.5.0   # via ifes-apt-tc-data-modeling
 rdflib==5.0.0             # via nomad-lab (pyproject.toml)
 rdkit==2023.9.5           # via nomad-lab (pyproject.toml)
 recommonmark==0.7.1       # via nomad-lab (pyproject.toml)
-requests==2.31.0          # via docker, eelsdbconverter (dependencies/parsers/eelsdb/pyproject.toml), hyperspy, jupyterhub, nomad-lab (pyproject.toml), oauthenticator, optimade, pooch, pybis, pymatgen, python-keycloak, requests-toolbelt, rfc3161ng, sphinx
+requests==2.32.2          # via docker, hyperspy, jupyterhub, oauthenticator, optimade, pooch, pybis, pymatgen, python-keycloak, requests-toolbelt, rfc3161ng, sphinx, eelsdbconverter (dependencies/parsers/eelsdb/pyproject.toml), nomad-lab (pyproject.toml)
 requests-toolbelt==1.0.0  # via python-keycloak
 rfc3161ng==2.1.3          # via nomad-lab (pyproject.toml)
 rfc3339-validator==0.1.4  # via jsonschema
 rfc3987==1.3.8            # via jsonschema
+rosettasciio==0.4         # via hyperspy
 ruamel-yaml==0.18.6       # via jupyter-telemetry, oauthenticator, pymatgen
 ruamel-yaml-clib==0.2.8   # via ruamel-yaml
 runstats==2.0.0           # via nomad-lab (pyproject.toml)
 scikit-image==0.19.3      # via hyperspy, kikuchipy, pyxem
-scikit-learn==1.4.2       # via kikuchipy, matid, nomad-lab (pyproject.toml), pyxem
-scipy==1.13.0             # via ase, diffsims, findiff, griddataformats, hyperspy, kikuchipy, lmfit, matid, mdanalysis, niondata, nionswift, nomad-lab (pyproject.toml), orix, pyfai, pymatgen, pynxtools, pyxem, radioactivedecay, scikit-image, scikit-learn, sparse
+scikit-learn==1.5.0       # via kikuchipy, matid, pyxem, nomad-lab (pyproject.toml)
+scipy==1.13.1             # via ase, diffsims, findiff, griddataformats, hyperspy, kikuchipy, lmfit, matid, mdanalysis, niondata, nionswift, orix, pyfai, pymatgen, pynxtools, pyxem, radioactivedecay, scikit-image, scikit-learn, nomad-lab (pyproject.toml)
 sentinels==1.0.0          # via mongomock
+setuptools==70.0.0        # via radioactivedecay
+shapely==2.0.4            # via pyxem
 silx==2.1.0               # via pyfai
 six==1.16.0               # via asttokens, basicauth, diffpy-structure, elasticsearch-dsl, html5lib, isodate, pybtex, python-dateutil, rdflib, rfc3339-validator, validators
 smmap==5.0.1              # via gitdb
 sniffio==1.3.1            # via anyio, httpx
 snowballstemmer==2.2.0    # via sphinx
 soupsieve==2.5            # via beautifulsoup4
-sparse==0.15.1            # via hyperspy
 spglib==2.4.0             # via asr, matid, phonopy, pymatgen
 sphinx==7.3.7             # via recommonmark
 sphinxcontrib-applehelp==1.0.8  # via sphinx
@@ -260,17 +251,17 @@ starlette==0.27.0         # via fastapi
 structlog==24.1.0         # via nomad-lab (pyproject.toml)
 sympy==1.12               # via findiff, hyperspy, pymatgen, radioactivedecay
 tables==3.9.2             # via ifes-apt-tc-data-modeling
-tabulate==0.8.9           # via nomad-lab (pyproject.toml), pybis, pymatgen
+tabulate==0.8.9           # via pybis, pymatgen, nomad-lab (pyproject.toml)
 tenacity==8.3.0           # via plotly
 texttable==1.7.0          # via pybis
 threadpoolctl==3.5.0      # via mdanalysis, scikit-learn
-tifffile==2024.5.10       # via h5grove, hyperspy, scikit-image
+tifffile==2024.5.22       # via h5grove, scikit-image
 tomli==2.0.1              # via sphinx
-toolz==0.12.1             # via dask, hyperspy, partd
+toolz==0.12.1             # via dask, partd
 toposort==1.10            # via nomad-lab (pyproject.toml)
-tornado==6.4              # via ipykernel, ipyparallel, jupyter-client, jupyterhub
-tqdm==4.66.4              # via diffsims, hyperspy, ipyparallel, kikuchipy, mdanalysis, orix, pyedr, pymatgen, pyxem
-traitlets==5.14.3         # via comm, ipykernel, ipyparallel, ipython, jupyter-client, jupyter-core, jupyter-telemetry, jupyterhub, matplotlib-inline
+tornado==6.4              # via jupyterhub
+tqdm==4.66.4              # via diffsims, hyperspy, kikuchipy, mdanalysis, orix, pyedr, pymatgen, pyxem
+traitlets==5.14.3         # via ipython, jupyter-telemetry, jupyterhub, matplotlib-inline
 traits==6.4.3             # via hyperspy, pyxem
 transforms3d==0.4.1       # via diffsims, pyxem
 types-python-dateutil==2.9.0.20240316  # via arrow
@@ -282,7 +273,7 @@ uncertainties==3.1.7      # via lmfit, pymatgen
 unidecode==1.3.2          # via nomad-lab (pyproject.toml)
 uri-template==1.3.0       # via jsonschema
 urllib3==1.26.18          # via docker, elasticsearch, pybis, requests
-uvicorn[standard]==0.29.0  # via h5grove, nomad-lab (pyproject.toml)
+uvicorn==0.29.0           # via h5grove, nomad-lab (pyproject.toml)
 uvloop==0.19.0            # via uvicorn
 validators==0.18.2        # via nomad-lab (pyproject.toml)
 vine==5.1.0               # via amqp, celery, kombu
@@ -293,11 +284,8 @@ webencodings==0.5.1       # via html5lib
 websockets==12.0          # via uvicorn
 werkzeug==3.0.3           # via flask
 wrapt==1.16.0             # via nomad-lab (pyproject.toml)
-xarray==2023.12.0         # via nomad-lab (pyproject.toml), pynxtools, pynxtools-mpes, pynxtools-xps
-zarr==2.17.1              # via hyperspy
+xarray==2023.12.0         # via pynxtools, pynxtools-mpes, pynxtools-xps, nomad-lab (pyproject.toml)
+zarr==2.17.1              # via pyxem
 zipfile37==0.1.3          # via pynxtools
 zipp==3.18.2              # via importlib-metadata, importlib-resources
 zipstream-new==1.1.5      # via nomad-lab (pyproject.toml)
-
-# The following packages are considered to be unsafe in a requirements file:
-# setuptools
diff --git a/scripts/check_python_dependencies.sh b/scripts/check_python_dependencies.sh
index 2efe00c83cc428f66b923ec8180856719a8876a5..276ed31737058d641120d39e7164d01469dfac69 100755
--- a/scripts/check_python_dependencies.sh
+++ b/scripts/check_python_dependencies.sh
@@ -18,20 +18,18 @@ cd $project_dir
 cp requirements.txt requirements.txt.tmp
 cp requirements-dev.txt requirements-dev.txt.tmp
 
-pip-compile -r -U --resolver=backtracking --annotation-style=line \
+uv pip compile -q -U --annotation-style=line \
     --extra=infrastructure --extra=parsing \
     --output-file=requirements.txt \
-    --pip-args="--prefer-binary" \
     dependencies/nomad-dos-fingerprints/pyproject.toml \
     dependencies/parsers/eelsdb/pyproject.toml \
     pyproject.toml
 
 diff requirements.txt.tmp requirements.txt
 
-pip-compile -r -U --resolver=backtracking --annotation-style=line \
+uv pip compile -q -U --annotation-style=line \
     --extra=dev --extra=infrastructure --extra=parsing \
     --output-file=requirements-dev.txt \
-    --pip-args="--prefer-binary" \
     requirements.txt \
     pyproject.toml
 
diff --git a/scripts/generate_python_dependencies.sh b/scripts/generate_python_dependencies.sh
index 3393d05092e9263dfb4d91f14670f1ece89dd7fa..02890282fd762c6f6c305a2a7ce0e90f8cdf48a2 100755
--- a/scripts/generate_python_dependencies.sh
+++ b/scripts/generate_python_dependencies.sh
@@ -14,18 +14,17 @@ project_dir=$(dirname $(dirname $(realpath $0)))
 
 cd $project_dir
 
-pip-compile -r -U --resolver=backtracking --annotation-style=line \
+
+uv pip compile -U --annotation-style=line \
     --extra=infrastructure --extra=parsing \
     --output-file=requirements.txt \
-    --pip-args="--prefer-binary" \
     dependencies/nomad-dos-fingerprints/pyproject.toml \
     dependencies/parsers/eelsdb/pyproject.toml \
     pyproject.toml
 
-pip-compile -r -U --resolver=backtracking --annotation-style=line \
+uv pip compile -U --annotation-style=line \
     --extra=dev --extra=infrastructure --extra=parsing \
     --output-file=requirements-dev.txt \
-    --pip-args="--prefer-binary" \
     requirements.txt \
     pyproject.toml