From 97178cae4950a9bb48ca77f833991dc289129a4c Mon Sep 17 00:00:00 2001 From: Huite Bootsma Date: Thu, 11 Jul 2024 22:47:24 +0200 Subject: [PATCH 1/2] Adjustments for numpy 2.0, wip --- pixi.lock | 246 ++++++++++++++------------- pyproject.toml | 2 +- tests/test_regrid/test_structured.py | 229 +++++++++++++------------ xugrid/conversion.py | 2 + xugrid/ugrid/connectivity.py | 1 + xugrid/ugrid/partitioning.py | 1 + xugrid/ugrid/ugrid2d.py | 1 + 7 files changed, 253 insertions(+), 229 deletions(-) diff --git a/pixi.lock b/pixi.lock index 089381cb9..202504793 100644 --- a/pixi.lock +++ b/pixi.lock @@ -217,7 +217,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py312h83e6fd3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.12.1-py312h7070661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py312h22e1c76_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda @@ -542,7 +542,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py312hc3b515d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.12.1-py312h28f332c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py312he3a82b2_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py312h8813227_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda @@ -856,7 +856,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py312h41cea2d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.12.1-py312h5c2e7bc_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py312h8442bc7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py312hb544834_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda @@ -1161,7 +1161,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py312hcccf92d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.12.1-py312h275cf98_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py312h8753938_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py312h49bc9c5_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda @@ -1495,7 +1495,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py310h5dc88bb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.12.1-py310h76e45a6_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py310hb13e2d6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py310h515e003_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda @@ -1821,7 +1821,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py310h89a1501_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.12.1-py310he0a0c5d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py310h4bfa8fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py310he367959_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda @@ -2136,7 +2136,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py310h0628f0e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.12.1-py310hcf9f62a_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py310hd45542a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py310h52bbd9b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda @@ -2442,7 +2442,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py310h7793332_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.12.1-py310h9e98ed7_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py310hf667824_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py310h1ec8c79_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda @@ -2777,7 +2777,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py311h4bc866e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.12.1-py311h4332511_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py311h1461c94_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda @@ -3102,7 +3102,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py311h0e5bd6a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.12.1-py311hbafa61a_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py311hc43a94b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py311hc11d9cb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda @@ -3416,7 +3416,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py311h9506ed5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.12.1-py311hb9542d7_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py311h7125741_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py311h4268184_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda @@ -3721,7 +3721,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py311h0673bce_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.12.1-py311hda3d55a_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py311h0b4df5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py311h35ffc71_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda @@ -4055,7 +4055,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py312h83e6fd3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.12.1-py312h7070661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py312h22e1c76_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda @@ -4380,7 +4380,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py312hc3b515d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.12.1-py312h28f332c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py312he3a82b2_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py312h8813227_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda @@ -4694,7 +4694,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py312h41cea2d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.12.1-py312h5c2e7bc_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py312h8442bc7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py312hb544834_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda @@ -4999,7 +4999,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py312hcccf92d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.12.1-py312h275cf98_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py312h8753938_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py312h49bc9c5_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda @@ -20592,35 +20592,37 @@ packages: timestamp: 1715219092823 - kind: conda name: numpy - version: 1.26.4 - build: py310h4bfa8fc_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py310h4bfa8fc_0.conda - sha256: 914476e2d3273fdf9c0419a7bdcb7b31a5ec25949e4afbc847297ff3a50c62c8 - md5: cd6a2298387f558c9ea70ee73a189791 + version: 2.0.0 + build: py310h1ec8c79_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py310h1ec8c79_0.conda + sha256: 89c1b388c037204555cfec9fe6977028645c19a6ad9fcca2b644eeb2b7e6eece + md5: 3549c08a788df3b4bcb3e12e5bdc9c4a depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 - liblapack >=3.9.0,<4.0a0 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 6491938 - timestamp: 1707226191321 + size: 6322865 + timestamp: 1718615949009 - kind: conda name: numpy - version: 1.26.4 - build: py310hb13e2d6_0 + version: 2.0.0 + build: py310h515e003_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py310hb13e2d6_0.conda - sha256: 028fe2ea8e915a0a032b75165f11747770326f3d767e642880540c60a3256425 - md5: 6593de64c935768b6bad3e19b3e978be + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py310h515e003_0.conda + sha256: a6a0b48d9a2466d763290f525323561907d8702826833157738606fc8b96f5aa + md5: baab5ef1064a13d3567d90133b799a03 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 @@ -20635,17 +20637,18 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 7009070 - timestamp: 1707225917496 + size: 7777664 + timestamp: 1718615587959 - kind: conda name: numpy - version: 1.26.4 - build: py310hd45542a_0 + version: 2.0.0 + build: py310h52bbd9b_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py310hd45542a_0.conda - sha256: e3078108a4973e73c813b89228f4bd8095ec58f96ca29f55d2e45a6223a9a1db - md5: 267ee89a3a0b8c8fa838a2353f9ea0c0 + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py310h52bbd9b_0.conda + sha256: 57901e323c451a947c6f97086a436a440f04ec70cbe30c0b62712f135f45831b + md5: c185aced815798d1cc0f74fc355cdfaa depends: + - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - libcxx >=16 @@ -20659,91 +20662,91 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 5475744 - timestamp: 1707226187124 + size: 5768181 + timestamp: 1718616123469 - kind: conda name: numpy - version: 1.26.4 - build: py310hf667824_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py310hf667824_0.conda - sha256: 20ca447a8f840c01961f2bdf0847fc7b7785a62968e867d7aa4ca8a66d70f9ad - md5: 93e881c391880df90e74e43a4b67c16d + version: 2.0.0 + build: py310he367959_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py310he367959_0.conda + sha256: 1fddb0f5111e081857600db24abce8aae2cd7706cffc10d1b7719c370f349976 + md5: 945d173f9de02dbfe841303195e4d9f2 depends: + - __osx >=10.13 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 + - libcxx >=16 - liblapack >=3.9.0,<4.0a0 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 5977469 - timestamp: 1707226445438 + size: 6882915 + timestamp: 1718615707085 - kind: conda name: numpy - version: 1.26.4 - build: py311h0b4df5a_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py311h0b4df5a_0.conda - sha256: 14116e72107de3089cc58119a5ce5905c22abf9a715c9fe41f8ac14db0992326 - md5: 7b240edd44fd7a0991aa409b07cee776 + version: 2.0.0 + build: py311h1461c94_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py311h1461c94_0.conda + sha256: f5c8070a623a216f999aec9b60b181f0624b7b074cc08189bdb4da6376c01a5d + md5: 4998996a22ef05d2f486216075a3037f depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 + - libgcc-ng >=12 - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 7104093 - timestamp: 1707226459646 + size: 8955242 + timestamp: 1718615418098 - kind: conda name: numpy - version: 1.26.4 - build: py311h64a7726_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda - sha256: 3f4365e11b28e244c95ba8579942b0802761ba7bb31c026f50d1a9ea9c728149 - md5: a502d7aad449a1206efb366d6a12c52d + version: 2.0.0 + build: py311h35ffc71_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py311h35ffc71_0.conda + sha256: 5906dfbddd7ce315ceaebf56140e00ec12f981e9ccebdfe52a31826a9adf12f2 + md5: 21ec404be139a6b20fde4f73c6ec484c depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libgcc-ng >=12 - liblapack >=3.9.0,<4.0a0 - - libstdcxx-ng >=12 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 8065890 - timestamp: 1707225944355 + size: 7584309 + timestamp: 1718616050139 - kind: conda name: numpy - version: 1.26.4 - build: py311h7125741_0 + version: 2.0.0 + build: py311h4268184_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py311h7125741_0.conda - sha256: 160a52a01fea44fe9753a2ed22cf13d7b55c8a89ea0b8738546fdbf4795d6514 - md5: 3160b93669a0def35a7a8158ebb33816 + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py311h4268184_0.conda + sha256: 078b4b7acab19b7314f7dae436805bcf1c231faedde9c393153234a2bcabf9e4 + md5: 5c316e8847d997ad1b271be52ee06189 depends: + - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - libcxx >=16 @@ -20757,17 +20760,18 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 6652352 - timestamp: 1707226297967 + size: 6878925 + timestamp: 1718615710207 - kind: conda name: numpy - version: 1.26.4 - build: py311hc43a94b_0 + version: 2.0.0 + build: py311hc11d9cb_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py311hc43a94b_0.conda - sha256: dc9628197125ee1d02b2e7a859a769d26291d747ed79337309b8a9e67a8b8e00 - md5: bb02b8801d17265160e466cf8bbf28da + url: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py311hc11d9cb_0.conda + sha256: 0e82d37aa474ce84302775f02d31fe0c762844ec472f5ed8f0db8190d5fd1db9 + md5: f3e2a534964152fca3ba80bea594f673 depends: + - __osx >=10.13 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - libcxx >=16 @@ -20780,23 +20784,23 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 7504319 - timestamp: 1707226235372 + size: 8016515 + timestamp: 1718615633162 - kind: conda name: numpy - version: 1.26.4 - build: py312h8442bc7_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py312h8442bc7_0.conda - sha256: c8841d6d6f61fd70ca80682efbab6bdb8606dc77c68d8acabfbd7c222054f518 - md5: d83fc83d589e2625a3451c9a7e21047c + version: 2.0.0 + build: py312h22e1c76_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py312h22e1c76_0.conda + sha256: e5fc4a1053c8f02db78d4a50733d6c84d04e3c781749ae7478876ecdcd8c87ca + md5: 7956c7d65f87aecaba720af6088e72c3 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libgcc-ng >=12 - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - numpy-base <0a0 @@ -20804,16 +20808,16 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 6073136 - timestamp: 1707226249608 + size: 8352992 + timestamp: 1718615528478 - kind: conda name: numpy - version: 1.26.4 - build: py312h8753938_0 + version: 2.0.0 + build: py312h49bc9c5_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py312h8753938_0.conda - sha256: 73570817a5109d396b4ebbe5124a89525959269fd33fa33fd413700289fbe0ef - md5: f9ac74c3b07c396014434aca1e58d362 + url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py312h49bc9c5_0.conda + sha256: a2a4f9c90076d70a9e40aebe7ea323e67803af1cf4e6fff759af330726b2644d + md5: 8f8c23e8087dbb05828be5abbeac347d depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 @@ -20829,17 +20833,18 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 6495445 - timestamp: 1707226412944 + size: 6988383 + timestamp: 1718615911404 - kind: conda name: numpy - version: 1.26.4 - build: py312he3a82b2_0 + version: 2.0.0 + build: py312h8813227_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py312he3a82b2_0.conda - sha256: 6152b73fba3e227afa4952df8753128fc9669bbaf142ee8f9972bf9df3bf8856 - md5: 96c61a21c4276613748dba069554846b + url: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py312h8813227_0.conda + sha256: c83b985945095b04c4ba4828eea4ddb0b9b5546518b39d4b91c32afbf7838cde + md5: 814dba0ed2de85d89e09a5b811024a86 depends: + - __osx >=10.13 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - libcxx >=16 @@ -20852,23 +20857,24 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 6990646 - timestamp: 1707226178262 + size: 7479080 + timestamp: 1718615564653 - kind: conda name: numpy - version: 1.26.4 - build: py312heda63a1_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda - sha256: fe3459c75cf84dcef6ef14efcc4adb0ade66038ddd27cadb894f34f4797687d8 - md5: d8285bea2a350f63fab23bf460221f3f + version: 2.0.0 + build: py312hb544834_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py312hb544834_0.conda + sha256: 7015b30c00e8eb6a8abd639a7683f3c57b2abd090e74cda6179ab5f5d6974575 + md5: 2ee98af1e5c917e3e1410758ab889e7a depends: + - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libgcc-ng >=12 + - libcxx >=16 - liblapack >=3.9.0,<4.0a0 - - libstdcxx-ng >=12 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - numpy-base <0a0 @@ -20876,8 +20882,8 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 7484186 - timestamp: 1707225809722 + size: 6359802 + timestamp: 1718615501795 - kind: conda name: openjpeg version: 2.5.2 @@ -29111,7 +29117,7 @@ packages: name: xugrid version: 0.10.0 path: . - sha256: 40647e8ddd1dbf3818c42353f9b788e85c1460f407abb89e4b94455b06d4500c + sha256: 14ef5813b6580d53e57c9b89cbca6ce1b4dba5477f8256e436b1934fb6e86355 requires_dist: - numba - numba-celltree diff --git a/pyproject.toml b/pyproject.toml index 88c4d83e9..f5cf00266 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -82,7 +82,7 @@ mapbox_earcut = "*" matplotlib-base = "*" netcdf4 = "*" numba_celltree = "*" -numpy = "<2.0" +numpy = "*" pip = "*" pooch = "*" pre-commit = "*" diff --git a/tests/test_regrid/test_structured.py b/tests/test_regrid/test_structured.py index 5e3720591..b5006a771 100644 --- a/tests/test_regrid/test_structured.py +++ b/tests/test_regrid/test_structured.py @@ -28,6 +28,25 @@ def test_init_2d(grid_data_a_2d): StructuredGrid2d(1) +def assert_expected_overlap( + actual_source, + actual_target, + actual_weights, + expected_source, + expected_target, + expected_weights, +): + # Numpy 2.0 release has change sorting behavior of non-stable sorting: + # https://numpy.org/doc/stable/release/2.0.0-notes.html#minor-changes-in-behavior-of-sorting-functions + # So the comparison method must be robust to work for numpy <2.0 and >=2.0. + actual_mapping = np.column_stack((actual_target, actual_source)) + expected_mapping = np.column_stack((expected_target, expected_source)) + actual, actual_sorter = np.unique(actual_mapping, axis=0, return_index=True) + expected, expected_sorter = np.unique(expected_mapping, axis=0, return_index=True) + assert np.array_equal(actual, expected) + assert np.allclose(actual_weights[actual_sorter], expected_weights[expected_sorter]) + + def test_overlap_1d( grid_data_a_1d, grid_data_b_1d, grid_data_b_flipped_1d, grid_data_e_1d ): @@ -37,11 +56,12 @@ def test_overlap_1d( # node 1 1, 2 25 m # node 2 2, 3 25 m # -------- - source, target, weights = grid_data_a_1d.overlap(grid_data_b_1d, relative=False) - sorter = np.argsort(source) - assert np.array_equal(source[sorter], np.array([0, 0, 1, 1, 2, 2])) - assert np.array_equal(target[sorter], np.array([0, 1, 1, 2, 2, 3])) - assert np.array_equal(weights[sorter], np.array([25, 25, 25, 25, 25, 25])) + assert_expected_overlap( + *grid_data_a_1d.overlap(grid_data_b_1d, relative=False), + np.array([0, 0, 1, 1, 2, 2]), + np.array([0, 1, 1, 2, 2, 3]), + np.array([25, 25, 25, 25, 25, 25]), + ) # flipped axis (y-axis) # -------- @@ -50,13 +70,12 @@ def test_overlap_1d( # 1 1, 2 25 m # 2 2, 3 25 m # -------- - source, target, weights = grid_data_a_1d.overlap( - grid_data_b_flipped_1d, relative=False + assert_expected_overlap( + *grid_data_a_1d.overlap(grid_data_b_flipped_1d, relative=False), + np.array([0, 0, 1, 1, 2, 2]), + np.array([2, 3, 1, 2, 0, 1]), + np.array([25, 25, 25, 25, 25, 25]), ) - sorter = np.argsort(source) - assert np.array_equal(source[sorter], np.array([0, 0, 1, 1, 2, 2])) - assert np.array_equal(target[sorter], np.array([2, 3, 1, 2, 0, 1])) - assert np.array_equal(weights[sorter], np.array([25, 25, 25, 25, 25, 25])) # non-equidistant # -------- @@ -64,11 +83,12 @@ def test_overlap_1d( # node 0 0, 1 17.5 m, 32.5 m # node 1 1, 2 17.5 m, 25.0 m # -------- - source, target, weights = grid_data_a_1d.overlap(grid_data_e_1d, relative=False) - sorter = np.argsort(source) - assert np.array_equal(source[sorter], np.array([0, 0, 1, 1])) - assert np.array_equal(target[sorter], np.array([0, 1, 1, 2])) - assert np.array_equal(weights[sorter], np.array([17.5, 32.5, 17.5, 25.0])) + assert_expected_overlap( + *grid_data_a_1d.overlap(grid_data_e_1d, relative=False), + np.array([0, 0, 1, 1]), + np.array([0, 1, 1, 2]), + np.array([17.5, 32.5, 17.5, 25.0]), + ) # relative # -------- @@ -76,12 +96,11 @@ def test_overlap_1d( # node 0 0, 1 17.5 m, 32.5 m # node 1 1, 2 17.5 m, 25.0 m # -------- - source, target, weights = grid_data_a_1d.overlap(grid_data_e_1d, relative=True) - sorter = np.argsort(source) - assert np.array_equal(source[sorter], np.array([0, 0, 1, 1])) - assert np.array_equal(target[sorter], np.array([0, 1, 1, 2])) - assert np.array_equal( - weights[sorter], np.array([17.5 / 50.0, 32.5 / 50.0, 17.5 / 50.0, 25.0 / 50.0]) + assert_expected_overlap( + *grid_data_a_1d.overlap(grid_data_e_1d, relative=True), + np.array([0, 0, 1, 1]), + np.array([0, 1, 1, 2]), + np.array([17.5 / 50.0, 32.5 / 50.0, 17.5 / 50.0, 25.0 / 50.0]), ) @@ -98,11 +117,9 @@ def test_overlap_2d(grid_data_a_2d, grid_data_b_2d): # 7 9, 10, 13, 14 625 m # 8 10, 11, 14, 15 625 m # -------- - source, target, weights = grid_data_a_2d.overlap(grid_data_b_2d, relative=False) - sorter = np.argsort(source) - assert np.array_equal( - source[sorter], - np.array( + assert_expected_overlap( + *grid_data_a_2d.overlap(grid_data_b_2d, relative=False), + expected_source=np.array( [ 0, 0, @@ -142,10 +159,7 @@ def test_overlap_2d(grid_data_a_2d, grid_data_b_2d): 8, ] ), - ) - assert np.array_equal( - target[sorter], - np.array( + expected_target=np.array( [ 0, 4, @@ -185,8 +199,8 @@ def test_overlap_2d(grid_data_a_2d, grid_data_b_2d): 15, ] ), + expected_weights=np.full(36, 625.0), ) - assert np.array_equal(weights[sorter], np.array([625] * source.size)) def test_locate_centroids_1d( @@ -197,11 +211,12 @@ def test_locate_centroids_1d( # 0 1 1 # 1 2 1 # -------- - source, target, weights = grid_data_a_1d.locate_centroids(grid_data_b_1d) - sorter = np.argsort(source) - assert np.array_equal(source[sorter], np.array([0, 1])) - assert np.array_equal(target[sorter], np.array([1, 2])) - assert np.allclose(weights[sorter], np.ones(2)) + assert_expected_overlap( + *grid_data_a_1d.locate_centroids(grid_data_b_1d), + np.array([0, 1]), + np.array([1, 2]), + np.ones(2), + ) # flipped axis (y-axis) # -------- @@ -209,11 +224,12 @@ def test_locate_centroids_1d( # 0 1 1 # 1 2 1 # -------- - source, target, weights = grid_data_a_1d.locate_centroids(grid_data_b_flipped_1d) - sorter = np.argsort(source) - assert np.array_equal(source[sorter], np.array([0, 1])) - assert np.array_equal(target[sorter], np.array([2, 1])) - assert np.allclose(weights[sorter], np.ones(2)) + assert_expected_overlap( + *grid_data_a_1d.locate_centroids(grid_data_b_flipped_1d), + np.array([0, 1]), + np.array([2, 1]), + np.ones(2), + ) # non-equidistant # -------- @@ -221,11 +237,12 @@ def test_locate_centroids_1d( # 0 0, 1 1, 1 # 1 2 1 # -------- - source, target, weights = grid_data_a_1d.locate_centroids(grid_data_e_1d) - sorter = np.argsort(source) - assert np.array_equal(source[sorter], np.array([0, 0, 1])) - assert np.array_equal(target[sorter], np.array([0, 1, 2])) - assert np.allclose(weights[sorter], np.ones(3)) + assert_expected_overlap( + *grid_data_a_1d.locate_centroids(grid_data_e_1d), + np.array([0, 0, 1]), + np.array([0, 1, 2]), + np.ones(3), + ) def test_locate_centroids_2d(grid_data_a_2d, grid_data_b_2d): @@ -236,11 +253,12 @@ def test_locate_centroids_2d(grid_data_a_2d, grid_data_b_2d): # 3 9 1 # 4 10 1 # -------- - source, target, weights = grid_data_a_2d.locate_centroids(grid_data_b_2d) - sorter = np.argsort(source) - assert np.array_equal(source[sorter], np.array([0, 1, 3, 4])) - assert np.array_equal(target[sorter], np.array([5, 6, 9, 10])) - assert np.allclose(weights[sorter], np.ones(4)) + assert_expected_overlap( + *grid_data_a_2d.locate_centroids(grid_data_b_2d), + np.array([0, 1, 3, 4]), + np.array([5, 6, 9, 10]), + np.ones(4), + ) def test_linear_weights_1d( @@ -258,11 +276,12 @@ def test_linear_weights_1d( # 1 -> 2 50% # 2 -> 2 50% # -------- - source, target, weights = grid_data_a_1d.linear_weights(grid_data_b_1d) - sorter = np.argsort(target) - assert np.array_equal(source[sorter], np.array([0, 1, 1, 2])) - assert np.array_equal(target[sorter], np.array([1, 1, 2, 2])) - assert np.allclose(weights[sorter], np.array([0.5, 0.5, 0.5, 0.5])) + assert_expected_overlap( + *grid_data_a_1d.linear_weights(grid_data_b_1d), + np.array([0, 1, 1, 2]), + np.array([1, 1, 2, 2]), + np.array([0.5, 0.5, 0.5, 0.5]), + ) # flipped axis (y-axis) # -------- @@ -272,11 +291,12 @@ def test_linear_weights_1d( # 1 -> 1 50% # 2 -> 1 50% # -------- - source, target, weights = grid_data_a_1d.linear_weights(grid_data_b_flipped_1d) - sorter = np.argsort(target) - assert np.array_equal(source[sorter], np.array([1, 2, 0, 1])) - assert np.array_equal(target[sorter], np.array([1, 1, 2, 2])) - assert np.allclose(weights[sorter], np.array([0.5, 0.5, 0.5, 0.5])) + assert_expected_overlap( + *grid_data_a_1d.linear_weights(grid_data_b_flipped_1d), + np.array([2, 1, 1, 0]), + np.array([1, 1, 2, 2]), + np.array([0.5, 0.5, 0.5, 0.5]), + ) # -------- # source target weight @@ -285,11 +305,12 @@ def test_linear_weights_1d( # 2 2 80% # 1 2 20% # -------- - source, target, weights = grid_data_a_1d.linear_weights(grid_data_c_1d) - sorter = np.argsort(target) - assert np.array_equal(source[sorter], np.array([1, 0, 2, 1])) - assert np.array_equal(target[sorter], np.array([1, 1, 2, 2])) - assert np.allclose(weights[sorter], np.array([0.8, 0.2, 0.8, 0.2])) + assert_expected_overlap( + *grid_data_a_1d.linear_weights(grid_data_c_1d), + np.array([1, 0, 2, 1]), + np.array([1, 1, 2, 2]), + np.array([0.8, 0.2, 0.8, 0.2]), + ) # -------- # source target weight @@ -300,11 +321,12 @@ def test_linear_weights_1d( # 1 3 90% # 2 3 10% # -------- - source, target, weights = grid_data_a_1d.linear_weights(grid_data_d_1d) - sorter = np.argsort(target) - assert np.array_equal(source[sorter], np.array([0, 1, 1, 0, 1, 2])) - assert np.array_equal(target[sorter], np.array([1, 1, 2, 2, 3, 3])) - assert np.allclose(weights[sorter], np.array([0.9, 0.1, 0.6, 0.4, 0.9, 0.1])) + assert_expected_overlap( + *grid_data_a_1d.linear_weights(grid_data_d_1d), + np.array([0, 1, 1, 0, 1, 2]), + np.array([1, 1, 2, 2, 3, 3]), + np.array([0.9, 0.1, 0.6, 0.4, 0.9, 0.1]), + ) # non-equidistant # -------- @@ -314,11 +336,12 @@ def test_linear_weights_1d( # 1 2 90% # 2 2 10% # -------- - source, target, weights = grid_data_a_1d.linear_weights(grid_data_e_1d) - sorter = np.argsort(target) - assert np.array_equal(source[sorter], np.array([0, 1, 1, 2])) - assert np.array_equal(target[sorter], np.array([1, 1, 2, 2])) - assert np.allclose(weights[sorter], np.array([0.65, 0.35, 0.9, 0.1])) + assert_expected_overlap( + *grid_data_a_1d.linear_weights(grid_data_e_1d), + np.array([0, 1, 1, 2]), + np.array([1, 1, 2, 2]), + np.array([0.65, 0.35, 0.9, 0.1]), + ) # 1-1 grid # -------- @@ -328,11 +351,12 @@ def test_linear_weights_1d( # 2 2 100% # 1 2 0% # -------- - source, target, weights = grid_data_b_1d.linear_weights(grid_data_b_1d) - sorter = np.argsort(target) - assert np.array_equal(source[sorter], np.array([1, 0, 2, 1])) - assert np.array_equal(target[sorter], np.array([1, 1, 2, 2])) - assert np.allclose(weights[sorter], np.array([1.0, 0.0, 1.0, 0.0])) + assert_expected_overlap( + *grid_data_b_1d.linear_weights(grid_data_b_1d), + np.array([1, 0, 2, 1]), + np.array([1, 1, 2, 2]), + np.array([1.0, 0.0, 1.0, 0.0]), + ) def test_linear_weights_2d( @@ -345,15 +369,12 @@ def test_linear_weights_2d( # 9 3, 4, 6, 7 25% # 10 4, 5, 7, 8 25% # -------- - source, target, weights = grid_data_a_2d.linear_weights(grid_data_b_2d) - sorter = np.argsort(target) - assert np.array_equal( - source[sorter], np.array([0, 1, 3, 4, 1, 2, 4, 5, 3, 4, 6, 7, 4, 5, 7, 8]) - ) - assert np.array_equal( - target[sorter], np.array([5, 5, 5, 5, 6, 6, 6, 6, 9, 9, 9, 9, 10, 10, 10, 10]) + assert_expected_overlap( + *grid_data_a_2d.linear_weights(grid_data_b_2d), + np.array([3, 4, 1, 0, 5, 4, 1, 2, 6, 7, 4, 3, 8, 7, 4, 5]), + np.array([5, 5, 5, 5, 6, 6, 6, 6, 9, 9, 9, 9, 10, 10, 10, 10]), + np.array([0.25] * 16), ) - assert np.allclose(weights[sorter], np.array([0.25] * 16)) # -------- # source targets weight @@ -362,15 +383,12 @@ def test_linear_weights_2d( # 9 3, 4, 6, 7 10% 40% 10% 40% # 10 4, 5, 7, 8 10% 40% 10% 40% # -------- - source, target, weights = grid_data_a_layered_2d.linear_weights(grid_data_c_2d) - sorter = np.argsort(target) - assert np.array_equal( - source[sorter], np.array([1, 0, 4, 3, 2, 1, 5, 4, 4, 3, 7, 6, 5, 4, 8, 7]) - ) - assert np.array_equal( - target[sorter], np.array([5, 5, 5, 5, 6, 6, 6, 6, 9, 9, 9, 9, 10, 10, 10, 10]) + assert_expected_overlap( + *grid_data_a_layered_2d.linear_weights(grid_data_c_2d), + np.array([1, 0, 4, 3, 2, 1, 5, 4, 4, 3, 7, 6, 5, 4, 8, 7]), + np.array([5, 5, 5, 5, 6, 6, 6, 6, 9, 9, 9, 9, 10, 10, 10, 10]), + np.array([0.4, 0.1, 0.4, 0.1] * 4), ) - assert np.allclose(weights[sorter], np.array([0.4, 0.1, 0.4, 0.1] * 4)) # 1-1 # -------- @@ -380,14 +398,9 @@ def test_linear_weights_2d( # 9 8, 9,12,13 0% 100% 0% 0% # 10 9,10,13,14 0% 100% 0% 0% # -------- - source, target, weights = grid_data_b_2d.linear_weights(grid_data_b_2d) - sorter = np.argsort(target) - assert np.array_equal( - source[sorter], np.array([5, 4, 9, 8, 6, 5, 10, 9, 9, 8, 13, 12, 10, 9, 14, 13]) - ) - assert np.array_equal( - target[sorter], np.array([5, 5, 5, 5, 6, 6, 6, 6, 9, 9, 9, 9, 10, 10, 10, 10]) - ) - assert np.allclose( - weights[sorter], np.array([1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0]) + assert_expected_overlap( + *grid_data_b_2d.linear_weights(grid_data_b_2d), + np.array([5, 4, 9, 8, 6, 5, 10, 9, 9, 8, 13, 12, 10, 9, 14, 13]), + np.array([5, 5, 5, 5, 6, 6, 6, 6, 9, 9, 9, 9, 10, 10, 10, 10]), + np.array([1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0]), ) diff --git a/xugrid/conversion.py b/xugrid/conversion.py index 20a955e9a..465fcc46c 100644 --- a/xugrid/conversion.py +++ b/xugrid/conversion.py @@ -69,6 +69,7 @@ def linestrings_to_edges(edges: LineArray) -> Tuple[FloatArray, FloatArray, IntA segments = np.column_stack([linear_index[:-1], linear_index[1:]]) segments = segments[np.diff(index) == 0] unique, inverse = np.unique(xy, return_inverse=True, axis=0) + inverse = inverse.ravel() segments = inverse[segments] x, y = contiguous_xy(unique) return x, y, segments @@ -93,6 +94,7 @@ def polygons_to_faces( *shapely.get_coordinates(polygons, return_index=True) ) unique, inverse = np.unique(xy, axis=0, return_inverse=True) + inverse = inverse.ravel() n = len(polygons) m_per_row = np.bincount(indices) m = m_per_row.max() diff --git a/xugrid/ugrid/connectivity.py b/xugrid/ugrid/connectivity.py index c16d181c7..1c1caaa6f 100644 --- a/xugrid/ugrid/connectivity.py +++ b/xugrid/ugrid/connectivity.py @@ -436,6 +436,7 @@ def edge_connectivity( edge_node_connectivity, inverse_indices = np.unique( ar=edge_node_connectivity, return_inverse=True, axis=0 ) + inverse_indices = inverse_indices.ravel() if prior is not None: # prior edge_node_connectivity exists unique, index = np.unique(np.sort(prior, axis=1), axis=0, return_index=True) diff --git a/xugrid/ugrid/partitioning.py b/xugrid/ugrid/partitioning.py index c57ac4fbd..6b4797544 100644 --- a/xugrid/ugrid/partitioning.py +++ b/xugrid/ugrid/partitioning.py @@ -84,6 +84,7 @@ def merge_nodes(grids): _, index, inverse = np.unique( node_xy, axis=0, return_index=True, return_inverse=True ) + inverse = inverse.ravel() # We want to maintain order, so create an inverse index to the new numbers. inverse = renumber(index)[inverse] # Maintain order. diff --git a/xugrid/ugrid/ugrid2d.py b/xugrid/ugrid/ugrid2d.py index 37c63a241..74b111074 100644 --- a/xugrid/ugrid/ugrid2d.py +++ b/xugrid/ugrid/ugrid2d.py @@ -1586,6 +1586,7 @@ def to_periodic(self, obj=None): _, node_index, inverse = np.unique( coordinates, return_index=True, return_inverse=True, axis=0 ) + inverse = inverse.ravel() # Create a mapping of the inverse index to the new node index. new_index = connectivity.renumber(node_index) new_faces = new_index[inverse[self.face_node_connectivity]] From f3e23de431927dbac740b321e48c16bb4880e42c Mon Sep 17 00:00:00 2001 From: Huite Bootsma Date: Fri, 12 Jul 2024 13:48:50 +0200 Subject: [PATCH 2/2] Numpy <2 for now. mapbox_earcut needs to be rebuilt. --- pixi.lock | 246 ++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 121 insertions(+), 127 deletions(-) diff --git a/pixi.lock b/pixi.lock index 202504793..4d2f2c08e 100644 --- a/pixi.lock +++ b/pixi.lock @@ -217,7 +217,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py312h83e6fd3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.12.1-py312h7070661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py312h22e1c76_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda @@ -542,7 +542,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py312hc3b515d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.12.1-py312h28f332c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py312h8813227_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py312he3a82b2_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda @@ -856,7 +856,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py312h41cea2d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.12.1-py312h5c2e7bc_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py312hb544834_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py312h8442bc7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda @@ -1161,7 +1161,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py312hcccf92d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.12.1-py312h275cf98_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py312h49bc9c5_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py312h8753938_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda @@ -1495,7 +1495,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py310h5dc88bb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.12.1-py310h76e45a6_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py310h515e003_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py310hb13e2d6_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda @@ -1821,7 +1821,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py310h89a1501_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.12.1-py310he0a0c5d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py310he367959_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py310h4bfa8fc_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda @@ -2136,7 +2136,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py310h0628f0e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.12.1-py310hcf9f62a_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py310h52bbd9b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py310hd45542a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda @@ -2442,7 +2442,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py310h7793332_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.12.1-py310h9e98ed7_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py310h1ec8c79_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py310hf667824_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda @@ -2777,7 +2777,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py311h4bc866e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.12.1-py311h4332511_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py311h1461c94_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda @@ -3102,7 +3102,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py311h0e5bd6a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.12.1-py311hbafa61a_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py311hc11d9cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py311hc43a94b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda @@ -3416,7 +3416,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py311h9506ed5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.12.1-py311hb9542d7_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py311h4268184_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py311h7125741_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda @@ -3721,7 +3721,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py311h0673bce_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.12.1-py311hda3d55a_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py311h35ffc71_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py311h0b4df5a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda @@ -4055,7 +4055,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.60.0-py312h83e6fd3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.12.1-py312h7070661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py312h22e1c76_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.2-h488ebb8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.1-h17fec99_1.conda @@ -4380,7 +4380,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.60.0-py312hc3b515d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numcodecs-0.12.1-py312h28f332c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py312h8813227_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py312he3a82b2_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.2-h7310d3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.0.1-hf43e91b_1.conda @@ -4694,7 +4694,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.60.0-py312h41cea2d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numcodecs-0.12.1-py312h5c2e7bc_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py312hb544834_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py312h8442bc7_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.2-h9f1df11_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.1-h47ade37_1.conda @@ -4999,7 +4999,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.60.0-py312hcccf92d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/numba_celltree-0.1.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/numcodecs-0.12.1-py312h275cf98_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py312h49bc9c5_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py312h8753938_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.2-h3d672ee_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.0.1-h7e885a9_1.conda @@ -20592,37 +20592,35 @@ packages: timestamp: 1715219092823 - kind: conda name: numpy - version: 2.0.0 - build: py310h1ec8c79_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py310h1ec8c79_0.conda - sha256: 89c1b388c037204555cfec9fe6977028645c19a6ad9fcca2b644eeb2b7e6eece - md5: 3549c08a788df3b4bcb3e12e5bdc9c4a + version: 1.26.4 + build: py310h4bfa8fc_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py310h4bfa8fc_0.conda + sha256: 914476e2d3273fdf9c0419a7bdcb7b31a5ec25949e4afbc847297ff3a50c62c8 + md5: cd6a2298387f558c9ea70ee73a189791 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 + - libcxx >=16 - liblapack >=3.9.0,<4.0a0 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 6322865 - timestamp: 1718615949009 + size: 6491938 + timestamp: 1707226191321 - kind: conda name: numpy - version: 2.0.0 - build: py310h515e003_0 + version: 1.26.4 + build: py310hb13e2d6_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py310h515e003_0.conda - sha256: a6a0b48d9a2466d763290f525323561907d8702826833157738606fc8b96f5aa - md5: baab5ef1064a13d3567d90133b799a03 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py310hb13e2d6_0.conda + sha256: 028fe2ea8e915a0a032b75165f11747770326f3d767e642880540c60a3256425 + md5: 6593de64c935768b6bad3e19b3e978be depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 @@ -20637,18 +20635,17 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 7777664 - timestamp: 1718615587959 + size: 7009070 + timestamp: 1707225917496 - kind: conda name: numpy - version: 2.0.0 - build: py310h52bbd9b_0 + version: 1.26.4 + build: py310hd45542a_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py310h52bbd9b_0.conda - sha256: 57901e323c451a947c6f97086a436a440f04ec70cbe30c0b62712f135f45831b - md5: c185aced815798d1cc0f74fc355cdfaa + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py310hd45542a_0.conda + sha256: e3078108a4973e73c813b89228f4bd8095ec58f96ca29f55d2e45a6223a9a1db + md5: 267ee89a3a0b8c8fa838a2353f9ea0c0 depends: - - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - libcxx >=16 @@ -20662,91 +20659,91 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 5768181 - timestamp: 1718616123469 + size: 5475744 + timestamp: 1707226187124 - kind: conda name: numpy - version: 2.0.0 - build: py310he367959_0 - subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py310he367959_0.conda - sha256: 1fddb0f5111e081857600db24abce8aae2cd7706cffc10d1b7719c370f349976 - md5: 945d173f9de02dbfe841303195e4d9f2 + version: 1.26.4 + build: py310hf667824_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py310hf667824_0.conda + sha256: 20ca447a8f840c01961f2bdf0847fc7b7785a62968e867d7aa4ca8a66d70f9ad + md5: 93e881c391880df90e74e43a4b67c16d depends: - - __osx >=10.13 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 - liblapack >=3.9.0,<4.0a0 - python >=3.10,<3.11.0a0 - python_abi 3.10.* *_cp310 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 6882915 - timestamp: 1718615707085 + size: 5977469 + timestamp: 1707226445438 - kind: conda name: numpy - version: 2.0.0 - build: py311h1461c94_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py311h1461c94_0.conda - sha256: f5c8070a623a216f999aec9b60b181f0624b7b074cc08189bdb4da6376c01a5d - md5: 4998996a22ef05d2f486216075a3037f + version: 1.26.4 + build: py311h0b4df5a_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py311h0b4df5a_0.conda + sha256: 14116e72107de3089cc58119a5ce5905c22abf9a715c9fe41f8ac14db0992326 + md5: 7b240edd44fd7a0991aa409b07cee776 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libgcc-ng >=12 - liblapack >=3.9.0,<4.0a0 - - libstdcxx-ng >=12 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 8955242 - timestamp: 1718615418098 + size: 7104093 + timestamp: 1707226459646 - kind: conda name: numpy - version: 2.0.0 - build: py311h35ffc71_0 - subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py311h35ffc71_0.conda - sha256: 5906dfbddd7ce315ceaebf56140e00ec12f981e9ccebdfe52a31826a9adf12f2 - md5: 21ec404be139a6b20fde4f73c6ec484c + version: 1.26.4 + build: py311h64a7726_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda + sha256: 3f4365e11b28e244c95ba8579942b0802761ba7bb31c026f50d1a9ea9c728149 + md5: a502d7aad449a1206efb366d6a12c52d depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 + - libgcc-ng >=12 - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 - python >=3.11,<3.12.0a0 - python_abi 3.11.* *_cp311 - - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 7584309 - timestamp: 1718616050139 + size: 8065890 + timestamp: 1707225944355 - kind: conda name: numpy - version: 2.0.0 - build: py311h4268184_0 + version: 1.26.4 + build: py311h7125741_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py311h4268184_0.conda - sha256: 078b4b7acab19b7314f7dae436805bcf1c231faedde9c393153234a2bcabf9e4 - md5: 5c316e8847d997ad1b271be52ee06189 + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py311h7125741_0.conda + sha256: 160a52a01fea44fe9753a2ed22cf13d7b55c8a89ea0b8738546fdbf4795d6514 + md5: 3160b93669a0def35a7a8158ebb33816 depends: - - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - libcxx >=16 @@ -20760,18 +20757,17 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 6878925 - timestamp: 1718615710207 + size: 6652352 + timestamp: 1707226297967 - kind: conda name: numpy - version: 2.0.0 - build: py311hc11d9cb_0 + version: 1.26.4 + build: py311hc43a94b_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py311hc11d9cb_0.conda - sha256: 0e82d37aa474ce84302775f02d31fe0c762844ec472f5ed8f0db8190d5fd1db9 - md5: f3e2a534964152fca3ba80bea594f673 + url: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py311hc43a94b_0.conda + sha256: dc9628197125ee1d02b2e7a859a769d26291d747ed79337309b8a9e67a8b8e00 + md5: bb02b8801d17265160e466cf8bbf28da depends: - - __osx >=10.13 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - libcxx >=16 @@ -20784,23 +20780,23 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 8016515 - timestamp: 1718615633162 + size: 7504319 + timestamp: 1707226235372 - kind: conda name: numpy - version: 2.0.0 - build: py312h22e1c76_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.0.0-py312h22e1c76_0.conda - sha256: e5fc4a1053c8f02db78d4a50733d6c84d04e3c781749ae7478876ecdcd8c87ca - md5: 7956c7d65f87aecaba720af6088e72c3 + version: 1.26.4 + build: py312h8442bc7_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py312h8442bc7_0.conda + sha256: c8841d6d6f61fd70ca80682efbab6bdb8606dc77c68d8acabfbd7c222054f518 + md5: d83fc83d589e2625a3451c9a7e21047c depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libgcc-ng >=12 + - libcxx >=16 - liblapack >=3.9.0,<4.0a0 - - libstdcxx-ng >=12 - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - numpy-base <0a0 @@ -20808,16 +20804,16 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 8352992 - timestamp: 1718615528478 + size: 6073136 + timestamp: 1707226249608 - kind: conda name: numpy - version: 2.0.0 - build: py312h49bc9c5_0 + version: 1.26.4 + build: py312h8753938_0 subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/numpy-2.0.0-py312h49bc9c5_0.conda - sha256: a2a4f9c90076d70a9e40aebe7ea323e67803af1cf4e6fff759af330726b2644d - md5: 8f8c23e8087dbb05828be5abbeac347d + url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py312h8753938_0.conda + sha256: 73570817a5109d396b4ebbe5124a89525959269fd33fa33fd413700289fbe0ef + md5: f9ac74c3b07c396014434aca1e58d362 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 @@ -20833,18 +20829,17 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 6988383 - timestamp: 1718615911404 + size: 6495445 + timestamp: 1707226412944 - kind: conda name: numpy - version: 2.0.0 - build: py312h8813227_0 + version: 1.26.4 + build: py312he3a82b2_0 subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.0.0-py312h8813227_0.conda - sha256: c83b985945095b04c4ba4828eea4ddb0b9b5546518b39d4b91c32afbf7838cde - md5: 814dba0ed2de85d89e09a5b811024a86 + url: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py312he3a82b2_0.conda + sha256: 6152b73fba3e227afa4952df8753128fc9669bbaf142ee8f9972bf9df3bf8856 + md5: 96c61a21c4276613748dba069554846b depends: - - __osx >=10.13 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - libcxx >=16 @@ -20857,24 +20852,23 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 7479080 - timestamp: 1718615564653 + size: 6990646 + timestamp: 1707226178262 - kind: conda name: numpy - version: 2.0.0 - build: py312hb544834_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.0.0-py312hb544834_0.conda - sha256: 7015b30c00e8eb6a8abd639a7683f3c57b2abd090e74cda6179ab5f5d6974575 - md5: 2ee98af1e5c917e3e1410758ab889e7a + version: 1.26.4 + build: py312heda63a1_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda + sha256: fe3459c75cf84dcef6ef14efcc4adb0ade66038ddd27cadb894f34f4797687d8 + md5: d8285bea2a350f63fab23bf460221f3f depends: - - __osx >=11.0 - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 + - libgcc-ng >=12 - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - numpy-base <0a0 @@ -20882,8 +20876,8 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=conda-forge-mapping - size: 6359802 - timestamp: 1718615501795 + size: 7484186 + timestamp: 1707225809722 - kind: conda name: openjpeg version: 2.5.2 @@ -29117,7 +29111,7 @@ packages: name: xugrid version: 0.10.0 path: . - sha256: 14ef5813b6580d53e57c9b89cbca6ce1b4dba5477f8256e436b1934fb6e86355 + sha256: 567497ff9ff7d3505065c130e92745e7e3a4a8c7128ea50ec7f4f5fd702888be requires_dist: - numba - numba-celltree diff --git a/pyproject.toml b/pyproject.toml index d7aa834ce..f22e54fad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -82,7 +82,7 @@ mapbox_earcut = "*" matplotlib-base = "*" netcdf4 = "*" numba_celltree = "*" -numpy = "*" +numpy = "<2.0" pip = "*" pooch = "*" pre-commit = "*"