Make the training run again

This commit is contained in:
Tobias Hölzer 2026-01-11 22:17:15 +01:00
parent cfb7d65d6d
commit 4445834895
6 changed files with 205 additions and 97 deletions

202
pixi.lock generated
View file

@ -249,7 +249,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/38/0e/27be9fdef66e72d64c0cdc3cc2823101b80585f8119b5c112c2e8f5f7dab/anyio-4.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/38/0e/27be9fdef66e72d64c0cdc3cc2823101b80585f8119b5c112c2e8f5f7dab/anyio-4.12.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/5b/03/c17464bbf682ea87e7e3de2ddc63395e359a78ae9c01f55fc78759ecbd79/anywidget-0.9.21-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5b/03/c17464bbf682ea87e7e3de2ddc63395e359a78ae9c01f55fc78759ecbd79/anywidget-0.9.21-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/3b/00/2344469e2084fb287c2e0b57b72910309874c3245463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3b/00/2344469e2084fb287c2e0b57b72910309874c3245463acd6cf5e3db69324/appdirs-1.4.4-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/5f/74/425f1ebaaeddbda73b59c1edb9ff264b98fbe109d57aeebdbe4646455cd8/apsw-3.51.1.0-cp313-cp313-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/84/07/7ebe77239b227b888f43f23cf33e54491de0591c3834253f47473c06672b/apsw-3.51.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/af/77/43b27c14865dd4204ef353b875b4251e270b2518296e90b9bda479776c58/apswutils-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/77/43b27c14865dd4204ef353b875b4251e270b2518296e90b9bda479776c58/apswutils-0.1.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/df/5d/493b1b5528ab5072feae30821ff3a07b7a0474213d548efb1fdf135f85c1/array_api_compat-1.13.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/df/5d/493b1b5528ab5072feae30821ff3a07b7a0474213d548efb1fdf135f85c1/array_api_compat-1.13.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/21/2b/bfa1cfe370dd4ed51f834f2c6ad93b7f6263b83615ab96ad91094cc98ec6/array_api_extra-0.9.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/21/2b/bfa1cfe370dd4ed51f834f2c6ad93b7f6263b83615ab96ad91094cc98ec6/array_api_extra-0.9.2-py3-none-any.whl
@ -322,7 +322,7 @@ environments:
- pypi: git+ssh://git@forgejo.tobiashoelzer.de:22222/tobias/entropy.git#9ca1bdf4afc4ac9b0ea29ebbc060ffecb5cffcf7 - pypi: git+ssh://git@forgejo.tobiashoelzer.de:22222/tobias/entropy.git#9ca1bdf4afc4ac9b0ea29ebbc060ffecb5cffcf7
- pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/c7/7d/74dd43d58f37584b32f0d781c8dbea9a286ee73e90393394e70569d4f254/fastai-2.8.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/7d/74dd43d58f37584b32f0d781c8dbea9a286ee73e90393394e70569d4f254/fastai-2.8.6-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ed/d9/81f2d90b4f7a95f66bb2f4f9a5cddb15659f405304dbff809eb3253d50aa/fastcore-1.11.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/84/f8/78832c84a957a01a332612ea6ee5a34f63690737000bf4f90995dcca367d/fastcore-1.11.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/47/60/ed35253a05a70b63e4f52df1daa39a6a464a3e22b0bd060b77f63e2e2b6a/fastdownload-0.0.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/47/60/ed35253a05a70b63e4f52df1daa39a6a464a3e22b0bd060b77f63e2e2b6a/fastdownload-0.0.7-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/61/48/895a29947b67e9b2da92b6370d519741ca7680ea8cf6c5f42bd887241984/fastlite-0.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/48/895a29947b67e9b2da92b6370d519741ca7680ea8cf6c5f42bd887241984/fastlite-0.2.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/79/45/4aa502bbda9b63c792463c3466a2c5ef3c0830935f81906043f66b2b6c74/fastprogress-1.1.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/79/45/4aa502bbda9b63c792463c3466a2c5ef3c0830935f81906043f66b2b6c74/fastprogress-1.1.3-py3-none-any.whl
@ -342,7 +342,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/e5/15/cf2a69ade4b194aa524ac75112d5caac37414b20a3a03e6865dfe0bd1539/geopy-2.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/15/cf2a69ade4b194aa524ac75112d5caac37414b20a3a03e6865dfe0bd1539/geopy-2.4.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/6a/09/e21df6aef1e1ffc0c816f0522ddc3f6dcded766c3261813131c78a704470/gitpython-3.1.46-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6a/09/e21df6aef1e1ffc0c816f0522ddc3f6dcded766c3261813131c78a704470/gitpython-3.1.46-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ed/d4/90197b416cb61cefd316964fd9e7bd8324bcbafabf40eef14a9f20b81974/google_api_core-2.28.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/77/b6/85c4d21067220b9a78cfb81f516f9725ea6befc1544ec9bd2c1acd97c324/google_api_core-2.29.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/96/58/c1e716be1b055b504d80db2c8413f6c6a890a6ae218a65f178b63bc30356/google_api_python_client-2.187.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/96/58/c1e716be1b055b504d80db2c8413f6c6a890a6ae218a65f178b63bc30356/google_api_python_client-2.187.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/db/18/79e9008530b79527e0d5f79e7eef08d3b179b7f851cfd3a2f27822fbdfa9/google_auth-2.47.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/db/18/79e9008530b79527e0d5f79e7eef08d3b179b7f851cfd3a2f27822fbdfa9/google_auth-2.47.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/99/d5/3c97526c8796d3caf5f4b3bed2b05e8a7102326f00a334e7a438237f3b22/google_auth_httplib2-0.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/d5/3c97526c8796d3caf5f4b3bed2b05e8a7102326f00a334e7a438237f3b22/google_auth_httplib2-0.3.0-py3-none-any.whl
@ -415,7 +415,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/53/20/08c6dc0f20c1394e2324b9344838e4e7af770cdcb52c30757a475f50daeb/obstore-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/53/20/08c6dc0f20c1394e2324b9344838e4e7af770cdcb52c30757a475f50daeb/obstore-0.8.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/99/e2/311fb383d9534eef7bfbe858fad931b6e3dbe85843c50592f50063c3bc83/odc_geo-0.4.10-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/99/e2/311fb383d9534eef7bfbe858fad931b6e3dbe85843c50592f50063c3bc83/odc_geo-0.4.10-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/84/99/6636f7097a5e461d560317024522279f52931b5a52c8caa0755a14d5f1fd/odc_loader-0.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/92/58/5148ae95713c84255267b26eddfe1ac926244aca4327bdeb4cf2d6d576bf/odc_loader-0.6.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e2/c7/b8f2b3e53f26f8f463002f3e8023189653b627b22ba6c00ef86eaba50b73/odc_stac-0.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e2/c7/b8f2b3e53f26f8f463002f3e8023189653b627b22ba6c00ef86eaba50b73/odc_stac-0.5.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e3/94/1843518e420fa3ed6919835845df698c7e27e183cb997394e4a670973a65/omegaconf-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e3/94/1843518e420fa3ed6919835845df698c7e27e183cb997394e4a670973a65/omegaconf-2.3.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/b5/ed/9fbdeb23a09e430d87b7d72d430484b88184633dc50f6bfb792354b6f661/opencensus-0.11.4-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b5/ed/9fbdeb23a09e430d87b7d72d430484b88184633dc50f6bfb792354b6f661/opencensus-0.11.4-py2.py3-none-any.whl
@ -444,7 +444,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/cd/24/3b7a0818484df9c28172857af32c2397b6d8fcd99d9468bd4684f98ebf0a/proto_plus-1.27.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cd/24/3b7a0818484df9c28172857af32c2397b6d8fcd99d9468bd4684f98ebf0a/proto_plus-1.27.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/56/13/333b8f421738f149d4fe5e49553bc2a2ab75235486259f689b4b91f96cec/protobuf-6.33.2-cp39-abi3-manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/38/8c/6522b8e543ece46f645911c3cebe361d8460134c0fee02ddcf70ebf32999/protobuf-6.33.3-cp39-abi3-manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/ce/b1/5f49af514f76431ba4eea935b8ad3725cdeb397e9245ab919dbc1d1dc20f/psutil-7.1.3-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ce/b1/5f49af514f76431ba4eea935b8ad3725cdeb397e9245ab919dbc1d1dc20f/psutil-7.1.3-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/2d/4f/3593e5adb88a188c798604aed95fbc1479f30230e7f51e8f2c770e6a3832/psygnal-0.15.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2d/4f/3593e5adb88a188c798604aed95fbc1479f30230e7f51e8f2c770e6a3832/psygnal-0.15.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl
@ -465,12 +465,12 @@ environments:
- pypi: https://files.pythonhosted.org/packages/df/80/fc9d01d5ed37ba4c42ca2b55b4339ae6e200b456be3a1aaddf4a9fa99b8c/pyperclip-1.11.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/df/80/fc9d01d5ed37ba4c42ca2b55b4339ae6e200b456be3a1aaddf4a9fa99b8c/pyperclip-1.11.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/f8/85/c2b1706e51942de19076eff082f8495e57d5151364e78b5bef4af4a1d94a/pyproj-3.7.2-cp313-cp313-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f8/85/c2b1706e51942de19076eff082f8495e57d5151364e78b5bef4af4a1d94a/pyproj-3.7.2-cp313-cp313-manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/82/06/cad54e8ce758bd836ee5411691cbd49efeb9cc611b374670fce299519334/pyshp-3.0.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/82/06/cad54e8ce758bd836ee5411691cbd49efeb9cc611b374670fce299519334/pyshp-3.0.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/9f/86/3ec01436c6235a23a80e978b261a87481c1acaf626a5c618e9edac30e5e1/pystac-1.14.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ad/b4/a9430e72bfc3c458e1fcf8363890994e483052ab052ed93912be4e5b32c8/pystac-1.14.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/5d/d2/5f6367b14c9f250d1a6725d18bd1e9584f5ab1587e292f3a847e59189598/pystac_client-0.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5d/d2/5f6367b14c9f250d1a6725d18bd1e9584f5ab1587e292f3a847e59189598/pystac_client-0.9.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/88/ae/baf3a8057d8129896a7e02619df43ea0d918fc5b2bb66eb6e2470595fbac/python_box-7.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/88/ae/baf3a8057d8129896a7e02619df43ea0d918fc5b2bb66eb6e2470595fbac/python_box-7.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/38/a0/5ff83d9e48cedab2111e74ebf1afe2906b63db5ba8cf45d3ccf95c753c65/python_fasthtml-0.12.37-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1b/354a0ab669703f87e9ab0464670be8791a9de59c2693ffb0d9a584927b5e/python_fasthtml-0.12.39-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/aa/76/03af049af4dcee5d27442f71b6924f01f3efb5d2bd34f23fcd563f2cc5f5/python_multipart-0.0.21-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/aa/76/03af049af4dcee5d27442f71b6924f01f3efb5d2bd34f23fcd563f2cc5f5/python_multipart-0.0.21-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
@ -484,13 +484,15 @@ environments:
- pypi: https://files.pythonhosted.org/packages/d6/e5/4f4fc949e7eb8415a57091767969e1d314dcf06b74b85bbbf29991395af4/rioxarray-0.20.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d6/e5/4f4fc949e7eb8415a57091767969e1d314dcf06b74b85bbbf29991395af4/rioxarray-0.20.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/64/8d/0133e4eb4beed9e425d9a98ed6e081a55d195481b7632472be1af08d2f6b/rsa-4.9.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/8d/0133e4eb4beed9e425d9a98ed6e081a55d195481b7632472be1af08d2f6b/rsa-4.9.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/b3/19/9e050c0dca8aba824d67cc0db69fb459c28d8cd3f6855b1405b3f29cc91d/ruff-0.14.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ae/93/f36d89fa021543187f98991609ce6e47e24f35f008dfe1af01379d248a41/ruff-0.14.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/44/8c/04797ebb53748b4d594d4c334b2d9a99f2d2e06e19ad505f1313ca5d56eb/s3fs-2025.12.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/44/8c/04797ebb53748b4d594d4c334b2d9a99f2d2e06e19ad505f1313ca5d56eb/s3fs-2025.12.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/5f/e1/5ef25f52973aa12a19cf4e1375d00932d7fb354ffd310487ba7d44225c1a/s3transfer-0.15.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5f/e1/5ef25f52973aa12a19cf4e1375d00932d7fb354ffd310487ba7d44225c1a/s3transfer-0.15.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/a0/60/429e9b1cb3fc651937727befe258ea24122d9663e4d5709a48c9cbfceecb/safetensors-0.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/a0/60/429e9b1cb3fc651937727befe258ea24122d9663e4d5709a48c9cbfceecb/safetensors-0.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/a3/bb/bbae36d06c0fd670e8373da67096cd57058b57c9bad7d92969b5e3b730af/scooby-0.11.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a3/bb/bbae36d06c0fd670e8373da67096cd57058b57c9bad7d92969b5e3b730af/scooby-0.11.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/83/11/00d3c3dfc25ad54e731d91449895a79e4bf2384dc3ac01809010ba88f6d5/seaborn-0.13.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/83/11/00d3c3dfc25ad54e731d91449895a79e4bf2384dc3ac01809010ba88f6d5/seaborn-0.13.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/6b/6a/c006de5df0e0f4850aa94019df1f79bf6a5342fa851ca85e4728691fd0c4/shap-0.50.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/f2/a2/83fc37e2a58090e3d2ff79175a95493c664bcd0b653dd75cb9134645a4e5/shapely-2.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f2/a2/83fc37e2a58090e3d2ff79175a95493c664bcd0b653dd75cb9134645a4e5/shapely-2.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/63/81/9ef641ff4e12cbcca30e54e72fb0951a2ba195d0cda0ba4100e532d929db/slicer-0.0.8-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ab/6c/1d4db72c5dbbb9ea2fbc323a40986917cca84ca098f6fcf80624370979e7/smart_geocubes-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/6c/1d4db72c5dbbb9ea2fbc323a40986917cca84ca098f6fcf80624370979e7/smart_geocubes-0.1.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ad/95/bc978be7ea0babf2fb48a414b6afaad414c6a9e8b1eafc5b8a53c030381a/smart_open-7.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ad/95/bc978be7ea0babf2fb48a414b6afaad414c6a9e8b1eafc5b8a53c030381a/smart_open-7.5.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl
@ -503,7 +505,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/c3/2f/66044ef5a10a487652913c1a7f32396cb0e9e32ecfc3fdc0a0bc0382e703/srsly-2.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c3/2f/66044ef5a10a487652913c1a7f32396cb0e9e32ecfc3fdc0a0bc0382e703/srsly-2.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/30/09/cd7134f1ed5074a7d456640e7ba9a8c8e68a831837b4e7bfd9f29e5700a4/st_theme-1.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/30/09/cd7134f1ed5074a7d456640e7ba9a8c8e68a831837b4e7bfd9f29e5700a4/st_theme-1.2.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/d9/52/1064f510b141bd54025f9b55105e26d1fa970b9be67ad766380a3c9b74b0/starlette-0.50.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/c4/09985a03dba389d4fe16a9014147a7b02fa76ef3519bf5846462a485876d/starlette-0.51.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/f7/45/8c4ebc0c460e6ec38e62ab245ad3c7fc10b210116cea7c16d61602aa9558/stevedore-5.4.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/45/8c4ebc0c460e6ec38e62ab245ad3c7fc10b210116cea7c16d61602aa9558/stevedore-5.4.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/7a/31/7d601cc639b0362a213552a838af601105591598a4b08ec80666458083d2/stopuhr-0.0.10-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7a/31/7d601cc639b0362a213552a838af601105591598a4b08ec80666458083d2/stopuhr-0.0.10-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/c0/95/6b7873f0267973ebd55ba9cd33a690b35a116f2779901ef6185a0e21864d/streamlit-1.52.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c0/95/6b7873f0267973ebd55ba9cd33a690b35a116f2779901ef6185a0e21864d/streamlit-1.52.2-py3-none-any.whl
@ -511,7 +513,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/02/be/5d2d47b1fb58943194fb59dcf222f7c4e35122ec0ffe8c36e18b5d728f0b/tblib-3.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/02/be/5d2d47b1fb58943194fb59dcf222f7c4e35122ec0ffe8c36e18b5d728f0b/tblib-3.2.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e5/30/643397144bfbfec6f6ef821f36f33e57d35946c44a2352d3c9f0ae847619/tenacity-9.1.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e0/1d/b5d63f1a6b824282b57f7b581810d20b7a28ca951f2d5b59f1eb0782c12b/tensorboardx-2.6.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e0/1d/b5d63f1a6b824282b57f7b581810d20b7a28ca951f2d5b59f1eb0782c12b/tensorboardx-2.6.4-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/84/38/47fab2a5fad163ca4851f7a20eb2442491cc63bf2756ec4ef161bc1461dd/textual-7.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a9/f4/48e4a4c77ab7eea48d3b0a77f8dea0be101c83421abc64da0888c77c47cf/textual-7.1.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/45/ef/e7fca88074cb0aa1c1a23195470b4549492c2797fe7dc9ff79a85500153a/thinc-8.3.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/45/ef/e7fca88074cb0aa1c1a23195470b4549492c2797fe7dc9ff79a85500153a/thinc-8.3.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/1b/fe/e59859aa1134fac065d36864752daf13215c98b379cb5d93f954dc0ec830/tifffile-2025.12.20-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1b/fe/e59859aa1134fac065d36864752daf13215c98b379cb5d93f954dc0ec830/tifffile-2025.12.20-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/2e/76/932be4b50ef6ccedf9d3c6639b056a967a86258c6d9200643f01269211ca/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/2e/76/932be4b50ef6ccedf9d3c6639b056a967a86258c6d9200643f01269211ca/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
@ -523,7 +525,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/8d/c0/fdf9d3ee103ce66a55f0532835ad5e154226c5222423c6636ba049dc42fc/traittypes-0.2.3-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8d/c0/fdf9d3ee103ce66a55f0532835ad5e154226c5222423c6636ba049dc42fc/traittypes-0.2.3-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/6a/6b/2f416568b3c4c91c96e5a365d164f8a4a4a88030aa8ab4644181fdadce97/transformers-4.57.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6a/6b/2f416568b3c4c91c96e5a365d164f8a4a4a88030aa8ab4644181fdadce97/transformers-4.57.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/94/fc/1d34ec891900d9337169ff9f8252fcaa633ae5c4d36b67effd849ed4f9ac/ty-0.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/74/18/8dd4fe6df1fd66f3e83b4798eddb1d8482d9d9b105f25099b76703402ebb/ty-0.0.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/c8/0a/4aca634faf693e33004796b6cee0ae2e1dba375a800c16ab8d3eff4bb800/typer_slim-0.21.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c8/0a/4aca634faf693e33004796b6cee0ae2e1dba375a800c16ab8d3eff4bb800/typer_slim-0.21.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e7/c1/56ef16bf5dcd255155cc736d276efa6ae0a5c26fd685e28f0412a4013c01/types_pytz-2025.2.0.20251108-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e7/c1/56ef16bf5dcd255155cc736d276efa6ae0a5c26fd685e28f0412a4013c01/types_pytz-2025.2.0.20251108-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl
@ -534,14 +536,14 @@ environments:
- pypi: https://files.pythonhosted.org/packages/15/c0/0be24758891ef825f2065cd5db8741aaddabe3e248ee6acc5e8a80f04005/uvloop-0.22.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/15/c0/0be24758891ef825f2065cd5db8741aaddabe3e248ee6acc5e8a80f04005/uvloop-0.22.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/e6/9f/ca52771fe972e0dcc5167fedb609940e01516066938ff2ee28b273ae4f29/vega_datasets-0.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e6/9f/ca52771fe972e0dcc5167fedb609940e01516066938ff2ee28b273ae4f29/vega_datasets-0.9.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/04/d5/81d1403788f072e7d0e2b2fe539a0ae4410f27886ff52df094e5348c99ea/vegafusion-2.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/04/d5/81d1403788f072e7d0e2b2fe539a0ae4410f27886ff52df094e5348c99ea/vegafusion-2.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/eb/6a/0af36875e0023a1f2d0b66b4051721fc26740e947696922df1665b75e5d3/virtualenv-20.36.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6a/2a/dc2228b2888f51192c7dc766106cd475f1b768c10caaf9727659726f7391/virtualenv-20.36.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/6f/61/dc6f4a38cf1b8699f64c57d7f021ca42c39bfe782d8a6eaefb7e8418e925/vl_convert_python-1.9.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/6f/61/dc6f4a38cf1b8699f64c57d7f021ca42c39bfe782d8a6eaefb7e8418e925/vl_convert_python-1.9.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/06/7c/34330a89da55610daa5f245ddce5aab81244321101614751e7537f125133/wasabi-1.1.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/06/7c/34330a89da55610daa5f245ddce5aab81244321101614751e7537f125133/wasabi-1.1.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/62/da/def65b170a3815af7bd40a3e7010bf6ab53089ef1b75d05dd5385b87cf08/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/62/da/def65b170a3815af7bd40a3e7010bf6ab53089ef1b75d05dd5385b87cf08/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/a4/74/a148b41572656904a39dfcfed3f84dd1066014eed94e209223ae8e9d088d/weasel-0.4.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a4/74/a148b41572656904a39dfcfed3f84dd1066014eed94e209223ae8e9d088d/weasel-0.4.3-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/0c/37/6faf15cfa41bf1f3dba80cd3f5ccc6622dfccb660ab26ed79f0178c7497f/wrapt-1.17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - pypi: https://files.pythonhosted.org/packages/0c/37/6faf15cfa41bf1f3dba80cd3f5ccc6622dfccb660ab26ed79f0178c7497f/wrapt-1.17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
- pypi: git+https://github.com/davbyr/xAnimate#750e03e480db309407e09f4ffe5f49522a4c4f9b - pypi: git+https://github.com/davbyr/xAnimate#750e03e480db309407e09f4ffe5f49522a4c4f9b
@ -549,7 +551,7 @@ environments:
- pypi: git+https://github.com/relativityhd/xarray-spatial#3a3120981dc910cbfc824bd03d1c1f8637efaf2d - pypi: git+https://github.com/relativityhd/xarray-spatial#3a3120981dc910cbfc824bd03d1c1f8637efaf2d
- pypi: https://files.pythonhosted.org/packages/14/38/d1a8b0c8b7749fde76daa12ec3e63aa052cf37cacc2e9715377ce0197a99/xarray_histogram-0.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/14/38/d1a8b0c8b7749fde76daa12ec3e63aa052cf37cacc2e9715377ce0197a99/xarray_histogram-0.2.2-py3-none-any.whl
- pypi: git+https://github.com/relativityhd/xdggs?branch=feature%2Fmake-plotting-useful#d85688e638350804dac37d05725709a9c909e5be - pypi: git+https://github.com/relativityhd/xdggs?branch=feature%2Fmake-plotting-useful#d85688e638350804dac37d05725709a9c909e5be
- pypi: https://files.pythonhosted.org/packages/5e/ab/c60fcc137fa685533bb31e721de3ecc88959d393830d59d0204c5cbd2c85/xgboost-3.1.2-py3-none-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/6c/9c/9d4ad7f586698bad52a570d2bf81138e500a5d9f32723c2b4ed1dd9252d8/xgboost-3.1.3-py3-none-manylinux_2_28_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/05/b9/b6a9cf72aef69c3e6db869dcc130e19452a658366dac9377f9cd32a76b80/xproj-0.2.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/b9/b6a9cf72aef69c3e6db869dcc130e19452a658366dac9377f9cd32a76b80/xproj-0.2.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/d2/9e/bb060b9c922e55cd069453401525e1e7b62edf59352c334f1035a906f602/xpystac-0.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d2/9e/bb060b9c922e55cd069453401525e1e7b62edf59352c334f1035a906f602/xpystac-0.5.0-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/9e/b4/b3161f856c704938d69c10680abaaf4a24783fa58a9f95590f2a0b63dd09/xvec-0.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/b4/b3161f856c704938d69c10680abaaf4a24783fa58a9f95590f2a0b63dd09/xvec-0.5.2-py3-none-any.whl
@ -758,10 +760,10 @@ packages:
name: appdirs name: appdirs
version: 1.4.4 version: 1.4.4
sha256: a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128 sha256: a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128
- pypi: https://files.pythonhosted.org/packages/5f/74/425f1ebaaeddbda73b59c1edb9ff264b98fbe109d57aeebdbe4646455cd8/apsw-3.51.1.0-cp313-cp313-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/84/07/7ebe77239b227b888f43f23cf33e54491de0591c3834253f47473c06672b/apsw-3.51.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
name: apsw name: apsw
version: 3.51.1.0 version: 3.51.2.0
sha256: 419459f296e1a3924d994746374b8d691dc240e5f3da55330aea3d4ff9e955ca sha256: 064e00e09ffd1a14c75c8569dd4c8712c16a51ce00992e08a2fa468cbd286d53
requires_python: '>=3.10' requires_python: '>=3.10'
- pypi: https://files.pythonhosted.org/packages/af/77/43b27c14865dd4204ef353b875b4251e270b2518296e90b9bda479776c58/apswutils-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/af/77/43b27c14865dd4204ef353b875b4251e270b2518296e90b9bda479776c58/apswutils-0.1.2-py3-none-any.whl
name: apswutils name: apswutils
@ -2617,7 +2619,7 @@ packages:
- pypi: ./ - pypi: ./
name: entropice name: entropice
version: 0.1.0 version: 0.1.0
sha256: 5de78cf62d9c4657150d6ddb7149d1033af59b2d7940eae05c674789b4faa23f sha256: 879d02081ed946a95d41ff65c226e0e5a053f288fd930553215b2ae4304d8df6
requires_dist: requires_dist:
- aiohttp>=3.12.11 - aiohttp>=3.12.11
- bokeh>=3.7.3 - bokeh>=3.7.3
@ -2676,11 +2678,12 @@ packages:
- duckdb>=1.4.2,<2 - duckdb>=1.4.2,<2
- pydeck>=0.9.1,<0.10 - pydeck>=0.9.1,<0.10
- pypalettes>=0.2.1,<0.3 - pypalettes>=0.2.1,<0.3
- ty>=0.0.2,<0.0.3 - ty>=0.0.11,<0.0.12
- ruff>=0.14.9,<0.15 - ruff>=0.14.11,<0.15
- pandas-stubs>=2.3.3.251201,<3 - pandas-stubs>=2.3.3.251201,<3
- pytest>=9.0.2,<10 - pytest>=9.0.2,<10
- autogluon-tabular[all]>=1.5.0 - autogluon-tabular[all,mitra]>=1.5.0
- shap>=0.50.0,<0.51
requires_python: '>=3.13,<3.14' requires_python: '>=3.13,<3.14'
- pypi: git+ssh://git@forgejo.tobiashoelzer.de:22222/tobias/entropy.git#9ca1bdf4afc4ac9b0ea29ebbc060ffecb5cffcf7 - pypi: git+ssh://git@forgejo.tobiashoelzer.de:22222/tobias/entropy.git#9ca1bdf4afc4ac9b0ea29ebbc060ffecb5cffcf7
name: entropy name: entropy
@ -2752,10 +2755,10 @@ packages:
- accelerate>=0.21 ; extra == 'dev' - accelerate>=0.21 ; extra == 'dev'
- ipykernel ; extra == 'dev' - ipykernel ; extra == 'dev'
requires_python: '>=3.10' requires_python: '>=3.10'
- pypi: https://files.pythonhosted.org/packages/ed/d9/81f2d90b4f7a95f66bb2f4f9a5cddb15659f405304dbff809eb3253d50aa/fastcore-1.11.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/84/f8/78832c84a957a01a332612ea6ee5a34f63690737000bf4f90995dcca367d/fastcore-1.11.3-py3-none-any.whl
name: fastcore name: fastcore
version: 1.11.2 version: 1.11.3
sha256: 561194da95e14b30dd8c488cf870604b1de1eec6ef432081f1f07cec36a015c0 sha256: 998825f8f69c44ab16a156bb60e9a6d0988f3e8aa5b2459ec95289b520cf1c0b
requires_dist: requires_dist:
- packaging - packaging
- numpy ; extra == 'dev' - numpy ; extra == 'dev'
@ -3271,10 +3274,10 @@ packages:
- pkg:pypi/gmpy2?source=hash-mapping - pkg:pypi/gmpy2?source=hash-mapping
size: 215019 size: 215019
timestamp: 1762946917870 timestamp: 1762946917870
- pypi: https://files.pythonhosted.org/packages/ed/d4/90197b416cb61cefd316964fd9e7bd8324bcbafabf40eef14a9f20b81974/google_api_core-2.28.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/77/b6/85c4d21067220b9a78cfb81f516f9725ea6befc1544ec9bd2c1acd97c324/google_api_core-2.29.0-py3-none-any.whl
name: google-api-core name: google-api-core
version: 2.28.1 version: 2.29.0
sha256: 4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c sha256: d30bc60980daa36e314b5d5a3e5958b0200cb44ca8fa1be2b614e932b75a3ea9
requires_dist: requires_dist:
- googleapis-common-protos>=1.56.2,<2.0.0 - googleapis-common-protos>=1.56.2,<2.0.0
- protobuf>=3.19.5,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0 - protobuf>=3.19.5,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<7.0.0
@ -6232,10 +6235,10 @@ packages:
- ipyleaflet ; extra == 'test-all' - ipyleaflet ; extra == 'test-all'
- matplotlib ; extra == 'test-all' - matplotlib ; extra == 'test-all'
requires_python: '>=3.9' requires_python: '>=3.9'
- pypi: https://files.pythonhosted.org/packages/84/99/6636f7097a5e461d560317024522279f52931b5a52c8caa0755a14d5f1fd/odc_loader-0.6.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/92/58/5148ae95713c84255267b26eddfe1ac926244aca4327bdeb4cf2d6d576bf/odc_loader-0.6.2-py3-none-any.whl
name: odc-loader name: odc-loader
version: 0.6.0 version: 0.6.2
sha256: e1a24f6b6516ea5a594e455b04e3e10d0342d2b0cd8695656bdf55ab71a26ec0 sha256: fb02ac4d76316b23449f04cfe777901826ef907140c61c6f36de2af795b65011
requires_dist: requires_dist:
- odc-geo>=0.4.7 - odc-geo>=0.4.7
- rasterio>=1.0.0,!=1.3.0,!=1.3.1 - rasterio>=1.0.0,!=1.3.0,!=1.3.1
@ -6752,10 +6755,10 @@ packages:
- protobuf>=3.19.0,<7.0.0 - protobuf>=3.19.0,<7.0.0
- google-api-core>=1.31.5 ; extra == 'testing' - google-api-core>=1.31.5 ; extra == 'testing'
requires_python: '>=3.7' requires_python: '>=3.7'
- pypi: https://files.pythonhosted.org/packages/56/13/333b8f421738f149d4fe5e49553bc2a2ab75235486259f689b4b91f96cec/protobuf-6.33.2-cp39-abi3-manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/38/8c/6522b8e543ece46f645911c3cebe361d8460134c0fee02ddcf70ebf32999/protobuf-6.33.3-cp39-abi3-manylinux2014_x86_64.whl
name: protobuf name: protobuf
version: 6.33.2 version: 6.33.3
sha256: 1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f sha256: 6fa9b5f4baa12257542273e5e6f3c3d3867b30bc2770c14ad9ac8315264bf986
requires_python: '>=3.9' requires_python: '>=3.9'
- pypi: https://files.pythonhosted.org/packages/ce/b1/5f49af514f76431ba4eea935b8ad3725cdeb397e9245ab919dbc1d1dc20f/psutil-7.1.3-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ce/b1/5f49af514f76431ba4eea935b8ad3725cdeb397e9245ab919dbc1d1dc20f/psutil-7.1.3-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl
name: psutil name: psutil
@ -7074,15 +7077,15 @@ packages:
- pyshp-stubs ; extra == 'stubs' - pyshp-stubs ; extra == 'stubs'
- pytest ; extra == 'test' - pytest ; extra == 'test'
requires_python: '>=3.9' requires_python: '>=3.9'
- pypi: https://files.pythonhosted.org/packages/9f/86/3ec01436c6235a23a80e978b261a87481c1acaf626a5c618e9edac30e5e1/pystac-1.14.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ad/b4/a9430e72bfc3c458e1fcf8363890994e483052ab052ed93912be4e5b32c8/pystac-1.14.3-py3-none-any.whl
name: pystac name: pystac
version: 1.14.2 version: 1.14.3
sha256: 5d3fbdd0f9f06c45ca67082f91a68c092a925faad02225172686c5a5dc7cce91 sha256: 2f60005f521d541fb801428307098f223c14697b3faf4d2f0209afb6a43f39e5
requires_dist: requires_dist:
- python-dateutil>=2.7.0 - python-dateutil>=2.7.0
- jinja2<4.0 ; extra == 'jinja2' - jinja2<4.0 ; extra == 'jinja2'
- orjson>=3.5 ; extra == 'orjson' - orjson>=3.5 ; extra == 'orjson'
- urllib3>=1.26 ; extra == 'urllib3' - urllib3>=2.6.3 ; extra == 'urllib3'
- jsonschema~=4.18 ; extra == 'validation' - jsonschema~=4.18 ; extra == 'validation'
requires_python: '>=3.10' requires_python: '>=3.10'
- pypi: https://files.pythonhosted.org/packages/5d/d2/5f6367b14c9f250d1a6725d18bd1e9584f5ab1587e292f3a847e59189598/pystac_client-0.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/5d/d2/5f6367b14c9f250d1a6725d18bd1e9584f5ab1587e292f3a847e59189598/pystac_client-0.9.0-py3-none-any.whl
@ -7177,10 +7180,10 @@ packages:
requires_dist: requires_dist:
- click>=5.0 ; extra == 'cli' - click>=5.0 ; extra == 'cli'
requires_python: '>=3.9' requires_python: '>=3.9'
- pypi: https://files.pythonhosted.org/packages/38/a0/5ff83d9e48cedab2111e74ebf1afe2906b63db5ba8cf45d3ccf95c753c65/python_fasthtml-0.12.37-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/1b/354a0ab669703f87e9ab0464670be8791a9de59c2693ffb0d9a584927b5e/python_fasthtml-0.12.39-py3-none-any.whl
name: python-fasthtml name: python-fasthtml
version: 0.12.37 version: 0.12.39
sha256: d074e48b930b60c4166694b54137b009b513eef5fbb1d2a2faf73da4d835950d sha256: d9d2a173714852f906d1821f5eeb40640db2ef2b2f997edee63471feb58127be
requires_dist: requires_dist:
- fastcore>=1.10.0 - fastcore>=1.10.0
- python-dateutil - python-dateutil
@ -7772,10 +7775,10 @@ packages:
requires_dist: requires_dist:
- pyasn1>=0.1.3 - pyasn1>=0.1.3
requires_python: '>=3.6,<4' requires_python: '>=3.6,<4'
- pypi: https://files.pythonhosted.org/packages/b3/19/9e050c0dca8aba824d67cc0db69fb459c28d8cd3f6855b1405b3f29cc91d/ruff-0.14.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ae/93/f36d89fa021543187f98991609ce6e47e24f35f008dfe1af01379d248a41/ruff-0.14.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
name: ruff name: ruff
version: 0.14.10 version: 0.14.11
sha256: 59aabd2e2c4fd614d2862e7939c34a532c04f1084476d6833dddef4afab87e9f sha256: a35c9da08562f1598ded8470fcfef2afb5cf881996e6c0a502ceb61f4bc9c8a3
requires_python: '>=3.7' requires_python: '>=3.7'
- conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.6.2-he8a4886_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.6.2-he8a4886_1.conda
sha256: dec76e9faa3173579d34d226dbc91892417a80784911daf8e3f0eb9bad19d7a6 sha256: dec76e9faa3173579d34d226dbc91892417a80784911daf8e3f0eb9bad19d7a6
@ -7940,6 +7943,74 @@ packages:
- pkg:pypi/setuptools?source=hash-mapping - pkg:pypi/setuptools?source=hash-mapping
size: 748788 size: 748788
timestamp: 1748804951958 timestamp: 1748804951958
- pypi: https://files.pythonhosted.org/packages/6b/6a/c006de5df0e0f4850aa94019df1f79bf6a5342fa851ca85e4728691fd0c4/shap-0.50.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
name: shap
version: 0.50.0
sha256: a757c94cda0587edb727cbf08a4af819921ad42646b55833713c531ead75742d
requires_dist:
- numpy>=2
- scipy
- scikit-learn
- pandas
- tqdm>=4.27.0
- packaging>20.9
- slicer==0.0.8
- numba==0.63.0b1 ; python_full_version >= '3.14'
- llvmlite==0.46.0b1 ; python_full_version >= '3.14'
- numba>=0.54 ; python_full_version < '3.14'
- cloudpickle
- typing-extensions
- matplotlib ; extra == 'plots'
- ipython ; extra == 'plots'
- lime ; extra == 'others'
- scikit-learn ; extra == 'download-datasets'
- matplotlib ; extra == 'docs'
- ipython ; extra == 'docs'
- numpydoc ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- sphinx ; extra == 'docs'
- nbsphinx ; extra == 'docs'
- sphinx-github-changelog ; extra == 'docs'
- myst-parser ; extra == 'docs'
- requests ; extra == 'docs'
- ipywidgets ; extra == 'docs'
- pytest ; extra == 'test-core'
- pytest-mpl ; extra == 'test-core'
- pytest-cov ; extra == 'test-core'
- mypy ; extra == 'test-core'
- pytest ; extra == 'test'
- pytest-mpl ; extra == 'test'
- pytest-cov ; extra == 'test'
- xgboost ; extra == 'test'
- lightgbm ; extra == 'test'
- catboost ; python_full_version < '3.14' and extra == 'test'
- gpboost==1.6.3.1 ; python_full_version < '3.14' and extra == 'test'
- ngboost ; extra == 'test'
- pyspark ; extra == 'test'
- pyod ; extra == 'test'
- transformers<4.54.0 ; extra == 'test'
- tf-keras ; extra == 'test'
- protobuf ; extra == 'test'
- torch ; python_full_version < '3.14' and extra == 'test'
- torchvision ; python_full_version < '3.14' and extra == 'test'
- tensorflow ; python_full_version < '3.14' and extra == 'test'
- sentencepiece ; extra == 'test'
- opencv-python ; extra == 'test'
- numpy>=2.0 ; extra == 'test'
- scikit-learn<=1.6.1 ; extra == 'test'
- causalml ; extra == 'test'
- selenium ; extra == 'test'
- jupyter ; extra == 'test-notebooks'
- nbconvert ; extra == 'test-notebooks'
- nbformat ; extra == 'test-notebooks'
- nlp ; extra == 'test-notebooks'
- transformers ; extra == 'test-notebooks'
- datasets ; extra == 'test-notebooks'
- keras ; extra == 'test-notebooks'
- nbtest-plugin ; extra == 'nbtest'
- nbtest-gen ; extra == 'nbtest'
- nbtest-lab-extension ; extra == 'nbtest'
requires_python: '>=3.11'
- pypi: https://files.pythonhosted.org/packages/f2/a2/83fc37e2a58090e3d2ff79175a95493c664bcd0b653dd75cb9134645a4e5/shapely-2.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f2/a2/83fc37e2a58090e3d2ff79175a95493c664bcd0b653dd75cb9134645a4e5/shapely-2.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
name: shapely name: shapely
version: 2.1.2 version: 2.1.2
@ -7979,6 +8050,11 @@ packages:
purls: [] purls: []
size: 1951720 size: 1951720
timestamp: 1756274576844 timestamp: 1756274576844
- pypi: https://files.pythonhosted.org/packages/63/81/9ef641ff4e12cbcca30e54e72fb0951a2ba195d0cda0ba4100e532d929db/slicer-0.0.8-py3-none-any.whl
name: slicer
version: 0.0.8
sha256: 6c206258543aecd010d497dc2eca9d2805860a0b3758673903456b7df7934dc3
requires_python: '>=3.6'
- pypi: https://files.pythonhosted.org/packages/ab/6c/1d4db72c5dbbb9ea2fbc323a40986917cca84ca098f6fcf80624370979e7/smart_geocubes-0.1.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ab/6c/1d4db72c5dbbb9ea2fbc323a40986917cca84ca098f6fcf80624370979e7/smart_geocubes-0.1.2-py3-none-any.whl
name: smart-geocubes name: smart-geocubes
version: 0.1.2 version: 0.1.2
@ -8158,10 +8234,10 @@ packages:
- pygments ; extra == 'tests' - pygments ; extra == 'tests'
- littleutils ; extra == 'tests' - littleutils ; extra == 'tests'
- cython ; extra == 'tests' - cython ; extra == 'tests'
- pypi: https://files.pythonhosted.org/packages/d9/52/1064f510b141bd54025f9b55105e26d1fa970b9be67ad766380a3c9b74b0/starlette-0.50.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/c4/09985a03dba389d4fe16a9014147a7b02fa76ef3519bf5846462a485876d/starlette-0.51.0-py3-none-any.whl
name: starlette name: starlette
version: 0.50.0 version: 0.51.0
sha256: 9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca sha256: fb460a3d6fd3c958d729fdd96aee297f89a51b0181f16401fe8fd4cb6129165d
requires_dist: requires_dist:
- anyio>=3.6.2,<5 - anyio>=3.6.2,<5
- typing-extensions>=4.10.0 ; python_full_version < '3.13' - typing-extensions>=4.10.0 ; python_full_version < '3.13'
@ -8285,10 +8361,10 @@ packages:
- packaging - packaging
- protobuf>=3.20 - protobuf>=3.20
requires_python: '>=3.9' requires_python: '>=3.9'
- pypi: https://files.pythonhosted.org/packages/84/38/47fab2a5fad163ca4851f7a20eb2442491cc63bf2756ec4ef161bc1461dd/textual-7.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a9/f4/48e4a4c77ab7eea48d3b0a77f8dea0be101c83421abc64da0888c77c47cf/textual-7.1.0-py3-none-any.whl
name: textual name: textual
version: 7.0.1 version: 7.1.0
sha256: f9b7d16fa9b640bfff2a2008bf31e3f2d4429dc85e07a9583be033840ed15174 sha256: 9209dd0d1d958316832f7e59328f3911112f8e951abef7c3fbe54effd4e4caed
requires_dist: requires_dist:
- markdown-it-py[linkify]>=2.1.0 - markdown-it-py[linkify]>=2.1.0
- mdit-py-plugins - mdit-py-plugins
@ -9012,10 +9088,10 @@ packages:
- pkg:pypi/triton?source=hash-mapping - pkg:pypi/triton?source=hash-mapping
size: 223243524 size: 223243524
timestamp: 1763015352210 timestamp: 1763015352210
- pypi: https://files.pythonhosted.org/packages/94/fc/1d34ec891900d9337169ff9f8252fcaa633ae5c4d36b67effd849ed4f9ac/ty-0.0.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/74/18/8dd4fe6df1fd66f3e83b4798eddb1d8482d9d9b105f25099b76703402ebb/ty-0.0.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
name: ty name: ty
version: 0.0.2 version: 0.0.11
sha256: eb514711eed3f56d7a130d4885f4b5d8e490fdcd2adac098e5cf175573a0dda3 sha256: 25f88e8789072830348cb59b761d5ced70642ed5600673b4bf6a849af71eca8b
requires_python: '>=3.8' requires_python: '>=3.8'
- pypi: https://files.pythonhosted.org/packages/c8/0a/4aca634faf693e33004796b6cee0ae2e1dba375a800c16ab8d3eff4bb800/typer_slim-0.21.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c8/0a/4aca634faf693e33004796b6cee0ae2e1dba375a800c16ab8d3eff4bb800/typer_slim-0.21.1-py3-none-any.whl
name: typer-slim name: typer-slim
@ -9185,10 +9261,10 @@ packages:
- packaging - packaging
- narwhals>=1.42 - narwhals>=1.42
requires_python: '>=3.9' requires_python: '>=3.9'
- pypi: https://files.pythonhosted.org/packages/eb/6a/0af36875e0023a1f2d0b66b4051721fc26740e947696922df1665b75e5d3/virtualenv-20.36.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6a/2a/dc2228b2888f51192c7dc766106cd475f1b768c10caaf9727659726f7391/virtualenv-20.36.1-py3-none-any.whl
name: virtualenv name: virtualenv
version: 20.36.0 version: 20.36.1
sha256: e7ded577f3af534fd0886d4ca03277f5542053bedb98a70a989d3c22cfa5c9ac sha256: 575a8d6b124ef88f6f51d56d656132389f961062a9177016a50e4f507bbcc19f
requires_dist: requires_dist:
- distlib>=0.3.7,<1 - distlib>=0.3.7,<1
- filelock>=3.16.1,<4 ; python_full_version < '3.10' - filelock>=3.16.1,<4 ; python_full_version < '3.10'
@ -9263,11 +9339,11 @@ packages:
- requests>=2.13.0,<3.0.0 - requests>=2.13.0,<3.0.0
- pydantic>=1.7.4,!=1.8,!=1.8.1,<3.0.0 - pydantic>=1.7.4,!=1.8,!=1.8.1,<3.0.0
requires_python: '>=3.7' requires_python: '>=3.7'
- pypi: https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
name: websockets name: websockets
version: 15.0.1 version: '16.0'
sha256: 0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8 sha256: 95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5
requires_python: '>=3.9' requires_python: '>=3.10'
- pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/0e/fa3b193432cfc60c93b42f3be03365f5f909d2b3ea410295cf36df739e31/widgetsnbextension-4.0.15-py3-none-any.whl
name: widgetsnbextension name: widgetsnbextension
version: 4.0.15 version: 4.0.15
@ -9405,13 +9481,13 @@ packages:
- pyproj>=3.3 - pyproj>=3.3
- xarray - xarray
requires_python: '>=3.11' requires_python: '>=3.11'
- pypi: https://files.pythonhosted.org/packages/5e/ab/c60fcc137fa685533bb31e721de3ecc88959d393830d59d0204c5cbd2c85/xgboost-3.1.2-py3-none-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/6c/9c/9d4ad7f586698bad52a570d2bf81138e500a5d9f32723c2b4ed1dd9252d8/xgboost-3.1.3-py3-none-manylinux_2_28_x86_64.whl
name: xgboost name: xgboost
version: 3.1.2 version: 3.1.3
sha256: 24879ac75c0ee21acae0101f791bc43303f072a86d70fdfc89dae10a0008767f sha256: 687504d1d76dc797df08b0dbe8b83d58629cdc06df52378f617164d16142bf2c
requires_dist: requires_dist:
- numpy - numpy
- nvidia-nccl-cu12 ; platform_machine != 'aarch64' and sys_platform == 'linux' - nvidia-nccl-cu12 ; sys_platform == 'linux'
- scipy - scipy
- dask ; extra == 'dask' - dask ; extra == 'dask'
- distributed ; extra == 'dask' - distributed ; extra == 'dask'

View file

@ -63,11 +63,12 @@ dependencies = [
"duckdb>=1.4.2,<2", "duckdb>=1.4.2,<2",
"pydeck>=0.9.1,<0.10", "pydeck>=0.9.1,<0.10",
"pypalettes>=0.2.1,<0.3", "pypalettes>=0.2.1,<0.3",
"ty>=0.0.2,<0.0.3", "ty>=0.0.11,<0.0.12",
"ruff>=0.14.9,<0.15", "ruff>=0.14.11,<0.15",
"pandas-stubs>=2.3.3.251201,<3", "pandas-stubs>=2.3.3.251201,<3",
"pytest>=9.0.2,<10", "pytest>=9.0.2,<10",
"autogluon-tabular[all]>=1.5.0", "autogluon-tabular[all,mitra]>=1.5.0",
"shap>=0.50.0,<0.51",
] ]
[project.scripts] [project.scripts]
@ -77,6 +78,7 @@ alpha-earth = "entropice.ingest.alphaearth:main"
era5 = "entropice.ingest.era5:cli" era5 = "entropice.ingest.era5:cli"
arcticdem = "entropice.ingest.arcticdem:cli" arcticdem = "entropice.ingest.arcticdem:cli"
train = "entropice.ml.training:cli" train = "entropice.ml.training:cli"
autogluon = "entropice.ml.autogluon_training:cli"
[build-system] [build-system]
requires = ["hatchling"] requires = ["hatchling"]

View file

@ -83,7 +83,7 @@ def _process_rts_grid(
values=["geometry", "area_km2"], values=["geometry", "area_km2"],
fill_value=0, fill_value=0,
aggfunc={"geometry": "count", "area_km2": "sum"}, # type: ignore[arg-type] aggfunc={"geometry": "count", "area_km2": "sum"}, # type: ignore[arg-type]
) ).rename(columns={"geometry": "count"})
rts: xr.Dataset = xr.Dataset.from_dataframe(rts) rts: xr.Dataset = xr.Dataset.from_dataframe(rts)
darts = xr.merge( darts = xr.merge(
[rts, covered_area.rename("covered_area_km2"), coverage.rename("coverage")], join="outer", fill_value=0 [rts, covered_area.rename("covered_area_km2"), coverage.rename("coverage")], join="outer", fill_value=0

View file

@ -229,7 +229,7 @@ class TrainingSet:
"""Label-Codes of the target categories, None if not categorical.""" """Label-Codes of the target categories, None if not categorical."""
binned = self.targets["y"] binned = self.targets["y"]
if binned.dtype.name == "category": if binned.dtype.name == "category":
return list(binned.cat.codes) return list(range(len(binned.cat.categories)))
else: else:
return None return None
@ -279,8 +279,9 @@ class DatasetEnsemble:
] ]
) )
temporal_mode: TemporalMode = "synopsis" temporal_mode: TemporalMode = "synopsis"
dimension_filters: dict[L2SourceDataset, dict[str, list]] = field(default_factory=dict) # ?: We can't use L2SourceDataset as types here because cyclopts can't handle Literals as dict keys
variable_filters: dict[L2SourceDataset, list[str]] = field(default_factory=dict) dimension_filters: dict[str, dict[str, list]] = field(default_factory=dict)
variable_filters: dict[str, list[str]] = field(default_factory=dict)
add_lonlat: bool = True add_lonlat: bool = True
def __post_init__(self): def __post_init__(self):
@ -308,7 +309,6 @@ class DatasetEnsemble:
def __hash__(self): def __hash__(self):
return int(self.id(), 16) return int(self.id(), 16)
@cache
def id(self): def id(self):
"""Return an unique, stable identifier based on the settings of this class.""" """Return an unique, stable identifier based on the settings of this class."""
return hashlib.blake2b( return hashlib.blake2b(
@ -319,7 +319,7 @@ class DatasetEnsemble:
@cached_property @cached_property
def cell_ids(self) -> pd.Series: def cell_ids(self) -> pd.Series:
"""Series of all cell-ids of the grid.""" """Series of all cell-ids of the grid."""
return self.read_grid()["cell_id"] return self.read_grid().index.to_series()
@cached_property @cached_property
def geometries(self) -> pd.Series: def geometries(self) -> pd.Series:
@ -327,6 +327,7 @@ class DatasetEnsemble:
return self.read_grid()["geometry"] return self.read_grid()["geometry"]
@stopwatch("Reading grid") @stopwatch("Reading grid")
@cache
def read_grid(self) -> gpd.GeoDataFrame: def read_grid(self) -> gpd.GeoDataFrame:
"""Load the grid dataframe and enrich it with lat-lon information.""" """Load the grid dataframe and enrich it with lat-lon information."""
grid_gdf = entropice.spatial.grids.open(grid=self.grid, level=self.level) grid_gdf = entropice.spatial.grids.open(grid=self.grid, level=self.level)

View file

@ -104,6 +104,7 @@ def get_model_hpo_config(model: str, task: Task, **model_kwargs) -> ModelHPOConf
eval_metric="mlogloss" if task != "binary" else "logloss", eval_metric="mlogloss" if task != "binary" else "logloss",
tree_method="hist", tree_method="hist",
max_depth=10, max_depth=10,
device="gpu",
**model_kwargs, **model_kwargs,
) )
return ModelHPOConfig(clf, xgboost_hpconfig) return ModelHPOConfig(clf, xgboost_hpconfig)
@ -113,6 +114,7 @@ def get_model_hpo_config(model: str, task: Task, **model_kwargs) -> ModelHPOConf
eval_metric="rmse", eval_metric="rmse",
tree_method="hist", tree_method="hist",
max_depth=10, max_depth=10,
device="gpu",
**model_kwargs, **model_kwargs,
) )
return ModelHPOConfig(reg, xgboost_hpconfig) return ModelHPOConfig(reg, xgboost_hpconfig)

View file

@ -11,7 +11,17 @@ import toml
import xarray as xr import xarray as xr
from rich import pretty, traceback from rich import pretty, traceback
from sklearn import set_config from sklearn import set_config
from sklearn.metrics import accuracy_score, confusion_matrix, f1_score, jaccard_score, precision_score, recall_score from sklearn.metrics import (
accuracy_score,
confusion_matrix,
f1_score,
jaccard_score,
mean_absolute_error,
mean_squared_error,
precision_score,
r2_score,
recall_score,
)
from sklearn.model_selection import KFold, RandomizedSearchCV from sklearn.model_selection import KFold, RandomizedSearchCV
from stopuhr import stopwatch from stopuhr import stopwatch
@ -32,20 +42,29 @@ pretty.install()
cli = cyclopts.App("entropice-training", config=cyclopts.config.Toml("training-config.toml")) # ty:ignore[invalid-argument-type] cli = cyclopts.App("entropice-training", config=cyclopts.config.Toml("training-config.toml")) # ty:ignore[invalid-argument-type]
_metrics = {
"binary": ["accuracy", "recall", "precision", "f1", "jaccard"], def _get_metrics(task: Task) -> tuple[list[str], str]:
"multiclass": [ """Get the list of metrics for a given task."""
"accuracy", # equals "f1_micro", "precision_micro", "recall_micro", "recall_weighted" if task == "binary":
"f1_macro", return ["accuracy", "recall", "precision", "f1", "jaccard"], "f1"
"f1_weighted", elif task in ["count_regimes", "density_regimes"]:
"precision_macro", return [
"precision_weighted", "accuracy", # equals "f1_micro", "precision_micro", "recall_micro", "recall_weighted"
"recall_macro", "f1_macro",
"jaccard_micro", "f1_weighted",
"jaccard_macro", "precision_macro",
"jaccard_weighted", "precision_weighted",
], "recall_macro",
} "jaccard_micro",
"jaccard_macro",
"jaccard_weighted",
], "f1_weighted"
else:
return [
"neg_mean_squared_error",
"neg_mean_absolute_error",
"r2",
], "r2"
# Compute other metrics - using predictions directly instead of re-predicting for each metric # Compute other metrics - using predictions directly instead of re-predicting for each metric
@ -65,6 +84,9 @@ _metric_functions = {
"jaccard_micro": partial(jaccard_score, average="micro"), "jaccard_micro": partial(jaccard_score, average="micro"),
"jaccard_macro": partial(jaccard_score, average="macro"), "jaccard_macro": partial(jaccard_score, average="macro"),
"jaccard_weighted": partial(jaccard_score, average="weighted"), "jaccard_weighted": partial(jaccard_score, average="weighted"),
"neg_mean_squared_error": mean_squared_error,
"neg_mean_absolute_error": mean_absolute_error,
"r2": r2_score,
} }
@ -111,7 +133,7 @@ def random_cv(
model_hpo_config = get_model_hpo_config(settings.model, settings.task) model_hpo_config = get_model_hpo_config(settings.model, settings.task)
print(f"Using model: {settings.model} with parameters: {model_hpo_config.hp_config}") print(f"Using model: {settings.model} with parameters: {model_hpo_config.hp_config}")
cv = KFold(n_splits=5, shuffle=True, random_state=42) cv = KFold(n_splits=5, shuffle=True, random_state=42)
metrics = _metrics["binary" if settings.task == "binary" else "multiclass"] metrics, refit = _get_metrics(settings.task)
search = RandomizedSearchCV( search = RandomizedSearchCV(
model_hpo_config.model, model_hpo_config.model,
model_hpo_config.search_space, model_hpo_config.search_space,
@ -121,7 +143,7 @@ def random_cv(
random_state=42, random_state=42,
verbose=10, verbose=10,
scoring=metrics, scoring=metrics,
refit="f1" if settings.task == "binary" else "f1_weighted", refit=refit,
) )
print(f"Starting RandomizedSearchCV with {search.n_iter} candidates...") print(f"Starting RandomizedSearchCV with {search.n_iter} candidates...")
@ -140,12 +162,15 @@ def random_cv(
for param_name in sorted(model_hpo_config.hp_config.keys()): for param_name in sorted(model_hpo_config.hp_config.keys()):
print(f"{param_name}: {best_parameters[param_name]}") print(f"{param_name}: {best_parameters[param_name]}")
test_accuracy = search.score( test_score = search.score(
training_data.X.test, training_data.X.test,
training_data.y.as_numpy().test if settings.model == "xgboost" else training_data.y.test, training_data.y.as_numpy().test if settings.model == "xgboost" else training_data.y.test,
) )
print(f"Accuracy of the best parameters using the inner CV of the random search: {search.best_score_:.3f}") print(
print(f"Accuracy on test set: {test_accuracy:.3f}") f"{refit.replace('_', ' ').capitalize()} of the best parameters using the inner CV"
f" of the random search: {search.best_score_:.3f}"
)
print(f"{refit.replace('_', ' ').capitalize()} on test set: {test_score:.3f}")
results_dir = get_cv_results_dir( results_dir = get_cv_results_dir(
"random_search", "random_search",
@ -207,14 +232,14 @@ def random_cv(
# Make confusion matrices for classification taasks # Make confusion matrices for classification taasks
if settings.task in ["binary", "count_regimes", "density_regimes"]: if settings.task in ["binary", "count_regimes", "density_regimes"]:
labels = np.array(training_data.target_codes) codes = np.array(training_data.target_codes)
cm = xr.Dataset( cm = xr.Dataset(
{ {
"test": (("true_label", "predicted_label"), confusion_matrix(y.test, y_pred.test, labels=labels)), "test": (("true_label", "predicted_label"), confusion_matrix(y.test, y_pred.test, labels=codes)),
"train": (("true_label", "predicted_label"), confusion_matrix(y.train, y_pred.train, labels=labels)), "train": (("true_label", "predicted_label"), confusion_matrix(y.train, y_pred.train, labels=codes)),
"combined": ( "combined": (
("true_label", "predicted_label"), ("true_label", "predicted_label"),
confusion_matrix(y.combined, y_pred.combined, labels=labels), confusion_matrix(y.combined, y_pred.combined, labels=codes),
), ),
}, },
coords={"true_label": training_data.target_labels, "predicted_label": training_data.target_labels}, coords={"true_label": training_data.target_labels, "predicted_label": training_data.target_labels},
@ -248,7 +273,9 @@ def random_cv(
preds = predict_proba(dataset_ensemble, model=best_estimator, device=device) preds = predict_proba(dataset_ensemble, model=best_estimator, device=device)
if training_data.targets["y"].dtype == "category": if training_data.targets["y"].dtype == "category":
preds["predicted"] = preds["predicted"].astype("category") preds["predicted"] = preds["predicted"].astype("category")
preds["predicted"].cat.categories = training_data.targets["y"].cat.categories preds["predicted"] = preds["predicted"].cat.set_categories(
training_data.targets["y"].cat.categories, ordered=True
)
print(f"Predicted probabilities DataFrame with {len(preds)} entries.") print(f"Predicted probabilities DataFrame with {len(preds)} entries.")
preds_file = results_dir / "predicted_probabilities.parquet" preds_file = results_dir / "predicted_probabilities.parquet"
print(f"Storing predicted probabilities to {preds_file}") print(f"Storing predicted probabilities to {preds_file}")