On 4/6/2014 3:51 AM, Francesc Alted wrote:
===========================
   Announcing Numexpr 2.4 RC1
===========================

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.

It wears multi-threaded capabilities, as well as support for Intel's
MKL (Math Kernel Library), which allows an extremely fast evaluation
of transcendental functions (sin, cos, tan, exp, log...)  while
squeezing the last drop of performance out of your multi-core
processors.  Look here for a some benchmarks of numexpr using MKL:

https://github.com/pydata/numexpr/wiki/NumexprMKL

Its only dependency is NumPy (MKL is optional), so it works well as an
easy-to-deploy, easy-to-use, computational engine for projects that
don't want to adopt other solutions requiring more heavy dependencies.

What's new
==========

A new `contains()` function has been added for detecting substrings in
strings.  Thanks to Marcin Krol.

Also, there is a new version of setup.py that allows better management
of the NumPy dependency during pip installs.  Thanks to Aleks Bunin.

This is the first release candidate before 2.4 final would be out,
so please give it a go and report back any problems you may have.

In case you want to know more in detail what has changed in this
version, see:

https://github.com/pydata/numexpr/wiki/Release-Notes

or have a look at RELEASE_NOTES.txt in the tarball.

Where I can find Numexpr?
=========================

The project is hosted at GitHub in:

https://github.com/pydata/numexpr

You can get the packages from PyPI as well (but not for RC releases):

http://pypi.python.org/pypi/numexpr

Share your experience
=====================

Let us know of any bugs, suggestions, gripes, kudos, etc. you may
have.


Enjoy data!


Hi Francesc,

some minor issues building with msvc/MKL on Windows:

* the `numexpr\win32` folder is missing in the PyPI package numexpr-2.4-rc1.tar.gz * `numexpr\interpreter.cpp` uses POSIX syslog.h, which is not available with msvc9/10 * `numexpr\interpreter.cpp` uses the C99 fminl function, which is not available with msvc9/10

I'll submit a PR later for the latter two.

Some tests fail on Python 3 (attached).

Christoph

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Numexpr version:   2.4-rc1
NumPy version:     1.8.1
Python version:    3.3.5 (v3.3.5:62cf4e77f785, Mar  9 2014, 10:35:05) [MSC 
v.1600 64 bit (AMD64)]
AMD/Intel CPU?     True
VML available?     True
VML/MKL version:   Intel(R) Math Kernel Library Version 11.1.2 Product Build 
20140122 for Intel(R) 64 architecture appli
cations
Number of threads used by default: 8 (out of 8 detected cores)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
........EEEEEEEEE........EEEEEEEEE......................................................................................
<snip>
======================================================================
ERROR: test_str_contains_basic0 (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 735, in 
evaluate
    compiled_ex = _numexpr_cache[numexpr_key]
KeyError: ('contains("abc", "ab")', (('optimization', 'aggressive'), 
('truediv', False)), ())

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 166, 
in test_str_contains_basic0
    res = evaluate('contains("abc", "ab")')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 738, in 
evaluate
    NumExpr(ex, signature, **context)
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 554, in 
NumExpr
    precompile(ex, signature, context)
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 511, in 
precompile
    constants_order, constants = getConstants(ast)
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 294, in 
getConstants
    for a in constants_order]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 294, in 
<listcomp>
    for a in constants_order]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 284, in 
convertConstantToKind
    return kind_to_type[kind](x)
TypeError: string argument without an encoding

======================================================================
ERROR: test_str_contains_basic1 (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 171, 
in test_str_contains_basic1
    res = evaluate('contains(haystack, "ab")')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str96

======================================================================
ERROR: test_str_contains_basic2 (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 176, 
in test_str_contains_basic2
    res = evaluate('contains("abcd", haystack)')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str96

======================================================================
ERROR: test_str_contains_basic3 (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 182, 
in test_str_contains_basic3
    res = evaluate('contains(haystacks, needles)')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str224

======================================================================
ERROR: test_str_contains_basic4 (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 188, 
in test_str_contains_basic4
    res = evaluate('contains("test abc here", needles)')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str160

======================================================================
ERROR: test_str_contains_basic5 (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 193, 
in test_str_contains_basic5
    res = evaluate('contains("test abc here", needles)')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str160

======================================================================
ERROR: test_str_contains_listproduct (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 246, 
in test_str_contains_listproduct
    res = [bool(x) for x in evaluate('contains(b, a)')]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str192

======================================================================
ERROR: test_str_contains_withemptystr1 (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 251, 
in test_str_contains_withemptystr1
    res = evaluate('contains("abcd", withemptystr)')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str96

======================================================================
ERROR: test_str_contains_withemptystr2 (numexpr.tests.test_numexpr.test_numexpr)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 256, 
in test_str_contains_withemptystr2
    res = evaluate('contains(withemptystr, "")')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str96

======================================================================
ERROR: test_str_contains_basic0 (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 735, in 
evaluate
    compiled_ex = _numexpr_cache[numexpr_key]
KeyError: ('contains("abc", "ab")', (('optimization', 'aggressive'), 
('truediv', False)), ())

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 166, 
in test_str_contains_basic0
    res = evaluate('contains("abc", "ab")')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 738, in 
evaluate
    NumExpr(ex, signature, **context)
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 554, in 
NumExpr
    precompile(ex, signature, context)
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 511, in 
precompile
    constants_order, constants = getConstants(ast)
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 294, in 
getConstants
    for a in constants_order]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 294, in 
<listcomp>
    for a in constants_order]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 284, in 
convertConstantToKind
    return kind_to_type[kind](x)
TypeError: string argument without an encoding

======================================================================
ERROR: test_str_contains_basic1 (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 171, 
in test_str_contains_basic1
    res = evaluate('contains(haystack, "ab")')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str96

======================================================================
ERROR: test_str_contains_basic2 (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 176, 
in test_str_contains_basic2
    res = evaluate('contains("abcd", haystack)')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str96

======================================================================
ERROR: test_str_contains_basic3 (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 182, 
in test_str_contains_basic3
    res = evaluate('contains(haystacks, needles)')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str224

======================================================================
ERROR: test_str_contains_basic4 (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 188, 
in test_str_contains_basic4
    res = evaluate('contains("test abc here", needles)')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str160

======================================================================
ERROR: test_str_contains_basic5 (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 193, 
in test_str_contains_basic5
    res = evaluate('contains("test abc here", needles)')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str160

======================================================================
ERROR: test_str_contains_listproduct (numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 246, 
in test_str_contains_listproduct
    res = [bool(x) for x in evaluate('contains(b, a)')]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str192

======================================================================
ERROR: test_str_contains_withemptystr1 
(numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 251, 
in test_str_contains_withemptystr1
    res = evaluate('contains("abcd", withemptystr)')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str96

======================================================================
ERROR: test_str_contains_withemptystr2 
(numexpr.tests.test_numexpr.test_numexpr2)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "X:\Python33\lib\site-packages\numexpr\tests\test_numexpr.py", line 256, 
in test_str_contains_withemptystr2
    res = evaluate('contains(withemptystr, "")')
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
evaluate
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 730, in 
<listcomp>
    signature = [(name, getType(arg)) for (name, arg) in zip(names, arguments)]
  File "X:\Python33\lib\site-packages\numexpr\necompiler.py", line 629, in 
getType
    raise ValueError("unkown type %s" % a.dtype.name)
ValueError: unkown type str96

----------------------------------------------------------------------
Ran 5431 tests in 5.938s

FAILED (errors=18)
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to