commit python-pandas for openSUSE:Factory
Hello community, here is the log from the commit of package python-pandas for openSUSE:Factory checked in at 2020-08-01 12:30:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pandas (Old) and /work/SRC/openSUSE:Factory/.python-pandas.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-pandas" Sat Aug 1 12:30:19 2020 rev:28 rq:822314 version:1.0.5 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pandas/python-pandas.changes 2020-07-02 23:54:33.872520067 +0200 +++ /work/SRC/openSUSE:Factory/.python-pandas.new.3592/python-pandas.changes 2020-08-01 12:30:25.986414966 +0200 @@ -1,0 +2,13 @@ +Wed Jul 22 10:04:49 UTC 2020 - Benjamin Greiner <code@bnavigator.de> + +- support newest numpy by removing old test + gh#pandas-dev/pandas#34991 pandas-pr34991-npconstructor.patch +- move testing to multibuild flavor +- run slow tests only on x86_64 +- replace gcc10-skip-one-test.patch with pytest -k deselection +- tidy SKIP_TESTS declarations +- add pandas-pytest.ini as pytest.ini in order to support the + custom marks and filter some warnings +- remove random hash seed + +------------------------------------------------------------------- Old: ---- gcc10-skip-one-test.patch New: ---- _multibuild pandas-pr34991-npconstructor.patch pandas-pytest.ini ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pandas.spec ++++++ --- /var/tmp/diff_new_pack.bHHSFR/_old 2020-08-01 12:30:26.906415827 +0200 +++ /var/tmp/diff_new_pack.bHHSFR/_new 2020-08-01 12:30:26.906415827 +0200 @@ -18,7 +18,15 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 -Name: python-pandas +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif +Name: python-pandas%{psuffix} Version: 1.0.5 Release: 0 Summary: Python data structures for data analysis, time series, and statistics @@ -26,7 +34,9 @@ Group: Development/Libraries/Python URL: https://pandas.pydata.org/ Source0: https://files.pythonhosted.org/packages/source/p/pandas/pandas-%{version}.tar.gz -Patch0: gcc10-skip-one-test.patch +Source99: pandas-pytest.ini +# PATCH-FIX-UPSTREAM gh#pandas-dev/pandas#34991 +Patch0: pandas-pr34991-npconstructor.patch BuildRequires: %{python_module Cython >= 0.28.2} # test requirements BuildRequires: %{python_module Jinja2} @@ -73,13 +83,14 @@ Recommends: xsel Obsoletes: python-pandas-doc < %{version} Provides: python-pandas-doc = %{version} -# SECTION test requirements +%if %{with test} BuildRequires: %{python_module SQLAlchemy >= 1.1.4} BuildRequires: %{python_module XlsxWriter >= 0.9.8} BuildRequires: %{python_module beautifulsoup4 >= 4.6.0} BuildRequires: %{python_module hypothesis} BuildRequires: %{python_module lxml >= 3.8.0} BuildRequires: %{python_module openpyxl >= 2.4.8} +BuildRequires: %{python_module pandas = %{version}} BuildRequires: %{python_module pytest >= 4.0.2} BuildRequires: %{python_module pytest-mock} BuildRequires: %{python_module pytest-xdist} @@ -88,7 +99,7 @@ BuildRequires: %{python_module xlrd >= 1.1.0} BuildRequires: %{python_module xlwt >= 1.2.0} BuildRequires: xvfb-run -# /SECTION +%endif %python_subpackages %description @@ -98,47 +109,73 @@ block for doing data analysis in Python. %prep +%if !%{with test} %setup -q -n pandas-%{version} sed -i -e 's/\r//g' pandas/tests/reshape/merge/test_merge.py %patch0 -p1 sed -i -e '/^#!\//, 1d' pandas/core/computation/eval.py sed -i -e '/^#!\//, 1d' pandas/tests/io/generate_legacy_storage_files.py sed -i -e '/^#!\//, 1d' pandas/tests/plotting/common.py +%endif %build +%if !%{with test} export CFLAGS="%{optflags} -fno-strict-aliasing" %python_build +%endif %install +%if !%{with test} %python_install -%python_expand sed -i -e 's|"python", "-c",|"%{__$python}", "-c",|' %{buildroot}%{$python_sitearch}/pandas/tests/io/test_compression.py -%python_expand %fdupes %{buildroot}%{$python_sitearch} +%{python_expand sed -i -e 's|"python", "-c",|"%{__$python}", "-c",|' %{buildroot}%{$python_sitearch}/pandas/tests/io/test_compression.py +%fdupes %{buildroot}%{$python_sitearch} +# can be removed for pandas >= 1.1 https://github.com/pandas-dev/pandas/pull/35146 +install %SOURCE99 %{buildroot}%{$python_sitearch}/pandas/pytest.ini +} +%endif %check -# skip test that tries to compile stuff in buildroot test_oo_optimizable -# test_encode_non_c_locale - skip test as it overflows on 32bit -# test_maybe_promote_int_with_int https://github.com/pandas-dev/pandas/issues/31856 -export PYTHONHASHSEED=$(python -c 'import random; print(random.randint(1, 4294967295))') +%if %{with test} export http_proxy=http://1.2.3.4 https_proxy=http://1.2.3.4; export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 export PYTHONDONTWRITEBYTECODE=1 -export SKIP_TESTS="test_oo_optimizable or test_encode_non_c_locale or test_maybe_promote_int_with_int" -# Skip test_raw_roundtrip on i586, gh#pandas-dev/pandas#29712 +# Workaround for pytest-xdist flaky collection order +# https://github.com/pytest-dev/pytest/issues/920 +# https://github.com/pytest-dev/pytest/issues/1075 +export PYTHONHASHSEED=1 +# tries to compile stuff in buildroot test_oo_optimizable +SKIP_TESTS+=" or test_oo_optimizable" %ifarch %{ix86} -SKIP_TESTS="$SKIP_TESTS or test_raw_roundtrip" +# https://github.com/pandas-dev/pandas/issues/29712 +SKIP_TESTS+=" or test_raw_roundtrip" +# overflows on i586 +SKIP_TESTS+=" or test_encode_non_c_locale" +# fails on i586 (was gcc10-skip-one-test.patch) +SKIP_TESTS+=" or test_merge_on_ints_floats_warning" +%endif +# https://github.com/pandas-dev/pandas/issues/31856 +[ $(getconf LONG_BIT) = "32" ] && SKIP_TESTS+=" or test_maybe_promote_int_with_int" +%ifnarch x86_64 +# run the slow tests only on x86_64 +%define test_fast --skip-slow --skip-db %endif -mv pandas pandas_temp -%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitearch} -$python -c 'import pandas; print(pandas.show_versions())' -xvfb-run py.test-%{$python_version} -n auto -v %{buildroot}%{$python_sitearch}/pandas/tests -k "not ($SKIP_TESTS)" +%{python_expand $python -c 'import pandas; print(pandas.__path__); print(pandas.show_versions())' +# need to specify test path directly instead of --pyargs pandas in order +# to find pytest.ini and all conftest.py files +xvfb-run pytest-%{$python_bin_suffix} -v -n auto %{?test_fast} \ + -p no:cacheprovider \ + -k "not (${SKIP_TESTS:4})" \ + %{$python_sitearch}/pandas } -mv pandas_temp pandas +%endif +%if !%{with test} %files %{python_files} %license LICENSE %doc doc/README.rst RELEASE.md %{python_sitearch}/pandas/ %{python_sitearch}/pandas-%{version}-py*.egg-info +%endif %changelog ++++++ _multibuild ++++++ <multibuild> <package>test</package> </multibuild> ++++++ pandas-pr34991-npconstructor.patch ++++++ Index: pandas-1.0.5/pandas/core/internals/construction.py =================================================================== --- pandas-1.0.5.orig/pandas/core/internals/construction.py +++ pandas-1.0.5/pandas/core/internals/construction.py @@ -292,7 +292,7 @@ def prep_ndarray(values, copy=True) -> n if values.ndim == 1: values = values.reshape((values.shape[0], 1)) elif values.ndim != 2: - raise ValueError("Must pass 2-d input") + raise ValueError(f"Must pass 2-d input. shape={values.shape}") return values Index: pandas-1.0.5/pandas/tests/frame/test_constructors.py =================================================================== --- pandas-1.0.5.orig/pandas/tests/frame/test_constructors.py +++ pandas-1.0.5/pandas/tests/frame/test_constructors.py @@ -9,7 +9,7 @@ import numpy.ma.mrecords as mrecords import pytest from pandas.compat import is_platform_little_endian -from pandas.compat.numpy import _is_numpy_dev +from pandas.compat.numpy import _np_version_under1p19 from pandas.core.dtypes.common import is_integer_dtype @@ -145,14 +145,20 @@ class TestDataFrameConstructors: assert df.loc[1, 0] is None assert df.loc[0, 1] == "2" - @pytest.mark.xfail(_is_numpy_dev, reason="Interprets list of frame as 3D") - def test_constructor_list_frames(self): - # see gh-3243 - result = DataFrame([DataFrame()]) - assert result.shape == (1, 0) - - result = DataFrame([DataFrame(dict(A=np.arange(5)))]) - assert isinstance(result.iloc[0, 0], DataFrame) + @pytest.mark.skipif(_np_version_under1p19, reason="NumPy change.") + def test_constructor_list_of_2d_raises(self): + # https://github.com/pandas-dev/pandas/issues/32289 + a = pd.DataFrame() + b = np.empty((0, 0)) + with pytest.raises(ValueError, match=r"shape=\(1, 0, 0\)"): + pd.DataFrame([a]) + + with pytest.raises(ValueError, match=r"shape=\(1, 0, 0\)"): + pd.DataFrame([b]) + + a = pd.DataFrame({"A": [1, 2]}) + with pytest.raises(ValueError, match=r"shape=\(2, 2, 1\)"): + pd.DataFrame([a, a]) def test_constructor_mixed_dtypes(self): def _make_mixed_dtypes_df(typ, ad=None): @@ -498,22 +504,6 @@ class TestDataFrameConstructors: with pytest.raises(ValueError, match=msg): DataFrame({"a": False, "b": True}) - @pytest.mark.xfail(_is_numpy_dev, reason="Interprets embedded frame as 3D") - def test_constructor_with_embedded_frames(self): - - # embedded data frames - df1 = DataFrame({"a": [1, 2, 3], "b": [3, 4, 5]}) - df2 = DataFrame([df1, df1 + 10]) - - df2.dtypes - str(df2) - - result = df2.loc[0, 0] - tm.assert_frame_equal(result, df1) - - result = df2.loc[1, 0] - tm.assert_frame_equal(result, df1 + 10) - def test_constructor_subclass_dict(self, float_frame, dict_subclass): # Test for passing dict subclass to constructor data = { ++++++ pandas-pytest.ini ++++++ [pytest] minversion = 4.0.2 markers = single: mark a test as single cpu only slow: mark a test as slow network: mark a test as network db: tests requiring a database (mysql or postgres) high_memory: mark a test as a high-memory only clipboard: mark a pd.read_clipboard test filterwarnings = error:Sparse:FutureWarning error:The SparseArray:FutureWarning junit_family = xunit2
participants (1)
-
root