diff --git a/.env b/.env index cc4a3a8..63d5a95 100644 --- a/.env +++ b/.env @@ -1,3 +1,3 @@ PREFIX=databaseline/zoose BASE=databaseline/zoose-base -TAG=4.4.0 +TAG=5.0.0 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 3299d41..20600ea 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -4,6 +4,6 @@ Check list: - [ ] `./generate_requirements.sh` has been executed (when appropriate). - [ ] `./check_docker.sh` executes successfully locally. - [ ] `./build_docker.sh` executes successfully locally. -- [ ] Zoose version in `.env` has been updated appropriately. +- [ ] Zoose version in .env has been updated appropriately. - [ ] Commit has been tagged `git tag X.Y.Z` with `X.Y.Z` as in `.env`. - [ ] `README` has been updated (if applicable). diff --git a/README.md b/README.md index ba6cbc7..5157828 100644 --- a/README.md +++ b/README.md @@ -32,65 +32,64 @@ In Gitpod, you have two options for Zoose notebooks: 2. JupyterLab, which you can start from the Gitpod workspace terminal with `/jupyter.sh`. ### Zoose Base -- Python 3.10 -- JupyterLab 3.6 with extensions +- Python 3.12 +- JupyterLab 4.3 with extensions Python packages: - Beautiful Soup 4.12 - Gower 0.1 -- Keras 2.12 +- Keras 3.5 - LIME 0.2 -- Matplotlib 3.7 -- NLTK 3.8 -- Numpy 1.24 -- Pandas 2.0 -- Prince 0.10 -- Requests 2.31 -- Scikit-learn 1.2 -- SciPy 1.10 -- Scrapy 2.9 -- Seaborn 0.12 -- SHAP 0.41 -- spaCy 3.5 +- Matplotlib 3.9 +- NLTK 3.9 +- Numpy 1.26 +- Pandas 2.2 +- Prince 0.13 +- Requests 2.32 +- scikit-learn 1.5 +- SciPy 1.14 +- Scrapy 2.11 +- Seaborn 0.13 +- SHAP 0.46 +- spaCy 3.7 - StatsModels 0.14 -- thefuzz 0.20 +- thefuzz 0.22 ### Zoose Neo4j Zoose Neo4j includes everything from Zoose Base as well as: - Neo4j Community Edition 4.4 -- py2neo 2021.2.4 +- neomodel 5.3.2 ### Zoose PyTorch Zoose PyTorch includes everything from Zoose Base as well as: -- Captum 0.6 -- PyTorch 2.0 -- PyTorch Audio 2.0 (CPU) -- PyTorch Text 0.15 (CPU) -- PyTorch Vision 0.15 (CPU) -- Transformers 4.29 +- Captum 0.7 +- PyTorch 2.4 +- PyTorch Audio 2.4 (CPU) +- PyTorch Text 0.18 (CPU) +- PyTorch Vision 0.19 (CPU) +- Transformers 4.44 ### Zoose Quantum Zoose Quantum includes everything from Zoose Base as well as: -- Amazon Braket SDK 1.41 -- Cirq 1.1 -- cuQuantum 23.3 -- OpenFermion 1.5 -- PennyLane 0.30 with plugins for Cirq, Stawberry Fields, Qiskit -- pytket 1.15 -- Qiskit 0.43 -- QuTiP 4.7 +- Amazon Braket SDK 1.57 +- Cirq 1.4 +- OpenFermion 1.6 +- PennyLane 0.38 with plugins for Cirq, Stawberry Fields, Qiskit +- pytket 1.32 +- Qiskit 1.2 +- QuTiP 5.0 - Strawberry Fields 0.23 ### Zoose Geo Zoose Geo includes everything from Zoose Base as well as: -- Geopandas 0.13 +- Geopandas 1.0 - Geoplot 0.5 - h3 3.7 -- h5py 3.8 -- netCDF4 1.6 +- h5py 3.11 +- netCDF4 1.7 - shapely 2.0 -- xarray 2023.5 -- zarr 2.14 +- xarray 2024.9 +- zarr 2.18 # How to use? Execute `./zoose.sh`, which launches a Jupyter notebooks session. diff --git a/base/Dockerfile b/base/Dockerfile index 1415bcb..473c51f 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -1,11 +1,10 @@ -ARG SOURCE +FROM ubuntu:24.04 -FROM ${SOURCE} LABEL org.opencontainers.image.authors="Ian Hellström" \ org.opencontainers.image.source="https://github.com/ianhellstrom/zoose" \ - org.opencontainers.image.vendor="Databaseline" + org.opencontainers.image.vendor="ianhellstrom.org" -ENV PYTHON_VERSION="3.10" +ENV PYTHON_VERSION="3.12" ARG DEBIAN_FRONTEND="noninteractive" ARG TZ="Europe/Berlin" @@ -23,13 +22,10 @@ RUN apt-get update && apt-get -y upgrade && \ openjdk-11-jre \ python${PYTHON_VERSION} \ python${PYTHON_VERSION}-dev \ - python${PYTHON_VERSION}-distutils \ libzmq3-dev \ libcurl4-openssl-dev \ libssl-dev \ libopenblas0-pthread \ - jupyter-core \ - jupyter-client \ git \ sudo \ libgdal-dev @@ -40,7 +36,7 @@ RUN add-apt-repository -y universe && apt-get update && \ WORKDIR /setup COPY requirements.txt /setup/requirements.txt -RUN pip install --no-cache-dir -r /setup/requirements.txt +RUN pip install --no-cache-dir --break-system-packages --ignore-installed -r /setup/requirements.txt COPY dictionaries /usr/local/share/jupyter/dictionaries/ COPY config/extensions.json /root/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/plugin.jupyterlab-settings diff --git a/base/constraints.txt b/base/constraints.txt index 27bc28e..3a52211 100644 --- a/base/constraints.txt +++ b/base/constraints.txt @@ -1,2 +1,2 @@ # Because of quantum libraries -networkx==2.8.8 +# networkx==2.8.8 diff --git a/base/requirements.txt b/base/requirements.txt index ee17cec..039950a 100644 --- a/base/requirements.txt +++ b/base/requirements.txt @@ -1,83 +1,89 @@ -aiofiles==22.1.0 - # via ypy-websocket -aiosqlite==0.19.0 - # via ypy-websocket -altair==4.2.2 +absl-py==2.1.0 + # via keras +altair==5.4.1 # via prince -anyio==3.7.0 - # via jupyter-server -argon2-cffi==21.3.0 +annotated-types==0.7.0 + # via pydantic +anyio==4.4.0 # via + # httpx # jupyter-server - # nbclassic - # notebook +argon2-cffi==23.1.0 + # via jupyter-server argon2-cffi-bindings==21.2.0 # via argon2-cffi -arrow==1.2.3 +arrow==1.3.0 # via isoduration -astroid==2.15.5 +astroid==3.2.4 # via pylint -asttokens==2.2.1 +asttokens==2.4.1 # via stack-data -attrs==23.1.0 +async-lru==2.0.4 + # via jupyterlab +attrs==24.2.0 # via - # automat # jsonschema + # referencing # service-identity # twisted -automat==22.10.0 +automat==24.8.1 # via twisted -autopep8==2.0.2 +autopep8==2.0.4 # via python-lsp-server -babel==2.12.1 - # via - # jupyterlab-server - # jupyterlab-spellchecker -backcall==0.2.0 - # via ipython -beautifulsoup4==4.12.2 +babel==2.16.0 + # via jupyterlab-server +beautifulsoup4==4.12.3 # via # -r /app/reqs/requirements.in # nbconvert -black==23.3.0 +black==24.8.0 # via -r /app/reqs/requirements.in -bleach==6.0.0 +bleach==6.1.0 # via nbconvert -blis==0.7.9 +blis==0.7.11 # via thinc -catalogue==2.0.8 +catalogue==2.0.10 # via # spacy # srsly # thinc -certifi==2023.5.7 - # via requests -cffi==1.15.1 +certifi==2024.8.30 + # via + # httpcore + # httpx + # requests +cffi==1.17.0 # via # argon2-cffi-bindings # cryptography -charset-normalizer==3.1.0 +charset-normalizer==3.3.2 # via requests -click==8.1.3 +click==8.1.7 # via # black # nltk # typer -cloudpickle==2.2.1 +cloudpathlib==0.19.0 + # via weasel +cloudpickle==3.0.0 # via shap colorama==0.4.6 # via # -r /app/reqs/requirements.in # nbdime -comm==0.1.3 - # via ipykernel -confection==0.0.4 - # via thinc -constantly==15.1.0 +comm==0.2.2 + # via + # ipykernel + # ipywidgets +confection==0.1.5 + # via + # thinc + # weasel +constantly==23.10.4 # via twisted -contourpy==1.0.7 +contourpy==1.3.0 # via matplotlib -cryptography==41.0.0 +cryptography==43.0.1 # via # pyopenssl # scrapy @@ -86,223 +92,216 @@ cssselect==1.2.0 # via # parsel # scrapy -cycler==0.11.0 +cycler==0.12.1 # via matplotlib -cymem==2.0.7 +cymem==2.0.8 # via # preshed # spacy # thinc -debugpy==1.6.7 +debugpy==1.8.5 # via ipykernel decorator==5.1.1 # via ipython defusedxml==0.7.1 - # via nbconvert -dill==0.3.6 + # via + # nbconvert + # scrapy +dill==0.3.8 # via pylint -docstring-to-markdown==0.12 +docstring-to-markdown==0.15 # via python-lsp-server -entrypoints==0.4 - # via altair et-xmlfile==1.1.0 # via openpyxl -exceptiongroup==1.1.1 - # via anyio -executing==1.2.0 +executing==2.1.0 # via stack-data -fastjsonschema==2.17.1 +fastjsonschema==2.20.0 # via nbformat -filelock==3.12.0 +filelock==3.15.4 # via tldextract -flake8==6.0.0 +flake8==7.1.1 # via python-lsp-server -fonttools==4.39.4 +fonttools==4.53.1 # via matplotlib fqdn==1.5.1 # via jsonschema -gitdb==4.0.10 +gitdb==4.0.11 # via gitpython -gitpython==3.1.31 +gitpython==3.1.43 # via nbdime gower==0.1.2 # via -r /app/reqs/requirements.in +h11==0.14.0 + # via httpcore +h5py==3.11.0 + # via keras +httpcore==1.0.5 + # via httpx +httpx==0.27.2 + # via jupyterlab hyperlink==21.0.0 # via twisted -idna==3.4 +idna==3.8 # via # anyio + # httpx # hyperlink # jsonschema # requests # tldextract -imageio==2.30.0 +imageio==2.35.1 # via scikit-image -incremental==22.10.0 +importlib-metadata==8.4.0 + # via yapf +incremental==24.7.2 # via twisted -ipykernel==6.23.1 - # via - # ipywidgets - # nbclassic - # notebook -ipython==8.13.2 +ipykernel==6.29.5 + # via jupyterlab +ipython==8.27.0 # via # ipykernel # ipywidgets - # jupyterlab -ipython-genutils==0.2.0 - # via - # nbclassic - # notebook -ipywidgets==8.0.6 +ipywidgets==8.1.5 # via -r /app/reqs/requirements.in isoduration==20.11.0 # via jsonschema -isort==5.12.0 +isort==5.13.2 # via # -r /app/reqs/requirements.in # pylint -itemadapter==0.8.0 +itemadapter==0.9.0 # via # itemloaders # scrapy -itemloaders==1.1.0 +itemloaders==1.3.1 # via scrapy -jedi==0.18.2 +jedi==0.19.1 # via # ipython # python-lsp-server -jinja2==3.1.2 +jinja2==3.1.4 # via # altair # jupyter-server # jupyterlab # jupyterlab-server - # nbclassic # nbconvert # nbdime - # notebook # spacy jmespath==1.0.1 # via # itemloaders # parsel -joblib==1.2.0 +joblib==1.4.2 # via # nltk # scikit-learn -json5==0.9.14 +json5==0.9.25 # via jupyterlab-server -jsonpointer==2.3 +jsonpointer==3.0.0 # via jsonschema -jsonschema==4.17.3 +jsonschema==4.23.0 # via # altair # jupyter-events # jupyterlab-server # nbformat -jupyter-client==8.2.0 +jsonschema-specifications==2023.12.1 + # via jsonschema +jupyter-client==8.6.2 # via # ipykernel # jupyter-server - # nbclassic # nbclient - # notebook -jupyter-core==5.3.0 +jupyter-core==5.7.2 # via # ipykernel # jupyter-client # jupyter-server # jupyterlab - # nbclassic # nbclient # nbconvert # nbformat - # notebook -jupyter-events==0.6.3 +jupyter-events==0.10.0 + # via jupyter-server +jupyter-lsp==2.2.5 # via - # jupyter-server - # jupyter-server-fileid -jupyter-lsp==2.2.0 - # via jupyterlab-lsp -jupyter-server==2.6.0 + # jupyterlab + # jupyterlab-lsp +jupyter-server==2.14.2 # via # jupyter-lsp - # jupyter-server-fileid # jupyter-server-mathjax # jupyterlab # jupyterlab-code-formatter # jupyterlab-git # jupyterlab-server - # nbclassic + # jupyterlab-spellchecker # nbdime # notebook-shim -jupyter-server-fileid==0.9.0 - # via jupyter-server-ydoc jupyter-server-mathjax==0.2.6 # via nbdime -jupyter-server-terminals==0.4.4 +jupyter-server-terminals==0.5.3 # via jupyter-server -jupyter-server-ydoc==0.8.0 - # via jupyterlab -jupyter-ydoc==0.2.4 - # via - # jupyter-server-ydoc - # jupyterlab -jupyterlab==3.6.4 +jupyterlab==4.3.0b1 # via # -r /app/reqs/requirements.in # jupyterlab-lsp + # jupyterlab-scenes # jupyterlab-spellchecker -jupyterlab-code-formatter==2.2.1 +jupyterlab-code-formatter==3.0.2 # via -r /app/reqs/requirements.in -jupyterlab-git==0.41.0 +jupyterlab-git==0.50.1 # via -r /app/reqs/requirements.in -jupyterlab-lsp==4.2.0 +jupyterlab-lsp==5.1.0 # via -r /app/reqs/requirements.in -jupyterlab-pygments==0.2.2 +jupyterlab-pygments==0.3.0 # via nbconvert -jupyterlab-scenes==1.4.0 +jupyterlab-scenes==2.0.0 # via -r /app/reqs/requirements.in -jupyterlab-server==2.22.1 +jupyterlab-server==2.27.3 # via jupyterlab -jupyterlab-skip-traceback==5.0.0 +jupyterlab-skip-traceback==5.1.0 # via -r /app/reqs/requirements.in -jupyterlab-spellchecker==0.7.3 +jupyterlab-spellchecker==0.8.4 # via -r /app/reqs/requirements.in -jupyterlab-widgets==3.0.7 +jupyterlab-widgets==3.0.13 # via ipywidgets -keras==2.12.0 +keras==3.5.0 # via -r /app/reqs/requirements.in -kiwisolver==1.4.4 +kiwisolver==1.4.7 # via matplotlib -kneed==0.8.3 +kneed==0.8.5 # via -r /app/reqs/requirements.in -langcodes==3.3.0 +langcodes==3.4.0 # via spacy -lazy-loader==0.2 +language-data==1.2.0 + # via langcodes +lazy-loader==0.4 # via scikit-image -lazy-object-proxy==1.9.0 - # via astroid lime==0.2.0.1 # via -r /app/reqs/requirements.in -llvmlite==0.40.0 +llvmlite==0.43.0 # via numba -lxml==4.9.2 +lxml==5.3.0 # via # parsel # scrapy -markupsafe==2.1.2 +marisa-trie==1.2.0 + # via language-data +markdown-it-py==3.0.0 + # via rich +markupsafe==2.1.5 # via # jinja2 # nbconvert -matplotlib==3.7.1 +matplotlib==3.9.2 # via # -r /app/reqs/requirements.in # lime # seaborn # tikzplotlib -matplotlib-inline==0.1.6 +matplotlib-inline==0.1.7 # via # ipykernel # ipython @@ -311,69 +310,62 @@ mccabe==0.7.0 # flake8 # pylint # python-lsp-server -mistune==2.0.5 +mdurl==0.1.2 + # via markdown-it-py +mistune==3.0.2 # via nbconvert -murmurhash==1.0.9 +ml-dtypes==0.4.0 + # via keras +murmurhash==1.0.10 # via # preshed # spacy # thinc mypy-extensions==1.0.0 # via black -nbclassic==1.0.0 - # via - # jupyterlab - # notebook -nbclient==0.8.0 +namex==0.0.8 + # via keras +narwhals==1.6.2 + # via altair +nbclient==0.10.0 # via nbconvert -nbconvert==7.4.0 - # via - # jupyter-server - # nbclassic - # notebook -nbdime==3.2.1 +nbconvert==7.16.4 + # via jupyter-server +nbdime==4.0.1 # via jupyterlab-git -nbformat==5.8.0 +nbformat==5.10.4 # via # jupyter-server # jupyterlab-git - # nbclassic # nbclient # nbconvert # nbdime - # notebook -nest-asyncio==1.5.6 - # via - # ipykernel - # nbclassic - # notebook -networkx==2.8.8 - # via - # -c /app/reqs/constraints.txt - # scikit-image -nltk==3.8.1 +nest-asyncio==1.6.0 + # via ipykernel +networkx==3.3 + # via scikit-image +nltk==3.9.1 # via -r /app/reqs/requirements.in -notebook==6.5.4 +notebook-shim==0.2.4 # via jupyterlab -notebook-shim==0.2.3 - # via nbclassic -numba==0.57.0 +numba==0.60.0 # via shap -numpy==1.24.3 +numpy==1.26.4 # via # -r /app/reqs/requirements.in - # altair # blis # contourpy # gower + # h5py # imageio + # keras # kneed # lime # matplotlib + # ml-dtypes # numba # pandas # patsy - # pywavelets # scikit-image # scikit-learn # scipy @@ -384,12 +376,15 @@ numpy==1.24.3 # thinc # tifffile # tikzplotlib -openpyxl==3.1.2 +openpyxl==3.1.5 # via -r /app/reqs/requirements.in -overrides==7.3.1 +optree==0.12.1 + # via keras +overrides==7.7.0 # via jupyter-server -packaging==23.1 +packaging==24.1 # via + # altair # black # ipykernel # jupyter-server @@ -397,6 +392,8 @@ packaging==23.1 # jupyterlab-code-formatter # jupyterlab-git # jupyterlab-server + # keras + # lazy-loader # matplotlib # nbconvert # parsel @@ -407,111 +404,107 @@ packaging==23.1 # spacy # statsmodels # thinc -pandas==2.0.2 + # weasel +pandas==2.2.2 # via # -r /app/reqs/requirements.in - # altair # prince # seaborn # shap # statsmodels -pandocfilters==1.5.0 +pandocfilters==1.5.1 # via nbconvert -parsel==1.8.1 +parsel==1.9.1 # via # itemloaders # scrapy -parso==0.8.3 +parso==0.8.4 # via jedi -pathspec==0.11.1 +pathspec==0.12.1 # via black -pathy==0.10.1 - # via spacy -patsy==0.5.3 +patsy==0.5.6 # via statsmodels -pexpect==4.8.0 +pexpect==4.9.0 # via # ipython # jupyterlab-git -pickleshare==0.7.5 - # via ipython -pillow==9.5.0 +pillow==10.4.0 # via # imageio # matplotlib # scikit-image # tikzplotlib -platformdirs==3.5.1 +platformdirs==4.2.2 # via # black # jupyter-core # pylint # pytoolconfig -pluggy==1.0.0 + # yapf +pluggy==1.5.0 # via python-lsp-server -preshed==3.0.8 +preshed==3.0.9 # via # spacy # thinc -prince==0.10.5 +prince==0.13.0 # via -r /app/reqs/requirements.in -prometheus-client==0.17.0 - # via - # jupyter-server - # nbclassic - # notebook -prompt-toolkit==3.0.38 +prometheus-client==0.20.0 + # via jupyter-server +prompt-toolkit==3.0.47 # via ipython -protego==0.2.1 +protego==0.3.1 # via scrapy -psutil==5.9.5 +psutil==6.0.0 # via ipykernel ptyprocess==0.7.0 # via # pexpect # terminado -pure-eval==0.2.2 +pure-eval==0.2.3 # via stack-data -pyasn1==0.5.0 +pyasn1==0.6.0 # via # pyasn1-modules # service-identity -pyasn1-modules==0.3.0 +pyasn1-modules==0.4.0 # via service-identity -pycodestyle==2.10.0 +pycodestyle==2.12.1 # via # autopep8 # flake8 # python-lsp-server -pycparser==2.21 +pycparser==2.22 # via cffi -pydantic==1.10.8 +pydantic==2.8.2 # via # confection # spacy # thinc + # weasel +pydantic-core==2.20.1 + # via pydantic pydispatcher==2.0.7 # via scrapy pydocstyle==6.3.0 # via python-lsp-server -pyflakes==3.0.1 +pyflakes==3.2.0 # via # flake8 # python-lsp-server -pygments==2.15.1 +pygments==2.18.0 # via # ipython # nbconvert # nbdime -pylint==2.17.4 + # rich +pylint==3.2.7 # via python-lsp-server -pyopenssl==23.2.0 +pyopenssl==24.2.1 # via scrapy -pyparsing==3.0.9 +pyparsing==3.1.4 # via matplotlib -pyrsistent==0.19.3 - # via jsonschema -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # arrow # jupyter-client @@ -519,32 +512,33 @@ python-dateutil==2.8.2 # pandas python-json-logger==2.0.7 # via jupyter-events -python-lsp-jsonrpc==1.0.0 +python-lsp-jsonrpc==1.1.2 # via python-lsp-server -python-lsp-server==1.7.3 +python-lsp-server==1.12.0 # via -r /app/reqs/requirements.in -pytoolconfig==1.2.5 +pytoolconfig==1.3.1 # via rope -pytz==2023.3 +pytz==2024.1 # via pandas -pywavelets==1.4.1 - # via scikit-image -pyyaml==6.0 +pyyaml==6.0.2 # via jupyter-events -pyzmq==25.1.0 +pyzmq==26.2.0 # via # ipykernel # jupyter-client # jupyter-server - # nbclassic - # notebook -queuelib==1.6.2 +queuelib==1.7.0 # via scrapy -rapidfuzz==3.5.2 +rapidfuzz==3.9.7 # via thefuzz -regex==2023.5.5 +referencing==0.35.1 + # via + # jsonschema + # jsonschema-specifications + # jupyter-events +regex==2024.7.24 # via nltk -requests==2.31.0 +requests==2.32.3 # via # -r /app/reqs/requirements.in # jupyterlab-server @@ -552,7 +546,8 @@ requests==2.31.0 # requests-file # spacy # tldextract -requests-file==1.5.1 + # weasel +requests-file==2.1.0 # via tldextract rfc3339-validator==0.1.4 # via @@ -562,17 +557,25 @@ rfc3986-validator==0.1.1 # via # jsonschema # jupyter-events -rope==1.8.0 +rich==13.8.0 + # via + # keras + # typer +rope==1.13.0 # via python-lsp-server -scikit-image==0.20.0 +rpds-py==0.20.0 + # via + # jsonschema + # referencing +scikit-image==0.24.0 # via lime -scikit-learn==1.2.2 +scikit-learn==1.5.1 # via # -r /app/reqs/requirements.in # lime # prince # shap -scipy==1.10.1 +scipy==1.14.1 # via # -r /app/reqs/requirements.in # gower @@ -582,109 +585,93 @@ scipy==1.10.1 # scikit-learn # shap # statsmodels -scrapy==2.9.0 +scrapy==2.11.2 # via -r /app/reqs/requirements.in -seaborn==0.12.2 +seaborn==0.13.2 # via -r /app/reqs/requirements.in -send2trash==1.8.2 - # via - # jupyter-server - # nbclassic - # notebook -service-identity==21.1.0 +send2trash==1.8.3 + # via jupyter-server +service-identity==24.1.0 # via scrapy -shap==0.41.0 +shap==0.46.0 # via -r /app/reqs/requirements.in +shellingham==1.5.4 + # via typer six==1.16.0 # via # asttokens - # automat # bleach # patsy - # protego # python-dateutil - # requests-file # rfc3339-validator - # service-identity -slicer==0.0.7 +slicer==0.0.8 # via shap -smart-open==6.3.0 - # via - # pathy - # spacy -smmap==5.0.0 +smart-open==7.0.4 + # via weasel +smmap==5.0.1 # via gitdb -sniffio==1.3.0 - # via anyio +sniffio==1.3.1 + # via + # anyio + # httpx snowballstemmer==2.2.0 # via pydocstyle -soupsieve==2.4.1 +soupsieve==2.6 # via beautifulsoup4 -spacy==3.5.3 +spacy==3.7.6 # via -r /app/reqs/requirements.in spacy-legacy==3.0.12 # via spacy -spacy-loggers==1.0.4 +spacy-loggers==1.0.5 # via spacy -srsly==2.4.6 +srsly==2.4.8 # via # confection # spacy # thinc -stack-data==0.6.2 + # weasel +stack-data==0.6.3 # via ipython -statsmodels==0.14.0 +statsmodels==0.14.2 # via -r /app/reqs/requirements.in -terminado==0.17.1 +terminado==0.18.1 # via # jupyter-server # jupyter-server-terminals - # nbclassic - # notebook -thefuzz==0.20.0 +thefuzz==0.22.1 # via -r /app/reqs/requirements.in -thinc==8.1.10 +thinc==8.2.5 # via spacy -threadpoolctl==3.1.0 +threadpoolctl==3.5.0 # via scikit-learn -tifffile==2023.4.12 +tifffile==2024.8.30 # via scikit-image tikzplotlib==0.10.1 # via -r /app/reqs/requirements.in -tinycss2==1.2.1 +tinycss2==1.3.0 # via nbconvert -tldextract==3.4.4 +tldextract==5.1.2 # via scrapy tomli==2.0.1 - # via - # autopep8 - # black - # jupyterlab - # pylint - # pytoolconfig - # yapf -tomlkit==0.11.8 + # via yapf +tomlkit==0.13.2 # via pylint -toolz==0.12.0 - # via altair -tornado==6.3.2 +tornado==6.4.1 # via # ipykernel # jupyter-client # jupyter-server # jupyterlab - # nbclassic # nbdime - # notebook # terminado -tqdm==4.65.0 +tqdm==4.66.5 # via # -r /app/reqs/requirements.in # lime # nltk # shap # spacy -traitlets==5.9.0 +traitlets==5.14.3 # via # comm # ipykernel @@ -694,46 +681,53 @@ traitlets==5.9.0 # jupyter-core # jupyter-events # jupyter-server + # jupyterlab # jupyterlab-git # matplotlib-inline - # nbclassic # nbclient # nbconvert # nbformat - # notebook -twisted==22.10.0 +twisted==24.7.0 # via scrapy -typer==0.7.0 +typer==0.12.5 # via - # pathy # spacy -typing-extensions==4.6.2 + # weasel +types-python-dateutil==2.9.0.20240821 + # via arrow +typing-extensions==4.12.2 # via - # astroid + # altair + # optree # pydantic + # pydantic-core # twisted -tzdata==2023.3 + # typer +tzdata==2024.1 # via pandas -ujson==5.7.0 +ujson==5.10.0 # via # python-lsp-jsonrpc # python-lsp-server -uri-template==1.2.0 +uri-template==1.3.0 # via jsonschema -urllib3==2.0.2 +urllib3==2.2.2 # via requests -w3lib==2.1.1 +w3lib==2.2.1 # via # itemloaders # parsel # scrapy -wasabi==1.1.1 +wasabi==1.1.3 # via # spacy # thinc -wcwidth==0.2.6 + # weasel +wcwidth==0.2.13 # via prompt-toolkit -webcolors==1.13 +weasel==0.4.1 + # via spacy +webcolors==24.8.0 # via # jsonschema # tikzplotlib @@ -741,23 +735,19 @@ webencodings==0.5.1 # via # bleach # tinycss2 -websocket-client==1.5.2 +websocket-client==1.8.0 # via jupyter-server -whatthepatch==1.0.5 +whatthepatch==1.0.6 # via python-lsp-server -widgetsnbextension==4.0.7 +widgetsnbextension==4.0.13 # via ipywidgets -wrapt==1.15.0 - # via astroid -y-py==0.5.9 - # via - # jupyter-ydoc - # ypy-websocket -yapf==0.33.0 +wrapt==1.16.0 + # via smart-open +yapf==0.40.2 # via python-lsp-server -ypy-websocket==0.8.2 - # via jupyter-server-ydoc -zope-interface==6.0 +zipp==3.20.1 + # via importlib-metadata +zope-interface==7.0.3 # via # scrapy # twisted diff --git a/build_docker.sh b/build_docker.sh index 3be399e..ffd9973 100755 --- a/build_docker.sh +++ b/build_docker.sh @@ -1,2 +1,2 @@ #!/bin/bash -docker-compose up --build --detach --remove-orphans +docker compose build --parallel diff --git a/docker-compose.yml b/docker-compose.yml index c87ed7e..4d4bad8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,71 +1,68 @@ -version: "3.9" services: base: - image: "${BASE}:${TAG}" + image: "databaseline/zoose-base" build: context: base dockerfile: Dockerfile - args: - SOURCE: "ubuntu:22.04" ports: - "8888:8888" base-gitpod: - image: "${PREFIX}-base-gitpod:${TAG}" + image: "databaseline/zoose-base-gitpod" build: context: gitpod dockerfile: Dockerfile - args: - BASE: "${BASE}:${TAG}" + depends_on: + - base neo4j: - image: "${PREFIX}-neo4j:${TAG}" + image: "databaseline/zoose-neo4j" build: context: neo4j dockerfile: Dockerfile - args: - BASE: "${BASE}:${TAG}" + depends_on: + - base ports: - "7473:7373" - "7474:7474" - "7687:7686" pytorch: - image: "${PREFIX}-pytorch:${TAG}" + image: "databaseline/zoose-pytorch" build: context: pytorch dockerfile: Dockerfile - args: - BASE: "${BASE}:${TAG}" + depends_on: + - base pytorch-gitpod: - image: "${PREFIX}-pytorch-gitpod:${TAG}" + image: "databaseline/zoose-pytorch-gitpod" build: context: gitpod dockerfile: Dockerfile - args: - BASE: "${PREFIX}-pytorch:${TAG}" + depends_on: + - base quantum: - image: "${PREFIX}-quantum:${TAG}" + image: "databaseline/zoose-quantum" build: context: quantum dockerfile: Dockerfile - args: - BASE: "${BASE}:${TAG}" + depends_on: + - base quantum-gitpod: - image: "${PREFIX}-quantum-gitpod:${TAG}" + image: "databaseline/zoose-quantum-gitpod" build: context: gitpod dockerfile: Dockerfile - args: - BASE: "${PREFIX}-quantum:${TAG}" + depends_on: + - base geo: - image: "${PREFIX}-geo:${TAG}" + image: "databaseline/zoose-geo" build: context: geo dockerfile: Dockerfile - args: - BASE: "${BASE}:${TAG}" + depends_on: + - base geo-gitpod: - image: "${PREFIX}-geo-gitpod:${TAG}" + image: "databaseline/zoose-geo-gitpod" build: context: gitpod dockerfile: Dockerfile - args: - BASE: "${PREFIX}-geo:${TAG}" + depends_on: + - base diff --git a/generate_requirements.sh b/generate_requirements.sh index 09b247f..4f5a4ae 100755 --- a/generate_requirements.sh +++ b/generate_requirements.sh @@ -5,6 +5,8 @@ cp base/constraints.txt reqs/constraints.txt cp base/requirements.in reqs/requirements.in cp pytorch/requirements.in reqs/pytorch.in cp quantum/requirements.in reqs/quantum.in +cp geo/requirements.in reqs/geo.in + docker run --rm -it \ -v $(pwd):/app -w /app \ @@ -27,8 +29,16 @@ docker run --rm -it \ --strip-extras --no-header \ --resolver=backtracking +docker run --rm -it \ + -v $(pwd):/app -w /app \ + databaseline/pip-compile /app/reqs/geo.in \ + --upgrade --allow-unsafe \ + --strip-extras --no-header \ + --resolver=backtracking + mv reqs/requirements.txt base/requirements.txt mv reqs/pytorch.txt pytorch/requirements.txt mv reqs/quantum.txt quantum/requirements.txt +mv reqs/geo.txt geo/requirements.txt rm -rf reqs diff --git a/geo/Dockerfile b/geo/Dockerfile index e6d5d16..0f6cd97 100644 --- a/geo/Dockerfile +++ b/geo/Dockerfile @@ -1,12 +1,12 @@ -ARG BASE +FROM databaseline/zoose-base -FROM ${BASE} LABEL org.opencontainers.image.authors="Ian Hellström" \ org.opencontainers.image.source="https://github.com/ianhellstrom/zoose" \ - org.opencontainers.image.vendor="Databaseline" + org.opencontainers.image.vendor="ianhellstrom.org" WORKDIR /setup COPY requirements.txt /setup/requirements.txt -RUN pip install --no-cache-dir -r /setup/requirements.txt +RUN pip install --no-cache-dir --break-system-packages gdal=="$(gdal-config --version).*" --no-build-isolation +RUN pip install --no-cache-dir --break-system-packages -r /setup/requirements.txt ENTRYPOINT ["/jupyter.sh"] diff --git a/geo/requirements.in b/geo/requirements.in new file mode 100644 index 0000000..6dfd7a3 --- /dev/null +++ b/geo/requirements.in @@ -0,0 +1,12 @@ +# See: base/requirements.txt +-c requirements.txt + +# gdal in Dockerfile +geopandas +geoplot +h3 +h5py +netCDF4 +shapely +xarray +zarr diff --git a/geo/requirements.txt b/geo/requirements.txt index e5d00f7..30a3043 100644 --- a/geo/requirements.txt +++ b/geo/requirements.txt @@ -1,9 +1,216 @@ -gdal==3.4.1 -geopandas==0.13.0 +affine==2.4.0 + # via rasterio +asciitree==0.3.3 + # via zarr +attrs==24.2.0 + # via + # -c /app/reqs/requirements.txt + # rasterio +cartopy==0.23.0 + # via geoplot +certifi==2024.8.30 + # via + # -c /app/reqs/requirements.txt + # netcdf4 + # pyogrio + # pyproj + # rasterio + # requests +cftime==1.6.4 + # via netcdf4 +charset-normalizer==3.3.2 + # via + # -c /app/reqs/requirements.txt + # requests +click==8.1.7 + # via + # -c /app/reqs/requirements.txt + # click-plugins + # cligj + # mercantile + # rasterio +click-plugins==1.1.1 + # via rasterio +cligj==0.7.2 + # via rasterio +contextily==1.6.2 + # via geoplot +contourpy==1.3.0 + # via + # -c /app/reqs/requirements.txt + # matplotlib +cycler==0.12.1 + # via + # -c /app/reqs/requirements.txt + # matplotlib +fasteners==0.19 + # via zarr +fonttools==4.53.1 + # via + # -c /app/reqs/requirements.txt + # matplotlib +geographiclib==2.0 + # via geopy +geopandas==1.0.1 + # via + # -r /app/reqs/geo.in + # geoplot geoplot==0.5.1 -h3==3.7.6 -h5py==3.8.0 -netCDF4==1.6.3 -shapely==2.0.1 -xarray==2023.5.0 -zarr==2.14.2 + # via -r /app/reqs/geo.in +geopy==2.4.1 + # via contextily +h3==3.7.7 + # via -r /app/reqs/geo.in +h5py==3.11.0 + # via + # -c /app/reqs/requirements.txt + # -r /app/reqs/geo.in +idna==3.8 + # via + # -c /app/reqs/requirements.txt + # requests +joblib==1.4.2 + # via + # -c /app/reqs/requirements.txt + # contextily + # scikit-learn +kiwisolver==1.4.7 + # via + # -c /app/reqs/requirements.txt + # matplotlib +mapclassify==2.8.0 + # via geoplot +matplotlib==3.9.2 + # via + # -c /app/reqs/requirements.txt + # cartopy + # contextily + # geoplot + # seaborn +mercantile==1.2.1 + # via contextily +netcdf4==1.7.1.post2 + # via -r /app/reqs/geo.in +networkx==3.3 + # via + # -c /app/reqs/requirements.txt + # mapclassify +numcodecs==0.13.0 + # via zarr +numpy==1.26.4 + # via + # -c /app/reqs/requirements.txt + # cartopy + # cftime + # contourpy + # geopandas + # h5py + # mapclassify + # matplotlib + # netcdf4 + # numcodecs + # pandas + # pyogrio + # rasterio + # scikit-learn + # scipy + # seaborn + # shapely + # snuggs + # xarray + # zarr +packaging==24.1 + # via + # -c /app/reqs/requirements.txt + # cartopy + # geopandas + # matplotlib + # pyogrio + # xarray +pandas==2.2.2 + # via + # -c /app/reqs/requirements.txt + # geopandas + # geoplot + # mapclassify + # seaborn + # xarray +pillow==10.4.0 + # via + # -c /app/reqs/requirements.txt + # contextily + # matplotlib +pyogrio==0.9.0 + # via geopandas +pyparsing==3.1.4 + # via + # -c /app/reqs/requirements.txt + # matplotlib + # snuggs +pyproj==3.6.1 + # via + # cartopy + # geopandas +pyshp==2.3.1 + # via cartopy +python-dateutil==2.9.0.post0 + # via + # -c /app/reqs/requirements.txt + # matplotlib + # pandas +pytz==2024.1 + # via + # -c /app/reqs/requirements.txt + # pandas +rasterio==1.3.11 + # via contextily +requests==2.32.3 + # via + # -c /app/reqs/requirements.txt + # contextily +scikit-learn==1.5.1 + # via + # -c /app/reqs/requirements.txt + # mapclassify +scipy==1.14.1 + # via + # -c /app/reqs/requirements.txt + # mapclassify + # scikit-learn +seaborn==0.13.2 + # via + # -c /app/reqs/requirements.txt + # geoplot +shapely==2.0.6 + # via + # -r /app/reqs/geo.in + # cartopy + # geopandas +six==1.16.0 + # via + # -c /app/reqs/requirements.txt + # python-dateutil +snuggs==1.4.7 + # via rasterio +threadpoolctl==3.5.0 + # via + # -c /app/reqs/requirements.txt + # scikit-learn +tzdata==2024.1 + # via + # -c /app/reqs/requirements.txt + # pandas +urllib3==2.2.2 + # via + # -c /app/reqs/requirements.txt + # requests +xarray==2024.7.0 + # via -r /app/reqs/geo.in +xyzservices==2024.9.0 + # via contextily +zarr==2.18.2 + # via -r /app/reqs/geo.in + +# The following packages are considered to be unsafe in a requirements file: +setuptools==74.1.1 + # via rasterio diff --git a/gitpod/Dockerfile b/gitpod/Dockerfile index 228e0bd..3d0fc77 100644 --- a/gitpod/Dockerfile +++ b/gitpod/Dockerfile @@ -1,9 +1,8 @@ -ARG BASE +FROM databaseline/zoose-base -FROM ${BASE} LABEL org.opencontainers.image.authors="Ian Hellström" \ org.opencontainers.image.source="https://github.com/ianhellstrom/zoose" \ - org.opencontainers.image.vendor="Databaseline" + org.opencontainers.image.vendor="ianhellstrom.org" RUN useradd -l -u 33333 -G sudo -md /home/gitpod -s /bin/bash -p gitpod gitpod diff --git a/neo4j/Dockerfile b/neo4j/Dockerfile index 7a0fe90..e78011f 100644 --- a/neo4j/Dockerfile +++ b/neo4j/Dockerfile @@ -1,9 +1,8 @@ -ARG BASE +FROM databaseline/zoose-base -FROM ${BASE} LABEL org.opencontainers.image.authors="Ian Hellström" \ org.opencontainers.image.source="https://github.com/ianhellstrom/zoose" \ - org.opencontainers.image.vendor="Databaseline" + org.opencontainers.image.vendor="ianhellstrom.org" RUN set -o pipefail && \ wget -q -O - https://debian.neo4j.com/neotechnology.gpg.key | apt-key add - && \ @@ -13,7 +12,7 @@ RUN set -o pipefail && \ WORKDIR /setup COPY requirements.txt /setup/requirements.txt -RUN pip install --no-cache-dir -r /setup/requirements.txt +RUN pip install --no-cache-dir --break-system-packages -r /setup/requirements.txt COPY config/neo4j.conf /etc/neo4j/neo4j.conf diff --git a/neo4j/requirements.txt b/neo4j/requirements.txt index 98acb70..e33fd81 100644 --- a/neo4j/requirements.txt +++ b/neo4j/requirements.txt @@ -1 +1 @@ -py2neo==2021.2.4 +neomodel==5.3.2 diff --git a/push_docker.sh b/push_docker.sh index 957dcee..53bb8e7 100755 --- a/push_docker.sh +++ b/push_docker.sh @@ -5,15 +5,17 @@ source .env for dir in *; do if [ -d "${dir}" ]; then if [ "${dir}" != "gitpod" ]; then + docker tag "${PREFIX}-${dir}" "${PREFIX}-${dir}:${TAG}" docker push "${PREFIX}-${dir}:${TAG}" - docker tag "${PREFIX}-${dir}:${TAG}" "${PREFIX}-${dir}:latest" + docker tag "${PREFIX}-${dir}" "${PREFIX}-${dir}:latest" docker push "${PREFIX}-${dir}:latest" else + docker tag "${PREFIX}-base-${dir}" "${PREFIX}-base-${dir}:${TAG}" docker push "${PREFIX}-base-${dir}:${TAG}" - docker tag "${PREFIX}-base-${dir}:${TAG}" "${PREFIX}-base-${dir}:latest" + docker tag "${PREFIX}-base-${dir}" "${PREFIX}-base-${dir}:latest" docker push "${PREFIX}-base-${dir}:latest" docker push "${PREFIX}-quantum-${dir}:${TAG}" - docker tag "${PREFIX}-quantum-${dir}:${TAG}" "${PREFIX}-quantum-${dir}:latest" + docker tag "${PREFIX}-quantum-${dir}" "${PREFIX}-quantum-${dir}:latest" docker push "${PREFIX}-quantum-${dir}:latest" fi fi diff --git a/push_docker_dev.sh b/push_docker_dev.sh index c1b6a6c..9471530 100755 --- a/push_docker_dev.sh +++ b/push_docker_dev.sh @@ -4,12 +4,12 @@ source .env for dir in *; do if [ -d "${dir}" ]; then if [ "${dir}" != "gitpod" ]; then - docker tag "${PREFIX}-${dir}:${TAG}" "${PREFIX}-${dir}:dev-${TAG}" + docker tag "${PREFIX}-${dir}" "${PREFIX}-${dir}:dev-${TAG}" docker push "${PREFIX}-${dir}:dev-${TAG}" else - docker tag "${PREFIX}-base-${dir}:${TAG}" "${PREFIX}-base-${dir}:dev-${TAG}" + docker tag "${PREFIX}-base-${dir}" "${PREFIX}-base-${dir}:dev-${TAG}" docker push "${PREFIX}-base-${dir}:dev-${TAG}" - docker tag "${PREFIX}-quantum-${dir}:${TAG}" "${PREFIX}-quantum-${dir}:dev-${TAG}" + docker tag "${PREFIX}-quantum-${dir}" "${PREFIX}-quantum-${dir}:dev-${TAG}" docker push "${PREFIX}-quantum-${dir}:dev-${TAG}" fi fi diff --git a/pytorch/Dockerfile b/pytorch/Dockerfile index e6d5d16..02f4bbb 100644 --- a/pytorch/Dockerfile +++ b/pytorch/Dockerfile @@ -1,12 +1,11 @@ -ARG BASE +FROM databaseline/zoose-base -FROM ${BASE} LABEL org.opencontainers.image.authors="Ian Hellström" \ org.opencontainers.image.source="https://github.com/ianhellstrom/zoose" \ org.opencontainers.image.vendor="Databaseline" WORKDIR /setup COPY requirements.txt /setup/requirements.txt -RUN pip install --no-cache-dir -r /setup/requirements.txt +RUN pip install --no-cache-dir --break-system-packages -r /setup/requirements.txt ENTRYPOINT ["/jupyter.sh"] diff --git a/pytorch/requirements.txt b/pytorch/requirements.txt index abb9b65..a558519 100644 --- a/pytorch/requirements.txt +++ b/pytorch/requirements.txt @@ -1,83 +1,81 @@ --extra-index-url https://download.pytorch.org/whl/cpu -absl-py==1.4.0 - # via tensorboard -cachetools==5.3.1 - # via google-auth -captum==0.6.0 +absl-py==2.1.0 + # via + # -c /app/reqs/requirements.txt + # tensorboard +captum==0.7.0 # via -r /app/reqs/pytorch.in -certifi==2023.5.7 +certifi==2024.8.30 # via # -c /app/reqs/requirements.txt # requests -charset-normalizer==3.1.0 +charset-normalizer==3.3.2 # via # -c /app/reqs/requirements.txt # requests -contourpy==1.0.7 +contourpy==1.3.0 # via # -c /app/reqs/requirements.txt # matplotlib -cycler==0.11.0 +cycler==0.12.1 # via # -c /app/reqs/requirements.txt # matplotlib -filelock==3.12.0 +filelock==3.15.4 # via # -c /app/reqs/requirements.txt # huggingface-hub # torch # transformers -fonttools==4.39.4 +fonttools==4.53.1 # via # -c /app/reqs/requirements.txt # matplotlib -fsspec==2023.5.0 - # via huggingface-hub -google-auth==2.17.3 +fsspec==2024.9.0 # via - # google-auth-oauthlib - # tensorboard -google-auth-oauthlib==1.0.0 - # via tensorboard -graphviz==0.20.1 + # huggingface-hub + # torch +graphviz==0.20.3 # via # -r /app/reqs/pytorch.in # torchviz -grpcio==1.54.2 +grpcio==1.66.1 # via tensorboard -huggingface-hub==0.14.1 - # via transformers -idna==3.4 +huggingface-hub==0.24.6 + # via + # tokenizers + # transformers +idna==3.8 # via # -c /app/reqs/requirements.txt # requests -jinja2==3.1.2 +jinja2==3.1.4 # via # -c /app/reqs/requirements.txt # torch -kiwisolver==1.4.4 +kiwisolver==1.4.7 # via # -c /app/reqs/requirements.txt # matplotlib -markdown==3.4.3 +markdown==3.7 # via tensorboard -markupsafe==2.1.2 +markupsafe==2.1.5 # via # -c /app/reqs/requirements.txt # jinja2 # werkzeug -matplotlib==3.7.1 +matplotlib==3.9.2 # via # -c /app/reqs/requirements.txt # captum mpmath==1.3.0 # via sympy -networkx==2.8.8 +networkx==3.3 # via # -c /app/reqs/requirements.txt # torch -numpy==1.24.3 +numpy==1.26.4 # via # -c /app/reqs/requirements.txt # captum @@ -87,114 +85,93 @@ numpy==1.24.3 # torchtext # torchvision # transformers -oauthlib==3.2.2 - # via requests-oauthlib -packaging==23.1 +packaging==24.1 # via # -c /app/reqs/requirements.txt # huggingface-hub # matplotlib + # tensorboard # transformers -pillow==9.5.0 +pillow==10.4.0 # via # -c /app/reqs/requirements.txt # matplotlib # torchvision -protobuf==4.23.2 +protobuf==5.28.0 # via tensorboard -pyasn1==0.5.0 - # via - # -c /app/reqs/requirements.txt - # pyasn1-modules - # rsa -pyasn1-modules==0.3.0 - # via - # -c /app/reqs/requirements.txt - # google-auth -pyparsing==3.0.9 +pyparsing==3.1.4 # via # -c /app/reqs/requirements.txt # matplotlib -python-dateutil==2.8.2 +python-dateutil==2.9.0.post0 # via # -c /app/reqs/requirements.txt # matplotlib -pyyaml==6.0 +pyyaml==6.0.2 # via # -c /app/reqs/requirements.txt # huggingface-hub # transformers -regex==2023.5.5 +regex==2024.7.24 # via # -c /app/reqs/requirements.txt # transformers -requests==2.31.0 +requests==2.32.3 # via # -c /app/reqs/requirements.txt # huggingface-hub - # requests-oauthlib - # tensorboard - # torchdata # torchtext - # torchvision # transformers -requests-oauthlib==1.3.1 - # via google-auth-oauthlib -rsa==4.9 - # via google-auth +safetensors==0.4.4 + # via transformers six==1.16.0 # via # -c /app/reqs/requirements.txt - # google-auth # python-dateutil -sympy==1.12 + # tensorboard +sympy==1.13.2 # via torch -tensorboard==2.13.0 +tensorboard==2.17.1 # via -r /app/reqs/pytorch.in -tensorboard-data-server==0.7.0 +tensorboard-data-server==0.7.2 # via tensorboard -tokenizers==0.13.3 +tokenizers==0.19.1 # via transformers -torch==2.0.1 +torch==2.4.1+cpu # via # -r /app/reqs/pytorch.in # captum # torchaudio - # torchdata # torchtext # torchvision # torchviz -torchaudio==2.0.2 +torchaudio==2.4.1+cpu # via -r /app/reqs/pytorch.in -torchdata==0.6.1 - # via torchtext -torchtext==0.15.2 +torchtext==0.18.0+cpu # via -r /app/reqs/pytorch.in -torchvision==0.15.2 +torchvision==0.19.1+cpu # via -r /app/reqs/pytorch.in torchviz==0.0.2 # via -r /app/reqs/pytorch.in -tqdm==4.65.0 +tqdm==4.66.5 # via # -c /app/reqs/requirements.txt + # captum # huggingface-hub # torchtext # transformers -transformers==4.29.2 +transformers==4.44.2 # via -r /app/reqs/pytorch.in -typing-extensions==4.6.2 +typing-extensions==4.12.2 # via # -c /app/reqs/requirements.txt # huggingface-hub # torch -urllib3==2.0.2 +urllib3==2.2.2 # via # -c /app/reqs/requirements.txt # requests - # torchdata -werkzeug==2.3.4 - # via tensorboard -wheel==0.40.0 +werkzeug==3.0.4 # via tensorboard # The following packages are considered to be unsafe in a requirements file: diff --git a/quantum.in b/quantum.in deleted file mode 100644 index 01e6cec..0000000 --- a/quantum.in +++ /dev/null @@ -1,50 +0,0 @@ - -beautifulsoup4 -black -colorama -gower -ipywidgets -isort -jupyterlab-code-formatter -jupyterlab-git -jupyterlab-lsp -jupyterlab-scenes -jupyterlab-skip-traceback -jupyterlab-spellchecker -jupyterlab -keras -kneed -lime -matplotlib -nltk -numpy -openpyxl -pandas -prince -python-lsp-server[all] -requests -scikit-learn -scipy -scrapy -seaborn -shap -spacy -statsmodels -tikzplotlib -tqdm - -amazon-braket-sdk -amazon-braket-pennylane-plugin -amazon-braket-strawberryfields-plugin -cirq -cuquantum -openfermion -pennylane-cirq -pennylane-qiskit -pennylane-sf -pennylane -pytket -qiskit -qiskit[visualization] -qutip -strawberryfields diff --git a/quantum/Dockerfile b/quantum/Dockerfile index 1ecd9bc..56f1814 100644 --- a/quantum/Dockerfile +++ b/quantum/Dockerfile @@ -1,15 +1,14 @@ -ARG BASE +FROM databaseline/zoose-base -FROM ${BASE} LABEL org.opencontainers.image.authors="Ian Hellström" \ org.opencontainers.image.source="https://github.com/ianhellstrom/zoose" \ - org.opencontainers.image.vendor="Databaseline" + org.opencontainers.image.vendor="ianhellstrom.org" WORKDIR /setup COPY requirements.txt /setup/requirements.txt -RUN pip install --no-cache-dir -r /setup/requirements.txt +RUN pip install --no-cache-dir --break-system-packages -r /setup/requirements.txt # HACK for cirq and related libraries -RUN pip install --no-cache-dir cirq openfermion pennylane-cirq +RUN pip install --no-cache-dir --break-system-packages cirq openfermion pennylane-cirq ENTRYPOINT ["/jupyter.sh"] diff --git a/quantum/requirements.in b/quantum/requirements.in index bf2996d..138e121 100644 --- a/quantum/requirements.in +++ b/quantum/requirements.in @@ -5,7 +5,6 @@ amazon-braket-sdk amazon-braket-pennylane-plugin amazon-braket-strawberryfields-plugin -cuquantum pennylane-qiskit pennylane-sf pennylane diff --git a/quantum/requirements.txt b/quantum/requirements.txt index 4787014..e3a1bff 100644 --- a/quantum/requirements.txt +++ b/quantum/requirements.txt @@ -1,17 +1,422 @@ -amazon-braket-sdk==1.41.0 -amazon-braket-pennylane-plugin==1.16.0 +amazon-braket-default-simulator==1.26.0 + # via amazon-braket-sdk +amazon-braket-pennylane-plugin==1.28.0 + # via -r /app/reqs/quantum.in +amazon-braket-schemas==1.22.0 + # via + # amazon-braket-default-simulator + # amazon-braket-sdk +amazon-braket-sdk==1.57.2 + # via + # -r /app/reqs/quantum.in + # amazon-braket-pennylane-plugin + # amazon-braket-strawberryfields-plugin amazon-braket-strawberryfields-plugin==1.1.0.post1 -cuquantum==23.3.0 -pennylane-qiskit==0.30.1 + # via -r /app/reqs/quantum.in +annotated-types==0.7.0 + # via + # -c /app/reqs/requirements.txt + # pydantic +antlr4-python3-runtime==4.9.2 + # via + # amazon-braket-default-simulator + # openpulse + # openqasm3 + # quantum-blackbird +appdirs==1.4.4 + # via + # pennylane + # xanadu-cloud-client +autograd==1.7.0 + # via pennylane +autoray==0.6.12 + # via + # amazon-braket-pennylane-plugin + # pennylane +backoff==2.2.1 + # via amazon-braket-sdk +boltons==24.0.0 + # via amazon-braket-sdk +boto3==1.35.11 + # via amazon-braket-sdk +botocore==1.35.11 + # via + # boto3 + # s3transfer +cachetools==5.5.0 + # via pennylane +certifi==2024.8.30 + # via + # -c /app/reqs/requirements.txt + # requests +cffi==1.17.0 + # via + # -c /app/reqs/requirements.txt + # cryptography +charset-normalizer==3.3.2 + # via + # -c /app/reqs/requirements.txt + # requests +click==8.1.7 + # via + # -c /app/reqs/requirements.txt + # dask +cloudpickle==3.0.0 + # via + # -c /app/reqs/requirements.txt + # dask +contourpy==1.3.0 + # via + # -c /app/reqs/requirements.txt + # matplotlib +cryptography==43.0.1 + # via + # -c /app/reqs/requirements.txt + # pyspnego + # requests-ntlm +cycler==0.12.1 + # via + # -c /app/reqs/requirements.txt + # matplotlib +dask==2024.8.2 + # via thewalrus +dill==0.3.8 + # via + # -c /app/reqs/requirements.txt + # qiskit +fire==0.6.0 + # via xanadu-cloud-client +fonttools==4.53.1 + # via + # -c /app/reqs/requirements.txt + # matplotlib +fsspec==2024.9.0 + # via dask +graphviz==0.20.3 + # via pytket +ibm-cloud-sdk-core==3.20.6 + # via ibm-platform-services +ibm-platform-services==0.57.0 + # via qiskit-ibm-runtime +idna==3.8 + # via + # -c /app/reqs/requirements.txt + # requests +jinja2==3.1.4 + # via + # -c /app/reqs/requirements.txt + # pytket +jmespath==1.0.1 + # via + # -c /app/reqs/requirements.txt + # boto3 + # botocore +kiwisolver==1.4.7 + # via + # -c /app/reqs/requirements.txt + # matplotlib +lark==1.2.2 + # via pytket +lark-parser==0.12.0 + # via quantum-xir +llvmlite==0.43.0 + # via + # -c /app/reqs/requirements.txt + # numba +locket==1.0.0 + # via partd +markupsafe==2.1.5 + # via + # -c /app/reqs/requirements.txt + # jinja2 +matplotlib==3.9.2 + # via + # -c /app/reqs/requirements.txt + # qiskit + # seaborn +mpmath==1.3.0 + # via sympy +mypy-extensions==1.0.0 + # via + # -c /app/reqs/requirements.txt + # oqpy +nest-asyncio==1.6.0 + # via + # -c /app/reqs/requirements.txt + # amazon-braket-sdk +networkx==3.3 + # via + # -c /app/reqs/requirements.txt + # amazon-braket-sdk + # pennylane + # pennylane-qiskit + # pytket + # quantum-blackbird + # strawberryfields +numba==0.60.0 + # via + # -c /app/reqs/requirements.txt + # strawberryfields + # thewalrus +numpy==1.26.4 + # via + # -c /app/reqs/requirements.txt + # amazon-braket-default-simulator + # amazon-braket-sdk + # autograd + # contourpy + # matplotlib + # numba + # opt-einsum + # oqpy + # pandas + # pennylane + # pennylane-qiskit + # pytket + # qiskit + # qiskit-aer + # qiskit-ibm-provider + # qiskit-ibm-runtime + # quantum-blackbird + # qutip + # rustworkx + # scipy + # seaborn + # strawberryfields + # thewalrus + # xanadu-cloud-client +openpulse==0.4.2 + # via + # amazon-braket-sdk + # oqpy +openqasm3==0.4.0 + # via + # amazon-braket-sdk + # openpulse +opt-einsum==3.3.0 + # via amazon-braket-default-simulator +oqpy==0.2.1 + # via amazon-braket-sdk +packaging==24.1 + # via + # -c /app/reqs/requirements.txt + # dask + # matplotlib + # pennylane + # qutip +pandas==2.2.2 + # via + # -c /app/reqs/requirements.txt + # seaborn +partd==1.4.2 + # via dask +pbr==6.1.0 + # via stevedore +pennylane==0.38.0 + # via + # -r /app/reqs/quantum.in + # amazon-braket-pennylane-plugin + # pennylane-lightning + # pennylane-qiskit + # pennylane-sf +pennylane-lightning==0.38.0 + # via pennylane +pennylane-qiskit==0.38.0 + # via -r /app/reqs/quantum.in pennylane-sf==0.29.0 -pennylane==0.30.0 -pytket==1.15.0 -qiskit==0.43.0 -qiskit[finance] -qiskit[machine-learning] -qiskit[nature] -qiskit[optimization] -qiskit[visualization] -qiskit-nature-pyscf -qutip==4.7.1 + # via -r /app/reqs/quantum.in +pillow==10.4.0 + # via + # -c /app/reqs/requirements.txt + # matplotlib + # qiskit +psutil==6.0.0 + # via + # -c /app/reqs/requirements.txt + # qiskit-aer +pycparser==2.22 + # via + # -c /app/reqs/requirements.txt + # cffi +pydantic==2.8.2 + # via + # -c /app/reqs/requirements.txt + # amazon-braket-default-simulator + # amazon-braket-schemas + # pydantic-settings + # qiskit-ibm-runtime + # xanadu-cloud-client +pydantic-core==2.20.1 + # via + # -c /app/reqs/requirements.txt + # pydantic +pydantic-settings==2.4.0 + # via xanadu-cloud-client +pydot==3.0.1 + # via qiskit +pyjwt==2.9.0 + # via ibm-cloud-sdk-core +pylatexenc==2.10 + # via qiskit +pyparsing==3.1.4 + # via + # -c /app/reqs/requirements.txt + # matplotlib + # pydot +pyspnego==0.11.1 + # via requests-ntlm +python-dateutil==2.9.0.post0 + # via + # -c /app/reqs/requirements.txt + # botocore + # ibm-cloud-sdk-core + # matplotlib + # pandas + # qiskit + # qiskit-ibm-provider + # qiskit-ibm-runtime + # strawberryfields + # xanadu-cloud-client +python-dotenv==1.0.1 + # via + # pydantic-settings + # xanadu-cloud-client +pytket==1.32.0 + # via -r /app/reqs/quantum.in +pytz==2024.1 + # via + # -c /app/reqs/requirements.txt + # pandas +pyyaml==6.0.2 + # via + # -c /app/reqs/requirements.txt + # dask +qiskit==1.2.0 + # via + # -r /app/reqs/quantum.in + # pennylane-qiskit + # qiskit-aer + # qiskit-ibm-provider + # qiskit-ibm-runtime +qiskit-aer==0.15.0 + # via pennylane-qiskit +qiskit-ibm-provider==0.11.0 + # via pennylane-qiskit +qiskit-ibm-runtime==0.28.0 + # via pennylane-qiskit +quantum-blackbird==0.5.0 + # via strawberryfields +quantum-xir==0.2.2 + # via strawberryfields +qutip==5.0.4 + # via -r /app/reqs/quantum.in +qwasm==1.0.1 + # via pytket +requests==2.32.3 + # via + # -c /app/reqs/requirements.txt + # ibm-cloud-sdk-core + # pennylane + # qiskit-ibm-provider + # qiskit-ibm-runtime + # requests-ntlm + # strawberryfields + # xanadu-cloud-client +requests-ntlm==1.3.0 + # via + # qiskit-ibm-provider + # qiskit-ibm-runtime +rustworkx==0.15.1 + # via + # pennylane + # qiskit +s3transfer==0.10.2 + # via boto3 +scipy==1.14.1 + # via + # -c /app/reqs/requirements.txt + # amazon-braket-default-simulator + # pennylane + # pytket + # qiskit + # qiskit-aer + # qutip + # strawberryfields + # thewalrus +seaborn==0.13.2 + # via + # -c /app/reqs/requirements.txt + # qiskit +six==1.16.0 + # via + # -c /app/reqs/requirements.txt + # fire + # python-dateutil +stevedore==5.3.0 + # via qiskit strawberryfields==0.23.0 + # via + # -r /app/reqs/quantum.in + # amazon-braket-strawberryfields-plugin + # pennylane-sf +symengine==0.11.0 + # via qiskit +sympy==1.12.1 + # via + # amazon-braket-default-simulator + # amazon-braket-sdk + # pennylane-qiskit + # pytket + # qiskit + # quantum-blackbird + # strawberryfields + # thewalrus +termcolor==2.4.0 + # via fire +thewalrus==0.21.0 + # via strawberryfields +toml==0.10.2 + # via + # pennylane + # strawberryfields +toolz==0.12.1 + # via + # dask + # partd +typing-extensions==4.12.2 + # via + # -c /app/reqs/requirements.txt + # pennylane + # pydantic + # pydantic-core + # pytket + # qiskit + # qiskit-ibm-provider +tzdata==2024.1 + # via + # -c /app/reqs/requirements.txt + # pandas +urllib3==2.2.2 + # via + # -c /app/reqs/requirements.txt + # botocore + # ibm-cloud-sdk-core + # qiskit-ibm-provider + # qiskit-ibm-runtime + # requests + # strawberryfields +websocket-client==1.8.0 + # via + # -c /app/reqs/requirements.txt + # qiskit-ibm-provider + # qiskit-ibm-runtime +websockets==13.0.1 + # via qiskit-ibm-provider +xanadu-cloud-client==0.3.2 + # via strawberryfields + +# The following packages are considered to be unsafe in a requirements file: +setuptools==74.1.1 + # via + # amazon-braket-sdk + # qwasm diff --git a/quantum_constraints.sh b/quantum_constraints.sh index a1c1f59..4ce1bb3 100755 --- a/quantum_constraints.sh +++ b/quantum_constraints.sh @@ -15,4 +15,6 @@ docker run --rm -it \ --strip-extras --no-header \ --resolver=backtracking +mv reqs/quantum.txt quantum/requirements.txt + rm -rf reqs