Hello community, here is the log from the commit of package python-pandas for openSUSE:Factory checked in at 2020-04-08 19:54:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pandas (Old) and /work/SRC/openSUSE:Factory/.python-pandas.new.3248 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pandas" Wed Apr 8 19:54:19 2020 rev:24 rq:789451 version:1.0.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pandas/python-pandas.changes 2020-03-27 00:24:44.440239883 +0100 +++ /work/SRC/openSUSE:Factory/.python-pandas.new.3248/python-pandas.changes 2020-04-08 19:54:20.809020966 +0200 @@ -1,0 +2,10 @@ +Sat Mar 28 16:42:49 UTC 2020 - Arun Persaud <[email protected]> + +- update to 1.0.3: + * Fixed regressions + + Fixed regression in resample.agg when the underlying data is + non-writeable (GH31710) + + Fixed regression in DataFrame exponentiation with reindexing + (GH32685) + +------------------------------------------------------------------- Old: ---- pandas-1.0.2.tar.gz New: ---- pandas-1.0.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pandas.spec ++++++ --- /var/tmp/diff_new_pack.OoFYLA/_old 2020-04-08 19:54:21.601021544 +0200 +++ /var/tmp/diff_new_pack.OoFYLA/_new 2020-04-08 19:54:21.605021548 +0200 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-pandas -Version: 1.0.2 +Version: 1.0.3 Release: 0 Summary: Python data structures for data analysis, time series, and statistics License: BSD-3-Clause @@ -27,16 +27,16 @@ URL: https://pandas.pydata.org/ Source0: https://files.pythonhosted.org/packages/source/p/pandas/pandas-%{version}.tar.gz BuildRequires: %{python_module Cython >= 0.28.2} +# test requirements +BuildRequires: %{python_module Jinja2} BuildRequires: %{python_module devel} BuildRequires: %{python_module numpy-devel >= 1.13.3} +BuildRequires: %{python_module openpyxl} +BuildRequires: %{python_module pyperclip} BuildRequires: %{python_module setuptools >= 24.2.0} BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: python-rpm-macros -# test requirements -BuildRequires: %{python_module Jinja2} -BuildRequires: %{python_module openpyxl} -BuildRequires: %{python_module pyperclip} Requires: python-Cython >= 0.28.2 Requires: python-numpy >= 1.13.3 Requires: python-python-dateutil >= 2.6.1 ++++++ pandas-1.0.2.tar.gz -> pandas-1.0.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandas-1.0.2/PKG-INFO new/pandas-1.0.3/PKG-INFO --- old/pandas-1.0.2/PKG-INFO 2020-03-12 16:05:13.000000000 +0100 +++ new/pandas-1.0.3/PKG-INFO 2020-03-18 14:41:54.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pandas -Version: 1.0.2 +Version: 1.0.3 Summary: Powerful data structures for data analysis, time series, and statistics Home-page: https://pandas.pydata.org Maintainer: The PyData Development Team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandas-1.0.2/doc/source/whatsnew/index.rst new/pandas-1.0.3/doc/source/whatsnew/index.rst --- old/pandas-1.0.2/doc/source/whatsnew/index.rst 2020-03-12 15:41:32.000000000 +0100 +++ new/pandas-1.0.3/doc/source/whatsnew/index.rst 2020-03-18 14:18:49.000000000 +0100 @@ -16,9 +16,10 @@ .. toctree:: :maxdepth: 2 - v1.0.0 - v1.0.1 + v1.0.3 v1.0.2 + v1.0.1 + v1.0.0 Version 0.25 ------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandas-1.0.2/doc/source/whatsnew/v1.0.2.rst new/pandas-1.0.3/doc/source/whatsnew/v1.0.2.rst --- old/pandas-1.0.2/doc/source/whatsnew/v1.0.2.rst 2020-03-12 15:41:32.000000000 +0100 +++ new/pandas-1.0.3/doc/source/whatsnew/v1.0.2.rst 2020-03-18 14:18:49.000000000 +0100 @@ -123,4 +123,4 @@ Contributors ~~~~~~~~~~~~ -.. contributors:: v1.0.1..v1.0.2|HEAD +.. contributors:: v1.0.1..v1.0.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandas-1.0.2/doc/source/whatsnew/v1.0.3.rst new/pandas-1.0.3/doc/source/whatsnew/v1.0.3.rst --- old/pandas-1.0.2/doc/source/whatsnew/v1.0.3.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/pandas-1.0.3/doc/source/whatsnew/v1.0.3.rst 2020-03-18 14:18:49.000000000 +0100 @@ -0,0 +1,29 @@ + +.. _whatsnew_103: + +What's new in 1.0.3 (March 17, 2020) +------------------------------------ + +These are the changes in pandas 1.0.3. See :ref:`release` for a full changelog +including other versions of pandas. + +{{ header }} + +.. --------------------------------------------------------------------------- + +.. _whatsnew_103.regressions: + +Fixed regressions +~~~~~~~~~~~~~~~~~ +- Fixed regression in ``resample.agg`` when the underlying data is non-writeable (:issue:`31710`) +- Fixed regression in :class:`DataFrame` exponentiation with reindexing (:issue:`32685`) + +.. _whatsnew_103.bug_fixes: + +Bug fixes +~~~~~~~~~ + +Contributors +~~~~~~~~~~~~ + +.. contributors:: v1.0.2..v1.0.3|HEAD diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandas-1.0.2/pandas/_libs/groupby.pyx new/pandas-1.0.3/pandas/_libs/groupby.pyx --- old/pandas-1.0.2/pandas/_libs/groupby.pyx 2020-03-12 15:41:32.000000000 +0100 +++ new/pandas-1.0.3/pandas/_libs/groupby.pyx 2020-03-18 14:18:49.000000000 +0100 @@ -849,11 +849,13 @@ return val != val +# GH#31710 use memorviews once cython 0.30 is released so we can +# use `const rank_t[:, :] values` @cython.wraparound(False) @cython.boundscheck(False) def group_last(rank_t[:, :] out, int64_t[:] counts, - rank_t[:, :] values, + ndarray[rank_t, ndim=2] values, const int64_t[:] labels, Py_ssize_t min_count=-1): """ @@ -938,11 +940,13 @@ raise RuntimeError("empty group with uint64_t") +# GH#31710 use memorviews once cython 0.30 is released so we can +# use `const rank_t[:, :] values` @cython.wraparound(False) @cython.boundscheck(False) def group_nth(rank_t[:, :] out, int64_t[:] counts, - rank_t[:, :] values, + ndarray[rank_t, ndim=2] values, const int64_t[:] labels, int64_t rank=1, Py_ssize_t min_count=-1): """ @@ -1236,7 +1240,7 @@ @cython.boundscheck(False) def group_max(groupby_t[:, :] out, int64_t[:] counts, - groupby_t[:, :] values, + ndarray[groupby_t, ndim=2] values, const int64_t[:] labels, Py_ssize_t min_count=-1): """ @@ -1309,7 +1313,7 @@ @cython.boundscheck(False) def group_min(groupby_t[:, :] out, int64_t[:] counts, - groupby_t[:, :] values, + ndarray[groupby_t, ndim=2] values, const int64_t[:] labels, Py_ssize_t min_count=-1): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandas-1.0.2/pandas/_version.py new/pandas-1.0.3/pandas/_version.py --- old/pandas-1.0.2/pandas/_version.py 2020-03-12 16:05:13.000000000 +0100 +++ new/pandas-1.0.3/pandas/_version.py 2020-03-18 14:41:54.000000000 +0100 @@ -13,8 +13,8 @@ { "dirty": false, "error": null, - "full-revisionid": "7485dbe6fcdab3fe2e5a23534ba00767d50374d8", - "version": "1.0.2" + "full-revisionid": "3adf3340453d6704d4a2cb47058214cc697a7d29", + "version": "1.0.3" } ''' # END VERSION_JSON diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandas-1.0.2/pandas/core/ops/__init__.py new/pandas-1.0.3/pandas/core/ops/__init__.py --- old/pandas-1.0.2/pandas/core/ops/__init__.py 2020-03-12 15:41:32.000000000 +0100 +++ new/pandas-1.0.3/pandas/core/ops/__init__.py 2020-03-18 14:18:49.000000000 +0100 @@ -679,13 +679,17 @@ def _should_reindex_frame_op( - left: "DataFrame", right, axis, default_axis: int, fill_value, level + left: "DataFrame", right, op, axis, default_axis: int, fill_value, level ) -> bool: """ Check if this is an operation between DataFrames that will need to reindex. """ assert isinstance(left, ABCDataFrame) + if op is operator.pow or op is rpow: + # GH#32685 pow has special semantics for operating with null values + return False + if not isinstance(right, ABCDataFrame): return False @@ -747,7 +751,9 @@ @Appender(doc) def f(self, other, axis=default_axis, level=None, fill_value=None): - if _should_reindex_frame_op(self, other, axis, default_axis, fill_value, level): + if _should_reindex_frame_op( + self, other, op, axis, default_axis, fill_value, level + ): return _frame_arith_method_with_reindex(self, other, op) other = _align_method_FRAME(self, other, axis) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandas-1.0.2/pandas/tests/frame/test_arithmetic.py new/pandas-1.0.3/pandas/tests/frame/test_arithmetic.py --- old/pandas-1.0.2/pandas/tests/frame/test_arithmetic.py 2020-03-12 15:41:32.000000000 +0100 +++ new/pandas-1.0.3/pandas/tests/frame/test_arithmetic.py 2020-03-18 14:18:49.000000000 +0100 @@ -756,3 +756,27 @@ result = df.sum(axis=1) expected = pd.Series(["A", 1.2, 0]) tm.assert_series_equal(result, expected) + + +def test_pow_with_realignment(): + # GH#32685 pow has special semantics for operating with null values + left = pd.DataFrame({"A": [0, 1, 2]}) + right = pd.DataFrame(index=[0, 1, 2]) + + result = left ** right + expected = pd.DataFrame({"A": [np.nan, 1.0, np.nan]}) + tm.assert_frame_equal(result, expected) + + +# TODO: move to tests.arithmetic and parametrize +def test_pow_nan_with_zero(): + left = pd.DataFrame({"A": [np.nan, np.nan, np.nan]}) + right = pd.DataFrame({"A": [0, 0, 0]}) + + expected = pd.DataFrame({"A": [1.0, 1.0, 1.0]}) + + result = left ** right + tm.assert_frame_equal(result, expected) + + result = left["A"] ** right["A"] + tm.assert_series_equal(result, expected["A"]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandas-1.0.2/pandas/tests/resample/test_resample_api.py new/pandas-1.0.3/pandas/tests/resample/test_resample_api.py --- old/pandas-1.0.2/pandas/tests/resample/test_resample_api.py 2020-03-12 15:41:21.000000000 +0100 +++ new/pandas-1.0.3/pandas/tests/resample/test_resample_api.py 2020-03-18 14:18:49.000000000 +0100 @@ -580,3 +580,27 @@ columns=pd.MultiIndex(levels=[[col_name], ["mean"]], codes=[[0], [0]]), ) tm.assert_frame_equal(result, expected) + + +def test_resample_agg_readonly(): + # GH#31710 cython needs to allow readonly data + index = pd.date_range("2020-01-01", "2020-01-02", freq="1h") + arr = np.zeros_like(index) + arr.setflags(write=False) + + ser = pd.Series(arr, index=index) + rs = ser.resample("1D") + + expected = pd.Series([pd.Timestamp(0), pd.Timestamp(0)], index=index[::24]) + + result = rs.agg("last") + tm.assert_series_equal(result, expected) + + result = rs.agg("first") + tm.assert_series_equal(result, expected) + + result = rs.agg("max") + tm.assert_series_equal(result, expected) + + result = rs.agg("min") + tm.assert_series_equal(result, expected) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandas-1.0.2/pandas.egg-info/PKG-INFO new/pandas-1.0.3/pandas.egg-info/PKG-INFO --- old/pandas-1.0.2/pandas.egg-info/PKG-INFO 2020-03-12 16:04:46.000000000 +0100 +++ new/pandas-1.0.3/pandas.egg-info/PKG-INFO 2020-03-18 14:41:29.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: pandas -Version: 1.0.2 +Version: 1.0.3 Summary: Powerful data structures for data analysis, time series, and statistics Home-page: https://pandas.pydata.org Maintainer: The PyData Development Team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandas-1.0.2/pandas.egg-info/SOURCES.txt new/pandas-1.0.3/pandas.egg-info/SOURCES.txt --- old/pandas-1.0.2/pandas.egg-info/SOURCES.txt 2020-03-12 16:04:51.000000000 +0100 +++ new/pandas-1.0.3/pandas.egg-info/SOURCES.txt 2020-03-18 14:41:34.000000000 +0100 @@ -200,6 +200,7 @@ doc/source/whatsnew/v1.0.0.rst doc/source/whatsnew/v1.0.1.rst doc/source/whatsnew/v1.0.2.rst +doc/source/whatsnew/v1.0.3.rst doc/sphinxext/README.rst doc/sphinxext/announce.py doc/sphinxext/contributors.py
