From 749b1f8721ab4f555f674601d245533a86264286d51cd620bd2958980db61494 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=C3=A9ta=20Machov=C3=A1?= Date: Mon, 5 Jun 2023 14:32:15 +0000 Subject: [PATCH] Accepting request 1090040 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 2.0.2 ## Fixed regressions * Fixed performance regression in GroupBy.apply() (GH53195) * Fixed regression in merge() on Windows when dtype is np.intc (GH52451) * Fixed regression in read_sql() dropping columns with duplicated column names (GH53117) * Fixed regression in DataFrame.loc() losing MultiIndex name when enlarging object (GH53053) * Fixed regression in DataFrame.to_string() printing a backslash at the end of the first row of data, instead of headers, when the DataFrame doesn’t fit the line width (GH53054) * Fixed regression in MultiIndex.join() returning levels in wrong order (GH53093) ## Bug fixes * Bug in arrays.ArrowExtensionArray incorrectly assigning dict instead of list for .type with pyarrow.map_ and raising a NotImplementedError with pyarrow.struct (GH53328) * Bug in api.interchange.from_dataframe() was raising IndexError on empty categorical data (GH53077) * Bug in api.interchange.from_dataframe() was returning DataFrame’s of incorrect sizes when called on slices (GH52824) * Bug in api.interchange.from_dataframe() was unnecessarily raising on bitmasks (GH49888) * Bug in merge() when merging on datetime columns on different resolutions (GH53200) * Bug in read_csv() raising OverflowError for engine="pyarrow" and parse_dates set (GH53295) * Bug in to_datetime() was inferring format to contain "%H" instead of "%I" if date contained “AM” / “PM” tokens (GH53147) OBS-URL: https://build.opensuse.org/request/show/1090040 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-pandas?expand=0&rev=84 --- _multibuild | 2 +- pandas-1.5.3.tar.gz | 3 - pandas-2.0.2-gh.tar.gz | 3 + python-pandas.changes | 167 +++++++++++++ python-pandas.spec | 540 ++++++++++++++++++++++++++++++++++------- 5 files changed, 619 insertions(+), 96 deletions(-) delete mode 100644 pandas-1.5.3.tar.gz create mode 100644 pandas-2.0.2-gh.tar.gz diff --git a/_multibuild b/_multibuild index 73ab5e8..8cf2769 100644 --- a/_multibuild +++ b/_multibuild @@ -1,5 +1,5 @@ - test-py38 test-py39 test-py310 + test-py311 diff --git a/pandas-1.5.3.tar.gz b/pandas-1.5.3.tar.gz deleted file mode 100644 index 0002c8f..0000000 --- a/pandas-1.5.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1 -size 5203060 diff --git a/pandas-2.0.2-gh.tar.gz b/pandas-2.0.2-gh.tar.gz new file mode 100644 index 0000000..e803a99 --- /dev/null +++ b/pandas-2.0.2-gh.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44f41cb263726716ff513081bf57ea62fec704f367e3fc8adb15e54991c98273 +size 14036944 diff --git a/python-pandas.changes b/python-pandas.changes index d8ef169..80fbf78 100644 --- a/python-pandas.changes +++ b/python-pandas.changes @@ -1,3 +1,170 @@ +------------------------------------------------------------------- +Sat May 27 13:18:13 UTC 2023 - Ben Greiner + +- Update to 2.0.2 + ## Fixed regressions + * Fixed performance regression in GroupBy.apply() (GH53195) + * Fixed regression in merge() on Windows when dtype is np.intc + (GH52451) + * Fixed regression in read_sql() dropping columns with duplicated + column names (GH53117) + * Fixed regression in DataFrame.loc() losing MultiIndex name when + enlarging object (GH53053) + * Fixed regression in DataFrame.to_string() printing a backslash + at the end of the first row of data, instead of headers, when + the DataFrame doesn’t fit the line width (GH53054) + * Fixed regression in MultiIndex.join() returning levels in wrong + order (GH53093) + ## Bug fixes + * Bug in arrays.ArrowExtensionArray incorrectly assigning dict + instead of list for .type with pyarrow.map_ and raising a + NotImplementedError with pyarrow.struct (GH53328) + * Bug in api.interchange.from_dataframe() was raising IndexError + on empty categorical data (GH53077) + * Bug in api.interchange.from_dataframe() was returning + DataFrame’s of incorrect sizes when called on slices (GH52824) + * Bug in api.interchange.from_dataframe() was unnecessarily + raising on bitmasks (GH49888) + * Bug in merge() when merging on datetime columns on different + resolutions (GH53200) + * Bug in read_csv() raising OverflowError for engine="pyarrow" + and parse_dates set (GH53295) + * Bug in to_datetime() was inferring format to contain "%H" + instead of "%I" if date contained “AM” / “PM” tokens (GH53147) + * Bug in DataFrame.convert_dtypes() ignores convert_* keywords + when set to False dtype_backend="pyarrow" (GH52872) + * Bug in DataFrame.convert_dtypes() losing timezone for tz-aware + dtypes and dtype_backend="pyarrow" (GH53382) + * Bug in DataFrame.sort_values() raising for PyArrow dictionary + dtype (GH53232) + * Bug in Series.describe() treating pyarrow-backed timestamps and + timedeltas as categorical data (GH53001) + * Bug in Series.rename() not making a lazy copy when + Copy-on-Write is enabled when a scalar is passed to it + (GH52450) + * Bug in pd.array() raising for NumPy array and pa.large_string + or pa.large_binary (GH52590) + * Bug in DataFrame.__getitem__() not preserving dtypes for + MultiIndex partial keys (GH51895) + ## Other + * Raised a better error message when calling + Series.dt.to_pydatetime() with ArrowDtype with pyarrow.date32 + or pyarrow.date64 type (GH52812) +- Release to 2.0.1 + ## Fixed regressions + * Fixed regression for subclassed Series when constructing from a + dictionary (GH52445) + * Fixed regression in SeriesGroupBy.agg() failing when grouping + with categorical data, multiple groupings, as_index=False, and + a list of aggregations (GH52760) + * Fixed regression in DataFrame.pivot() changing Index name of + input object (GH52629) + * Fixed regression in DataFrame.resample() raising on a DataFrame + with no columns (GH52484) + * Fixed regression in DataFrame.sort_values() not resetting index + when DataFrame is already sorted and ignore_index=True + (GH52553) + * Fixed regression in MultiIndex.isin() raising TypeError for + Generator (GH52568) + * Fixed regression in Series.describe() showing RuntimeWarning + for extension dtype Series with one element (GH52515) + * Fixed regression when adding a new column to a DataFrame when + the DataFrame.columns was a RangeIndex and the new key was + hashable but not a scalar (GH52652) + ## Bug fixes + * Bug in Series.dt.days that would overflow int32 number of days + (GH52391) + * Bug in arrays.DatetimeArray constructor returning an incorrect + unit when passed a non-nanosecond numpy datetime array + (GH52555) + * Bug in ArrowExtensionArray with duration dtype overflowing when + constructed from data containing numpy NaT (GH52843) + * Bug in Series.dt.round() when passing a freq of equal or higher + resolution compared to the Series would raise a + ZeroDivisionError (GH52761) + * Bug in Series.median() with ArrowDtype returning an approximate + median (GH52679) + * Bug in api.interchange.from_dataframe() was unnecessarily + raising on categorical dtypes (GH49889) + * Bug in api.interchange.from_dataframe() was unnecessarily + raising on large string dtypes (GH52795) + * Bug in pandas.testing.assert_series_equal() where + check_dtype=False would still raise for datetime or timedelta + types with different resolutions (GH52449) + * Bug in read_csv() casting PyArrow datetimes to NumPy when + dtype_backend="pyarrow" and parse_dates is set causing a + performance bottleneck in the process (GH52546) + * Bug in to_datetime() and to_timedelta() when trying to convert + numeric data with a ArrowDtype (GH52425) + * Bug in to_numeric() with errors='coerce' and + dtype_backend='pyarrow' with ArrowDtype data (GH52588) + * Bug in ArrowDtype.__from_arrow__() not respecting if dtype is + explicitly given (GH52533) + * Bug in DataFrame.describe() not respecting ArrowDtype in + include and exclude (GH52570) + * Bug in DataFrame.max() and related casting different Timestamp + resolutions always to nanoseconds (GH52524) + * Bug in Series.describe() not returning ArrowDtype with + pyarrow.float64 type with numeric data (GH52427) + * Bug in Series.dt.tz_localize() incorrectly localizing + timestamps with ArrowDtype (GH52677) + * Bug in arithmetic between np.datetime64 and np.timedelta64 NaT + scalars with units always returning nanosecond resolution + (GH52295) + * Bug in logical and comparison operations between ArrowDtype and + numpy masked types (e.g. "boolean") (GH52625) + * Fixed bug in merge() when merging with ArrowDtype one one and a + NumPy dtype on the other side (GH52406) + * Fixed segfault in Series.to_numpy() with null[pyarrow] dtype + (GH52443) + ## Other + * DataFrame created from empty dicts had columns of dtype object. + It is now a RangeIndex (GH52404) + * Series created from empty dicts had index of dtype object. It + is now a RangeIndex (GH52404) + * Implemented Series.str.split() and Series.str.rsplit() for + ArrowDtype with pyarrow.string (GH52401) + * Implemented most str accessor methods for ArrowDtype with + pyarrow.string (GH52401) + * Supplying a non-integer hashable key that tests False in + api.types.is_scalar() now raises a KeyError for + RangeIndex.get_loc(), like it does for Index.get_loc(). + Previously it raised an InvalidIndexError (GH52652). +- Release to 2.0.0 + ## Enhancements + * Installing optional dependencies with pip extras + * Index can now hold numpy numeric dtypes + * Argument dtype_backend , to return pyarrow-backed or + numpy-backed nullable dtypes + * Copy-on-Write improvements + * Other enhancements, see + https://pandas.pydata.org/pandas-docs/version/2.0.2/whatsnew/v2.0.0.html#other-enhancements + ## Notable bug fixes + * DataFrameGroupBy.cumsum() and DataFrameGroupBy.cumprod() + overflow instead of lossy casting to float + * DataFrameGroupBy.nth() and SeriesGroupBy.nth() now behave as + filtrations + ## Backwards incompatible API changes + * Construction with datetime64 or timedelta64 dtype with + unsupported resolution + * Value counts sets the resulting name to count + * Disallow astype conversion to non-supported + datetime64/timedelta64 dtypes + * UTC and fixed-offset timezones default to standard-library + tzinfo objects + * Empty DataFrames/Series will now default to have a RangeIndex + * DataFrame to LaTeX has a new render engine + * Increased minimum versions for dependencies + * Datetimes are now parsed with a consistent format + * Other API changes, see + https://pandas.pydata.org/pandas-docs/version/2.0.2/whatsnew/v2.0.0.html#other-api-changes + ## Deprecations + ## Removal of prior version deprecations/changes + ## Performance improvements + ## Bug fixes +- Drop python38 test flavor and start testing python311 which has + been missing since. + ------------------------------------------------------------------- Mon May 8 06:10:30 UTC 2023 - Johannes Kastl diff --git a/python-pandas.spec b/python-pandas.spec index f3e7b85..8c8331a 100644 --- a/python-pandas.spec +++ b/python-pandas.spec @@ -17,22 +17,22 @@ %global flavor @BUILD_FLAVOR@%{nil} -%if "%{flavor}" == "test-py38" -%define psuffix -test-py38 -%define skip_python39 1 -%define skip_python310 1 -%bcond_without test -%endif %if "%{flavor}" == "test-py39" %define psuffix -test-py39 -%define skip_python38 1 %define skip_python310 1 +%define skip_python311 1 %bcond_without test %endif %if "%{flavor}" == "test-py310" %define psuffix -test-py310 -%define skip_python38 1 %define skip_python39 1 +%define skip_python311 1 +%bcond_without test +%endif +%if "%{flavor}" == "test-py311" +%define psuffix -test-py311 +%define skip_python39 1 +%define skip_python310 1 %bcond_without test %endif %if "%{flavor}" == "" @@ -40,99 +40,103 @@ %bcond_with test %endif +# Only test the core functionality in Ring1 (Lettered Staging) +%bcond_with ringdisabled +# s3fs not available +%bcond_with aws +# pandas-gbq not available +%bcond_with gcp +# xlsb not available +%bcond_with xslb + %{?sle15_python_module_pythons} Name: python-pandas%{psuffix} -Version: 1.5.3 +Version: 2.0.2 Release: 0 Summary: Python data structures for data analysis, time series, and statistics License: BSD-3-Clause Group: Development/Libraries/Python URL: https://pandas.pydata.org/ -Source0: https://files.pythonhosted.org/packages/source/p/pandas/pandas-%{version}.tar.gz +# Use GitHub Archive: Test-data +Source0: https://github.com/pandas-dev/pandas/archive/refs/tags/v%{version}.tar.gz#/pandas-%{version}-gh.tar.gz # SourceRepository: https://github.com/pandas-dev/pandas -BuildRequires: %{python_module Cython >= 0.29.32} +BuildRequires: %{python_module Cython >= 0.29.33 with %python-Cython < 3} BuildRequires: %{python_module devel >= 3.8} BuildRequires: %{python_module numpy-devel >= 1.20.3} BuildRequires: %{python_module pip} -BuildRequires: %{python_module setuptools >= 51.0.0} +BuildRequires: %{python_module setuptools >= 61.0.0} +BuildRequires: %{python_module versioneer-toml} BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: python-rpm-macros -Requires: python-numpy >= 1.20.3 -Requires: python-python-dateutil >= 2.8.1 +Requires: python-python-dateutil >= 2.8.2 Requires: python-pytz >= 2020.1 +Requires: timezone >= 2022a Obsoletes: python-pandas-doc < %{version} Provides: python-pandas-doc = %{version} -# SECTION Optional dependencies -# https://pandas.pydata.org/docs/getting_started/install.html#optional-dependencies -Recommends: python-Bottleneck >= 1.3.2 -Recommends: python-numexpr >= 2.7.3 -# Compression -Suggests: python-Brotli >= 0.7.0 -Suggests: python-Jinja2 >= 3.0.0 -# SQL databases -Suggests: python-PyMySQL >= 1.0.2 -Suggests: python-QtPy -Suggests: python-SQLAlchemy >= 1.4.16 -Suggests: python-XlsxWriter >= 1.2.2 -# HTML -Suggests: python-beautifulsoup4 >= 4.9.3 -Suggests: python-blosc >= 1.21.0 -Suggests: python-fastparquet >= 0.4.0 -# Access data in the cloud -Suggests: python-fsspec >= 2021.7.0 -Suggests: python-gcsfs >= 2021.7.0 -Suggests: python-html5lib >= 1.1 -Suggests: python-lxml >= 4.6.3 -# Visualization -Suggests: python-matplotlib >= 3.3.2 -Suggests: python-numba >= 0.53.1 -Suggests: python-openpyxl >= 3.0.7 -Suggests: python-pandas-gbq >= 0.15.0 -Suggests: python-psycopg2 >= 2.8.6 -Suggests: python-pyarrow >= 1.0.1 -Suggests: python-pyreadstat >= 1.1.2 -Suggests: python-python-snappy >= 0.6.0 -Suggests: python-pyxlb >= 1.0.8 -# Clipboard -Suggests: python-qt5 -Suggests: python-s3fs >= 2021.08.0 -# Computation -Suggests: python-scipy >= 1.7.1 -# Other data sources -Suggests: python-tables >= 3.6.1 -Suggests: python-tabulate >= 0.8.9 -Suggests: python-xarray >= 0.19.0 -# Excel files -Suggests: python-xlrd >= 2.0.1 -Suggests: python-xlwt >= 1.3.0 -Suggests: python-zlib -Suggests: python-zstandard >= 0.15.2 -Suggests: xclip -Suggests: xsel +%if 0%{?python_version_nodots} >= 311 +Requires: python-numpy >= 1.23.2 +%elif 0%{?python_version_nodots} >= 310 +Requires: python-numpy >= 1.21.0 +%else +Requires: python-numpy >= 1.20.3 +%endif +# SECTION extras +Recommends: python-pandas-performance +Suggests: python-pandas-all +Suggests: python-pandas-clipboard +Suggests: python-pandas-compression +Suggests: python-pandas-computation +Suggests: python-pandas-excel +Suggests: python-pandas-feather +Suggests: python-pandas-fss +Suggests: python-pandas-hdf5 +Suggests: python-pandas-html +Suggests: python-pandas-mysql +Suggests: python-pandas-output_formatting +Suggests: python-pandas-parquet +Suggests: python-pandas-plot +Suggests: python-pandas-postgresql +Suggests: python-pandas-spss +Suggests: python-pandas-sql-other +Suggests: python-pandas-test +Suggests: python-pandas-xml +%{?_with_aws:Suggests: python-pandas-aws} +%{?_with_gcp:Suggests: python-pandas-gcp} # /SECTION %if %{with test} -BuildRequires: %{python_module Bottleneck >= 1.3.2} -BuildRequires: %{python_module Jinja2 >= 3} -BuildRequires: %{python_module SQLAlchemy >= 1.4.16} -BuildRequires: %{python_module XlsxWriter >= 1.4.3} -BuildRequires: %{python_module beautifulsoup4 >= 4.9.3} -BuildRequires: %{python_module hypothesis >= 6.13.0} -BuildRequires: %{python_module lxml >= 4.6.3} -BuildRequires: %{python_module matplotlib >= 3.3.2} -BuildRequires: %{python_module numexpr >= 2.7.3} -BuildRequires: %{python_module openpyxl >= 3.0.7} -BuildRequires: %{python_module pandas = %{version}} -BuildRequires: %{python_module pytest >= 6.0} -BuildRequires: %{python_module pytest-asyncio >= 0.17} -BuildRequires: %{python_module pytest-mock} -BuildRequires: %{python_module pytest-xdist >= 1.31} -BuildRequires: %{python_module scipy >= 1.7.1} -BuildRequires: %{python_module xlrd >= 2.0.1} +# required for sqlite3 tests +BuildRequires: %{pythons} +BuildRequires: %{python_module pandas-test = %{version}} BuildRequires: memory-constraints -BuildRequires: xclip BuildRequires: xvfb-run +%if !%{with ringdisabled} +BuildRequires: %{python_module IPython} +BuildRequires: %{python_module dask-array} +BuildRequires: %{python_module dask-dataframe} +BuildRequires: %{python_module pandas-all = %{version}} +BuildRequires: %{python_module pandas-clipboard = %{version}} +BuildRequires: %{python_module pandas-compression = %{version}} +BuildRequires: %{python_module pandas-computation = %{version}} +BuildRequires: %{python_module pandas-excel = %{version}} +BuildRequires: %{python_module pandas-feather = %{version}} +BuildRequires: %{python_module pandas-fss = %{version}} +BuildRequires: %{python_module pandas-hdf5 = %{version}} +BuildRequires: %{python_module pandas-html = %{version}} +BuildRequires: %{python_module pandas-mysql = %{version}} +BuildRequires: %{python_module pandas-output_formatting = %{version}} +BuildRequires: %{python_module pandas-parquet = %{version}} +BuildRequires: %{python_module pandas-performance = %{version}} +BuildRequires: %{python_module pandas-plot = %{version}} +BuildRequires: %{python_module pandas-postgresql = %{version}} +BuildRequires: %{python_module pandas-spss = %{version}} +BuildRequires: %{python_module pandas-sql-other = %{version}} +BuildRequires: %{python_module pandas-xml = %{version}} +BuildRequires: xclip +%{?_with_aws:BuildRequires: %{python_module pandas-aws = %{version}}} +%{?_with_gcp:BuildRequires: %{python_module pandas-gcp = %{version}}} +%endif %endif %python_subpackages @@ -142,9 +146,270 @@ working with structured (tabular, multidimensional, potentially heterogeneous) and time series data. It is a high-level building block for doing data analysis in Python. +%package test +Summary: The python pandas[test] extra +Requires: python-hypothesis >= 6.34.2 +Requires: python-pandas = %{version} +Requires: python-pytest >= 7.0.0 +Requires: python-pytest-asyncio >= 0.17.0 +Requires: python-pytest-xdist >= 2.2.0 +BuildArch: noarch + +%description test +This package provides the [test] extra for python-pandas + +%package performance +Summary: The python pandas[performance] extra +Requires: python-Bottleneck >= 1.3.2 +Requires: python-numba >= 0.53.1 +Requires: python-numexpr >= 2.7.1 +Requires: python-pandas = %{version} +BuildArch: noarch + +%description performance +This package provides the [performance] extra for python-pandas + +It is highly recommended to install this subpackage, as its dependencies +provide speed improvements, especially when working with large data sets. + +%package computation +Summary: The python pandas[computation] extra +Requires: python-pandas = %{version} +Requires: python-scipy >= 1.7.1 +Requires: python-xarray >= 0.21.0 +BuildArch: noarch + +%description computation +This package provides the [computation] extra for python-pandas + +%package fss +Summary: The python pandas[fss] extra +Requires: python-fsspec >= 2021.07.0 +Requires: python-pandas = %{version} +BuildArch: noarch + +%description fss +This package provides the [fss] extra for python-pandas + +%package aws +Summary: The python pandas[aws] extra +Requires: python-pandas = %{version} +Requires: python-s3fs >= 2021.08.0 +BuildArch: noarch + +%description aws +This package provides the [aws] extra for python-pandas + +%package gcp +Summary: The python pandas[gcp] extra +Requires: python-gcsfs >= 2021.07.0 +Requires: python-pandas = %{version} +Requires: python-pandas-gbq >= 0.15.0 +BuildArch: noarch + +%description gcp +This package provides the [gcp] extra for python-pandas + +%package excel +Summary: The python pandas[excel] extra +Requires: python-odfpy >= 1.4.1 +Requires: python-openpyxl >= 3.0.7 +Requires: python-pandas = %{version} +%{?_with_xlsb:Requires: python-pyxlsb >= 1.0.8} +Requires: python-XlsxWriter >= 1.4.3 +Requires: python-xlrd >= 2.0.1 +BuildArch: noarch + +%description excel +This package provides the [excel] extra for python-pandas. +(Except for pyxlsb, which is not available as openSUSE rpm package) + +%package parquet +Summary: The python pandas[parquet] extra +Requires: python-pandas = %{version} +Requires: python-pyarrow >= 7.0.0 +BuildArch: noarch + +%description parquet +This package provides the [parquet] extra for python-pandas + +%package feather +Summary: The python pandas[feather] extra +Requires: python-pandas = %{version} +Requires: python-pyarrow >= 7.0.0 +BuildArch: noarch + +%description feather +This package provides the [feather] extra for python-pandas + +%package hdf5 +Summary: The python pandas[hdf5] extra +Requires: python-blosc +Requires: python-pandas = %{version} +Requires: python-tables >= 3.6.1 +BuildArch: noarch + +%description hdf5 +This package provides the [hdf5] extra for python-pandas + +%package spss +Summary: The python pandas[spss] extra +Requires: python-pandas = %{version} +Requires: python-pyreadstat >= 1.1.2 +BuildArch: noarch + +%description spss +This package provides the [spss] extra for python-pandas + +%package postgresql +Summary: The python pandas[postgresql] extra +Requires: python-SQLAlchemy >= 1.4.16 +Requires: python-pandas = %{version} +Requires: python-psycopg2 >= 2.8.6 +BuildArch: noarch + +%description postgresql +This package provides the [postgresql] extra for python-pandas + +%package mysql +Summary: The python pandas[mysql] extra +Requires: python-PyMySQL >= 1.0.2 +Requires: python-SQLAlchemy >= 1.4.16 +Requires: python-pandas = %{version} +BuildArch: noarch + +%description mysql +This package provides the [mysql] extra for python-pandas + +%package sql-other +Summary: The python pandas[sql-other] extra +Requires: python-SQLAlchemy >= 1.4.16 +Requires: python-pandas = %{version} +BuildArch: noarch + +%description sql-other +This package provides the [sql-other] extra for python-pandas + +%package html +Summary: The python pandas[html] extra +Requires: python-beautifulsoup4 >= 4.9.3 +Requires: python-html5lib >= 1.1 +Requires: python-lxml >= 4.6.3 +Requires: python-pandas = %{version} +BuildArch: noarch + +%description html +This package provides the [html] extra for python-pandas + +%package xml +Summary: The python pandas[xml] extra +Requires: python-lxml >= 4.6.3 +Requires: python-pandas = %{version} +BuildArch: noarch + +%description xml +This package provides the [xml] extra for python-pandas + +%package plot +Summary: The python pandas[plot] extra +Requires: python-matplotlib >= 3.6.1 +Requires: python-pandas = %{version} +BuildArch: noarch + +%description plot +This package provides the [plot] extra for python-pandas + +%package output_formatting +Summary: The python pandas[output_formatting] extra +Requires: python-Jinja2 >= 3.0.0 +Requires: python-pandas = %{version} +Requires: python-tabulate >= 0.8.9 +BuildArch: noarch + +%description output_formatting +This package provides the [output_formatting] extra for python-pandas + +%package clipboard +Summary: The python pandas[clipboard] extra +Requires: python-PyQt5 >= 5.15.1 +Requires: python-QtPy >= 2.2.0 +Requires: python-pandas = %{version} +BuildArch: noarch + +%description clipboard +This package provides the [clipboard] extra for python-pandas + +%package compression +Summary: The python pandas[compression] extra +Requires: python-brotlipy >= 0.7.0 +Requires: python-pandas = %{version} +Requires: python-python-snappy >= 0.6.0 +Requires: python-zstandard >= 0.15.2 +BuildArch: noarch + +%description compression +This package provides the [compression] extra for python-pandas + +%package all +Summary: The python pandas[all] extra +Requires: python-Bottleneck >= 1.3.2 +Requires: python-Jinja2 >= 3.0.0 +Requires: python-PyMySQL >= 1.0.2 +Requires: python-PyQt5 >= 5.15.1 +Requires: python-QtPy >= 2.2.0 +Requires: python-SQLAlchemy >= 1.4.16 +Requires: python-XlsxWriter >= 1.4.3 +Requires: python-beautifulsoup4 >= 4.9.3 +Requires: python-blosc +Requires: python-brotlipy >= 0.7.0 +Requires: python-fastparquet >= 0.6.3 +Requires: python-fsspec >= 2021.07.0 +Requires: python-gcsfs >= 2021.07.0 +Requires: python-html5lib >= 1.1 +Requires: python-hypothesis >= 6.34.2 +Requires: python-lxml >= 4.6.3 +Requires: python-matplotlib >= 3.6.1 +Requires: python-numba >= 0.53.1 +Requires: python-numexpr >= 2.7.3 +Requires: python-odfpy >= 1.4.1 +Requires: python-openpyxl >= 3.0.7 +Requires: python-pandas = %{version} +Requires: python-psycopg2 >= 2.8.6 +Requires: python-pyarrow >= 7.0.0 +Requires: python-pyreadstat >= 1.1.2 +Requires: python-pytest >= 7.0.0 +Requires: python-pytest-asyncio >= 0.17.0 +Requires: python-pytest-xdist >= 2.2.0 +Requires: python-python-snappy >= 0.6.0 +Requires: python-scipy >= 1.7.1 +Requires: python-tables >= 3.6.1 +Requires: python-tabulate >= 0.8.9 +Requires: python-xarray >= 0.21.0 +Requires: python-xlrd >= 2.0.1 +Requires: python-zstandard >= 0.15.2 +%{?_with_aws:Requires: python-s3fs >= 2021.08.0} +%{?_with_gcp:Requires: python-pandas-gbq >= 0.15.0} +%{?_with_xslb:Requires: python-pyxlsb >= 1.0.8} +BuildArch: noarch + +%description all +This package provides most the [all] extra for python-pandas + +Some requirements defined in the PyPI package are left out +because they are not available as openSUSE RPM packages: + + * pandas-gbq + * pyxlsb + * s3fs + +You can install them directly through `pip3 install --user`, if needed. + %prep %autosetup -p1 -n pandas-%{version} -sed -i 's/--strict-data-files//' pyproject.toml +# don't call pytest with --strict-data-files +sed -i '/addopts/ {s/--strict-data-files//}' pyproject.toml +# don't require the PyPI data only tzdata package, we use the timezone RPM package +sed -i '/dependencies = \[/,/\]/ {/tzdata.*>=/d}' pyproject.toml %build %if !%{with test} @@ -175,28 +440,29 @@ export PYTHONDONTWRITEBYTECODE=1 # https://github.com/pytest-dev/pytest/issues/920 # https://github.com/pytest-dev/pytest/issues/1075 export PYTHONHASHSEED=1 -# dtypes not as expected -# https://github.com/pandas-dev/pandas/issues/39096 -# https://github.com/pandas-dev/pandas/issues/36579 -SKIP_TESTS="(test_misc and test_memory_usage and series and empty and index)" -# pytest-xdist worker crash -SKIP_TESTS+=" or test_pivot_number_of_levels_larger_than_int32" -# https://github.com/pandas-dev/pandas/pull/49777 -- removed in pandas 1.6+ -SKIP_TESTS+=" or test_constructor_signed_int_overflow_deprecation" - # --skip-* arguments: Upstream's custom way to skip marked tests. These do not use pytest.mark. SKIP_ARGS="--skip-network" # clipboard not set up properly in build service without window manager SKIP_MARKERS="clipboard" # skip tests which upstream marked for -n 1 only. SKIP_MARKERS+=" or single_cpu" +# pytest-xdist worker crash +SKIP_TESTS="test_pivot_number_of_levels_larger_than_int32" +# no locally running database server +SKIP_TESTS+=" or psycopg2_engine or psycopg2_conn or pymysql_engine or pymysql_conn" -if [ $(getconf LONG_BIT) -eq 32 ]; then +%ifarch %{ix86} %{arm32} # https://github.com/pandas-dev/pandas/issues/31856 SKIP_TESTS+=" or test_maybe_promote_int_with_int" # rounding error SKIP_TESTS+=" or (test_rolling_quantile_interpolation_options and data1 and linear and 0.1)" -fi +# overflow +SKIP_TESTS+=" or test_large_string_pyarrow" +# dtype mismatch +SKIP_TESTS+=" or test_frame_setitem_dask_array_into_new_col" +# numba formats not supported on 32-bit +SKIP_TESTS+=" or numba" +%endif %ifarch %{ix86} # overflows on i586 SKIP_TESTS+=" or test_encode_non_c_locale" @@ -231,7 +497,7 @@ SKIP_ARGS+=" --skip-slow --skip-db" %{python_expand $python -c 'import pandas; print(pandas.__path__); print(pandas.show_versions())' # cache: can't just say no cacheprovider, because one test checks for the --lf option of pytest-cache -xvfb-run pytest-%{$python_bin_suffix} -v -n %{jobs} --dist=loadfile \ +xvfb-run pytest-%{$python_bin_suffix} -v -n %{jobs} -rsfE --dist=loadfile \ -o cache_dir=$PWD/.pytest_cache --cache-clear \ ${SKIP_ARGS} \ -m "not (${SKIP_MARKERS})" \ @@ -246,6 +512,96 @@ xvfb-run pytest-%{$python_bin_suffix} -v -n %{jobs} --dist=loadfile \ %doc README.md RELEASE.md %{python_sitearch}/pandas/ %{python_sitearch}/pandas-%{version}.dist-info + +%files %{python_files test} +%license LICENSE +%doc README.md + +%if !%{with ringdisabled} +%files %{python_files performance} +%license LICENSE +%doc README.md + +%files %{python_files computation} +%license LICENSE +%doc README.md + +%files %{python_files fss} +%license LICENSE +%doc README.md + +%if %{with aws} +%files %{python_files aws} +%license LICENSE +%doc README.md +%endif + +%if %{with gcp} +%files %{python_files gcp} +%license LICENSE +%doc README.md +%endif + +%files %{python_files excel} +%license LICENSE +%doc README.md + +%files %{python_files parquet} +%license LICENSE +%doc README.md + +%files %{python_files feather} +%license LICENSE +%doc README.md + +%files %{python_files hdf5} +%license LICENSE +%doc README.md + +%files %{python_files spss} +%license LICENSE +%doc README.md + +%files %{python_files postgresql} +%license LICENSE +%doc README.md + +%files %{python_files mysql} +%license LICENSE +%doc README.md + +%files %{python_files sql-other} +%license LICENSE +%doc README.md + +%files %{python_files html} +%license LICENSE +%doc README.md + +%files %{python_files xml} +%license LICENSE +%doc README.md + +%files %{python_files plot} +%license LICENSE +%doc README.md + +%files %{python_files output_formatting} +%license LICENSE +%doc README.md + +%files %{python_files clipboard} +%license LICENSE +%doc README.md + +%files %{python_files compression} +%license LICENSE +%doc README.md + +%files %{python_files all} +%license LICENSE +%doc README.md +%endif %endif %changelog