Accepting request 241241 from devel:languages:python

I intend to submit python-pandas to openSUSE:Factory.  python-pandas is a tool that makes it easy to do complex data import, export, and manipulation.  It has become one of the critical tools for data analysis in python, like python-numpy, python-scipy, python-matplotlib, and IPython (all of which are in openSUSE:Factory).

This is a dependency of python-pandas.

This package is also useful on its own for greatly increasing the speed of python-numpy operations.  (I know I said the same thing about python-Bottleneck, both accelerate different types of numpy operations in different ways, that is why they are both used here).

OBS-URL: https://build.opensuse.org/request/show/241241
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-numexpr?expand=0&rev=1
This commit is contained in:
Stephan Kulow 2014-07-17 15:31:35 +00:00 committed by Git OBS Bridge
commit ee0eb1187e
5 changed files with 243 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

3
numexpr-2.4.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1b63a5ce11c10d36433e2a74e2e4c360a4e004618507778881659e80a912fc58
size 84770

153
python-numexpr.changes Normal file
View File

@ -0,0 +1,153 @@
-------------------------------------------------------------------
Thu May 8 10:51:51 UTC 2014 - toddrme2178@gmail.com
- Update to 2.4
* A new `contains()` function has been added for detecting substrings
in strings. Only plain strings (bytes) are supported for now. See
PR #135 and ticket #142. Thanks to Marcin Krol.
* New version of setup.py that allows better management of NumPy
dependency. See PR #133. Thanks to Aleks Bunin.
-------------------------------------------------------------------
Wed Mar 12 13:24:36 UTC 2014 - toddrme2178@gmail.com
- update to 2.3.1
* Added support for shift-left (<<) and shift-right (>>) binary operators.
See PR #131. Thanks to fish2000!
* Removed the rpath flag for the GCC linker, because it is probably
not necessary and it chokes to clang.
- update to 2.3
* Site has been migrated to https://github.com/pydata/numexpr. All
new tickets and PR should be directed there.
* [ENH] A `conj()` function for computing the conjugate of complex
arrays has been added. Thanks to David Menéndez. See PR #125.
* [FIX] Fixed a DeprecationWarning derived of using oa_ndim == 0 and
op_axes == NULL when using NpyIter_AdvancedNew() and NumPy 1.8.
Thanks to Mark Wiebe for advise on how to fix this properly.
-------------------------------------------------------------------
Tue Oct 22 13:32:08 UTC 2013 - toddrme2178@gmail.com
- update to 2.2.2
* The `copy_args` argument of `NumExpr` function has been brought
back. This has been mainly necessary for compatibility with
PyTables < 3.0, which I decided to continue to support. Fixed #115.
* The `__nonzero__` method in `ExpressionNode` class has been
commented out. This is also for compatibility with PyTables < 3.0.
See #24 for details.
* Fixed the type of some parameters in the C extension so that s390
architecture compiles. Fixes #116. Thank to Antonio Valentino for
reporting and the patch.
- update to 2.2.1
* Fixes a secondary effect of "from numpy.testing import `*`", where
division is imported now too, so only then necessary functions from
there are imported now. Thanks to Christoph Gohlke for the patch.
- update to 2.2
* [LICENSE] Fixed a problem with the license of the
numexpr/win32/pthread.{c,h} files emulating pthreads on Windows
platforms. After persmission from the original authors is granted,
these files adopt the MIT license and can be redistributed without
problems. See issue #109 for details
(https://code.google.com/p/numexpr/issues/detail?id=110).
* [ENH] Improved the algorithm to decide the initial number of threads
to be used. This was necessary because by default, numexpr was
using a number of threads equal to the detected number of cores, and
this can be just too much for moder systems where this number can be
too high (and counterporductive for performance in many cases).
Now, the 'NUMEXPR_NUM_THREADS' environment variable is honored, and
in case this is not present, a maximum number of *8* threads are
setup initially. The new algorithm is fully described in the Users
Guide now in the note of 'General routines' section:
https://code.google.com/p/numexpr/wiki/UsersGuide#General_routines.
Closes #110.
* [ENH] numexpr.test() returns `TestResult` instead of None now.
Closes #111.
* [FIX] Modulus with zero with integers no longer crashes the
interpreter. It nows puts a zero in the result. Fixes #107.
* [API CLEAN] Removed `copy_args` argument of `evaluate`. This should
only be used by old versions of PyTables (< 3.0).
* [DOC] Documented the `optimization` and `truediv` flags of
`evaluate` in Users Guide
(https://code.google.com/p/numexpr/wiki/UsersGuide).
-------------------------------------------------------------------
Mon May 6 06:22:06 UTC 2013 - highwaystar.ru@gmail.com
- python3 package added
- update to 2.1
* New compatibility with Python 3:
* switch from PyString to PyBytes API (requires Python >= 2.6).
* fixed incompatibilities regarding the int/long API
* use the Py_TYPE macro
* use the PyVarObject_HEAD_INIT macro instead of PyObject_HEAD_INIT
* Dropped compatibility with Python < 2.6.
* Fixed several issues with different platforms not supporting
multithreading or subprocess properly (see tickets #75 and #77).
* Now, when trying to use pure Python boolean operators, 'and',
'or' and 'not, an error is issued and suggesting that '&', '|'
and '~' should be used instead (fixes #24).
-------------------------------------------------------------------
Tue Aug 14 10:24:42 UTC 2012 - scorot@free.fr
- fix requiements for SLE 11
-------------------------------------------------------------------
Tue Jul 31 13:42:58 UTC 2012 - toddrme2178@gmail.com
- Update to 2.0.1
*Added compatibility with Python 2.5 (2.4 is definitely not supported
anymore).
*`numexpr.evaluate` is fully documented now, in particular the new
`out`, `order` and `casting` parameters.
*Reduction operations are fully documented now.
*Negative axis in reductions are not supported (they have never been
actually), and a `ValueError` will be raised if they are used.
- Update to 2.0
- Added support for the new iterator object in NumPy 1.6 and later.
This allows for better performance with operations that implies
broadcast operations, fortran-ordered or non-native byte orderings.
Performance for other scenarios is preserved (except for very small
arrays).
- Division in numexpr is consistent now with Python/NumPy. Fixes #22
and #58.
- Constants like "2." or "2.0" must be evaluated as float, not
integer. Fixes #59.
- `evaluate()` function has received a new parameter `out` for storing
the result in already allocated arrays. This is very useful when
dealing with large arrays, and a allocating new space for keeping
the result is not acceptable. Closes #56.
- Maximum number of threads raised from 256 to 4096. Machines with a
higher number of cores will still be able to import numexpr, but
limited to 4096 (which is an absurdly high number already).
- Update to 1.4.2
- Multithreaded operation is disabled for small arrays (< 32 KB).
This allows to remove the overhead of multithreading for such a
small arrays. Closes #36.
- Dividing int arrays by zero gives a 0 as result now (and not a
floating point exception anymore. This behaviour mimics NumPy.
Thanks to Gaëtan de Menten for the fix. Closes #37.
- When compiled with VML support, the number of threads is set to 1
for VML core, and to the number of cores for the native pthreads
implementation. This leads to much better performance. Closes #39.
- Fixed different issues with reduction operations (`sum`, `prod`).
The problem is that the threaded code does not work well for
broadcasting or reduction operations. Now, the serial code is used
in those cases. Closes #41.
- Optimization of "compilation phase" through a better hash. This can
lead up to a 25% of improvement when operating with variable
expressions over small arrays. Thanks to Gaëtan de Menten for the
patch. Closes #43.
- The ``set_num_threads`` now returns the number of previous thread
setting, as stated in the docstrings.
-------------------------------------------------------------------
Fri Jul 1 08:16:08 UTC 2011 - saschpe@suse.de
- Require python-numpy
-------------------------------------------------------------------
Fri Jul 1 07:22:37 UTC 2011 - saschpe@suse.de
- Initial version

63
python-numexpr.spec Normal file
View File

@ -0,0 +1,63 @@
#
# spec file for package python-numexpr
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define modname numexpr
Name: python-%{modname}
Version: 2.4
Release: 0
Url: https://github.com/pydata/numexpr/
Summary: Fast numerical expression evaluator for NumPy
License: MIT
Group: Development/Languages/Python
Source: http://pypi.python.org/packages/source/n/numexpr/%{modname}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: gcc-c++
BuildRequires: python-devel >= 2.5
BuildRequires: python-numpy-devel >= 1.6
Requires: python-numpy >= 1.6
%if 0%{?suse_version} <= 1110
%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
%else
Requires: python(abi) >= %{py_ver}
%endif
%description
Numexpr is a fast numerical expression evaluator for NumPy. With it,
expressions that operate on arrays (like "3*a+4*b") are accelerated
and use less memory than doing the same calculation in Python.
%prep
%setup -q -n %{modname}-%{version}
%build
CFLAGS="%{optflags} -fno-strict-aliasing" python setup.py build
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
chmod a+x %{buildroot}%{python_sitearch}/%{modname}/cpuinfo.py
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%doc ANNOUNCE.rst AUTHORS.txt LICENSE.txt README.rst RELEASE_NOTES.rst site.cfg.example
%{python_sitearch}/%{modname}/
%{python_sitearch}/%{modname}-%{version}-py%{py_ver}.egg-info
%changelog