From 7b4792ad94e60fa438a6e8622520412f5e59baf104c8a6e8e1e45f55fa282769 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Thu, 29 Feb 2024 08:58:33 +0000 Subject: [PATCH 1/2] Accepting request 1152304 from home:bnavigator:branches:devel:languages:python:numeric MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update to 2024.2.0 * This release brings size information to the text repr, changes to the accepted frequency strings, and various bug fixes. ## New Features * Added a simple nbytes representation in DataArrays and Dataset repr. (GH8690, PR8702). By Etienne Schalk. * Allow negative frequency strings (e.g. "-1YE"). These strings are for example used in date_range(), and cftime_range() (PR8651). By Mathias Hauser. * Add NamedArray.expand_dims(), NamedArray.permute_dims() and NamedArray.broadcast_to() (PR8380) By Anderson Banihirwe. * Xarray now defers to flox’s heuristics to set the default method for groupby problems. This only applies to flox>=0.9. By Deepak Cherian. * All quantile methods (e.g. DataArray.quantile()) now use numbagg for the calculation of nanquantiles (i.e., skipna=True) if it is installed. This is currently limited to the linear interpolation method (method=’linear’). (GH7377, PR8684) By Marco Wolsza. ## Breaking changes * infer_freq() always returns the frequency strings as defined in pandas 2.2 (GH8612, PR8627). By Mathias Hauser. * Deprecations * The dt.weekday_name parameter wasn’t functional on modern pandas versions and has been removed. (GH8610, PR8664) By Sam Coleman. ## Bug fixes * Fixed a regression that prevented multi-index level coordinates being serialized after resetting or dropping the multi-index (GH8628, PR8672). By Benoit Bovy. OBS-URL: https://build.opensuse.org/request/show/1152304 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-xarray?expand=0&rev=90 --- _multibuild | 3 + python-xarray.changes | 105 ++++++++++++++++++++++ python-xarray.spec | 192 ++++++++++++++++++++++++++++++---------- xarray-2023.12.0.tar.gz | 3 - xarray-2024.2.0.tar.gz | 3 + 5 files changed, 255 insertions(+), 51 deletions(-) create mode 100644 _multibuild delete mode 100644 xarray-2023.12.0.tar.gz create mode 100644 xarray-2024.2.0.tar.gz diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/python-xarray.changes b/python-xarray.changes index 50ba4d9..570fdfb 100644 --- a/python-xarray.changes +++ b/python-xarray.changes @@ -1,3 +1,108 @@ +------------------------------------------------------------------- +Tue Feb 27 10:56:32 UTC 2024 - Ben Greiner + +- Update to 2024.2.0 + * This release brings size information to the text repr, changes + to the accepted frequency strings, and various bug fixes. + ## New Features + * Added a simple nbytes representation in DataArrays and Dataset + repr. (GH8690, PR8702). By Etienne Schalk. + * Allow negative frequency strings (e.g. "-1YE"). These strings + are for example used in date_range(), and cftime_range() + (PR8651). By Mathias Hauser. + * Add NamedArray.expand_dims(), NamedArray.permute_dims() and + NamedArray.broadcast_to() (PR8380) By Anderson Banihirwe. + * Xarray now defers to flox’s heuristics to set the default + method for groupby problems. This only applies to flox>=0.9. By + Deepak Cherian. + * All quantile methods (e.g. DataArray.quantile()) now use + numbagg for the calculation of nanquantiles (i.e., skipna=True) + if it is installed. This is currently limited to the linear + interpolation method (method=’linear’). (GH7377, PR8684) By + Marco Wolsza. + ## Breaking changes + * infer_freq() always returns the frequency strings as defined in + pandas 2.2 (GH8612, PR8627). By Mathias Hauser. + * Deprecations + * The dt.weekday_name parameter wasn’t functional on modern + pandas versions and has been removed. (GH8610, PR8664) By Sam + Coleman. + ## Bug fixes + * Fixed a regression that prevented multi-index level coordinates + being serialized after resetting or dropping the multi-index + (GH8628, PR8672). By Benoit Bovy. + * Fix bug with broadcasting when wrapping array API-compliant + classes. (GH8665, PR8669) By Tom Nicholas. + * Ensure DataArray.unstack() works when wrapping array + API-compliant classes. (GH8666, PR8668) By Tom Nicholas. + * Fix negative slicing of Zarr arrays without dask installed. + (GH8252) By Deepak Cherian. + * Preserve chunks when writing time-like variables to zarr by + enabling lazy CF encoding of time-like variables (GH7132, + GH8230, GH8432, PR8575). By Spencer Clark and Mattia Almansi. + * Preserve chunks when writing time-like variables to zarr by + enabling their lazy encoding (GH7132, GH8230, GH8432, PR8253, + PR8575; see also discussion in PR8253). By Spencer Clark and + Mattia Almansi. + * Raise an informative error if dtype encoding of time-like + variables would lead to integer overflow or unsafe conversion + from floating point to integer values (GH8542, PR8575). By + Spencer Clark. + * Raise an error when unstacking a MultiIndex that has duplicates + as this would lead to silent data loss (GH7104, PR8737). By + Mathias Hauser. +- Release 2024.1.1 + ## Breaking changes + * Following pandas, infer_freq() will return "YE", instead of "Y" + (formerly "A"). This is to be consistent with the deprecation + of the latter frequency string in pandas 2.2. This is a follow + up to PR8415 (GH8612, PR8642). By Mathias Hauser. + ## Deprecations + * Following pandas, the frequency string "Y" (formerly "A") is + deprecated in favor of "YE". These strings are used, for + example, in date_range(), cftime_range(), DataArray.resample(), + and Dataset.resample() among others (GH8612, PR8629). By + Mathias Hauser. +- Release 2024.1.0 + * This release brings support for weights in correlation and + covariance functions, a new DataArray.cumulative aggregation, + improvements to xr.map_blocks, an update to our minimum + dependencies, and various bugfixes. + ## New Features + * xr.cov() and xr.corr() now support using weights (GH8527, + PR7392). By Llorenç Lledó. + * Accept the compression arguments new in netCDF 1.6.0 in the + netCDF4 backend. See netCDF4 documentation for details. Note + that some new compression filters needs plugins to be installed + which may not be available in all netCDF distributions. By + Markel García-Díez. (GH6929, PR7551) + * Add DataArray.cumulative() & Dataset.cumulative() to compute + cumulative aggregations, such as sum, along a dimension — for + example da.cumulative('time').sum(). This is similar to pandas’ + .expanding, and mostly equivalent to .cumsum methods, or to + DataArray.rolling() with a window length equal to the dimension + size. By Maximilian Roos. (PR8512) + * Decode/Encode netCDF4 enums and store the enum definition in + dataarrays’ dtype metadata. If multiple variables share the + same enum in netCDF4, each dataarray will have its own enum + definition in their respective dtype metadata. By Abel Aoun. + (GH8144, PR8147) + ## Deprecations + * The squeeze kwarg to GroupBy is now deprecated. (GH2157, + PR8507) By Deepak Cherian. + ## Bug fixes + * Support non-string hashable dimensions in xarray.DataArray + (GH8546, PR8559). By Michael Niklas. + * Reverse index output of bottleneck’s rolling + move_argmax/move_argmin functions (GH8541, PR8552). By Kai + Mühlbauer. + * Vendor SerializableLock from dask and use as default lock for + netcdf4 backends (GH8442, PR8571). By Kai Mühlbauer. + * Add tests and fixes for empty CFTimeIndex, including broken + html repr (GH7298, PR8600). By Mathias Hauser. +- Create subpackages for the python [extras], test dependencies + with _multibuild + ------------------------------------------------------------------- Thu Jan 4 11:16:58 UTC 2024 - Sebastian Wagner diff --git a/python-xarray.spec b/python-xarray.spec index 0b3455a..cb13c94 100644 --- a/python-xarray.spec +++ b/python-xarray.spec @@ -16,9 +16,18 @@ # +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%bcond_without test +%define psuffix -test +%else +%bcond_with test +%define psuffix %{nil} +%endif + %{?sle15_python_module_pythons} -Name: python-xarray -Version: 2023.12.0 +Name: python-xarray%{psuffix} +Version: 2024.2.0 Release: 0 Summary: N-D labeled arrays and datasets in Python License: Apache-2.0 @@ -28,58 +37,20 @@ Source: https://files.pythonhosted.org/packages/source/x/xarray/xarray-% # fix xr.tutorial.open_dataset to work with the preloaded cache. Patch0: local_dataset.patch BuildRequires: %{python_module base >= 3.9} -BuildRequires: %{python_module numpy-devel >= 1.22} -BuildRequires: %{python_module packaging >= 21.3} -BuildRequires: %{python_module pandas >= 1.4} BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools_scm} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros -Requires: python-numpy >= 1.22 -Requires: python-packaging >= 21.3 -Requires: python-pandas >= 1.4 -Provides: python-xray = %{version} -Obsoletes: python-xray < %{version} +Requires: python-numpy >= 1.23 +Requires: python-packaging >= 22 +Requires: python-pandas >= 1.5 +Obsoletes: python-xray <= 0.7 BuildArch: noarch -# SECTION extras accel -Recommends: python-scipy -Recommends: python-bottleneck -Recommends: python-flox -Recommends: python-numbagg -# /SECTION -# SECTION extras parallalel -Suggests: python-dask-complete -# /SECTION -# SECTION extras viz -Suggests: python-matplotlib -Suggests: python-seaborn -Suggests: python-nc-time-axis -#/SECTION -# SECTION extras io -Suggests: python-netCDF4 -Suggests: python-h5netcdf -Suggests: (python-pydap if python-base < 3.10) -Suggests: python-zarr -Suggests: python-fsspec -Suggests: python-cftime -Suggests: python-rasterio -Suggests: python-cfgrib -Suggests: python-pooch -#/SECTION -# SECTION tests -BuildRequires: %{python_module Bottleneck} -BuildRequires: %{python_module dask-dataframe} -BuildRequires: %{python_module dask-diagnostics} -BuildRequires: %{python_module h5netcdf} -BuildRequires: %{python_module matplotlib} -BuildRequires: %{python_module netCDF4} -BuildRequires: %{python_module pooch} -BuildRequires: %{python_module pytest-xdist} -BuildRequires: %{python_module pytest} -BuildRequires: %{python_module scipy} -BuildRequires: %{python_module zarr} +%if %{with test} +BuildRequires: %{python_module xarray-complete = %{version}} +%endif # /SECTION %python_subpackages @@ -92,18 +63,113 @@ rather than the tabular data that pandas uses. The Common Data Model for self-describing scientific data is used. The dataset is an in-memory representation of a netCDF file. +%package accel +# for minimum versions, check ci/requirements/min-all-deps.yml +Summary: The python xarray[accel] extra +Requires: python-Bottleneck >= 1.3 +Requires: python-opt-einsum +Requires: python-scipy +Requires: python-xarray = %{version} +# not available yet +Recommends: python-flox >= 0.7 +Recommends: python-numbagg + +%description accel +The [accel] extra for xarray, N-D labeled arrays and datasets in Python +Except flox and numbagg, because they are not packaged yet. +Use `pip-%{python_bin_suffix} --user install flox numbagg` to install from PyPI, if needed. + +%package complete +Summary: The python xarray[complete] extra +Requires: python-xarray = %{version} +Requires: python-xarray-accel = %{version} +Requires: python-xarray-dev = %{version} +Requires: python-xarray-io = %{version} +Requires: python-xarray-parallel = %{version} +Requires: python-xarray-viz = %{version} + +%description complete +The [complete] extra for xarray, N-D labeled arrays and datasets in Python + +%package dev +Summary: The python xarray[dev] extra +Requires: python-hypothesis +Requires: python-pytest +Requires: python-pytest-cov +Requires: python-pytest-env +Requires: python-pytest-timeout +Requires: python-pytest-xdist +Requires: python-ruff +Requires: python-xarray = %{version} +Requires: python-xarray-complete = %{version} +# Not available and not really useful for us +Recommends: python-pre-commit + +%description dev +The [dev] extra for xarray, N-D labeled arrays and datasets in Python +Except pre-commit, Use `pip-%{python_bin_suffix} --user install pre-commit` to install, if needed. + +%package io +Summary: The python xarray[io] extra +Requires: python-cftime >= 1.6 +Requires: python-fsspec +Requires: python-h5netcdf >= 1.1 +Requires: python-netCDF4 >= 1.6 +Requires: python-pooch +Requires: python-scipy >= 1.10 +Requires: python-xarray = %{version} +Requires: python-zarr >= 2.13 +Requires: (python-pydap >= 3.3 if python-base < 3.10) + +%description io +The [io] extra for xarray, N-D labeled arrays and datasets in Python + +%package parallel +Summary: The python xarray[parallel] extra +Requires: python-dask-complete >= 2022.12 +Requires: python-xarray = %{version} + +%description parallel +The [parallel] extra for xarray, N-D labeled arrays and datasets in Python + +%package viz +Summary: The python xarray[viz] extra +Requires: python-matplotlib >= 3.6 +Requires: python-seaborn >= 0.12 +Requires: python-xarray = %{version} +# Not available yet +Recommends: python-nc-time-axis + +%description viz +The [viz] extra for xarray, N-D labeled arrays and datasets in Python + +Except nc-time-axis, because it's not packaged yet. +Use `pip-%{python_bin_suffix} --user install nc-time-axis` to install from PyPI, if needed. + %prep %autosetup -p1 -n xarray-%{version} +%if "%{version}" == "2024.2.0" +# gh#pydata/xarray#8768, remove this after the next update! +rm -r xarray/tests/datatree +%else +echo "You failed to update the specfile" +exit 1 +%endif chmod -x xarray/util/print_versions.py %build +%if !%{with test} %pyproject_wheel +%endif %install +%if !%{with test} %pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} +%endif +%if %{with test} %check # obs file open race conditions? donttest="(test_open_mfdataset_manyfiles and (h5netcdf or netCDF4))" @@ -117,12 +183,42 @@ if [ $(getconf LONG_BIT) -eq 32 ]; then fi # h5py was built without ROS3 support, can't use ros3 driver donttest="$donttest or TestH5NetCDFDataRos3Driver" -%pytest -n auto -rsEf -k "not ($donttest)" xarray +# NetCDF4 fails with these unsupported drivers +donttest="$donttest or (TestNetCDF4 and test_compression_encoding and (szip or zstd or blosc_lz or blosc_zlib))" +%pytest -n auto -rsEf -k "not ($donttest)" xarray +%endif + +%if !%{with test} %files %{python_files} %doc README.md %license LICENSE licenses/ %{python_sitelib}/xarray %{python_sitelib}/xarray-%{version}.dist-info +%files %{python_files accel} +%doc README.md +%license LICENSE + +%files %{python_files complete} +%doc README.md +%license LICENSE + +%files %{python_files dev} +%doc README.md +%license LICENSE + +%files %{python_files io} +%doc README.md +%license LICENSE + +%files %{python_files parallel} +%doc README.md +%license LICENSE + +%files %{python_files viz} +%doc README.md +%license LICENSE +%endif + %changelog diff --git a/xarray-2023.12.0.tar.gz b/xarray-2023.12.0.tar.gz deleted file mode 100644 index 817d9c8..0000000 --- a/xarray-2023.12.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4565dbc890de47e278346c44d6b33bb07d3427383e077a7ca8ab6606196fd433 -size 3602114 diff --git a/xarray-2024.2.0.tar.gz b/xarray-2024.2.0.tar.gz new file mode 100644 index 0000000..2e181aa --- /dev/null +++ b/xarray-2024.2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a105f02791082c888ebe2622090beaff2e7b68571488d62fe6afdab35b4b717f +size 3634288 From 3c048e7295477c5349d69283d43d93416006689332cf7674e45b1e24d4d395f1 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Fri, 1 Mar 2024 21:04:42 +0000 Subject: [PATCH 2/2] - Skip Python 3.9. It requires pydap, which is not available any more. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-xarray?expand=0&rev=91 --- python-xarray.changes | 6 ++++++ python-xarray.spec | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/python-xarray.changes b/python-xarray.changes index 570fdfb..800c9d6 100644 --- a/python-xarray.changes +++ b/python-xarray.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Mar 1 21:04:08 UTC 2024 - Matej Cepl + +- Skip Python 3.9. It requires pydap, which is not available any + more. + ------------------------------------------------------------------- Tue Feb 27 10:56:32 UTC 2024 - Ben Greiner diff --git a/python-xarray.spec b/python-xarray.spec index cb13c94..6c94115 100644 --- a/python-xarray.spec +++ b/python-xarray.spec @@ -25,6 +25,7 @@ %define psuffix %{nil} %endif +%define skip_python39 1 %{?sle15_python_module_pythons} Name: python-xarray%{psuffix} Version: 2024.2.0 @@ -119,7 +120,6 @@ Requires: python-pooch Requires: python-scipy >= 1.10 Requires: python-xarray = %{version} Requires: python-zarr >= 2.13 -Requires: (python-pydap >= 3.3 if python-base < 3.10) %description io The [io] extra for xarray, N-D labeled arrays and datasets in Python