Hello community, here is the log from the commit of package python3-numexpr for openSUSE:Factory checked in at 2017-02-08 11:03:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python3-numexpr (Old) and /work/SRC/openSUSE:Factory/.python3-numexpr.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python3-numexpr" Changes: -------- --- /work/SRC/openSUSE:Factory/python3-numexpr/python3-numexpr.changes 2016-07-21 08:09:53.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python3-numexpr.new/python3-numexpr.changes 2017-02-08 11:03:48.603912503 +0100 @@ -1,0 +2,22 @@ +Fri Feb 3 03:26:57 UTC 2017 - a...@gmx.de + +- specfile: + * update copyright year + +- update to version 2.6.2: + * Updates to keep with API changes in newer NumPy versions + (#228). Thanks to Oleksandr Pavlyk. + * Removed several warnings (#226 and #227). Thanks to Oleksander + Pavlyk. + * Fix bugs in function stringcontains() (#230). Thanks to Alexander + Shadchin. + * Detection of the POWER processor (#232). Thanks to Breno Leitao. + * Fix pow result casting (#235). Thanks to Fernando Seiti Furusato. + * Fix integers to negative integer powers (#240). Thanks to Antonio + Valentino. + * Detect numpy exceptions in expression evaluation (#240). Thanks to + Antonio Valentino. + * Better handling of RC versions (#243). Thanks to Antonio + Valentino. + +------------------------------------------------------------------- Old: ---- numexpr-2.6.1.tar.gz New: ---- numexpr-2.6.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-numexpr.spec ++++++ --- /var/tmp/diff_new_pack.56gbW0/_old 2017-02-08 11:03:49.111841691 +0100 +++ /var/tmp/diff_new_pack.56gbW0/_new 2017-02-08 11:03:49.115841133 +0100 @@ -1,7 +1,7 @@ # # spec file for package python3-numexpr # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: python3-numexpr -Version: 2.6.1 +Version: 2.6.2 Release: 0 Url: https://github.com/pydata/numexpr Summary: Fast numerical expression evaluator for NumPy ++++++ numexpr-2.6.1.tar.gz -> numexpr-2.6.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/ANNOUNCE.rst new/numexpr-2.6.2/ANNOUNCE.rst --- old/numexpr-2.6.1/ANNOUNCE.rst 2016-07-17 11:46:18.000000000 +0200 +++ new/numexpr-2.6.2/ANNOUNCE.rst 2017-01-29 12:41:43.000000000 +0100 @@ -1,16 +1,15 @@ ========================= - Announcing Numexpr 2.6.1 + Announcing Numexpr 2.6.2 ========================= What's new ========== -This is a manintenance release that fixes a performance regression in -some situations. More specifically, the BLOCK_SIZE1 constant has been -set to 1024 (down from 8192). This allows for better cache utilization -when there are many operands. Fixes #221. - -Also, support for NetBSD has been added. Thanks to Thomas Klausner. +This is a maintenance release that fixes several issues, with special +emphasis in keeping compatibility with newer NumPy versions. Also, +initial support for POWER processors is here. Thanks to Oleksandr +Pavlyk, Alexander Shadchin, Breno Leitao, Fernando Seiti Furusato and +Antonio Valentino. In case you want to know more in detail what has changed in this version, see: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/PKG-INFO new/numexpr-2.6.2/PKG-INFO --- old/numexpr-2.6.1/PKG-INFO 2016-07-17 11:51:33.000000000 +0200 +++ new/numexpr-2.6.2/PKG-INFO 2017-01-29 14:03:20.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: numexpr -Version: 2.6.1 +Version: 2.6.2 Summary: Fast numerical expression evaluator for NumPy Home-page: https://github.com/pydata/numexpr Author: David M. Cooke, Francesc Alted and others diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/RELEASE_NOTES.rst new/numexpr-2.6.2/RELEASE_NOTES.rst --- old/numexpr-2.6.1/RELEASE_NOTES.rst 2016-07-15 19:25:19.000000000 +0200 +++ new/numexpr-2.6.2/RELEASE_NOTES.rst 2017-01-29 12:40:35.000000000 +0100 @@ -2,6 +2,27 @@ Release notes for Numexpr 2.6 series ====================================== +Changes from 2.6.1 to 2.6.2 +=========================== + +- Updates to keep with API changes in newer NumPy versions (#228). + Thanks to Oleksandr Pavlyk. + +- Removed several warnings (#226 and #227). Thanks to Oleksander Pavlyk. + +- Fix bugs in function `stringcontains()` (#230). Thanks to Alexander Shadchin. + +- Detection of the POWER processor (#232). Thanks to Breno Leitao. + +- Fix pow result casting (#235). Thanks to Fernando Seiti Furusato. + +- Fix integers to negative integer powers (#240). Thanks to Antonio Valentino. + +- Detect numpy exceptions in expression evaluation (#240). Thanks to Antonio Valentino. + +- Better handling of RC versions (#243). Thanks to Antonio Valentino. + + Changes from 2.6.0 to 2.6.1 =========================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr/cpuinfo.py new/numexpr-2.6.2/numexpr/cpuinfo.py --- old/numexpr-2.6.1/numexpr/cpuinfo.py 2016-07-15 19:25:19.000000000 +0200 +++ new/numexpr-2.6.2/numexpr/cpuinfo.py 2017-01-28 13:26:11.000000000 +0100 @@ -276,6 +276,27 @@ _is_Xeon = _is_XEON + # Power + def _is_Power(self): + return re.match(r'.*POWER.*', + self.info[0]['cpu']) is not None + + def _is_Power7(self): + return re.match(r'.*POWER7.*', + self.info[0]['cpu']) is not None + + def _is_Power8(self): + return re.match(r'.*POWER8.*', + self.info[0]['cpu']) is not None + + def _is_Power9(self): + return re.match(r'.*POWER9.*', + self.info[0]['cpu']) is not None + + def _has_Altivec(self): + return re.match(r'.*altivec\ supported.*', + self.info[0]['cpu']) is not None + # Varia def _is_singleCPU(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr/expressions.py new/numexpr-2.6.2/numexpr/expressions.py --- old/numexpr-2.6.1/numexpr/expressions.py 2016-05-01 14:13:01.000000000 +0200 +++ new/numexpr-2.6.2/numexpr/expressions.py 2017-01-29 11:59:09.000000000 +0100 @@ -15,6 +15,8 @@ import threading import numpy +from pkg_resources import parse_version +_np_version = parse_version(numpy.__version__) # Declare a double type that does not exist in Python space double = numpy.double @@ -32,7 +34,7 @@ double: 'double', complex: 'complex', bytes: 'bytes'} kind_to_type = {'bool': bool, 'int': int_, 'long': long_, 'float': float, 'double': double, 'complex': complex, 'bytes': bytes} -kind_rank = ['bool', 'int', 'long', 'float', 'double', 'complex', 'none'] +kind_rank = ('bool', 'int', 'long', 'float', 'double', 'complex', 'none') scalar_constant_types = [bool, int_, long, float, double, complex, bytes] # Final corrections for Python 3 (mainly for PyTables needs) @@ -160,7 +162,7 @@ for converter in float, complex: try: y = converter(x) - except StandardError, err: + except StandardError as err: continue if y == x: return converter @@ -280,6 +282,14 @@ @ophelper def pow_op(a, b): + if (_np_version >= parse_version('1.12.0b1') and + b.astKind in ('int', 'long') and + a.astKind in ('int', 'long') and + numpy.any(b.value < 0)): + + raise ValueError( + 'Integers to negative integer powers are not allowed.') + if allConstantNodes([a, b]): return ConstantNode(a ** b) if isinstance(b, ConstantNode): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr/interp_body.cpp new/numexpr-2.6.2/numexpr/interp_body.cpp --- old/numexpr-2.6.1/numexpr/interp_body.cpp 2016-05-01 14:13:01.000000000 +0200 +++ new/numexpr-2.6.2/numexpr/interp_body.cpp 2017-01-28 13:26:11.000000000 +0100 @@ -271,7 +271,11 @@ case OP_SUB_LLL: VEC_ARG2(l_dest = l1 - l2); case OP_MUL_LLL: VEC_ARG2(l_dest = l1 * l2); case OP_DIV_LLL: VEC_ARG2(l_dest = l2 ? (l1 / l2) : 0); +#if defined _MSC_VER && _MSC_VER < 1800 case OP_POW_LLL: VEC_ARG2(l_dest = (l2 < 0) ? (1 / l1) : (long long)pow((long double)l1, (long double)l2)); +#else + case OP_POW_LLL: VEC_ARG2(l_dest = (l2 < 0) ? (1 / l1) : (long long)llround(pow((long double)l1, (long double)l2))); +#endif case OP_MOD_LLL: VEC_ARG2(l_dest = l2 ? (l1 % l2) : 0); case OP_LSHIFT_LLL: VEC_ARG2(l_dest = l1 << l2); case OP_RSHIFT_LLL: VEC_ARG2(l_dest = l1 >> l2); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr/interpreter.cpp new/numexpr-2.6.2/numexpr/interpreter.cpp --- old/numexpr-2.6.1/numexpr/interpreter.cpp 2016-05-01 14:13:01.000000000 +0200 +++ new/numexpr-2.6.2/numexpr/interpreter.cpp 2017-01-29 12:38:30.000000000 +0100 @@ -458,7 +458,7 @@ } else if (op >= OP_REDUCTION) { ; } else { - PyErr_Format(PyExc_RuntimeError, "invalid program: internal checker errror processing %i", argloc); + PyErr_Format(PyExc_RuntimeError, "invalid program: internal checker error processing %i", argloc); return -1; } /* The next is to avoid problems with the ('i','l') duality, @@ -533,44 +533,52 @@ Based on Newlib/strstr.c. */ int -stringcontains(const char *haystack_start, const char *needle_start, npy_intp max_haystack_len, npy_intp max_needle_len) +stringcontains(const char *haystack_start, const char *needle_start, npy_intp max_haystack_len, npy_intp max_needle_len) { // needle_len - Length of needle. // haystack_len - Known minimum length of haystack. - size_t needle_len = min((size_t)max_needle_len, strlen(needle_start)); - size_t haystack_len = min((size_t)max_haystack_len, strlen(haystack_start)); + size_t needle_len = (size_t)max_needle_len; + size_t haystack_len = (size_t)max_haystack_len; const char *haystack = haystack_start; const char *needle = needle_start; bool ok = true; /* needle is prefix of haystack. */ - - if(haystack_len<needle_len) - return 0; + char *res; size_t si = 0; - while (*haystack && *needle && si < needle_len) + size_t min_len = min(needle_len, haystack_len); + while (*haystack && *needle && si < min_len) { ok &= *haystack++ == *needle++; si++; } - if (ok) - { - return 1; + + /* check needle is prefix of haystack and calc needle length */ + if (si == needle_len || *needle == 0) { + if (ok) + return 1; + needle_len = si; + } else { + /* haystack less needle */ + return 0; + } + + /* calc haystack length */ + while (*haystack && si < haystack_len) { + haystack++; + si++; } + haystack_len = si; if (needle_len < LONG_NEEDLE_THRESHOLD) { - char *res = two_way_short_needle ((const unsigned char *) haystack_start, - haystack_len, - (const unsigned char *) needle_start, needle_len) ; - int ptrcomp = res != NULL; - return ptrcomp; + res = two_way_short_needle((const unsigned char *)haystack_start, haystack_len, + (const unsigned char *)needle_start, needle_len); + } else { + res = two_way_long_needle((const unsigned char *)haystack_start, haystack_len, + (const unsigned char *)needle_start, needle_len); } - - char* res = two_way_long_needle ((const unsigned char *) haystack, haystack_len, - (const unsigned char *) needle, needle_len); - int ptrcomp2 = res != NULL ? 1 : 0; - return ptrcomp2; + return res != NULL ? 1 : 0; } @@ -905,7 +913,7 @@ pc_error, &errmsg); } else { - errmsg = "Parallel engine doesn't support reduction yet"; + errmsg = (char *) "Parallel engine doesn't support reduction yet"; r = -1; } } @@ -1049,7 +1057,7 @@ // Convert it if it's not an array if (!PyArray_Check(o)) { if (typecode == -1) goto fail; - a = PyArray_FROM_OTF(o, typecode, NPY_NOTSWAPPED); + a = PyArray_FROM_OTF(o, typecode, NPY_ARRAY_NOTSWAPPED); } else { Py_INCREF(o); @@ -1178,7 +1186,7 @@ dtypes[0] = PyArray_DESCR(operands[1]); Py_INCREF(dtypes[0]); } else { // constant, like in '"foo"' - dtypes[0] = PyArray_DescrNewFromType(PyArray_STRING); + dtypes[0] = PyArray_DescrNewFromType(NPY_STRING); dtypes[0]->elsize = (int)self->memsizes[1]; } // no string temporaries, so no third case } @@ -1253,7 +1261,7 @@ } Py_INCREF(dtypes[0]); a = (PyArrayObject *)PyArray_FromArray(operands[0], dtypes[0], - NPY_ALIGNED|NPY_UPDATEIFCOPY); + NPY_ARRAY_ALIGNED|NPY_ARRAY_UPDATEIFCOPY); if (a == NULL) { goto fail; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr/module.cpp new/numexpr-2.6.2/numexpr/module.cpp --- old/numexpr-2.6.1/numexpr/module.cpp 2016-05-01 14:13:01.000000000 +0200 +++ new/numexpr-2.6.2/numexpr/module.cpp 2017-01-28 13:26:11.000000000 +0100 @@ -357,7 +357,7 @@ #if PY_MAJOR_VERSION >= 3 -/* XXX: handle the "global_state" state via moduedef */ +/* XXX: handle the "global_state" state via moduledef */ static struct PyModuleDef moduledef = { PyModuleDef_HEAD_INIT, "interpreter", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr/module.hpp new/numexpr-2.6.2/numexpr/module.hpp --- old/numexpr-2.6.1/numexpr/module.hpp 2016-05-01 14:13:01.000000000 +0200 +++ new/numexpr-2.6.2/numexpr/module.hpp 2017-01-28 13:26:11.000000000 +0100 @@ -8,6 +8,8 @@ # define NO_IMPORT_ARRAY #endif +#define NPY_NO_DEPRECATED_API NPY_API_VERSION + #include <Python.h> #include <numpy/ndarrayobject.h> #include <numpy/arrayscalars.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr/numexpr_object.cpp new/numexpr-2.6.2/numexpr/numexpr_object.cpp --- old/numexpr-2.6.1/numexpr/numexpr_object.cpp 2016-05-01 14:13:01.000000000 +0200 +++ new/numexpr-2.6.2/numexpr/numexpr_object.cpp 2017-01-28 13:26:11.000000000 +0100 @@ -81,6 +81,8 @@ return (PyObject *)self; } +#define CHARP(s) ((char *)(s)) + static int NumExpr_init(NumExprObject *self, PyObject *args, PyObject *kwds) { @@ -94,9 +96,9 @@ npy_intp *memsteps; npy_intp *memsizes; int rawmemsize; - static char *kwlist[] = {"signature", "tempsig", - "program", "constants", - "input_names", NULL}; + static char *kwlist[] = {CHARP("signature"), CHARP("tempsig"), + CHARP("program"), CHARP("constants"), + CHARP("input_names"), NULL}; if (!PyArg_ParseTupleAndKeywords(args, kwds, "SSS|OO", kwlist, &signature, @@ -357,15 +359,15 @@ }; static PyMemberDef NumExpr_members[] = { - {"signature", T_OBJECT_EX, offsetof(NumExprObject, signature), READONLY, NULL}, - {"constsig", T_OBJECT_EX, offsetof(NumExprObject, constsig), READONLY, NULL}, - {"tempsig", T_OBJECT_EX, offsetof(NumExprObject, tempsig), READONLY, NULL}, - {"fullsig", T_OBJECT_EX, offsetof(NumExprObject, fullsig), READONLY, NULL}, + {CHARP("signature"), T_OBJECT_EX, offsetof(NumExprObject, signature), READONLY, NULL}, + {CHARP("constsig"), T_OBJECT_EX, offsetof(NumExprObject, constsig), READONLY, NULL}, + {CHARP("tempsig"), T_OBJECT_EX, offsetof(NumExprObject, tempsig), READONLY, NULL}, + {CHARP("fullsig"), T_OBJECT_EX, offsetof(NumExprObject, fullsig), READONLY, NULL}, - {"program", T_OBJECT_EX, offsetof(NumExprObject, program), READONLY, NULL}, - {"constants", T_OBJECT_EX, offsetof(NumExprObject, constants), + {CHARP("program"), T_OBJECT_EX, offsetof(NumExprObject, program), READONLY, NULL}, + {CHARP("constants"), T_OBJECT_EX, offsetof(NumExprObject, constants), READONLY, NULL}, - {"input_names", T_OBJECT, offsetof(NumExprObject, input_names), 0, NULL}, + {CHARP("input_names"), T_OBJECT, offsetof(NumExprObject, input_names), 0, NULL}, {NULL}, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr/tests/test_numexpr.py new/numexpr-2.6.2/numexpr/tests/test_numexpr.py --- old/numexpr-2.6.1/numexpr/tests/test_numexpr.py 2016-05-30 17:18:14.000000000 +0200 +++ new/numexpr-2.6.2/numexpr/tests/test_numexpr.py 2017-01-29 13:53:15.000000000 +0100 @@ -284,6 +284,12 @@ res = evaluate('contains(withemptystr, b"")') assert_equal(res, [True, True, True]) + def test_str_contains_long_needle(self): + a = b'1' + b'a' * 40 + b = b'a' * 40 + res = evaluate('contains(a, b)') + assert_equal(res, True) + class test_numexpr2(test_numexpr): """Testing with 2 threads""" @@ -566,29 +572,50 @@ this_locals = locals() def method(): - # We don't want to listen at RuntimeWarnings like - # "overflows" or "divide by zero" in plain eval(). - warnings.simplefilter("ignore") - npval = eval(expr, globals(), this_locals) - warnings.simplefilter("always") - npval = eval(expr, globals(), this_locals) + try: + # We don't want to listen at RuntimeWarnings like + # "overflows" or "divide by zero" in plain eval(). + warnings.simplefilter("ignore") + npval = eval(expr, globals(), this_locals) + warnings.simplefilter("always") + npval = eval(expr, globals(), this_locals) + except Exception as ex: + # just store the exception in a variable + # compatibility with numpy v1.12 + # see also https://github.com/pydata/numexpr/issues/239 + np_exception = ex + npval = None + else: + np_exception = None + try: neval = evaluate(expr, local_dict=this_locals, optimization=optimization) - assert equal(npval, neval, exact), """%r -(test_scalar=%r, dtype=%r, optimization=%r, exact=%r, - npval=%r (%r - %r)\n neval=%r (%r - %r))""" % (expr, test_scalar, dtype.__name__, - optimization, exact, - npval, type(npval), shape(npval), - neval, type(neval), shape(neval)) except AssertionError: raise except NotImplementedError: print('%r not implemented for %s (scalar=%d, opt=%s)' % (expr, dtype.__name__, test_scalar, optimization)) + except Exception as ne_exception: + same_exc_type = issubclass(type(ne_exception), + type(np_exception)) + if np_exception is None or not same_exc_type: + print('numexpr error for expression %r' % (expr,)) + raise except: print('numexpr error for expression %r' % (expr,)) raise + else: + msg = ('expected numexpr error not raised for expression ' + '%r' % (expr,)) + assert np_exception is None, msg + + assert equal(npval, neval, exact), """%r +(test_scalar=%r, dtype=%r, optimization=%r, exact=%r, + npval=%r (%r - %r)\n neval=%r (%r - %r))""" % (expr, test_scalar, dtype.__name__, + optimization, exact, + npval, type(npval), shape(npval), + neval, type(neval), shape(neval)) method.description = ('test_expressions(%s, test_scalar=%r, ' 'dtype=%r, optimization=%r, exact=%r)') \ @@ -800,7 +827,7 @@ msg = "expected NotImplementedError regarding '%s'" % op try: evaluate(expr, local_dict) - except NotImplementedError, nie: + except NotImplementedError as nie: if "'%s'" % op not in nie.args[0]: self.fail(msg) else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr/version.py new/numexpr-2.6.2/numexpr/version.py --- old/numexpr-2.6.1/numexpr/version.py 2016-07-17 11:46:49.000000000 +0200 +++ new/numexpr-2.6.2/numexpr/version.py 2017-01-29 12:38:30.000000000 +0100 @@ -8,4 +8,4 @@ # rights to use. #################################################################### -version = '2.6.1' +version = '2.6.2' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr.egg-info/PKG-INFO new/numexpr-2.6.2/numexpr.egg-info/PKG-INFO --- old/numexpr-2.6.1/numexpr.egg-info/PKG-INFO 2016-07-17 11:51:33.000000000 +0200 +++ new/numexpr-2.6.2/numexpr.egg-info/PKG-INFO 2017-01-29 14:03:20.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.0 Name: numexpr -Version: 2.6.1 +Version: 2.6.2 Summary: Fast numerical expression evaluator for NumPy Home-page: https://github.com/pydata/numexpr Author: David M. Cooke, Francesc Alted and others diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr.egg-info/SOURCES.txt new/numexpr-2.6.2/numexpr.egg-info/SOURCES.txt --- old/numexpr-2.6.1/numexpr.egg-info/SOURCES.txt 2016-07-17 11:51:33.000000000 +0200 +++ new/numexpr-2.6.2/numexpr.egg-info/SOURCES.txt 2017-01-29 14:03:20.000000000 +0100 @@ -46,7 +46,6 @@ numexpr.egg-info/SOURCES.txt numexpr.egg-info/dependency_links.txt numexpr.egg-info/not-zip-safe -numexpr.egg-info/pbr.json numexpr.egg-info/requires.txt numexpr.egg-info/top_level.txt numexpr/tests/__init__.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/numexpr.egg-info/pbr.json new/numexpr-2.6.2/numexpr.egg-info/pbr.json --- old/numexpr-2.6.1/numexpr.egg-info/pbr.json 2016-05-01 14:13:01.000000000 +0200 +++ new/numexpr-2.6.2/numexpr.egg-info/pbr.json 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -{"is_release": false, "git_version": "8bf924c"} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numexpr-2.6.1/setup.py new/numexpr-2.6.2/setup.py --- old/numexpr-2.6.1/setup.py 2016-05-30 11:33:24.000000000 +0200 +++ new/numexpr-2.6.2/setup.py 2017-01-28 13:26:11.000000000 +0100 @@ -151,6 +151,7 @@ if 'library_dirs' in mkl_config_data: library_dirs = ':'.join(mkl_config_data['library_dirs']) config.add_extension('interpreter', **extension_config_data) + config.set_options(quiet=True) config.make_config_py() config.add_subpackage('tests', 'numexpr/tests')