diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 02:15:15 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 02:15:15 +0000 |
commit | 618c0c3ccb167cba14fd0538ab93eed549a58ff8 (patch) | |
tree | 46d15780bc337c8a34532d3dd548eb9127ae9282 | |
parent | 4a6ff3916b60a03ba5e025b85aa6ba9c9e110095 (diff) |
automatic import of python-awkward1
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-awkward1.spec | 436 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 438 insertions, 0 deletions
@@ -0,0 +1 @@ +/awkward1-1.0.0.tar.gz diff --git a/python-awkward1.spec b/python-awkward1.spec new file mode 100644 index 0000000..820193d --- /dev/null +++ b/python-awkward1.spec @@ -0,0 +1,436 @@ +%global _empty_manifest_terminate_build 0 +Name: python-awkward1 +Version: 1.0.0 +Release: 1 +Summary: Manipulate JSON-like data with NumPy-like idioms. +License: BSD 3-clause +URL: https://github.com/scikit-hep/awkward-1.0 +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/05/e1/de4607482cd18eb43bfb4c7381571ad0928f7ebf0ed5815f93b21cc5e46a/awkward1-1.0.0.tar.gz +BuildArch: noarch + +Requires: python3-awkward + +%description +<a href="https://github.com/scikit-hep/awkward-1.0#readme"><img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/logo/logo-300px.png"></a> + +Awkward Array is a library for **nested, variable-sized data**, including arbitrary-length lists, records, mixed types, and missing data, using **NumPy-like idioms**. + +Arrays are **dynamically typed**, but operations on them are **compiled and fast**. Their behavior coincides with NumPy when array dimensions are regular and generalizes when they're not. + +# Motivating example + +Given an array of objects with `x`, `y` fields and variable-length nested lists like + +```python +array = ak.Array([ + [{"x": 1.1, "y": [1]}, {"x": 2.2, "y": [1, 2]}, {"x": 3.3, "y": [1, 2, 3]}], + [], + [{"x": 4.4, "y": {1, 2, 3, 4]}, {"x": 5.5, "y": [1, 2, 3, 4, 5]}] +]) +``` + +the following slices out the `y` values, drops the first element from each inner list, and runs NumPy's `np.square` function on everything that is left: + +```python +output = np.square(array["y", ..., 1:]) +``` + +The result is + +```python +[ + [[], [4], [4, 9]], + [], + [[4, 9, 16], [4, 9, 16, 25]] +] +``` + +The equivalent using only Python is + +```python +output = [] +for sublist in array: + tmp1 = [] + for record in sublist: + tmp2 = [] + for number in record["y"][1:]: + tmp2.append(np.square(number)) + tmp1.append(tmp2) + output.append(tmp1) +``` + +Not only is the expression using Awkward Arrays more concise, using idioms familiar from NumPy, but it's much faster and uses less memory. + +For a similar problem 10 million times larger than the one above (on a single-threaded 2.2 GHz processor), + + * the Awkward Array one-liner takes **4.6 seconds** to run and uses **2.1 GB** of memory, + * the equivalent using Python lists and dicts takes **138 seconds** to run and uses **22 GB** of memory. + +Speed and memory factors in the double digits are common because we're replacing Python's dynamically typed, pointer-chasing virtual machine with type-specialized, precompiled routines on contiguous data. (In other words, for the same reasons as NumPy.) Even higher speedups are possible when Awkward Array is paired with [Numba](https://numba.pydata.org/). + +Our [presentation at SciPy 2020](https://youtu.be/WlnUF3LRBj4) provides a good introduction, showing how to use these arrays in a real analysis. + +# Installation + +Awkward Array can be installed [from PyPI](https://pypi.org/project/awkward) using pip: + +```bash +pip install awkward +``` + +You will likely get a precompiled binary (wheel), depending on your operating system and Python version. If not, pip attempts to compile from source (which requires a C++ compiler, make, and CMake). + +Awkward Array is also available using [conda](https://anaconda.org/conda-forge/awkward), which always installs a binary: +```bash +conda install -c conda-forge awkward +``` + +If you have already added `conda-forge` as a channel, the `-c conda-forge` is unnecessary. Adding the channel is recommended because it ensures that all of your packages use compatible versions: + +```bash +conda config --add channels conda-forge +conda update --all +``` + +## Getting help + +<table> + <tr> + <td width="66%" valign="top"> + <a href="https://awkward-array.org"> + <img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/panel-tutorials.png" width="570"> + </a> + <p align="center"><b> + <a href="https://awkward-array.org"> + How-to tutorials + </a> + </b></p> + </td> + <td width="33%" valign="top"> + <a href="https://awkward-array.readthedocs.io/en/latest/index.html"> + <img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/panel-sphinx.png" width="268"> + </a> + <p align="center"><b> + <a href="https://awkward-array.readthedocs.io/en/latest/index.html"> + Python API reference + </a> + </b></p> + <a href="https://awkward-array.readthedocs.io/en/latest/_static/index.html"> + <img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/panel-doxygen.png" width="268"> + </a> + <p align="center"><b> + <a href="https://awkward-array.readthedocs.io/en/latest/_static/index.html"> + C++ API reference + </a> + </b></p> + </td> + </tr> +</table> + + * Report bugs, request features, and ask for additional documentation on [GitHub Issues](https://github.com/scikit-hep/awkward-1.0/issues). + * If you have a "How do I...?" question, ask about it on [StackOverflow with the [awkward-array] tag](https://stackoverflow.com/questions/tagged/awkward-array). Be sure to include tags for any other libraries that you use, such as Pandas or PyTorch. + * To ask questions in real time, try the Gitter [Scikit-HEP/awkward-array](https://gitter.im/Scikit-HEP/awkward-array) chat room. + + + + +%package -n python3-awkward1 +Summary: Manipulate JSON-like data with NumPy-like idioms. +Provides: python-awkward1 +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-awkward1 +<a href="https://github.com/scikit-hep/awkward-1.0#readme"><img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/logo/logo-300px.png"></a> + +Awkward Array is a library for **nested, variable-sized data**, including arbitrary-length lists, records, mixed types, and missing data, using **NumPy-like idioms**. + +Arrays are **dynamically typed**, but operations on them are **compiled and fast**. Their behavior coincides with NumPy when array dimensions are regular and generalizes when they're not. + +# Motivating example + +Given an array of objects with `x`, `y` fields and variable-length nested lists like + +```python +array = ak.Array([ + [{"x": 1.1, "y": [1]}, {"x": 2.2, "y": [1, 2]}, {"x": 3.3, "y": [1, 2, 3]}], + [], + [{"x": 4.4, "y": {1, 2, 3, 4]}, {"x": 5.5, "y": [1, 2, 3, 4, 5]}] +]) +``` + +the following slices out the `y` values, drops the first element from each inner list, and runs NumPy's `np.square` function on everything that is left: + +```python +output = np.square(array["y", ..., 1:]) +``` + +The result is + +```python +[ + [[], [4], [4, 9]], + [], + [[4, 9, 16], [4, 9, 16, 25]] +] +``` + +The equivalent using only Python is + +```python +output = [] +for sublist in array: + tmp1 = [] + for record in sublist: + tmp2 = [] + for number in record["y"][1:]: + tmp2.append(np.square(number)) + tmp1.append(tmp2) + output.append(tmp1) +``` + +Not only is the expression using Awkward Arrays more concise, using idioms familiar from NumPy, but it's much faster and uses less memory. + +For a similar problem 10 million times larger than the one above (on a single-threaded 2.2 GHz processor), + + * the Awkward Array one-liner takes **4.6 seconds** to run and uses **2.1 GB** of memory, + * the equivalent using Python lists and dicts takes **138 seconds** to run and uses **22 GB** of memory. + +Speed and memory factors in the double digits are common because we're replacing Python's dynamically typed, pointer-chasing virtual machine with type-specialized, precompiled routines on contiguous data. (In other words, for the same reasons as NumPy.) Even higher speedups are possible when Awkward Array is paired with [Numba](https://numba.pydata.org/). + +Our [presentation at SciPy 2020](https://youtu.be/WlnUF3LRBj4) provides a good introduction, showing how to use these arrays in a real analysis. + +# Installation + +Awkward Array can be installed [from PyPI](https://pypi.org/project/awkward) using pip: + +```bash +pip install awkward +``` + +You will likely get a precompiled binary (wheel), depending on your operating system and Python version. If not, pip attempts to compile from source (which requires a C++ compiler, make, and CMake). + +Awkward Array is also available using [conda](https://anaconda.org/conda-forge/awkward), which always installs a binary: +```bash +conda install -c conda-forge awkward +``` + +If you have already added `conda-forge` as a channel, the `-c conda-forge` is unnecessary. Adding the channel is recommended because it ensures that all of your packages use compatible versions: + +```bash +conda config --add channels conda-forge +conda update --all +``` + +## Getting help + +<table> + <tr> + <td width="66%" valign="top"> + <a href="https://awkward-array.org"> + <img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/panel-tutorials.png" width="570"> + </a> + <p align="center"><b> + <a href="https://awkward-array.org"> + How-to tutorials + </a> + </b></p> + </td> + <td width="33%" valign="top"> + <a href="https://awkward-array.readthedocs.io/en/latest/index.html"> + <img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/panel-sphinx.png" width="268"> + </a> + <p align="center"><b> + <a href="https://awkward-array.readthedocs.io/en/latest/index.html"> + Python API reference + </a> + </b></p> + <a href="https://awkward-array.readthedocs.io/en/latest/_static/index.html"> + <img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/panel-doxygen.png" width="268"> + </a> + <p align="center"><b> + <a href="https://awkward-array.readthedocs.io/en/latest/_static/index.html"> + C++ API reference + </a> + </b></p> + </td> + </tr> +</table> + + * Report bugs, request features, and ask for additional documentation on [GitHub Issues](https://github.com/scikit-hep/awkward-1.0/issues). + * If you have a "How do I...?" question, ask about it on [StackOverflow with the [awkward-array] tag](https://stackoverflow.com/questions/tagged/awkward-array). Be sure to include tags for any other libraries that you use, such as Pandas or PyTorch. + * To ask questions in real time, try the Gitter [Scikit-HEP/awkward-array](https://gitter.im/Scikit-HEP/awkward-array) chat room. + + + + +%package help +Summary: Development documents and examples for awkward1 +Provides: python3-awkward1-doc +%description help +<a href="https://github.com/scikit-hep/awkward-1.0#readme"><img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/logo/logo-300px.png"></a> + +Awkward Array is a library for **nested, variable-sized data**, including arbitrary-length lists, records, mixed types, and missing data, using **NumPy-like idioms**. + +Arrays are **dynamically typed**, but operations on them are **compiled and fast**. Their behavior coincides with NumPy when array dimensions are regular and generalizes when they're not. + +# Motivating example + +Given an array of objects with `x`, `y` fields and variable-length nested lists like + +```python +array = ak.Array([ + [{"x": 1.1, "y": [1]}, {"x": 2.2, "y": [1, 2]}, {"x": 3.3, "y": [1, 2, 3]}], + [], + [{"x": 4.4, "y": {1, 2, 3, 4]}, {"x": 5.5, "y": [1, 2, 3, 4, 5]}] +]) +``` + +the following slices out the `y` values, drops the first element from each inner list, and runs NumPy's `np.square` function on everything that is left: + +```python +output = np.square(array["y", ..., 1:]) +``` + +The result is + +```python +[ + [[], [4], [4, 9]], + [], + [[4, 9, 16], [4, 9, 16, 25]] +] +``` + +The equivalent using only Python is + +```python +output = [] +for sublist in array: + tmp1 = [] + for record in sublist: + tmp2 = [] + for number in record["y"][1:]: + tmp2.append(np.square(number)) + tmp1.append(tmp2) + output.append(tmp1) +``` + +Not only is the expression using Awkward Arrays more concise, using idioms familiar from NumPy, but it's much faster and uses less memory. + +For a similar problem 10 million times larger than the one above (on a single-threaded 2.2 GHz processor), + + * the Awkward Array one-liner takes **4.6 seconds** to run and uses **2.1 GB** of memory, + * the equivalent using Python lists and dicts takes **138 seconds** to run and uses **22 GB** of memory. + +Speed and memory factors in the double digits are common because we're replacing Python's dynamically typed, pointer-chasing virtual machine with type-specialized, precompiled routines on contiguous data. (In other words, for the same reasons as NumPy.) Even higher speedups are possible when Awkward Array is paired with [Numba](https://numba.pydata.org/). + +Our [presentation at SciPy 2020](https://youtu.be/WlnUF3LRBj4) provides a good introduction, showing how to use these arrays in a real analysis. + +# Installation + +Awkward Array can be installed [from PyPI](https://pypi.org/project/awkward) using pip: + +```bash +pip install awkward +``` + +You will likely get a precompiled binary (wheel), depending on your operating system and Python version. If not, pip attempts to compile from source (which requires a C++ compiler, make, and CMake). + +Awkward Array is also available using [conda](https://anaconda.org/conda-forge/awkward), which always installs a binary: +```bash +conda install -c conda-forge awkward +``` + +If you have already added `conda-forge` as a channel, the `-c conda-forge` is unnecessary. Adding the channel is recommended because it ensures that all of your packages use compatible versions: + +```bash +conda config --add channels conda-forge +conda update --all +``` + +## Getting help + +<table> + <tr> + <td width="66%" valign="top"> + <a href="https://awkward-array.org"> + <img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/panel-tutorials.png" width="570"> + </a> + <p align="center"><b> + <a href="https://awkward-array.org"> + How-to tutorials + </a> + </b></p> + </td> + <td width="33%" valign="top"> + <a href="https://awkward-array.readthedocs.io/en/latest/index.html"> + <img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/panel-sphinx.png" width="268"> + </a> + <p align="center"><b> + <a href="https://awkward-array.readthedocs.io/en/latest/index.html"> + Python API reference + </a> + </b></p> + <a href="https://awkward-array.readthedocs.io/en/latest/_static/index.html"> + <img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/panel-doxygen.png" width="268"> + </a> + <p align="center"><b> + <a href="https://awkward-array.readthedocs.io/en/latest/_static/index.html"> + C++ API reference + </a> + </b></p> + </td> + </tr> +</table> + + * Report bugs, request features, and ask for additional documentation on [GitHub Issues](https://github.com/scikit-hep/awkward-1.0/issues). + * If you have a "How do I...?" question, ask about it on [StackOverflow with the [awkward-array] tag](https://stackoverflow.com/questions/tagged/awkward-array). Be sure to include tags for any other libraries that you use, such as Pandas or PyTorch. + * To ask questions in real time, try the Gitter [Scikit-HEP/awkward-array](https://gitter.im/Scikit-HEP/awkward-array) chat room. + + + + +%prep +%autosetup -n awkward1-1.0.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-awkward1 -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.0-1 +- Package Spec generated @@ -0,0 +1 @@ +f44c6acb4c165d5f468a4322882f2acc awkward1-1.0.0.tar.gz |