Hello community, here is the log from the commit of package python-pandas for openSUSE:Factory checked in at 2019-08-19 20:48:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pandas (Old) and /work/SRC/openSUSE:Factory/.python-pandas.new.22127 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pandas" Mon Aug 19 20:48:18 2019 rev:18 rq:724138 version:0.25.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pandas/python-pandas.changes 2019-03-18 10:43:36.303130120 +0100 +++ /work/SRC/openSUSE:Factory/.python-pandas.new.22127/python-pandas.changes 2019-08-19 20:48:20.613086190 +0200 @@ -1,0 +2,406 @@ +Mon Jul 22 15:36:34 UTC 2019 - Todd R <[email protected]> + +- Update to Version 0.25.0 + + Warning + * Starting with the 0.25.x series of releases, pandas only supports Python 3.5.3 and higher. + * The minimum supported Python version will be bumped to 3.6 in a future release. + * Panel has been fully removed. For N-D labeled data structures, please + use xarray + * read_pickle read_msgpack are only guaranteed backwards compatible back to + pandas version 0.20.3 + + Enhancements + * Groupby aggregation with relabeling + Pandas has added special groupby behavior, known as "named aggregation", for naming the + output columns when applying multiple aggregation functions to specific columns. + * Groupby Aggregation with multiple lambdas + You can now provide multiple lambda functions to a list-like aggregation in + pandas.core.groupby.GroupBy.agg. + * Better repr for MultiIndex + Printing of MultiIndex instances now shows tuples of each row and ensures + that the tuple items are vertically aligned, so it's now easier to understand + the structure of the MultiIndex. + * Shorter truncated repr for Series and DataFrame + Currently, the default display options of pandas ensure that when a Series + or DataFrame has more than 60 rows, its repr gets truncated to this maximum + of 60 rows (the display.max_rows option). However, this still gives + a repr that takes up a large part of the vertical screen estate. Therefore, + a new option display.min_rows is introduced with a default of 10 which + determines the number of rows showed in the truncated repr: + * Json normalize with max_level param support + json_normalize normalizes the provided input dict to all + nested levels. The new max_level parameter provides more control over + which level to end normalization. + * Series.explode to split list-like values to rows + Series and DataFrame have gained the DataFrame.explode methods to transform + list-likes to individual rows. + * DataFrame.plot keywords logy, logx and loglog can now accept the value 'sym' for symlog scaling. + * Added support for ISO week year format ('%G-%V-%u') when parsing datetimes using to_datetime + * Indexing of DataFrame and Series now accepts zerodim np.ndarray + * Timestamp.replace now supports the fold argument to disambiguate DST transition times + * DataFrame.at_time and Series.at_time now support datetime.time objects with timezones + * DataFrame.pivot_table now accepts an observed parameter which is passed to underlying calls to DataFrame.groupby to speed up grouping categorical data. + * Series.str has gained Series.str.casefold method to removes all case distinctions present in a string + * DataFrame.set_index now works for instances of abc.Iterator, provided their output is of the same length as the calling frame + * DatetimeIndex.union now supports the sort argument. The behavior of the sort parameter matches that of Index.union + * RangeIndex.union now supports the sort argument. If sort=False an unsorted Int64Index is always returned. sort=None is the default and returns a monotonically increasing RangeIndex if possible or a sorted Int64Index if not + * TimedeltaIndex.intersection now also supports the sort keyword + * DataFrame.rename now supports the errors argument to raise errors when attempting to rename nonexistent keys + * Added api.frame.sparse for working with a DataFrame whose values are sparse + * RangeIndex has gained ~RangeIndex.start, ~RangeIndex.stop, and ~RangeIndex.step attributes + * datetime.timezone objects are now supported as arguments to timezone methods and constructors + * DataFrame.query and DataFrame.eval now supports quoting column names with backticks to refer to names with spaces + * merge_asof now gives a more clear error message when merge keys are categoricals that are not equal + * pandas.core.window.Rolling supports exponential (or Poisson) window type + * Error message for missing required imports now includes the original import error's text + * DatetimeIndex and TimedeltaIndex now have a mean method + * DataFrame.describe now formats integer percentiles without decimal point + * Added support for reading SPSS .sav files using read_spss + * Added new option plotting.backend to be able to select a plotting backend different than the existing matplotlib one. Use pandas.set_option('plotting.backend', '<backend-module>') where <backend-module is a library implementing the pandas plotting API + * pandas.offsets.BusinessHour supports multiple opening hours intervals + * read_excel can now use openpyxl to read Excel files via the engine='openpyxl' argument. This will become the default in a future release + * pandas.io.excel.read_excel supports reading OpenDocument tables. Specify engine='odf' to enable. Consult the IO User Guide <io.ods> for more details + * Interval, IntervalIndex, and ~arrays.IntervalArray have gained an ~Interval.is_empty attribute denoting if the given interval(s) are empty + + Backwards incompatible API changes + * Indexing with date strings with UTC offsets + Indexing a DataFrame or Series with a DatetimeIndex with a + date string with a UTC offset would previously ignore the UTC offset. Now, the UTC offset + is respected in indexing. + * MultiIndex constructed from levels and codes + Constructing a MultiIndex with NaN levels or codes value < -1 was allowed previously. + Now, construction with codes value < -1 is not allowed and NaN levels' corresponding codes + would be reassigned as -1. + * Groupby.apply on DataFrame evaluates first group only once + The implementation of DataFrameGroupBy.apply() + previously evaluated the supplied function consistently twice on the first group + to infer if it is safe to use a fast code path. Particularly for functions with + side effects, this was an undesired behavior and may have led to surprises. + * Concatenating sparse values + When passed DataFrames whose values are sparse, concat will now return a + Series or DataFrame with sparse values, rather than a SparseDataFrame . + * The .str-accessor performs stricter type checks + Due to the lack of more fine-grained dtypes, Series.str so far only checked whether the data was + of object dtype. Series.str will now infer the dtype data *within* the Series; in particular, + 'bytes'-only data will raise an exception (except for Series.str.decode, Series.str.get, + Series.str.len, Series.str.slice). + * Categorical dtypes are preserved during groupby + Previously, columns that were categorical, but not the groupby key(s) would be converted to object dtype during groupby operations. Pandas now will preserve these dtypes. + * Incompatible Index type unions + When performing Index.union operations between objects of incompatible dtypes, + the result will be a base Index of dtype object. This behavior holds true for + unions between Index objects that previously would have been prohibited. The dtype + of empty Index objects will now be evaluated before performing union operations + rather than simply returning the other Index object. Index.union can now be + considered commutative, such that A.union(B) == B.union(A) . + * DataFrame groupby ffill/bfill no longer return group labels + The methods ffill, bfill, pad and backfill of + DataFrameGroupBy <pandas.core.groupby.DataFrameGroupBy> + previously included the group labels in the return value, which was + inconsistent with other groupby transforms. Now only the filled values + are returned. + * DataFrame describe on an empty categorical / object column will return top and freq + When calling DataFrame.describe with an empty categorical / object + column, the 'top' and 'freq' columns were previously omitted, which was inconsistent with + the output for non-empty columns. Now the 'top' and 'freq' columns will always be included, + with numpy.nan in the case of an empty DataFrame + * __str__ methods now call __repr__ rather than vice versa + Pandas has until now mostly defined string representations in a Pandas objects's + __str__/__unicode__/__bytes__ methods, and called __str__ from the __repr__ + method, if a specific __repr__ method is not found. This is not needed for Python3. + In Pandas 0.25, the string representations of Pandas objects are now generally + defined in __repr__, and calls to __str__ in general now pass the call on to + the __repr__, if a specific __str__ method doesn't exist, as is standard for Python. + This change is backward compatible for direct usage of Pandas, but if you subclass + Pandas objects *and* give your subclasses specific __str__/__repr__ methods, + you may have to adjust your __str__/__repr__ methods . + * Indexing an IntervalIndex with Interval objects + Indexing methods for IntervalIndex have been modified to require exact matches only for Interval queries. + IntervalIndex methods previously matched on any overlapping Interval. Behavior with scalar points, e.g. querying + with an integer, is unchanged . + * Binary ufuncs on Series now align + Applying a binary ufunc like numpy.power now aligns the inputs + when both are Series . + * Categorical.argsort now places missing values at the end + Categorical.argsort now places missing values at the end of the array, making it + consistent with NumPy and the rest of pandas . + * Column order is preserved when passing a list of dicts to DataFrame + Starting with Python 3.7 the key-order of dict is guaranteed <https://mail.python.org/pipermail/python-dev/2017-December/151283.html>_. In practice, this has been true since + Python 3.6. The DataFrame constructor now treats a list of dicts in the same way as + it does a list of OrderedDict, i.e. preserving the order of the dicts. + This change applies only when pandas is running on Python>=3.6 . + * Increased minimum versions for dependencies + * DatetimeTZDtype will now standardize pytz timezones to a common timezone instance + * Timestamp and Timedelta scalars now implement the to_numpy method as aliases to Timestamp.to_datetime64 and Timedelta.to_timedelta64, respectively. + * Timestamp.strptime will now rise a NotImplementedError + * Comparing Timestamp with unsupported objects now returns :pyNotImplemented instead of raising TypeError. This implies that unsupported rich comparisons are delegated to the other object, and are now consistent with Python 3 behavior for datetime objects + * Bug in DatetimeIndex.snap which didn't preserving the name of the input Index + * The arg argument in pandas.core.groupby.DataFrameGroupBy.agg has been renamed to func + * The arg argument in pandas.core.window._Window.aggregate has been renamed to func + * Most Pandas classes had a __bytes__ method, which was used for getting a python2-style bytestring representation of the object. This method has been removed as a part of dropping Python2 + * The .str-accessor has been disabled for 1-level MultiIndex, use MultiIndex.to_flat_index if necessary + * Removed support of gtk package for clipboards + * Using an unsupported version of Beautiful Soup 4 will now raise an ImportError instead of a ValueError + * Series.to_excel and DataFrame.to_excel will now raise a ValueError when saving timezone aware data. + * ExtensionArray.argsort places NA values at the end of the sorted array. + * DataFrame.to_hdf and Series.to_hdf will now raise a NotImplementedError when saving a MultiIndex with extention data types for a fixed format. + * Passing duplicate names in read_csv will now raise a ValueError + + Deprecations + * Sparse subclasses + The SparseSeries and SparseDataFrame subclasses are deprecated. Their functionality is better-provided + by a Series or DataFrame with sparse values. + * msgpack format + The msgpack format is deprecated as of 0.25 and will be removed in a future version. It is recommended to use pyarrow for on-the-wire transmission of pandas objects. + * The deprecated .ix[] indexer now raises a more visible FutureWarning instead of DeprecationWarning . + * Deprecated the units=M (months) and units=Y (year) parameters for units of pandas.to_timedelta, pandas.Timedelta and pandas.TimedeltaIndex + * pandas.concat has deprecated the join_axes-keyword. Instead, use DataFrame.reindex or DataFrame.reindex_like on the result or on the inputs + * The SparseArray.values attribute is deprecated. You can use np.asarray(...) or + the SparseArray.to_dense method instead . + * The functions pandas.to_datetime and pandas.to_timedelta have deprecated the box keyword. Instead, use to_numpy or Timestamp.to_datetime64 or Timedelta.to_timedelta64. + * The DataFrame.compound and Series.compound methods are deprecated and will be removed in a future version . + * The internal attributes _start, _stop and _step attributes of RangeIndex have been deprecated. + Use the public attributes ~RangeIndex.start, ~RangeIndex.stop and ~RangeIndex.step instead . + * The Series.ftype, Series.ftypes and DataFrame.ftypes methods are deprecated and will be removed in a future version. + Instead, use Series.dtype and DataFrame.dtypes . + * The Series.get_values, DataFrame.get_values, Index.get_values, + SparseArray.get_values and Categorical.get_values methods are deprecated. + One of np.asarray(..) or ~Series.to_numpy can be used instead . + * The 'outer' method on NumPy ufuncs, e.g. np.subtract.outer has been deprecated on Series objects. Convert the input to an array with Series.array first + * Timedelta.resolution is deprecated and replaced with Timedelta.resolution_string. In a future version, Timedelta.resolution will be changed to behave like the standard library datetime.timedelta.resolution + * read_table has been undeprecated. + * Index.dtype_str is deprecated. + * Series.imag and Series.real are deprecated. + * Series.put is deprecated. + * Index.item and Series.item is deprecated. + * The default value ordered=None in ~pandas.api.types.CategoricalDtype has been deprecated in favor of ordered=False. When converting between categorical types ordered=True must be explicitly passed in order to be preserved. + * Index.contains is deprecated. Use key in index (__contains__) instead . + * DataFrame.get_dtype_counts is deprecated. + * Categorical.ravel will return a Categorical instead of a np.ndarray + + Removal of prior version deprecations/changes + * Removed Panel + * Removed the previously deprecated sheetname keyword in read_excel + * Removed the previously deprecated TimeGrouper + * Removed the previously deprecated parse_cols keyword in read_excel + * Removed the previously deprecated pd.options.html.border + * Removed the previously deprecated convert_objects + * Removed the previously deprecated select method of DataFrame and Series + * Removed the previously deprecated behavior of Series treated as list-like in ~Series.cat.rename_categories + * Removed the previously deprecated DataFrame.reindex_axis and Series.reindex_axis + * Removed the previously deprecated behavior of altering column or index labels with Series.rename_axis or DataFrame.rename_axis + * Removed the previously deprecated tupleize_cols keyword argument in read_html, read_csv, and DataFrame.to_csv + * Removed the previously deprecated DataFrame.from.csv and Series.from_csv + * Removed the previously deprecated raise_on_error keyword argument in DataFrame.where and DataFrame.mask + * Removed the previously deprecated ordered and categories keyword arguments in astype + * Removed the previously deprecated cdate_range + * Removed the previously deprecated True option for the dropna keyword argument in SeriesGroupBy.nth + * Removed the previously deprecated convert keyword argument in Series.take and DataFrame.take + + Performance improvements + * Significant speedup in SparseArray initialization that benefits most operations, fixing performance regression introduced in v0.20.0 + * DataFrame.to_stata() is now faster when outputting data with any string or non-native endian columns ++++ 209 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/python-pandas/python-pandas.changes ++++ and /work/SRC/openSUSE:Factory/.python-pandas.new.22127/python-pandas.changes Old: ---- pandas-0.24.2.tar.gz pandas-tests-memory.patch New: ---- pandas-0.25.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pandas.spec ++++++ --- /var/tmp/diff_new_pack.rZc4i4/_old 2019-08-19 20:48:21.553085989 +0200 +++ /var/tmp/diff_new_pack.rZc4i4/_new 2019-08-19 20:48:21.553085989 +0200 @@ -17,84 +17,81 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} -%define oldpython python +%define skip_python2 1 Name: python-pandas -Version: 0.24.2 +Version: 0.25.0 Release: 0 -Summary: Python module for working with "relational" or "labeled" data +Summary: Python data structures for data analysis, time series, and statistics License: BSD-3-Clause Group: Development/Libraries/Python URL: http://pandas.pydata.org/ Source0: https://files.pythonhosted.org/packages/source/p/pandas/pandas-%{version}.tar.gz -Patch0: pandas-tests-memory.patch BuildRequires: %{python_module Cython >= 0.28.2} -BuildRequires: %{python_module SQLAlchemy} -BuildRequires: %{python_module XlsxWriter} -BuildRequires: %{python_module beautifulsoup4 >= 4.2.1} BuildRequires: %{python_module devel} -BuildRequires: %{python_module hypothesis} -BuildRequires: %{python_module lxml} -BuildRequires: %{python_module nose} -BuildRequires: %{python_module numpy-devel >= 1.15.0} -BuildRequires: %{python_module pytest-mock} -BuildRequires: %{python_module pytest} -BuildRequires: %{python_module python-dateutil >= 2.5} -BuildRequires: %{python_module pytz >= 2011k} +BuildRequires: %{python_module numpy-devel >= 1.13.3} BuildRequires: %{python_module setuptools >= 24.2.0} -BuildRequires: %{python_module six} -BuildRequires: %{python_module xlrd} BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: python-rpm-macros +# SECTION test requirements +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 pytest-mock} +BuildRequires: %{python_module pytest >= 4.0.2} +BuildRequires: %{python_module python-dateutil >= 2.6.1} +BuildRequires: %{python_module pytz >= 2015.4} +BuildRequires: %{python_module xlrd >= 1.1.0} +BuildRequires: %{python_module xlwt >= 1.2.0} BuildRequires: xvfb-run +# /SECTION Requires: python-Cython >= 0.28.2 -Requires: python-Tempita -Requires: python-lxml -Requires: python-numpy >= 1.15.0 -Requires: python-python-dateutil >= 2.5 -Requires: python-pytz >= 2011k -Requires: python-six -Recommends: python-Bottleneck +Requires: python-numpy >= 1.13.3 +Requires: python-python-dateutil >= 2.6.1 +Requires: python-pytz >= 2015.4 +Recommends: python-Bottleneck >= 1.2.1 Recommends: python-Jinja2 -Recommends: python-SQLAlchemy >= 0.8.1 -Recommends: python-XlsxWriter -Recommends: python-beautifulsoup4 >= 4.2.1 +Recommends: python-QtPy +Recommends: python-SQLAlchemy >= 1.1.4 +Recommends: python-XlsxWriter >= 0.9.8 +Recommends: python-beautifulsoup4 >= 4.6.0 Recommends: python-blosc -Recommends: python-boto -Recommends: python-google-api-python-client +Recommends: python-fastparquet >= 0.2.1 +Recommends: python-gcsfs >= 0.2.2 Recommends: python-html5lib -Recommends: python-matplotlib -Recommends: python-numexpr >= 2.1 -Recommends: python-oauth2client -Recommends: python-openpyxl >= 2.4 -Recommends: python-pandas-gbq -Recommends: python-python-gflags -Recommends: python-s3fs -Recommends: python-scipy -Recommends: python-tables >= 3.0.0 -Recommends: python-xarray >= 0.7.0 -Recommends: python-xlrd -Recommends: python-xlwt +Recommends: python-lxml >= 3.8.0 +Recommends: python-matplotlib >= 2.2.2 +Recommends: python-numexpr >= 2.6.2 +Recommends: python-openpyxl >= 2.4.8 +Recommends: python-pandas-gbq >= 0.8.0 +Recommends: python-psycopg2 +Recommends: python-pyarrow >= 0.9.0 +Recommends: python-PyMySQL >= 0.7.11 +Recommends: python-pyreadstat +Recommends: python-qt5 +Recommends: python-scipy >= 0.19.0 +Recommends: python-tables >= 3.4.2 +Recommends: python-xarray >= 0.8.2 +Recommends: python-xlrd >= 1.1.0 +Recommends: python-xlwt >= 1.2.0 Recommends: xclip +Recommends: xsel +Recommends: python-zlib Obsoletes: python-pandas-doc < %{version} Provides: python-pandas-doc = %{version} -%ifpython2 -Recommends: python-backports.lzma -Obsoletes: %{oldpython}-pandas-doc < %{version} -Provides: %{oldpython}-pandas-doc = %{version} -%endif %python_subpackages %description -pandas is a Python package providing flexible and expressive data -structures for working with "relational" or "labeled" data. - -Documentation is located at -http://pandas.pydata.org/pandas-docs/stable/ . +Pandas is a Python package providing data structures designed for +working with structured (tabular, multidimensional, potentially +heterogeneous) and time series data. It is a high-level building +block for doing data analysis in Python. %prep %setup -q -n pandas-%{version} -%patch0 -p1 sed -i -e '/^#!\//, 1d' pandas/core/computation/eval.py %build @@ -107,7 +104,13 @@ %check # skip test that tries to compile stuff in buildroot test_oo_optimizable -%python_expand PYTHONPATH=%{buildroot}%{$python_sitearch} xvfb-run py.test-%{$python_version} -v %{buildroot}%{$python_sitearch}/pandas/tests -k 'not test_oo_optimizable' +export PYTHONHASHSEED=$(python -c 'import random; print(random.randint(1, 4294967295))') +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 +%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitearch} +xvfb-run py.test-%{$python_version} -v %{buildroot}%{$python_sitearch}/pandas/tests -k 'not test_oo_optimizable' +} %files %{python_files} %license LICENSE ++++++ pandas-0.24.2.tar.gz -> pandas-0.25.0.tar.gz ++++++ /work/SRC/openSUSE:Factory/python-pandas/pandas-0.24.2.tar.gz /work/SRC/openSUSE:Factory/.python-pandas.new.22127/pandas-0.25.0.tar.gz differ: char 5, line 1
