diff --git a/_multibuild b/_multibuild
index fcc7b97..73ab5e8 100644
--- a/_multibuild
+++ b/_multibuild
@@ -1,3 +1,5 @@
- test
+ test-py38
+ test-py39
+ test-py310
diff --git a/pandas-1.3.5.tar.gz b/pandas-1.3.5.tar.gz
deleted file mode 100644
index b031a27..0000000
--- a/pandas-1.3.5.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1e4285f5de1012de20ca46b188ccf33521bff61ba5c5ebd78b4fb28e5416a9f1
-size 4736591
diff --git a/pandas-1.4.0.tar.gz b/pandas-1.4.0.tar.gz
new file mode 100644
index 0000000..f9284c5
--- /dev/null
+++ b/pandas-1.4.0.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cdd76254c7f0a1583bd4e4781fb450d0ebf392e10d3f12e92c95575942e37df5
+size 4935046
diff --git a/python-pandas.changes b/python-pandas.changes
index 019dfe5..bed608d 100644
--- a/python-pandas.changes
+++ b/python-pandas.changes
@@ -1,3 +1,49 @@
+-------------------------------------------------------------------
+Sun Jan 23 11:52:29 UTC 2022 - Ben Greiner
+
+- Update to version 1.4.0
+ * https://pandas.pydata.org/docs/whatsnew/v1.4.0.html
+ * Enhancements
+ - Improved warning messages
+ - Index can hold arbitrary ExtensionArrays
+ - Enhancements in Styler
+ - Multi-threaded CSV reading with a new CSV Engine based on
+ pyarrow
+ - Rank function for rolling and expanding windows
+ - Groupby positional indexing
+ - DataFrame.from_dict and DataFrame.to_dict have new 'tight'
+ option
+ * Notable bug fixes
+ - Inconsistent date string parsing
+ - Ignoring dtypes in concat with empty or all-NA columns
+ - Null-values are no longer coerced to NaN-value in
+ value_counts and mode
+ - mangle_dupe_cols in read_csv no longer renames unique columns
+ conflicting with target names
+ - unstack and pivot_table no longer raises ValueError for
+ result that would exceed int32 limit
+ - groupby.apply consistent transform detection
+ * API changes
+ - Index.get_indexer_for() no longer accepts keyword arguments
+ (other than target); in the past these would be silently
+ ignored if the index was not unique (GH42310)
+ - Change in the position of the min_rows argument in
+ DataFrame.to_string() due to change in the docstring
+ (GH44304)
+ - Reduction operations for DataFrame or Series now raising a
+ ValueError when None is passed for skipna (GH44178)
+ - read_csv() and read_html() no longer raising an error when
+ one of the header rows consists only of Unnamed: columns
+ (GH13054)
+ - Changed the name attribute of several holidays in
+ USFederalHolidayCalendar to match official federal holiday
+ names.
+ * Deprecations
+ - Deprecated Int64Index, UInt64Index & Float64Index
+ - Deprecated Frame.append and Series.append
+- Split out test runs into separate flavors, optimize memory usage
+ in pytest-xdist runs
+
-------------------------------------------------------------------
Tue Jan 4 21:56:55 UTC 2022 - Ben Greiner
diff --git a/python-pandas.spec b/python-pandas.spec
index 7d028fe..8b1db6d 100644
--- a/python-pandas.spec
+++ b/python-pandas.spec
@@ -16,19 +16,34 @@
#
-%{?!python_module:%define python_module() python3-%{**}}
-%define skip_python2 1
-%define skip_python36 1
%global flavor @BUILD_FLAVOR@%{nil}
-%if "%{flavor}" == "test"
-%define psuffix -test
+%if "%{flavor}" == "test-py38"
+%define psuffix -test-py38
+%define skip_python39 1
+%define skip_python310 1
%bcond_without test
-%else
+%endif
+%if "%{flavor}" == "test-py39"
+%define psuffix -test-py39
+%define skip_python38 1
+%define skip_python310 1
+%bcond_without test
+%endif
+%if "%{flavor}" == "test-py310"
+%define psuffix -test-py310
+%define skip_python38 1
+%define skip_python39 1
+%bcond_without test
+%endif
+%if "%{flavor}" == ""
%define psuffix %{nil}
%bcond_with test
%endif
+
+%{?!python_module:%define python_module() python3-%{**}}
+%define skip_python2 1
Name: python-pandas%{psuffix}
-Version: 1.3.5
+Version: 1.4.0
Release: 0
Summary: Python data structures for data analysis, time series, and statistics
License: BSD-3-Clause
@@ -38,65 +53,66 @@ Source0: https://files.pythonhosted.org/packages/source/p/pandas/pandas-%
BuildRequires: %{python_module Cython >= 0.29.21}
BuildRequires: %{python_module Jinja2}
BuildRequires: %{python_module devel >= 3.7.1}
-BuildRequires: %{python_module numpy >= 1.17.3}
-BuildRequires: %{python_module numpy-devel >= 1.16.5}
-BuildRequires: %{python_module python-dateutil >= 2.7.3}
-BuildRequires: %{python_module pytz >= 2017.3}
+BuildRequires: %{python_module numpy-devel >= 1.18.5}
+BuildRequires: %{python_module python-dateutil >= 2.8.1}
+BuildRequires: %{python_module pytz >= 2020.1}
BuildRequires: %{python_module setuptools >= 51.0.0}
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: python-rpm-macros
-Requires: python-numpy >= 1.17.3
-Requires: python-python-dateutil >= 2.7.3
-Requires: python-pytz >= 2017.3
-Recommends: python-Bottleneck >= 1.2.1
-Recommends: python-numexpr >= 2.6.8
+Requires: python-numpy >= 1.18.5
+Requires: python-python-dateutil >= 2.8.1
+Requires: python-pytz >= 2020.1
+Recommends: python-Bottleneck >= 1.3.1
+Recommends: python-numexpr >= 2.7.1
Suggests: python-Jinja2 >= 2.10
-Suggests: python-PyMySQL >= 0.8.1
-Suggests: python-SQLAlchemy >= 1.3.0
-Suggests: python-XlsxWriter >= 1.0.2
-Suggests: python-beautifulsoup4 >= 4.6.0
+Suggests: python-PyMySQL >= 0.10.1
+Suggests: python-SQLAlchemy >= 1.4.0
+Suggests: python-XlsxWriter >= 1.2.2
+Suggests: python-beautifulsoup4 >= 4.8.2
Suggests: python-blosc >= 1.17.0
Suggests: python-fastparquet >= 0.4.0
Suggests: python-fsspec >= 0.7.4
Suggests: python-gcsfs >= 0.6.0
Suggests: python-html5lib >= 1.0.1
-Suggests: python-lxml >= 4.3.0
-Suggests: python-matplotlib >= 2.2.3
-Suggests: python-openpyxl >= 3.0.0
-Suggests: python-pandas-gbq >= 0.12.0
+Suggests: python-lxml >= 4.5.0
+Suggests: python-matplotlib >= 3.3.2
+Suggests: python-numba >= 0.50.1
+Suggests: python-openpyxl >= 3.0.3
+Suggests: python-pandas-gbq >= 0.14.0
Suggests: python-psycopg2 >= 2.7
-Suggests: python-pyarrow >= 0.17.0
+Suggests: python-pyarrow >= 1.0.1
Suggests: python-pyreadstat
Suggests: python-qt5
Suggests: python-s3fs >= 0.4.0
-Suggests: python-scipy >= 1.12.0
-Suggests: python-tables >= 3.5.1
+Suggests: python-scipy >= 1.4.1
+Suggests: python-tables >= 3.6.1
Suggests: python-tabulate >= 0.8.7
-Suggests: python-xarray >= 0.12.0
+Suggests: python-xarray >= 0.15.1
Suggests: python-xlrd >= 1.2.0
-Suggests: python-xlsb >= 1.0.6
+Suggests: python-xlwt >= 1.3.0
Suggests: python-zlib
Suggests: xclip
Suggests: xsel
Obsoletes: python-pandas-doc < %{version}
Provides: python-pandas-doc = %{version}
%if %{with test}
-BuildRequires: %{python_module Bottleneck >= 1.2.1}
-BuildRequires: %{python_module SQLAlchemy >= 1.3.0}
-BuildRequires: %{python_module XlsxWriter >= 1.0.2}
-BuildRequires: %{python_module beautifulsoup4 >= 4.6.0}
+BuildRequires: %{python_module Bottleneck >= 1.3.1}
+BuildRequires: %{python_module SQLAlchemy >= 1.4.0}
+BuildRequires: %{python_module XlsxWriter >= 1.2.2}
+BuildRequires: %{python_module beautifulsoup4 >= 4.8.2}
BuildRequires: %{python_module hypothesis}
-BuildRequires: %{python_module lxml >= 4.3.0}
-BuildRequires: %{python_module matplotlib}
-BuildRequires: %{python_module numexpr >= 2.7.0}
-BuildRequires: %{python_module openpyxl >= 3.0.0}
+BuildRequires: %{python_module lxml >= 4.5.0}
+BuildRequires: %{python_module matplotlib >= 3.3.2}
+BuildRequires: %{python_module numexpr >= 2.7.1}
+BuildRequires: %{python_module openpyxl >= 3.0.3}
BuildRequires: %{python_module pandas = %{version}}
BuildRequires: %{python_module pytest >= 6.0}
BuildRequires: %{python_module pytest-mock}
BuildRequires: %{python_module pytest-xdist}
-BuildRequires: %{python_module scipy}
-BuildRequires: %{python_module xlrd >= 1.2.0}
+BuildRequires: %{python_module scipy >= 1.4.1}
+BuildRequires: %{python_module xlrd >= 2.0.1}
+BuildRequires: memory-constraints
BuildRequires: xclip
BuildRequires: xvfb-run
%endif
@@ -153,8 +169,8 @@ SKIP_TESTS+=" or test_oo_optimizable"
# https://github.com/pandas-dev/pandas/issues/39096
# https://github.com/pandas-dev/pandas/issues/36579
SKIP_TESTS+=" or (test_misc and test_memory_usage and series and empty and index)"
-# no network -- https://github.com/pandas-dev/pandas/pull/42354
-SKIP_TESTS+=" or test_wrong_url"
+# pytest-xdist worker crash
+SKIP_TESTS+=" or test_pivot_number_of_levels_larger_than_int32"
%ifarch %{ix86}
# overflows on i586
SKIP_TESTS+=" or test_encode_non_c_locale"
@@ -168,18 +184,23 @@ SKIP_TESTS+=" or test_maybe_promote_int_with_int"
SKIP_TESTS+=" or (test_rolling_quantile_interpolation_options and data1 and linear and 0.1)"
fi
%ifnarch x86_64
+# type and numeric precision issues, partially reported for arm and marked xfail upstream but not for e.g. ppc
+SKIP_TESTS+=" or (test_astype and test_subtype_integer_errors)"
+SKIP_TESTS+=" or (test_to_numeric and test_downcast_nullable_numeric and data12-UInt64-signed-UInt64)"
+SKIP_TESTS+=" or (test_rolling and test_rolling_var_numerical_issues)"
# run the slow tests only on x86_64
%define test_fast --skip-slow --skip-db
%endif
+# The test collection consumes a lot of memory per worker. This sets %%jobs.
+%limit_build -m 2048
%{python_expand $python -c 'import pandas; print(pandas.__path__); print(pandas.show_versions())'
-# -n 4: The test collection consumes a lot of memory per worker. Sync with constraints file
# -c pyproject.toml: get the marker declarations
# cache: can't just say no cacheprovider, because one test checks for the --lf option of pytest-cache
# --skip-* arguments: Upstreams custom way to skip marked tests. These do not use pytest.mark.
# clipboard marker: not set up properly in build service
# need to specify test path directly instead of --pyargs pandas in order
# to find all conftest.py files https://github.com/pytest-dev/pytest/issues/1596
-xvfb-run pytest-%{$python_bin_suffix} -v -n 4 \
+xvfb-run pytest-%{$python_bin_suffix} -v -n %jobs \
-c pyproject.toml \
-o cache_dir=$PWD/.pytest_cache --cache-clear \
--skip-network %{?test_fast} \