diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 41461bb43b0034d5d4c7c45af9e0cbdc51c6cbe8..ee0d9cdade8da1c2b4fba8c4eeeb450ca91a63dd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -41,10 +41,11 @@ workflow: - IMAGE_NAME: nexus-webtop DIR: docker/nexus - IMAGE_NAME: mpes-jupyter-fhi - DIR: docker/mpes/fhi-local - DOCKERFILE: Dockerfile.jupyter + DIR: docker/mpes + DOCKERFILE: Dockerfile.fhi.jupyter - IMAGE_NAME: mpes-webtop-fhi - DIR: docker/mpes/fhi-local + DIR: docker/mpes + DOCKERFILE: Dockerfile.fhi stages: - build diff --git a/docker/mpes/02-exec-igor b/docker/mpes/02-exec-igor new file mode 100644 index 0000000000000000000000000000000000000000..91c751db80cb6f3279f2adcf8638f1550073a526 --- /dev/null +++ b/docker/mpes/02-exec-igor @@ -0,0 +1,4 @@ +#!/usr/bin/with-contentenv bash + +# Add the command to run an app on startup +echo "wine /config/.wine/drive_c/Program\ Files/WaveMetrics/Igor\ Pro\ 8\ Folder/IgorBinaries_x64/Igor64.exe" > /config/.config/openbox/autostart \ No newline at end of file diff --git a/docker/mpes/fhi-local/30-config b/docker/mpes/30-config similarity index 100% rename from docker/mpes/fhi-local/30-config rename to docker/mpes/30-config diff --git a/docker/mpes/Dockerfile b/docker/mpes/Dockerfile index b0722888a12f56f7d0fa525eff7f2ac3c8514bd5..42a9940dc066c41af15d2f2881579713514a08b4 100644 --- a/docker/mpes/Dockerfile +++ b/docker/mpes/Dockerfile @@ -1,14 +1,17 @@ FROM gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub/webtop:v0.0.1 -COPY requirements.webtop.txt ./ +COPY requirements.webtop.in ./ +COPY requirements.jupyter.in ./ RUN apt-get update -y \ - && apt-get install -y git pip qt5-default python3-pyqt5 pyqt5-dev-tools -RUN apt-get install -y cargo unzip -RUN pip install -r requirements.webtop.txt + && apt-get install -y git pip qt5-default python3-pyqt5 pyqt5-dev-tools cargo unzip \ + && apt-get clean && rm -rf /var/lib/apt/lists/* +RUN pip install -r requirements.jupyter.in +RUN pip install -r requirements.webtop.in RUN jupyter nbextension enable --py widgetsnbextension \ && jupyter serverextension enable jupyterlab_h5web \ && jupyter lab build -RUN rm requirements.webtop.txt +RUN rm requirements.webtop.in +RUN rm requirements.jupyter.in COPY 02-exec-cmd /config/custom-cont-init.d/02-exec-cmd WORKDIR /config diff --git a/docker/mpes/Dockerfile.fhi b/docker/mpes/Dockerfile.fhi new file mode 100644 index 0000000000000000000000000000000000000000..b658cd08af8938755de96d940155af4c792eb1fd --- /dev/null +++ b/docker/mpes/Dockerfile.fhi @@ -0,0 +1,25 @@ +FROM gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub/webtop:v0.0.1 + +COPY requirements.webtop.in ./ +COPY requirements.jupyter.in ./ +RUN apt-get update -y \ + && apt-get install -y git pip qt5-default python3-pyqt5 pyqt5-dev-tools cargo unzip \ + && apt-get clean && rm -rf /var/lib/apt/lists/* +RUN pip install -r requirements.jupyter.in +RUN pip install -r requirements.webtop.in +RUN jupyter nbextension enable --py widgetsnbextension \ + && jupyter serverextension enable jupyterlab_h5web \ + && jupyter lab build +RUN rm requirements.webtop.in +RUN rm requirements.jupyter.in + +COPY 02-exec-cmd /config/custom-cont-init.d/02-exec-cmd +WORKDIR /config + +ENV PGID=5050 +COPY 30-config /etc/cont-init.d/30-config +RUN ln -s /config/pcshare /mnt/pcshare +RUN mkdir /scratch +RUN ln -s /config/localDataStore /scratch/localDataStore +RUN mkdir /etc/sed +RUN ln -s /mnt/pcshare/sed/config.yaml /etc/sed/config.yaml diff --git a/docker/mpes/Dockerfile.fhi.jupyter b/docker/mpes/Dockerfile.fhi.jupyter new file mode 100644 index 0000000000000000000000000000000000000000..7084a058fdb86b360eb171523af14365eadacfa7 --- /dev/null +++ b/docker/mpes/Dockerfile.fhi.jupyter @@ -0,0 +1,27 @@ +FROM jupyter/scipy-notebook:2023-04-10 + +ENV HOME=/home/jovyan +WORKDIR $HOME + +COPY --chown=${NB_UID}:${NB_GID} requirements.jupyter.txt ./ +RUN pip install --no-cache-dir -r requirements.jupyter.txt \ + && jupyter lab build \ + && jupyter nbextension enable --py widgetsnbextension \ + && jupyter serverextension enable jupyterlab_h5web \ + && fix-permissions "${CONDA_DIR}" \ + && fix-permissions "/home/${NB_USER}" +RUN rm requirements.jupyter.txt + +USER root +RUN apt-get update --yes && \ + apt-get install --yes --no-install-recommends \ + unzip curl && \ + apt-get clean && rm -rf /var/lib/apt/lists/* +RUN groupadd -r metis -g 5050 && usermod -aG metis $NB_USER +RUN usermod -g metis $NB_USER +RUN ln -s ${HOME}/pcshare /mnt/pcshare +RUN mkdir /scratch +RUN ln -s ${HOME}/localDataStore /scratch/localDataStore +RUN mkdir /etc/sed +RUN ln -s /mnt/pcshare/sed/config.yaml /etc/sed/config.yaml +USER $NB_UID diff --git a/docker/mpes/Dockerfile.igor b/docker/mpes/Dockerfile.igor new file mode 100644 index 0000000000000000000000000000000000000000..067a6e322f1866e17482465582e6d0bc52487a9a --- /dev/null +++ b/docker/mpes/Dockerfile.igor @@ -0,0 +1,15 @@ +FROM gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub/webtop:v0.0.1 + +RUN apt-get update -y && apt-get install -y wget +RUN dpkg --add-architecture i386 && \ + mkdir -pm755 /etc/apt/keyrings && \ + wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key && \ + wget -nc -P /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -sc)/winehq-$(lsb_release -sc).sources && \ + apt-get update -y && \ + apt-get install -y --install-recommends winehq-staging +RUN apt-get install -y git pip qt5-default python3-pyqt5 pyqt5-dev-tools cargo unzip \ + && apt-get clean && rm -rf /var/lib/apt/lists/* + +COPY 02-exec-igor /config/custom-cont-init.d/02-exec-cmd +COPY wine /config/.wine +WORKDIR /config diff --git a/docker/mpes/Dockerfile.jupyter b/docker/mpes/Dockerfile.jupyter index 151e2661243cb199edf135f06996d795faa88f0e..c6b09244fc9c378af669608eef9a700c5fe3507a 100644 --- a/docker/mpes/Dockerfile.jupyter +++ b/docker/mpes/Dockerfile.jupyter @@ -3,11 +3,13 @@ FROM jupyter/scipy-notebook:2023-04-10 ENV HOME=/home/jovyan WORKDIR $HOME -COPY requirements.jupyter.txt ./ -RUN pip install -r requirements.jupyter.txt \ +COPY --chown=${NB_UID}:${NB_GID} requirements.jupyter.txt ./ +RUN pip install --no-cache-dir -r requirements.jupyter.txt \ && jupyter lab build \ && jupyter nbextension enable --py widgetsnbextension \ - && jupyter serverextension enable jupyterlab_h5web + && jupyter serverextension enable jupyterlab_h5web \ + && fix-permissions "${CONDA_DIR}" \ + && fix-permissions "/home/${NB_USER}" RUN rm requirements.jupyter.txt USER root diff --git a/docker/mpes/fhi-local/Dockerfile b/docker/mpes/fhi-local/Dockerfile deleted file mode 100644 index 484a0a89bdc1d10ddfd3d68886f38c8757095828..0000000000000000000000000000000000000000 --- a/docker/mpes/fhi-local/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub/mpes-webtop:v0.0.1 - -ENV PGID=5050 -COPY 30-config /etc/cont-init.d/30-config -WORKDIR /config diff --git a/docker/mpes/fhi-local/Dockerfile.jupyter b/docker/mpes/fhi-local/Dockerfile.jupyter deleted file mode 100644 index 9fd332111ab4e86c9ef572a67317f25bb51ec604..0000000000000000000000000000000000000000 --- a/docker/mpes/fhi-local/Dockerfile.jupyter +++ /dev/null @@ -1,6 +0,0 @@ -FROM gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub/mpes-jupyter:v0.0.1 - -USER root -RUN groupadd -r metis -g 5050 && usermod -aG metis $NB_USER -RUN usermod -g metis $NB_USER -USER $NB_UID diff --git a/docker/mpes/generate_requirements.sh b/docker/mpes/generate_requirements.sh index 8292decdf51f5d1d076313e4cb1a94c344578598..7e4cb735463fd87a3c490373bd9a6d2494913841 100755 --- a/docker/mpes/generate_requirements.sh +++ b/docker/mpes/generate_requirements.sh @@ -1,8 +1,8 @@ #!/bin/bash docker run --rm --env HOME=/home/jovyan --mount type=bind,source="$(pwd)",target=/home/jovyan \ --platform linux/amd64 --entrypoint bash jupyter/scipy-notebook:2023-04-10 -c \ - "pip install pip-tools; pip-compile --resolver=backtracking --upgrade --output-file requirements.jupyter.txt requirements.jupyter.in" + "pip install pip-tools; pip-compile --verbose --resolver=backtracking --upgrade --output-file requirements.jupyter.txt requirements.jupyter.in" -docker run --rm --env HOME=/config --mount type=bind,source="$(pwd)",target=/config \ +docker run --rm --env HOME=/config --mount type=bind,source="$(pwd)",target=/config/requirements \ --platform linux/amd64 --entrypoint bash gitlab-registry.mpcdf.mpg.de/nomad-lab/nomad-remote-tools-hub/webtop:v0.0.1 -c \ - "pip install pip-tools; pip-compile --output-file=requirements.webtop.txt --resolver=backtracking requirements.jupyter.txt requirements.webtop.in" \ No newline at end of file + "apt-get update; apt-get install -y pip git; pip install pip-tools; cd requirements; pip-compile --verbose --output-file=requirements.webtop.txt --resolver=backtracking requirements.jupyter.in requirements.webtop.in" \ No newline at end of file diff --git a/docker/mpes/requirements.jupyter.in b/docker/mpes/requirements.jupyter.in index cb9b252615d3645324acf336676f940e2066abe2..de8a85e682285a77479b54ecf461a23be54160f2 100644 --- a/docker/mpes/requirements.jupyter.in +++ b/docker/mpes/requirements.jupyter.in @@ -1,11 +1,12 @@ nodejs -pynxtools>=0.0.2 +pynxtools>0.0.3 ipywidgets<8.0.0,>=7.0.1 h5glance>=0.8 h5grove>=1.1.0 -jupyterlab>=3.2.9 +jupyterlab<4.0.0,>=3.2.9 jupyterlab_h5web[full]>=6.0.0 punx>=0.2.5 mpes>=1.1.4 silx>=1.1.2 -numpy<1.24 \ No newline at end of file +numpy<1.24 +git+https://github.com/OpenCOMPES/sed.git@mpes-merged \ No newline at end of file diff --git a/docker/mpes/requirements.jupyter.txt b/docker/mpes/requirements.jupyter.txt index 4bf3f89baf04ff79a60af98fe2f91f26b3ae3a73..0a5d4fd5711b75adc3a3daed58a9f186af937bb1 100644 --- a/docker/mpes/requirements.jupyter.txt +++ b/docker/mpes/requirements.jupyter.txt @@ -4,6 +4,10 @@ # # pip-compile --output-file=requirements.jupyter.txt requirements.jupyter.in # +aiofiles==22.1.0 + # via ypy-websocket +aiosqlite==0.19.0 + # via ypy-websocket alabaster==0.7.13 # via sphinx anyio==3.7.1 @@ -54,6 +58,7 @@ bokeh==2.4.3 # via # dask # mpes + # sed cattrs==23.1.2 # via requests-cache certifi==2023.7.22 @@ -72,20 +77,22 @@ cloudpickle==2.2.1 # dask # distributed comm==0.1.3 - # via ipykernel + # via + # ipykernel + # ipywidgets commonmark==0.9.1 # via recommonmark contourpy==1.1.0 # via matplotlib coverage==7.2.7 # via mpes -cramjam==2.6.2 +cramjam==2.7.0 # via fastparquet cycler==0.11.0 # via matplotlib cython==3.0.0 # via tables -dask[array,complete,dataframe,diagnostics,distributed]==2023.7.1 +dask[array,complete]==2022.12.1 # via # distributed # hyperspy @@ -93,6 +100,7 @@ dask[array,complete,dataframe,diagnostics,distributed]==2023.7.1 # mpes # orix # pyxem + # sed debugpy==1.6.7 # via ipykernel decorator==5.1.1 @@ -114,7 +122,7 @@ diffsims==0.5.2 # pyxem dill==0.3.7 # via hyperspy -distributed==2023.7.1 +distributed==2022.12.1 # via dask docutils==0.18.1 # via @@ -137,13 +145,17 @@ fabio==2023.6.0 # pyfai # silx fastdtw==0.3.4 - # via mpes + # via + # mpes + # sed fasteners==0.18 # via zarr fastjsonschema==2.18.0 # via nbformat -fastparquet==2023.7.0 - # via mpes +fastparquet==0.8.3 + # via + # mpes + # sed flatdict==4.0.1 # via pynxtools fonttools==4.41.1 @@ -184,6 +196,7 @@ h5py==3.9.0 # punx # pyfai # pynxtools + # sed # silx hdf5plugin==4.1.3 # via jupyterlab-h5web @@ -215,36 +228,39 @@ imageio==2.27.0 imagesize==1.4.1 # via sphinx importlib-metadata==6.8.0 - # via - # dask - # hyperspy + # via hyperspy ipykernel==6.25.0 # via # ipyparallel - # ipywidgets # nbclassic # notebook +ipympl==0.9.3 + # via sed ipyparallel==8.6.1 # via hyperspy ipython==8.14.0 # via # hyperspy # ipykernel + # ipympl # ipyparallel # ipywidgets # jupyterlab ipython-genutils==0.2.0 # via + # ipympl # ipywidgets # nbclassic # notebook -ipywidgets==7.7.5 +ipywidgets==7.8.0 # via # -r requirements.jupyter.in + # ipympl # pyxem + # sed isoduration==20.11.0 # via jsonschema -jedi==0.18.2 +jedi==0.19.0 # via ipython jinja2==3.1.2 # via @@ -260,7 +276,9 @@ jinja2==3.1.2 # notebook # sphinx joblib==1.3.1 - # via scikit-learn + # via + # scikit-learn + # sed json5==0.9.14 # via jupyterlab-server jsonpointer==2.4 @@ -291,30 +309,37 @@ jupyter-core==5.3.1 # nbconvert # nbformat # notebook -jupyter-events==0.6.3 - # via jupyter-server +jupyter-events==0.7.0 + # via + # jupyter-server + # jupyter-server-fileid jupyter-server==2.7.0 # via + # jupyter-server-fileid # jupyterlab # jupyterlab-h5web # jupyterlab-server # nbclassic # notebook-shim +jupyter-server-fileid==0.9.0 + # via jupyter-server-ydoc jupyter-server-terminals==0.4.4 # via jupyter-server -jupyterlab==3.5.3 +jupyter-server-ydoc==0.8.0 + # via jupyterlab +jupyter-ydoc==0.2.5 # via - # -r requirements.jupyter.in - # pynxtools + # jupyter-server-ydoc + # jupyterlab +jupyterlab==3.6.5 + # via -r requirements.jupyter.in jupyterlab-h5web[full]==10.0.0 - # via - # -r requirements.jupyter.in - # pynxtools + # via -r requirements.jupyter.in jupyterlab-pygments==0.2.2 # via nbconvert jupyterlab-server==2.24.0 # via jupyterlab -jupyterlab-widgets==1.1.4 +jupyterlab-widgets==1.1.5 # via ipywidgets kikuchipy==0.8.7 # via pynxtools @@ -324,12 +349,13 @@ lark==1.1.7 # via pynxtools lazy-loader==0.3 # via scikit-image -llvmlite==0.40.1 +llvmlite==0.38.1 # via numba lmfit==1.2.2 # via # mpes # pyxem + # sed locket==1.0.0 # via # distributed @@ -338,8 +364,6 @@ lxml==4.9.3 # via # punx # pyresttable -lz4==4.3.2 - # via dask markupsafe==2.1.3 # via # jinja2 @@ -349,6 +373,7 @@ matplotlib==3.7.2 # ase # diffsims # hyperspy + # ipympl # kikuchipy # matplotlib-scalebar # mpes @@ -356,6 +381,7 @@ matplotlib==3.7.2 # pyfai # pyxem # radioactivedecay + # sed # symmetrize matplotlib-inline==0.1.6 # via @@ -377,6 +403,7 @@ natsort==8.4.0 # via # hyperspy # mpes + # sed nbclassic==1.0.0 # via # jupyterlab @@ -388,14 +415,14 @@ nbconvert==7.7.3 # jupyter-server # nbclassic # notebook -nbformat==5.9.1 +nbformat==5.9.2 # via # jupyter-server # nbclassic # nbclient # nbconvert # notebook -nest-asyncio==1.5.6 +nest-asyncio==1.5.7 # via # ipykernel # jupyter-client @@ -431,7 +458,7 @@ notebook==6.5.5 # widgetsnbextension notebook-shim==0.2.3 # via nbclassic -numba==0.57.1 +numba==0.55.2 # via # diffsims # hyperspy @@ -439,6 +466,7 @@ numba==0.57.1 # mpes # orix # pyxem + # sed # sparse numcodecs==0.11.0 # via zarr @@ -447,7 +475,7 @@ numexpr==2.8.4 # hyperspy # pyfai # tables -numpy==1.23.5 +numpy==1.21.6 # via # -r requirements.jupyter.in # ase @@ -465,6 +493,7 @@ numpy==1.23.5 # hyperspy # ifes-apt-tc-data-modeling # imageio + # ipympl # kikuchipy # lmfit # matplotlib @@ -482,7 +511,6 @@ numpy==1.23.5 # pandas # photutils # punx - # pyarrow # pyerfa # pyfai # pynxtools @@ -493,6 +521,7 @@ numpy==1.23.5 # scikit-image # scikit-learn # scipy + # sed # silx # sparse # symmetrize @@ -535,14 +564,14 @@ packaging==23.1 # scikit-image # sphinx # tables - # xarray -pandas==2.0.3 +pandas==1.5.3 # via # dask # fastparquet # ifes-apt-tc-data-modeling # mpes # pynxtools + # sed # xarray pandocfilters==1.5.0 # via nbconvert @@ -562,12 +591,13 @@ pillow==10.0.0 # via # bokeh # imageio + # ipympl # matplotlib # nionswift # scikit-image pint==0.22 # via hyperspy -platformdirs==3.9.1 +platformdirs==3.10.0 # via # jupyter-core # pooch @@ -592,6 +622,7 @@ psutil==5.9.5 # ipykernel # ipyparallel # pyxem + # sed ptyprocess==0.7.0 # via # pexpect @@ -602,8 +633,6 @@ pure-eval==0.2.2 # via stack-data py-cpuinfo==9.0.0 # via tables -pyarrow==12.0.1 - # via dask pycifrw==4.4.5 # via diffpy-structure pycparser==2.21 @@ -617,8 +646,10 @@ pygments==2.15.1 # ipython # nbconvert # sphinx -pynxtools==0.0.3 - # via -r requirements.jupyter.in +pynxtools==0.0.4 + # via + # -r requirements.jupyter.in + # sed pyparsing==3.0.9 # via matplotlib pyresttable==2020.0.8 @@ -654,6 +685,7 @@ pyyaml==6.0.1 # jupyter-events # kikuchipy # pynxtools + # sed pyzmq==24.0.1 # via # ipykernel @@ -670,6 +702,7 @@ referencing==0.30.0 # via # jsonschema # jsonschema-specifications + # jupyter-events requests==2.31.0 # via # hyperspy @@ -722,8 +755,11 @@ scipy==1.8.1 # radioactivedecay # scikit-image # scikit-learn + # sed # sparse # symmetrize +sed @ git+https://github.com/OpenCOMPES/sed.git@mpes-merged + # via -r requirements.jupyter.in send2trash==1.8.2 # via # jupyter-server @@ -780,7 +816,9 @@ sphinxcontrib-serializinghtml==1.1.5 stack-data==0.6.2 # via ipython symmetrize==0.5.5 - # via mpes + # via + # mpes + # sed sympy==1.12 # via # hyperspy @@ -799,11 +837,13 @@ threadpoolctl==3.2.0 # via # mpes # scikit-learn -tifffile==2023.7.18 + # sed +tifffile==2022.10.10 # via # h5grove # hyperspy # scikit-image + # sed tinycss2==1.2.1 # via nbconvert tomli==2.0.1 @@ -834,10 +874,12 @@ tqdm==4.65.0 # kikuchipy # mpes # orix + # sed traitlets==5.9.0 # via # comm # ipykernel + # ipympl # ipyparallel # ipython # ipywidgets @@ -863,9 +905,7 @@ typing-extensions==4.7.1 # cattrs # pint tzdata==2023.3 - # via - # pandas - # pytz-deprecation-shim + # via pytz-deprecation-shim tzlocal==4.3 # via # nionswift @@ -893,12 +933,19 @@ webencodings==0.5.1 # tinycss2 websocket-client==1.6.1 # via jupyter-server -widgetsnbextension==3.6.4 +widgetsnbextension==3.6.5 # via ipywidgets -xarray==2023.7.0 +xarray==0.20.2 # via # mpes # pynxtools + # sed +y-py==0.6.0 + # via + # jupyter-ydoc + # ypy-websocket +ypy-websocket==0.8.4 + # via jupyter-server-ydoc zarr==2.16.0 # via hyperspy zict==3.0.0 diff --git a/docker/mpes/requirements.webtop.in b/docker/mpes/requirements.webtop.in index 8ce582e35540fcfdf31fcc73066007d1292bf9f4..b90a20e1cfb8a5fdbfa3e5b67b4088f3a11ce2a0 100644 --- a/docker/mpes/requirements.webtop.in +++ b/docker/mpes/requirements.webtop.in @@ -1,6 +1,4 @@ git+https://github.com/FAIRmat-Experimental/arpes.git -jupyterlab>=3.2.9 h5py>=3.5.0 nexpy>=0.14.1 -silx[full]>=1.0.0 -numpy<1.24 \ No newline at end of file +silx[full]>=1.0.0 \ No newline at end of file diff --git a/docker/mpes/requirements.webtop.txt b/docker/mpes/requirements.webtop.txt deleted file mode 100644 index 7923ca9583c37d520f980ebdd663534aaa68955c..0000000000000000000000000000000000000000 --- a/docker/mpes/requirements.webtop.txt +++ /dev/null @@ -1,957 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.8 -# by the following command: -# -# pip-compile --output-file=requirements.webtop.txt --resolver=backtracking requirements.jupyter.in requirements.webtop.in -# -alabaster==0.7.13 - # via sphinx -ansi2html==1.8.0 - # via nexpy -anyio==3.6.2 - # via jupyter-server -argon2-cffi==21.3.0 - # via - # jupyter-server - # nbclassic - # notebook -argon2-cffi-bindings==21.2.0 - # via argon2-cffi -arpes @ git+https://github.com/FAIRmat-Experimental/arpes.git - # via -r requirements.webtop.in -asciitree==0.3.3 - # via zarr -ase==3.19.0 - # via - # arpes - # ifes-apt-tc-data-modeling - # pynxtools -asteval==0.9.29 - # via lmfit -astropy==5.2.2 - # via - # arpes - # mpes - # photutils - # symmetrize -asttokens==2.2.1 - # via stack-data -attrs==23.1.0 - # via - # cattrs - # jsonschema - # requests-cache -babel==2.12.1 - # via - # jupyterlab-server - # sphinx -backcall==0.2.0 - # via ipython -beautifulsoup4==4.12.2 - # via nbconvert -bleach==6.0.0 - # via nbconvert -blosc2==2.0.0 - # via tables -bokeh==2.4.3 - # via - # arpes - # dask - # mpes -cattrs==22.2.0 - # via requests-cache -certifi==2023.5.7 - # via requests -cffi==1.15.1 - # via argon2-cffi-bindings -cftime==1.6.2 - # via netcdf4 -charset-normalizer==3.1.0 - # via requests -click==8.1.3 - # via - # dask - # distributed - # pynxtools -cloudpickle==2.2.1 - # via - # dask - # distributed -colorama==0.4.6 - # via arpes -colorcet==3.0.1 - # via arpes -comm==0.1.3 - # via ipykernel -commonmark==0.9.1 - # via recommonmark -contourpy==1.0.7 - # via matplotlib -coverage==7.2.5 - # via mpes -cramjam==2.6.2 - # via fastparquet -cycler==0.11.0 - # via matplotlib -cython==0.29.34 - # via tables -dask[array,complete,dataframe,diagnostics,distributed]==2023.4.1 - # via - # distributed - # hyperspy - # kikuchipy - # mpes - # orix - # pyxem -debugpy==1.6.7 - # via ipykernel -decorator==5.1.1 - # via - # ipyparallel - # ipython -deepdish==0.3.7 - # via mpes -defusedxml==0.7.1 - # via nbconvert -diffpy-structure==3.1.0 - # via - # diffsims - # kikuchipy - # orix -diffsims==0.5.1 - # via - # kikuchipy - # pyxem -dill==0.3.6 - # via - # arpes - # hyperspy -distributed==2023.4.1 - # via dask -docutils==0.18.1 - # via - # recommonmark - # sphinx - # sphinx-rtd-theme -entrypoints==0.4 - # via - # ipyparallel - # numcodecs -exceptiongroup==1.1.1 - # via cattrs -executing==1.2.0 - # via stack-data -fabio==2023.4.1 - # via - # pyfai - # silx -fastdtw==0.3.4 - # via mpes -fasteners==0.18 - # via zarr -fastjsonschema==2.16.3 - # via nbformat -fastparquet==2023.4.0 - # via mpes -flatdict==4.0.1 - # via pynxtools -fonttools==4.39.4 - # via matplotlib -fsspec==2023.5.0 - # via - # dask - # fastparquet - # hyperspy -funcy==2.0 - # via mpes -future==0.18.3 - # via uncertainties -gitdb==4.0.10 - # via gitpython -gitpython==3.1.31 - # via pynxtools -h5glance==0.8.1 - # via -r requirements.jupyter.in -h5grove==1.3.0 - # via - # -r requirements.jupyter.in - # jupyterlab-h5web -h5py==3.8.0 - # via - # -r requirements.webtop.in - # arpes - # h5glance - # h5grove - # hdf5plugin - # hyperspy - # ifes-apt-tc-data-modeling - # jupyterlab-h5web - # kikuchipy - # mpes - # nexpy - # nexusformat - # orix - # punx - # pyfai - # pynxtools - # silx -hdf5plugin==4.1.1 - # via - # jupyterlab-h5web - # nexusformat - # silx -htmlgen==2.0.0 - # via h5glance -hyperspy==1.7.5 - # via - # kikuchipy - # pynxtools - # pyxem -idna==3.4 - # via - # anyio - # requests -ifes-apt-tc-data-modeling==0.0.8 - # via pynxtools -igor==0.3 - # via mpes -imageio==2.27.0 - # via - # arpes - # hyperspy - # kikuchipy - # mpes - # scikit-image -imagesize==1.4.1 - # via sphinx -importlib-metadata==6.6.0 - # via - # dask - # hyperspy - # jupyter-client - # jupyterlab-server - # nbconvert - # nexpy - # numba - # sphinx -importlib-resources==5.12.0 - # via - # jsonschema - # matplotlib - # radioactivedecay -ipykernel==6.23.0 - # via - # ipyparallel - # ipywidgets - # nbclassic - # nexpy - # notebook - # qtconsole -ipyparallel==8.6.1 - # via hyperspy -ipython==8.12.2 - # via - # hyperspy - # ipykernel - # ipyparallel - # ipywidgets - # jupyterlab - # nexpy -ipython-genutils==0.2.0 - # via - # ipywidgets - # nbclassic - # notebook - # qtconsole -ipywidgets==7.7.5 - # via - # -r requirements.jupyter.in - # arpes - # pyxem -jedi==0.18.2 - # via ipython -jinja2==3.1.2 - # via - # bokeh - # dask - # distributed - # hyperspy - # jupyter-server - # jupyterlab - # jupyterlab-server - # nbclassic - # nbconvert - # notebook - # sphinx -joblib==1.2.0 - # via scikit-learn -json5==0.9.11 - # via jupyterlab-server -jsonschema==4.17.3 - # via - # jupyterlab-server - # nbformat -jupyter-client==8.2.0 - # via - # ipykernel - # ipyparallel - # jupyter-server - # nbclassic - # nbclient - # notebook - # qtconsole -jupyter-core==5.3.0 - # via - # ipykernel - # jupyter-client - # jupyter-server - # jupyterlab - # nbclassic - # nbclient - # nbconvert - # nbformat - # notebook - # qtconsole -jupyter-server==1.24.0 - # via - # jupyterlab - # jupyterlab-h5web - # jupyterlab-server - # nbclassic - # notebook-shim -jupyterlab==3.5.3 - # via - # -r requirements.jupyter.in - # -r requirements.webtop.in - # ifes-apt-tc-data-modeling - # pynxtools -jupyterlab-h5web[full]==7.1.1 - # via - # -r requirements.jupyter.in - # ifes-apt-tc-data-modeling - # pynxtools -jupyterlab-pygments==0.2.2 - # via nbconvert -jupyterlab-server==2.22.1 - # via jupyterlab -jupyterlab-widgets==1.1.4 - # via ipywidgets -kikuchipy==0.8.4 - # via pynxtools -kiwisolver==1.4.4 - # via matplotlib -lark==1.1.5 - # via pynxtools -lazy-loader==0.2 - # via scikit-image -llvmlite==0.40.0 - # via numba -lmfit==1.2.1 - # via - # arpes - # mpes - # nexpy - # pyxem -locket==1.0.0 - # via - # distributed - # partd -lxml==4.9.2 - # via - # punx - # pyresttable -lz4==4.3.2 - # via dask -mako==1.2.4 - # via silx -markupsafe==2.1.2 - # via - # jinja2 - # mako - # nbconvert -matplotlib==3.7.1 - # via - # arpes - # ase - # diffsims - # hyperspy - # kikuchipy - # matplotlib-scalebar - # mpes - # mplcursors - # nexpy - # orix - # pyfai - # pyxem - # radioactivedecay - # silx - # symmetrize -matplotlib-inline==0.1.6 - # via - # ipykernel - # ipython -matplotlib-scalebar==0.8.1 - # via orix -mistune==2.0.5 - # via nbconvert -mpes==1.1.4 - # via -r requirements.jupyter.in -mplcursors==0.5.2 - # via nexpy -mpmath==1.3.0 - # via sympy -msgpack==1.0.5 - # via - # blosc2 - # distributed -natsort==8.3.1 - # via - # hyperspy - # mpes -nbclassic==1.0.0 - # via - # jupyterlab - # notebook -nbclient==0.7.4 - # via nbconvert -nbconvert==7.4.0 - # via - # jupyter-server - # nbclassic - # notebook -nbformat==5.8.0 - # via - # jupyter-server - # nbclassic - # nbclient - # nbconvert - # notebook -nest-asyncio==1.5.6 - # via - # ipykernel - # nbclassic - # notebook -netcdf4==1.6.3 - # via arpes -networkx==3.1 - # via - # radioactivedecay - # scikit-image -nexpy==1.0.3 - # via -r requirements.webtop.in -nexusformat==1.0.1 - # via nexpy -nodejs==0.1.1 - # via -r requirements.jupyter.in -nose==1.3.7 - # via mpes -notebook==6.5.4 - # via - # jupyterlab - # widgetsnbextension -notebook-shim==0.2.3 - # via nbclassic -numba==0.57.0 - # via - # arpes - # diffsims - # hyperspy - # kikuchipy - # mpes - # orix - # pyxem - # sparse -numcodecs==0.11.0 - # via zarr -numexpr==2.8.4 - # via - # hyperspy - # pyfai - # tables -numpy==1.23.5 - # via - # -r requirements.webtop.in - # arpes - # ase - # astropy - # bokeh - # cftime - # contourpy - # dask - # deepdish - # diffsims - # fabio - # fastdtw - # fastparquet - # h5grove - # h5py - # hyperspy - # ifes-apt-tc-data-modeling - # imageio - # kikuchipy - # lmfit - # matplotlib - # mpes - # netcdf4 - # nexpy - # nexusformat - # numba - # numcodecs - # numexpr - # numpy-quaternion - # opencv-python - # orix - # pandas - # photutils - # punx - # pyarrow - # pyerfa - # pyfai - # pynxtools - # pyopencl - # pyqtgraph - # pyresttable - # pywavelets - # pyxem - # radioactivedecay - # scikit-image - # scikit-learn - # scipy - # silx - # sparse - # symmetrize - # tables - # tifffile - # xarray - # zarr -numpy-quaternion==2022.4.3 - # via orix -opencv-python==4.7.0.72 - # via - # mpes - # symmetrize -optional-django==0.1.0 - # via nodejs -orix==0.11.1 - # via - # diffsims - # kikuchipy - # pyxem -orjson==3.8.12 - # via h5grove -packaging==23.1 - # via - # arpes - # astropy - # bokeh - # dask - # distributed - # fastparquet - # hyperspy - # ipykernel - # jupyter-server - # jupyterlab - # jupyterlab-server - # matplotlib - # nbconvert - # pooch - # qtconsole - # qtpy - # scikit-image - # sphinx - # tables - # xarray -pandas==2.0.1 - # via - # arpes - # dask - # fastparquet - # ifes-apt-tc-data-modeling - # mpes - # pynxtools - # xarray -pandocfilters==1.5.0 - # via nbconvert -param==1.13.0 - # via pyct -parso==0.8.3 - # via jedi -partd==1.4.0 - # via dask -pexpect==4.8.0 - # via ipython -photutils==1.7.0 - # via - # mpes - # symmetrize -pickleshare==0.7.5 - # via ipython -pillow==9.5.0 - # via - # bokeh - # imageio - # matplotlib - # nexpy - # scikit-image - # silx -pint==0.21 - # via - # arpes - # hyperspy -pkgutil-resolve-name==1.3.10 - # via jsonschema -platformdirs==3.5.0 - # via - # jupyter-core - # pooch - # pyopencl - # pytools - # requests-cache -pooch==1.7.0 - # via - # kikuchipy - # orix -prettytable==3.7.0 - # via hyperspy -prometheus-client==0.16.0 - # via - # jupyter-server - # nbclassic - # notebook -prompt-toolkit==3.0.38 - # via ipython -psutil==5.9.5 - # via - # diffsims - # distributed - # ipykernel - # ipyparallel - # pyxem -ptyprocess==0.7.0 - # via - # pexpect - # terminado -punx==0.3.0 - # via -r requirements.jupyter.in -pure-eval==0.2.2 - # via stack-data -py-cpuinfo==9.0.0 - # via tables -pyarrow==12.0.0 - # via dask -pycifrw==4.4.5 - # via diffpy-structure -pycparser==2.21 - # via cffi -pyct==0.5.0 - # via colorcet -pyerfa==2.0.0.3 - # via astropy -pyfai==2023.3.0 - # via pyxem -pygments==2.15.1 - # via - # ipython - # nbconvert - # qtconsole - # sphinx -pylatexenc==2.10 - # via nexpy -pynxtools==0.0.2 - # via -r requirements.jupyter.in -pyopencl==2023.1 - # via silx -pyopengl==3.1.6 - # via silx -pyparsing==3.0.9 - # via matplotlib -pyqt5==5.15.0 - # via - # arpes - # silx -pyqt5-sip==12.12.1 - # via pyqt5 -pyqtgraph==0.12.4 - # via arpes -pyresttable==2020.0.8 - # via punx -pyrsistent==0.19.3 - # via jsonschema -python-dateutil==2.8.2 - # via - # hyperspy - # ipyparallel - # jupyter-client - # matplotlib - # pandas - # silx -pytools==2022.1.14 - # via pyopencl -pytz==2023.3 - # via - # babel - # pandas - # pynxtools -pywavelets==1.4.1 - # via scikit-image -pyxem==0.15.0 - # via pynxtools -pyyaml==6.0 - # via - # astropy - # bokeh - # dask - # distributed - # hyperspy - # kikuchipy - # pynxtools -pyzmq==25.0.2 - # via - # ipykernel - # ipyparallel - # jupyter-client - # jupyter-server - # nbclassic - # notebook - # qtconsole -qtconsole==5.4.3 - # via - # nexpy - # silx -qtpy==2.3.1 - # via - # nexpy - # qtconsole -radioactivedecay==0.4.17 - # via ifes-apt-tc-data-modeling -recommonmark==0.7.1 - # via symmetrize -requests==2.30.0 - # via - # hyperspy - # jupyterlab-server - # pooch - # punx - # pynxtools - # requests-cache - # sphinx -requests-cache==1.0.1 - # via pynxtools -rx==3.2.0 - # via arpes -scikit-image==0.20.0 - # via - # hyperspy - # kikuchipy - # mpes - # pyxem - # symmetrize -scikit-learn==1.2.2 - # via - # arpes - # kikuchipy - # pyxem -scipy==1.8.1 - # via - # arpes - # ase - # deepdish - # diffsims - # hyperspy - # kikuchipy - # lmfit - # mpes - # nexpy - # nexusformat - # orix - # pyfai - # pynxtools - # pyxem - # radioactivedecay - # scikit-image - # scikit-learn - # silx - # sparse - # symmetrize -send2trash==1.8.2 - # via - # jupyter-server - # nbclassic - # notebook -silx[full]==1.1.2 - # via - # -r requirements.jupyter.in - # -r requirements.webtop.in - # mpes - # pyfai -six==1.16.0 - # via - # asttokens - # bleach - # diffpy-structure - # python-dateutil - # url-normalize -smmap==5.0.0 - # via gitdb -sniffio==1.3.0 - # via anyio -snowballstemmer==2.2.0 - # via sphinx -sortedcontainers==2.4.0 - # via distributed -soupsieve==2.4.1 - # via beautifulsoup4 -sparse==0.14.0 - # via hyperspy -sphinx==6.2.1 - # via - # mpes - # recommonmark - # sphinx-rtd-theme - # sphinxcontrib-jquery - # symmetrize -sphinx-rtd-theme==1.2.0 - # via symmetrize -sphinxcontrib-applehelp==1.0.4 - # via sphinx -sphinxcontrib-devhelp==1.0.2 - # via sphinx -sphinxcontrib-htmlhelp==2.0.1 - # via sphinx -sphinxcontrib-jquery==4.1 - # via sphinx-rtd-theme -sphinxcontrib-jsmath==1.0.1 - # via sphinx -sphinxcontrib-qthelp==1.0.3 - # via sphinx -sphinxcontrib-serializinghtml==1.1.5 - # via sphinx -stack-data==0.6.2 - # via ipython -symmetrize==0.5.5 - # via mpes -sympy==1.11.1 - # via - # hyperspy - # radioactivedecay -tables==3.8.0 - # via deepdish -tblib==1.7.0 - # via distributed -terminado==0.17.1 - # via - # jupyter-server - # nbclassic - # notebook -threadpoolctl==3.1.0 - # via - # mpes - # scikit-learn -tifffile==2023.4.12 - # via - # h5grove - # hyperspy - # scikit-image -tinycss2==1.2.1 - # via nbconvert -titlecase==2.4 - # via arpes -tomli==2.0.1 - # via jupyterlab -toolz==0.12.0 - # via - # dask - # distributed - # hyperspy - # partd -tornado==6.3.1 - # via - # bokeh - # distributed - # ipykernel - # ipyparallel - # jupyter-client - # jupyter-server - # jupyterlab - # nbclassic - # notebook - # terminado -tqdm==4.65.0 - # via - # arpes - # diffsims - # hyperspy - # ipyparallel - # kikuchipy - # mpes - # orix -traitlets==5.9.0 - # via - # comm - # ipykernel - # ipyparallel - # ipython - # ipywidgets - # jupyter-client - # jupyter-core - # jupyter-server - # matplotlib-inline - # nbclassic - # nbclient - # nbconvert - # nbformat - # notebook - # qtconsole -traits==6.4.1 - # via hyperspy -transforms3d==0.4.1 - # via - # diffsims - # pyxem -typing-extensions==4.5.0 - # via - # bokeh - # ipython - # pytools -tzdata==2023.3 - # via pandas -uncertainties==3.1.7 - # via lmfit -url-normalize==1.4.3 - # via requests-cache -urllib3==2.0.2 - # via - # distributed - # requests - # requests-cache -wcwidth==0.2.6 - # via - # prettytable - # prompt-toolkit -webencodings==0.5.1 - # via - # bleach - # tinycss2 -websocket-client==1.5.1 - # via jupyter-server -widgetsnbextension==3.6.4 - # via ipywidgets -xarray==2023.1.0 - # via - # arpes - # mpes - # pynxtools -zarr==2.14.2 - # via hyperspy -zict==3.0.0 - # via distributed -zipfile37==0.1.3 - # via pynxtools -zipp==3.15.0 - # via - # importlib-metadata - # importlib-resources - -# The following packages are considered to be unsafe in a requirements file: -# pip -# setuptools