From 16482d2a21c0d5092e32f54fa2dd8fef1545373c Mon Sep 17 00:00:00 2001 From: Filipe Fernandes Date: Tue, 4 Apr 2023 12:27:55 -0300 Subject: [PATCH 1/4] patch both xarray and erddapy for pandas 2.0 --- recipe/gen_patch_json.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/recipe/gen_patch_json.py b/recipe/gen_patch_json.py index 2ee3abbbe..4c5e7a715 100644 --- a/recipe/gen_patch_json.py +++ b/recipe/gen_patch_json.py @@ -11,6 +11,7 @@ import tqdm import re import requests +import packaging.version import pkg_resources from get_license_family import get_license_family @@ -1594,6 +1595,16 @@ def _gen_new_index_per_key(repodata, subdir, index_key): if record_name == "xarray" and record["version"] == "0.19.0": _replace_pin("python >=3.6", "python >=3.7", deps, record) + # Xarray <=2023.1.0 doesn't support pandas 2.0 yet. + # https://github.com/pydata/xarray/issues/7716 + if record_name == "xarray" and packaging.version.Version(record["version"]) < packaging.version.Version("2023.3.0"): + _replace_pin("pandas >=1.3", "pandas >=1.3,<2", deps, record) + + # erddapy doesn't support pandas 2.0 yet. + # https://github.com/ioos/erddapy/issues/299 + if record_name == "erddapy" and packaging.version.Version(record["version"]) < packaging.version.Version("1.3"): + _replace_pin("pandas >=0.20.3", "pandas >=0.20.3,<2", deps, record) + # Rioxarray 0.14.0 dropped Python 3.8 and rasterio 1.1, need to patch # first build to use a minimum of Python 3.9 and rasterio 1.2 # See https://github.com/conda-forge/rioxarray-feedstock/pull/70 From b15702229b6e3b271c6082f1c4196b3b31fdc800 Mon Sep 17 00:00:00 2001 From: Filipe Fernandes Date: Tue, 4 Apr 2023 12:52:37 -0300 Subject: [PATCH 2/4] use packaging instead of pkg_resources --- recipe/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 508220424..c05448a02 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -20,6 +20,7 @@ requirements: - requests - tqdm - license-expression + - packaging host: run: From 67ba097da857362871030d8132d49bbcb87afea1 Mon Sep 17 00:00:00 2001 From: Filipe Fernandes Date: Tue, 4 Apr 2023 13:17:16 -0300 Subject: [PATCH 3/4] adjust for 2023.2.0 --- recipe/gen_patch_json.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipe/gen_patch_json.py b/recipe/gen_patch_json.py index 4c5e7a715..ef52262c7 100644 --- a/recipe/gen_patch_json.py +++ b/recipe/gen_patch_json.py @@ -1595,11 +1595,14 @@ def _gen_new_index_per_key(repodata, subdir, index_key): if record_name == "xarray" and record["version"] == "0.19.0": _replace_pin("python >=3.6", "python >=3.7", deps, record) - # Xarray <=2023.1.0 doesn't support pandas 2.0 yet. + # Xarray <=2023.2.0 doesn't support pandas 2.0. # https://github.com/pydata/xarray/issues/7716 - if record_name == "xarray" and packaging.version.Version(record["version"]) < packaging.version.Version("2023.3.0"): + if record_name == "xarray" and packaging.version.Version(record["version"]) <= packaging.version.Version("2023.1.0"): _replace_pin("pandas >=1.3", "pandas >=1.3,<2", deps, record) + if record_name == "xarray" and packaging.version.Version(record["version"]) == packaging.version.Version("2023.2.0"): + _replace_pin("pandas >=1.4", "pandas >=1.4,<2", deps, record) + # erddapy doesn't support pandas 2.0 yet. # https://github.com/ioos/erddapy/issues/299 if record_name == "erddapy" and packaging.version.Version(record["version"]) < packaging.version.Version("1.3"): From 56ec5a3145e871c5e6f8f25499208371ce771efd Mon Sep 17 00:00:00 2001 From: Filipe Fernandes Date: Tue, 4 Apr 2023 15:06:55 -0300 Subject: [PATCH 4/4] use a0 pandas upper limit --- recipe/gen_patch_json.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/recipe/gen_patch_json.py b/recipe/gen_patch_json.py index ef52262c7..b271709cb 100644 --- a/recipe/gen_patch_json.py +++ b/recipe/gen_patch_json.py @@ -1598,15 +1598,15 @@ def _gen_new_index_per_key(repodata, subdir, index_key): # Xarray <=2023.2.0 doesn't support pandas 2.0. # https://github.com/pydata/xarray/issues/7716 if record_name == "xarray" and packaging.version.Version(record["version"]) <= packaging.version.Version("2023.1.0"): - _replace_pin("pandas >=1.3", "pandas >=1.3,<2", deps, record) + _replace_pin("pandas >=1.3", "pandas >=1.3,<2a0", deps, record) if record_name == "xarray" and packaging.version.Version(record["version"]) == packaging.version.Version("2023.2.0"): - _replace_pin("pandas >=1.4", "pandas >=1.4,<2", deps, record) + _replace_pin("pandas >=1.4", "pandas >=1.4,<2a0", deps, record) - # erddapy doesn't support pandas 2.0 yet. + # erddapy <=1.3 doesn't support pandas 2.0. # https://github.com/ioos/erddapy/issues/299 if record_name == "erddapy" and packaging.version.Version(record["version"]) < packaging.version.Version("1.3"): - _replace_pin("pandas >=0.20.3", "pandas >=0.20.3,<2", deps, record) + _replace_pin("pandas >=0.20.3", "pandas >=0.20.3,<2a0", deps, record) # Rioxarray 0.14.0 dropped Python 3.8 and rasterio 1.1, need to patch # first build to use a minimum of Python 3.9 and rasterio 1.2