Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-awkward for openSUSE:Factory checked in at 2023-01-28 18:44:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-awkward (Old) and /work/SRC/openSUSE:Factory/.python-awkward.new.32243 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-awkward" Sat Jan 28 18:44:19 2023 rev:13 rq:1061725 version:2.0.6 Changes: -------- --- /work/SRC/openSUSE:Factory/python-awkward/python-awkward.changes 2022-11-12 17:41:01.054113846 +0100 +++ /work/SRC/openSUSE:Factory/.python-awkward.new.32243/python-awkward.changes 2023-01-28 19:00:24.291749337 +0100 @@ -1,0 +2,173 @@ +Fri Jan 27 21:34:45 UTC 2023 - Ben Greiner <c...@bnavigator.de> + +- Update to 2.0.6 + * feat: expose typetracer in public backend API by @agoose77 in #2066 + * feat: add byteorder argument to to_buffers by @agoose77 in #2095 + * feat: add exception for missing field by @agoose77 in #2120 +- Release 2.0.3 and 2.0.4 + * The flatten_records argument of all reducers (ak.all, ak.any, + ..., ak.var) has effectively been removed: setting it now raises + an error (PR #2020). This argument applies a reducer to all + contents of a record, merging fields, and it had to be removed + to properly implement axis=None. The old default, + flatten_records=False, is now the only behavior, and to get the + equivalent of flatten_records=True, you can use ak.ravel: + ak.sum(array, flatten_records=True) + becomes + ak.sum(ak.ravel(array)) + * Removing the feature is still the right thing to do, but the + function argument needs to go through a deprecation cycle, + since libraries like dask-awkward pass arguments through to + Awkward. Removing flatten_records as an argument introduces an + error, even if the surviving case of flatten_records=False is + desired. +- Release 2.0.2 + * feat: add ak.drop_none() by @ioanaif in #1904 +- Release 2.0.1 + * feat: add ak.without_field by @agoose77 in #1963 +- Release 2.0.0 + * The Awkward Array version 2 project started in June of 2021 and + has been developed alongside version 1 updates. For most of + that time, it was available as a submodule, awkward._v2, so + that it could be tested with the same tests as version 1 and + could be experimented upon by early adopters. + * Despite the long list of PRs, the high-level interface changes + from version 1 to version 2 were kept at a minimum. For the + most part, the Awkward 1.x API is fine, but the internal + implementation needed an overhaul to prevent technical debt. + ## Summary of changes + * Nearly all of the code is written in Python now. Exceptions are + the "kernel" functions, GrowableBuffer, LayoutBuilder, + ArrayBuilder, AwkwardForth, and dynamically generated C++ code + for RDataFrame. + * Maintains performance because any algorithms that scale with + the size of an array are implemented in compiled "kernel" + functions. + * Split into two packages: awkward-cpp for the C++ part + (infrequently updated, binary distribution for most platforms + and Python versions) and awkward, the Python part (frequently + updated). + * Virtual arrays and Partitions (collectively, "lazy arrays") + have been removed in favor of dask-awkward. + * Awkward Arrays can be converted to and from RDataFrame, + generating C++ for ROOT to JIT-compile so that iteration over + Awkward Array input is fast (adapted from the Numba + implementation). + * Auto-differentiation of functions on Awkward Arrays using JAX. + (But not JAX JIT-compilation.) + * Suite of header-only C++ that does not depend on Awkward + Arrays, but can be used to produce them and quickly get them + from C++ to Python. The header-only suite includes + GrowableBuffer and LayoutBuilder. + * New documentation website (https://awkward-array.org/), based + on JupyterBooks, the NumPy/SciPy/Pandas style and organization, + as well as a notebook that can be executed in your web browser. + * More expressive error-messages, highlighting the ak.* function + that was in progress when the error occurred, with its + arguments. (That is, highlighting ak.* functions as the + granularity of feedback to users of Awkward Array, rather than + making you search through the stack trace to the hand-off from + your code to ours.) + * Brackets are always balanced in the console representation of + an array: + + >>> ak.Array([ + ... [{"x": 1.1, "y": [1]}, {"x": 2.2, "y": [1, 2]}], + ... [], + ... [{"x": 3.3, "y": [1, 2, 3]}], + ... ]) + <Array [[{x: 1.1, y: [1]}, {...}], ...] type='3 * var * {x: float64, y: var...'> + + as opposed to + + <Array [[{x: 1.1, y: [1]}, ... y: [1, 2, 3]}]] type='3 * var * {"x": float64, "y...'> + + in version 1. Also, show methods for values + + [[{x: 1.1, y: [1]}, {x: 2.2, y: [1, 2]}], + [], + [{x: 3.3, y: [1, 2, 3]}]] + + and types + + 3 * var * { + x: float64, + y: var * int64 + } + + This extended show output is the default representation in Jupyter. + * Round-trip fidelity in ak.to_arrow/ak.from_arrow: no Awkward + Array metadata is lost. Same for ak.to_parquet/ak.from_parquet, + to the extent that pyarrow can read and write Parquet. + * Parquet column selection using wildcards. + * Data exported with version 1 ak.to_buffers can be imported by + version 2 ak.from_buffers, with custom buffer_keys. + * The majority of version 1 tests have been ported to version 2, + to ensure that the interface and functionality doesn't change, + except where intended (e.g. organizing naming conventions). + * Consistent handling of date-time and time-delta types (matches + NumPy's system). + * Improved ak.to_json/ak.from_json arguments (for converting + non-JSON types NaN, infinity, complex numbers) and using a + known JSONSchema to accelerate ak.from_json. Removed + ambiguities about newline-delimited JSON (requires explicit + argument). + * The world's fastest Avro file reader in Python, + ak.from_avro_file (uses AwkwardForth). + * "nan" versions of NumPy functions, such as np.nansum, + np.nanmean, np.nanstd. + * Renamed ak.to_pandas â ak.to_dataframe, to clarify distinction + from awkward-pandas. + * Organized Type and Form objects better, more consistent. + * Clear specification of NumPy dtypes that can be used in Awkward + Arrays (bool, numbers, including complex, and + date-time/time-delta). + * Organized naming conventions throughout the codebase, such as + keys versus fields versus recordlookup. + * Carefully examined the public API (all modules, functions, + classes, and methods that don't start with an underscore) to be + sure that we can support it going forward. Any removal or + change of an interface will require a minor version number + increase and a deprecation cycle, on the order of months. (New + features and bug-fixes can be immediate, on patch releases.) + * Flags and "configuration" function arguments are now + keyword-only (order independent). + * Started adding Python type hints (nowhere near complete, but + started). + * Removed the Identities from array nodes. They were never fully + implementedâa placeholder for a feature that won't be developed + within Awkward Array (SQL-style JOINs). + * TypeTracerArray does a "dry run" of a calculation to predict + its type at the end. Used to build a computation graph for + dask-awkward. + * Equivalent but ungainly type combinations, such as "option-type + of option-type of X" or "union-type containing union-types," + have been outlawed with tools to squash them into a canonical + layout. Operations on the data now have fewer possibilities to + worry about. + * Simplified the semantics of nbytes. + * Clarified ak.ravel and ak.flatten's treatments of missing data. + * Added missing ArrayBuilder methods in Numba. + * Set up framework for performing ak.* operations in CUDA, using + CuPy JIT-compilation to get the right interface, with error + message passing through asynchronous GPU computations. The CUDA + implementation is not complete, but the groundwork has been + laid. + * Parquet reading/writing uses fsspec for remote connections and + handles the dataset protocol correctly. + * Public interface to our power-tools: ak.transform unifies our + internal recursively_apply and broadcast_and_apply. + * All ak.* functions were rewritten; some were redesigned in a + simpler way using the above-mentioned power tools. There are + likely fewer undiscovered bugs in these functions now. + * Use of records in numerical functions is more restricted, to + prevent misapplication of ufuncs like + and reducers like + np.sum on meaningful records such as Vectors. + * All docstrings updated for version 2, including the code + examples. +- Drop awkward-cmake-build-with-RelWithDebInfo.patch: No longer + compiling here +- Remove the devel package: The header-only files are now provided + by awkward-devel built from python-awkward-cpp + +------------------------------------------------------------------- Old: ---- awkward-1.10.2.tar.gz awkward-cmake-build-with-RelWithDebInfo.patch New: ---- awkward-2.0.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-awkward.spec ++++++ --- /var/tmp/diff_new_pack.1uzeiO/_old 2023-01-28 19:00:24.719751761 +0100 +++ /var/tmp/diff_new_pack.1uzeiO/_new 2023-01-28 19:00:24.723751784 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-awkward # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,39 +16,46 @@ # -%global modname awkward -%global skip_python2 1 +%define awkward_cpp_version 7 Name: python-awkward -Version: 1.10.2 +Version: 2.0.6 Release: 0 Summary: Manipulate arrays of complex data structures as easily as Numpy License: BSD-3-Clause URL: https://awkward-array.org/ -Source: https://files.pythonhosted.org/packages/source/a/awkward/awkward-%{version}.tar.gz -# PATCH-FETAURE-OPENSUSE awkward-cmake-build-with-RelWithDebInfo.patch badshah...@gmail.com -- Set CMAKE_BUILD_TYPE to RelWithDebInfo by default instead of Release -Patch0: awkward-cmake-build-with-RelWithDebInfo.patch -BuildRequires: %{python_module devel} -BuildRequires: %{python_module setuptools} -BuildRequires: cmake +# SourceRepository: https://github.com/scikit-hep/awkward +Source0: https://files.pythonhosted.org/packages/source/a/awkward/awkward-%{version}.tar.gz +BuildRequires: %{python_module base >= 3.7} +BuildRequires: %{python_module hatch-fancy-pypi-readme} +BuildRequires: %{python_module hatchling >= 1.10.0} +BuildRequires: %{python_module pip} BuildRequires: fdupes -BuildRequires: gcc-c++ BuildRequires: python-rpm-macros -Requires: python-numpy >= 1.13.1 +Requires: python-awkward-cpp = %{awkward_cpp_version} +Requires: python-numpy >= 1.14.5 Requires: python-packaging +Requires: (python-importlib-resources if python-base < 3.9) +Requires: (python-typing-extensions >= 4.1.0 if python-base < 3.11) Recommends: python-cupy Recommends: python-numba Recommends: python-pandas # SECTION test requirements BuildRequires: %{python_module PyYAML} -BuildRequires: %{python_module importlib-resources} -BuildRequires: %{python_module numpy >= 1.13.1} +BuildRequires: %{python_module awkward-cpp = %{awkward_cpp_version}} +BuildRequires: %{python_module importlib-resources if %python-base < 3.9} +BuildRequires: %{python_module numba >= 0.50 if %python-base < 3.11} +BuildRequires: %{python_module numexpr} +BuildRequires: %{python_module numpy >= 1.14.5} BuildRequires: %{python_module packaging} BuildRequires: %{python_module pandas} +BuildRequires: %{python_module pytest-xdist} BuildRequires: %{python_module pytest} -%if 0%{?suse_version} >= 1550 -BuildRequires: %{python_module numba >= 0.50} -%endif +BuildRequires: %{python_module typing-extensions >= 4.1.0 if %python-base < 3.11} +# Don't add uproot here: build cycle dependency # /SECTION +BuildArch: noarch +# Test suite fails on numerous tests when trying to convert 64-bit types +ExcludeArch: %{ix86} %{arm32} %python_subpackages %description @@ -60,57 +67,27 @@ Their behavior coincides with NumPy when array dimensions are regular and generalizes when they're not. -%package -n awkward-devel -Summary: Header files for using awkaward in C/C++ code -Requires: python3-awkward = %{version} - -%description -n awkward-devel -Awkward Array is a library for nested, variable-sized data, including -arbitrary-length lists, records, mixed types, and missing data, using -NumPy-like idioms. - -This package provides the header files needed to compile C/C++ codes with -awkward. - %prep -%autosetup -p1 -n awkward-%{version} +%setup -q -n awkward-%{version} %build -%python_build +%pyproject_wheel %install -%python_install - -# Remove static libs -%python_expand find %{buildroot}%{$python_sitearch}/%{modname}/ -name "*.a" -delete -print - -%{python_expand # Create a symlink to shared library in _libdir for the C/C++ devel pkg -if [ "$python_" = "python3_" -o "%{$python_provides}" = "python3" ]; then -ln -s %{$python_sitearch}/libawkward.so %{buildroot}%{_libdir}/ -ln -s %{$python_sitearch}/libawkward-cpu-kernels.so %{buildroot}%{_libdir}/ -fi +%pyproject_install +%{python_expand # remove devel files +rm -r %{buildroot}%{$python_sitelib}/awkward/_connect/header-only +rm -r %{buildroot}%{$python_sitelib}/awkward/_connect/rdataframe/include +%fdupes %{buildroot}%{$python_sitelib} } -# setuptools no longer installs headers, copy them ourselves -# The "build" directory is the result from the primary interpreter -mkdir -p %{buildroot}%{_includedir}/awkward -cp -a build/lib.linux-*/awkward/include %{buildroot}%{_includedir}/awkward - -%python_expand %fdupes %{buildroot}%{$python_sitearch} %check -# test-cuda: we don't have python-cupy yet -%pytest_arch --ignore tests-cuda/ +%pytest -n auto --ignore tests-cuda/ %files %{python_files} %doc README.md %license LICENSE -%{python_sitearch}/*.so -%{python_sitearch}/%{modname}/ -%{python_sitearch}/%{modname}-%{version}*-info/ - -%files -n awkward-devel -%license LICENSE -%{_includedir}/awkward/ -%{_libdir}/*.so +%{python_sitelib}/awkward/ +%{python_sitelib}/awkward-%{version}.dist-info/ %changelog ++++++ awkward-1.10.2.tar.gz -> awkward-2.0.6.tar.gz ++++++ ++++ 576138 lines of diff (skipped)