From 86cc193aa8e65bb1a670bd145ebd180b8f74eda5 Mon Sep 17 00:00:00 2001 From: Niels Pardon Date: Tue, 13 Oct 2026 14:17:47 +0200 Subject: [PATCH] chore(deps)!: bump substrait packages to 0.105.0 Bumps substrait-protobuf, substrait-extensions, and substrait-antlr to spec v0.105.0 and carries the new file-level extension `description` through build_simple_extensions. BREAKING CHANGE: `avg` over a decimal now derives a nullable `DECIMAL?<38,S>` result, following spec v0.105.0. Plans built with this release declare the aggregate's output type nullable. --- pixi.lock | 130 +++++++++--------- pyproject.toml | 8 +- src/substrait/simple_extension_utils.py | 1 + .../test_registry_lookup.py | 12 ++ tests/test_simple_extension_utils.py | 15 ++ uv.lock | 26 ++-- 6 files changed, 110 insertions(+), 82 deletions(-) diff --git a/pixi.lock b/pixi.lock index d36343b1..731ccbfc 100644 --- a/pixi.lock +++ b/pixi.lock @@ -59,9 +59,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.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/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl linux-aarch64: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h4777abc_8.conda @@ -87,9 +87,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7d/4f/f743761e41d3b2b2566748eb76bbff2b43e14d5fcab694f494a16458b05f/protobuf-6.33.2-cp39-abi3-manylinux2014_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl osx-64: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda @@ -108,9 +108,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.16.10-h6e8e395_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_3.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b2/ca/7e485da88ba45c920fb3f50ae78de29ab925d9e54ef0de678306abfbb497/protobuf-6.33.2-cp39-abi3-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda @@ -128,9 +128,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.16.10-hc57303c_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b2/ca/7e485da88ba45c920fb3f50ae78de29ab925d9e54ef0de678306abfbb497/protobuf-6.33.2-cp39-abi3-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl win-64: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-h4c7d964_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda @@ -150,9 +150,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_34.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/20/4d50191997e917ae13ad0a235c8b42d8c1ab9c3e6fd455ca16d416944355/protobuf-6.33.2-cp310-abi3-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl dev: channels: - url: https://conda.anaconda.org/conda-forge/ @@ -185,21 +185,21 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/00/ba/8d8aa1df96e0666752e5c9d406d440495df2014d315b2a95bbef9856b23e/datafusion-50.1.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1b/8b/5362443737a5307a7b67c1017c42cd104213189b4970bf607e05faf9c525/pyarrow-22.0.0-cp313-cp313-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.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/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-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/87/0c/48ae1d485725af3a452303af409a9022d751ecab260cb9ca2f8c9fb670bc/duckdb-1.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/89/03/a851e84fcbb85214dc637b6378121ef9a0dd61b4c65264675d8a5c9b1ae7/antlr4_python3_runtime-4.13.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f9/04/98c216967275cd9a3e517dfeeb513ebff3183f1f22da29180c479c749ac8/sqloxide-0.1.56-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl linux-aarch64: @@ -227,20 +227,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/11/9a/afce9586145b3ed153d75364b21102a6a95260940352e06b7c6709e9d2db/datafusion-50.1.0-cp39-abi3-manylinux_2_28_aarch64.whl - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.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/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/69/c7/95fcd7bde0f754ea6700208d36b845379cbd2b28779c0eff4dd4a7396369/duckdb-1.2.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7d/4f/f743761e41d3b2b2566748eb76bbff2b43e14d5fcab694f494a16458b05f/protobuf-6.33.2-cp39-abi3-manylinux2014_aarch64.whl - pypi: https://files.pythonhosted.org/packages/89/03/a851e84fcbb85214dc637b6378121ef9a0dd61b4c65264675d8a5c9b1ae7/antlr4_python3_runtime-4.13.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/de/77/dd27f6e325537126ba0b142fdce63bde4305681662ac58e8e779e3c87635/sqloxide-0.1.56-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ff/c0/782344c2ce58afbea010150df07e3a2f5fdad299cd631697ae7bd3bac6e3/pyarrow-22.0.0-cp313-cp313-manylinux_2_28_aarch64.whl @@ -262,22 +262,22 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.16.10-h6e8e395_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_3.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/10/c7/79f57728f300079148ac4e4b988000dcbd1f58960040db89594424a58336/sqloxide-0.1.56.tar.gz - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/1f/6e/f9e2d5d935024a79fd549b5ce1d05549d26a027aab800727d492ac036504/datafusion-50.1.0-cp39-abi3-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/89/03/a851e84fcbb85214dc637b6378121ef9a0dd61b4c65264675d8a5c9b1ae7/antlr4_python3_runtime-4.13.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9f/28/943773d44fd97055c59b58dde9182733661c2b6e3b3549f15dc26b2e139e/duckdb-1.2.2-cp313-cp313-macosx_12_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b2/ca/7e485da88ba45c920fb3f50ae78de29ab925d9e54ef0de678306abfbb497/protobuf-6.33.2-cp39-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c6/9c/1d6357347fbae062ad3f17082f9ebc29cc733321e892c0d2085f42a2212b/pyarrow-22.0.0-cp313-cp313-macosx_12_0_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda @@ -296,12 +296,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.16.10-hc57303c_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.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/41/31/5e2f68cbd000137f6ed52092ad83a8e9c09eca70c59e0b4c5eb679709997/duckdb-1.2.2-cp313-cp313-macosx_12_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/89/03/a851e84fcbb85214dc637b6378121ef9a0dd61b4c65264675d8a5c9b1ae7/antlr4_python3_runtime-4.13.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/94/fd/268d58f8feb4d206d2896dae5e8a4a17c671c9cbb6b15c6e6300d2e168a2/sqloxide-0.1.56-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/a6/d6/d0fac16a2963002fc22c8fa75180a838737203d558f0ed3b564c4a54eef5/pyarrow-22.0.0-cp313-cp313-macosx_12_0_arm64.whl @@ -309,8 +309,8 @@ environments: - pypi: https://files.pythonhosted.org/packages/b2/ca/7e485da88ba45c920fb3f50ae78de29ab925d9e54ef0de678306abfbb497/protobuf-6.33.2-cp39-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/db/58/2dc473240f552d3620186b527c04397f82b36f02243afaf49f0813c84a17/datafusion-50.1.0-cp39-abi3-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl win-64: @@ -332,23 +332,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_34.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2d/f8/1d0bd75bf9328a3b826e24a16e5517cd7f9fbf8d34a3184a4566ef5a7f29/pyarrow-22.0.0-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/3f/3d/ce68db53084746a4a62695a4cb064e44ce04123f8582bb3afbf6ee944e16/duckdb-1.2.2-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/51/a3/41ef1c565770ef0c4060ee3fd50367dd06816f70a5be1ef41fbd7c3975e8/datafusion-50.1.0-cp39-abi3-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/20/4d50191997e917ae13ad0a235c8b42d8c1ab9c3e6fd455ca16d416944355/protobuf-6.33.2-cp310-abi3-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/89/03/a851e84fcbb85214dc637b6378121ef9a0dd61b4c65264675d8a5c9b1ae7/antlr4_python3_runtime-4.13.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c8/5c/487e081a5ac1a8538f7eb3a3e3ea04c39da13acde1f17916ca1767d40c4e/sqloxide-0.1.56-cp313-cp313-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl extensions: channels: @@ -382,12 +382,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.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/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-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/89/03/a851e84fcbb85214dc637b6378121ef9a0dd61b4c65264675d8a5c9b1ae7/antlr4_python3_runtime-4.13.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl linux-aarch64: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h4777abc_8.conda @@ -413,12 +413,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7d/4f/f743761e41d3b2b2566748eb76bbff2b43e14d5fcab694f494a16458b05f/protobuf-6.33.2-cp39-abi3-manylinux2014_aarch64.whl - pypi: https://files.pythonhosted.org/packages/89/03/a851e84fcbb85214dc637b6378121ef9a0dd61b4c65264675d8a5c9b1ae7/antlr4_python3_runtime-4.13.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl osx-64: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda @@ -437,12 +437,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.16.10-h6e8e395_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_3.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/89/03/a851e84fcbb85214dc637b6378121ef9a0dd61b4c65264675d8a5c9b1ae7/antlr4_python3_runtime-4.13.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b2/ca/7e485da88ba45c920fb3f50ae78de29ab925d9e54ef0de678306abfbb497/protobuf-6.33.2-cp39-abi3-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda @@ -460,12 +460,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.16.10-hc57303c_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/89/03/a851e84fcbb85214dc637b6378121ef9a0dd61b4c65264675d8a5c9b1ae7/antlr4_python3_runtime-4.13.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/b2/ca/7e485da88ba45c920fb3f50ae78de29ab925d9e54ef0de678306abfbb497/protobuf-6.33.2-cp39-abi3-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl win-64: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-h4c7d964_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda @@ -485,12 +485,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_34.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/20/4d50191997e917ae13ad0a235c8b42d8c1ab9c3e6fd455ca16d416944355/protobuf-6.33.2-cp310-abi3-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/89/03/a851e84fcbb85214dc637b6378121ef9a0dd61b4c65264675d8a5c9b1ae7/antlr4_python3_runtime-4.13.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl sql: channels: - url: https://conda.anaconda.org/conda-forge/ @@ -523,10 +523,10 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.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/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f9/04/98c216967275cd9a3e517dfeeb513ebff3183f1f22da29180c479c749ac8/sqloxide-0.1.56-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl linux-aarch64: @@ -554,10 +554,10 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7d/4f/f743761e41d3b2b2566748eb76bbff2b43e14d5fcab694f494a16458b05f/protobuf-6.33.2-cp39-abi3-manylinux2014_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/de/77/dd27f6e325537126ba0b142fdce63bde4305681662ac58e8e779e3c87635/sqloxide-0.1.56-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl osx-64: @@ -578,11 +578,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.16.10-h6e8e395_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_3.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/10/c7/79f57728f300079148ac4e4b988000dcbd1f58960040db89594424a58336/sqloxide-0.1.56.tar.gz - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b2/ca/7e485da88ba45c920fb3f50ae78de29ab925d9e54ef0de678306abfbb497/protobuf-6.33.2-cp39-abi3-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda @@ -601,11 +601,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.16.10-hc57303c_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/94/fd/268d58f8feb4d206d2896dae5e8a4a17c671c9cbb6b15c6e6300d2e168a2/sqloxide-0.1.56-cp313-cp313-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/b2/ca/7e485da88ba45c920fb3f50ae78de29ab925d9e54ef0de678306abfbb497/protobuf-6.33.2-cp39-abi3-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl win-64: - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-h4c7d964_0.conda @@ -626,11 +626,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_34.conda - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_34.conda - - pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/12/27/fb8d7338b4d551900fa3e580acbe7a0cf655d940e164cb5c00ec31961094/orderly_set-5.5.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/20/4d50191997e917ae13ad0a235c8b42d8c1ab9c3e6fd455ca16d416944355/protobuf-6.33.2-cp310-abi3-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/c8/5c/487e081a5ac1a8538f7eb3a3e3ea04c39da13acde1f17916ca1767d40c4e/sqloxide-0.1.56-cp313-cp313-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f7/e6/efe534ef0952b531b630780e19cabd416e2032697019d5295defc6ef9bd9/deepdiff-8.6.1-py3-none-any.whl packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 @@ -1725,13 +1725,6 @@ packages: purls: [] size: 115235 timestamp: 1767320173250 -- pypi: https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl - name: substrait-protobuf - version: 0.104.0 - sha256: 9c530c8c91f5ec64a2cf51ba72a850d6524c5ccb8eaefd6ae2228706fea2f28d - requires_dist: - - protobuf>=5,<7 - requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/00/ba/8d8aa1df96e0666752e5c9d406d440495df2014d315b2a95bbef9856b23e/datafusion-50.1.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl name: datafusion version: 50.1.0 @@ -1846,6 +1839,11 @@ packages: version: 6.33.2 sha256: 1f8017c48c07ec5859106533b682260ba3d7c5567b1ca1f24297ce03384d1b4f requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl + name: substrait-extensions + version: 0.105.0 + sha256: 5bdad647cfd02d20b6170c43833c3acb0720b2abf11d5fe9584f6168697cb5c3 + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/64/20/4d50191997e917ae13ad0a235c8b42d8c1ab9c3e6fd455ca16d416944355/protobuf-6.33.2-cp310-abi3-win_amd64.whl name: protobuf version: 6.33.2 @@ -1856,10 +1854,10 @@ packages: version: 1.2.2 sha256: 72f688a8b0df7030c5a28ca6072817c1f090979e08d28ee5912dee37c26a7d0c requires_python: '>=3.7.0' -- pypi: https://files.pythonhosted.org/packages/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-py3-none-any.whl name: substrait-antlr - version: 0.104.0 - sha256: e77c0108debf662af1c2620d577bbc59af2d5c70a06064a459d0ef9f0a0f9712 + version: 0.105.0 + sha256: 79f179b53c651fd8f7af823913d98cf81f284be25bc0aa80ca637f99cfb5abb5 requires_dist: - antlr4-python3-runtime>=4.13,<5 requires_python: '>=3.10' @@ -1936,11 +1934,6 @@ packages: version: 0.1.56 sha256: 08a119f20334285663989fd39f78eaa448ebf023ca451a25adba78321e3a17ae requires_python: '>=3.7' -- pypi: https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl - name: substrait-extensions - version: 0.104.0 - sha256: 01db8023cd6fa7c1eb810f75bcea3f24a788b785c5350951f7740c8c733e5213 - requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl name: iniconfig version: 2.3.0 @@ -1956,6 +1949,13 @@ packages: version: 0.4.6 sha256: 4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*' +- pypi: https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl + name: substrait-protobuf + version: 0.105.0 + sha256: 2004038c8d232265d10c7efe5e52a0b190868e8404dc7d945ba1725adbaf0dfe + requires_dist: + - protobuf>=5,<7 + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/db/58/2dc473240f552d3620186b527c04397f82b36f02243afaf49f0813c84a17/datafusion-50.1.0-cp39-abi3-macosx_11_0_arm64.whl name: datafusion version: 50.1.0 diff --git a/pyproject.toml b/pyproject.toml index abdb0727..2a7c4ee0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,8 +7,8 @@ readme = "README.md" requires-python = ">=3.10,<3.15" dependencies = [ "protobuf >=5,<7", - "substrait-protobuf==0.104.0", - "substrait-extensions==0.104.0", + "substrait-protobuf==0.105.0", + "substrait-extensions==0.105.0", ] dynamic = ["version"] @@ -16,11 +16,11 @@ dynamic = ["version"] write_to = "src/substrait/_version.py" [project.optional-dependencies] -extensions = ["substrait-antlr==0.104.0", "pyyaml"] +extensions = ["substrait-antlr==0.105.0", "pyyaml"] sql = ["sqloxide", "deepdiff"] [dependency-groups] -dev = ["pytest >= 7.0.0", "substrait-antlr==0.104.0", "pyyaml", "sqloxide", "deepdiff", "duckdb<=1.2.2; python_version < '3.14'", "datafusion"] +dev = ["pytest >= 7.0.0", "substrait-antlr==0.105.0", "pyyaml", "sqloxide", "deepdiff", "duckdb<=1.2.2; python_version < '3.14'", "datafusion"] [tool.pytest.ini_options] pythonpath = "src" diff --git a/src/substrait/simple_extension_utils.py b/src/substrait/simple_extension_utils.py index ad22f5f9..e52f68b7 100644 --- a/src/substrait/simple_extension_utils.py +++ b/src/substrait/simple_extension_utils.py @@ -170,6 +170,7 @@ def build_type_variation(d: dict) -> se.TypeVariation: def build_simple_extensions(d: dict) -> se.SimpleExtensions: return se.SimpleExtensions( urn=d["urn"], + description=d.get("description"), metadata=d.get("metadata"), dependencies=d.get("dependencies"), types=[build_type_model(t) for t in d["types"]] if "types" in d else None, diff --git a/tests/extension_registry/test_registry_lookup.py b/tests/extension_registry/test_registry_lookup.py index 642262f4..ec8c0175 100644 --- a/tests/extension_registry/test_registry_lookup.py +++ b/tests/extension_registry/test_registry_lookup.py @@ -225,3 +225,15 @@ def test_quantile_binds_return_type_to_distribution(registry): match = registry.lookup_function(_ARITHMETIC, "quantile", signature) assert match is not None assert match[1] == list_(fp64(nullable=False), nullable=True) + + +def test_decimal_avg_returns_nullable_decimal(registry): + # Since spec v0.105.0 ``avg`` over a decimal returns ``DECIMAL?<38,S>``: the + # average of an empty group is null even when the input is required. + match = registry.lookup_function( + "extension:io.substrait:functions_arithmetic_decimal", + "avg", + [decimal(2, 10, nullable=False)], + ) + assert match is not None + assert match[1] == decimal(2, 38, nullable=True) diff --git a/tests/test_simple_extension_utils.py b/tests/test_simple_extension_utils.py index 9a9ae0ac..35094adf 100644 --- a/tests/test_simple_extension_utils.py +++ b/tests/test_simple_extension_utils.py @@ -49,3 +49,18 @@ def test_metadata_defaults_to_none_when_absent(): extensions = build_simple_extensions({"urn": "extension:test:no-metadata"}) assert extensions.metadata is None + + +def test_file_level_description_is_exposed(): + """Extension files can carry a top-level description (spec v0.105.0).""" + extensions = build_simple_extensions( + {"urn": "extension:test:described", "description": "Test functions.\n"} + ) + + assert extensions.description == "Test functions.\n" + + +def test_file_level_description_defaults_to_none_when_absent(): + extensions = build_simple_extensions({"urn": "extension:test:undescribed"}) + + assert extensions.description is None diff --git a/uv.lock b/uv.lock index 83dd75cc..da1caec8 100644 --- a/uv.lock +++ b/uv.lock @@ -525,9 +525,9 @@ requires-dist = [ { name = "protobuf", specifier = ">=5,<7" }, { name = "pyyaml", marker = "extra == 'extensions'" }, { name = "sqloxide", marker = "extra == 'sql'" }, - { name = "substrait-antlr", marker = "extra == 'extensions'", specifier = "==0.104.0" }, - { name = "substrait-extensions", specifier = "==0.104.0" }, - { name = "substrait-protobuf", specifier = "==0.104.0" }, + { name = "substrait-antlr", marker = "extra == 'extensions'", specifier = "==0.105.0" }, + { name = "substrait-extensions", specifier = "==0.105.0" }, + { name = "substrait-protobuf", specifier = "==0.105.0" }, ] provides-extras = ["extensions", "sql"] @@ -539,40 +539,40 @@ dev = [ { name = "pytest", specifier = ">=7.0.0" }, { name = "pyyaml" }, { name = "sqloxide" }, - { name = "substrait-antlr", specifier = "==0.104.0" }, + { name = "substrait-antlr", specifier = "==0.105.0" }, ] [[package]] name = "substrait-antlr" -version = "0.104.0" +version = "0.105.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "antlr4-python3-runtime" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/67/b6/17cd270682ab1fe16f810f5f8ecf5813a8294533ec641116ad70ca44b7bd/substrait_antlr-0.104.0.tar.gz", hash = "sha256:1ea6f95d4e6352ad37cbeae008500b172d37082b0d072a1f6a8a5227b2ea9e5c", size = 70968, upload-time = "2026-09-27T07:30:33.026Z" } +sdist = { url = "https://files.pythonhosted.org/packages/52/4b/14546aae49536c1b5f4a5fe4b618bb2e40ae93086daa39dea2f1bde3d84e/substrait_antlr-0.105.0.tar.gz", hash = "sha256:649c920406bc29fcba428da4268be8f5378d0761e5841016633f633172ce7d5e", size = 70964, upload-time = "2026-10-04T07:42:21.467Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/c9/dcffe468dddb58ffbda356a11f4317f9f862cfa3cb34497dda87463e319a/substrait_antlr-0.104.0-py3-none-any.whl", hash = "sha256:e77c0108debf662af1c2620d577bbc59af2d5c70a06064a459d0ef9f0a0f9712", size = 80070, upload-time = "2026-09-27T07:30:32.056Z" }, + { url = "https://files.pythonhosted.org/packages/6e/e7/28af92f2691f81748344d5138233681e859c4b3f93fb27344685988fcae1/substrait_antlr-0.105.0-py3-none-any.whl", hash = "sha256:79f179b53c651fd8f7af823913d98cf81f284be25bc0aa80ca637f99cfb5abb5", size = 80071, upload-time = "2026-10-04T07:42:20.294Z" }, ] [[package]] name = "substrait-extensions" -version = "0.104.0" +version = "0.105.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/22/f1cb0853e8448f485a85c87aa350976f1890c661edcf248655bbdb046571/substrait_extensions-0.104.0.tar.gz", hash = "sha256:9b49099bbcfecd438deeac8b5085e2a4a5622d67308dc5987ba843ce7e0515c4", size = 62963, upload-time = "2026-09-27T07:30:25.098Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b9/56/434670accda63e54c71e2c6315bec24fd388f6248f9850794bcbd2d12bd6/substrait_extensions-0.105.0.tar.gz", hash = "sha256:ad23a3b4c614d66c756d2adf8399ca665cccc33b01cc8a84814025bd2e725b52", size = 63552, upload-time = "2026-10-04T07:41:57.603Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ca/91/6ddebfd4ec6f4c8b224c0ae0022ee6fe1cf7d5956dbe5feb0c1437c1d647/substrait_extensions-0.104.0-py3-none-any.whl", hash = "sha256:01db8023cd6fa7c1eb810f75bcea3f24a788b785c5350951f7740c8c733e5213", size = 127320, upload-time = "2026-09-27T07:30:24.113Z" }, + { url = "https://files.pythonhosted.org/packages/60/cc/2a3cef4c2ea7eed2ce70b8d9934bf53cb53a2700c500bc42be382f9d7e15/substrait_extensions-0.105.0-py3-none-any.whl", hash = "sha256:5bdad647cfd02d20b6170c43833c3acb0720b2abf11d5fe9584f6168697cb5c3", size = 128621, upload-time = "2026-10-04T07:41:58.496Z" }, ] [[package]] name = "substrait-protobuf" -version = "0.104.0" +version = "0.105.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/87/c1/93190e8dcfa0850852849b19c58b1ac3c31e9ba8eb1d7d47c2b7f62f9dea/substrait_protobuf-0.104.0.tar.gz", hash = "sha256:82a1ab98d8902fb9b236398d249efa45af79a435cb2544926dedcdeb00a8ae9e", size = 66376, upload-time = "2026-09-27T07:30:37.863Z" } +sdist = { url = "https://files.pythonhosted.org/packages/61/eb/7e1a1ebb049b68f1f063001d063cfbd255754d60960393c05d065641f459/substrait_protobuf-0.105.0.tar.gz", hash = "sha256:10fa8dd4560183adc633bfc8386b8fcb756dba909ac616935aaa2b3f270547d6", size = 66873, upload-time = "2026-10-04T07:42:04.707Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/7a/2fe7b8e26ec3b6ba5191e7130fd4e83452b314dee752e9d71247a149e845/substrait_protobuf-0.104.0-py3-none-any.whl", hash = "sha256:9c530c8c91f5ec64a2cf51ba72a850d6524c5ccb8eaefd6ae2228706fea2f28d", size = 72236, upload-time = "2026-09-27T07:30:38.763Z" }, + { url = "https://files.pythonhosted.org/packages/d4/25/a21e816288f591787f8e9c5b80f631feb9e50da8b303f9d3870f64141e62/substrait_protobuf-0.105.0-py3-none-any.whl", hash = "sha256:2004038c8d232265d10c7efe5e52a0b190868e8404dc7d945ba1725adbaf0dfe", size = 72764, upload-time = "2026-10-04T07:42:03.475Z" }, ] [[package]]