Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-numexpr for openSUSE:Factory 
checked in at 2024-02-06 16:35:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-numexpr (Old)
 and      /work/SRC/openSUSE:Factory/.python-numexpr.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-numexpr"

Tue Feb  6 16:35:34 2024 rev:23 rq:1144513 version:2.9.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-numexpr/python-numexpr.changes    
2023-12-18 22:56:34.933016150 +0100
+++ /work/SRC/openSUSE:Factory/.python-numexpr.new.1815/python-numexpr.changes  
2024-02-06 16:36:22.567015248 +0100
@@ -1,0 +2,10 @@
+Tue Feb  6 09:32:12 UTC 2024 - Dirk Müller <dmuel...@suse.com>
+
+- update to 2.9.0:
+  * Support for PyPy (see PRs #467 and #740).  The full test suite
+    should pass now, at least for the 3.10 version.
+    providing help and additional fixes.
+  * Fixed more sanitizer issues (see PR #469).
+  * Modernized the test suite to avoid some warnings.
+
+-------------------------------------------------------------------

Old:
----
  numexpr-2.8.8.tar.gz

New:
----
  numexpr-2.9.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-numexpr.spec ++++++
--- /var/tmp/diff_new_pack.5O7465/_old  2024-02-06 16:36:23.063033192 +0100
+++ /var/tmp/diff_new_pack.5O7465/_new  2024-02-06 16:36:23.067033337 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-numexpr
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-numexpr
-Version:        2.8.8
+Version:        2.9.0
 Release:        0
 Summary:        Numerical expression evaluator for NumPy
 License:        MIT
@@ -28,6 +28,7 @@
 BuildRequires:  %{python_module devel >= 3.7}
 BuildRequires:  %{python_module numpy-devel >= 1.13.3}
 BuildRequires:  %{python_module pip}
+BuildRequires:  %{python_module setuptools}
 BuildRequires:  %{python_module wheel}
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++

++++++ numexpr-2.8.8.tar.gz -> numexpr-2.9.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.8.8/ANNOUNCE.rst 
new/numexpr-2.9.0/ANNOUNCE.rst
--- old/numexpr-2.8.8/ANNOUNCE.rst      2023-12-11 13:56:26.000000000 +0100
+++ new/numexpr-2.9.0/ANNOUNCE.rst      2024-01-26 13:44:10.000000000 +0100
@@ -1,12 +1,13 @@
 ========================
-Announcing NumExpr 2.8.8
+Announcing NumExpr 2.9.0
 ========================
 
 Hi everyone,
 
-NumExpr 2.8.8 is a release to deal mainly with issues appearing with
-upcoming `NumPy` 2.0.  Also, some small fixes (support for simple complex
-expressions like `ne.evaluate('1.5j')`) and improvements are included.
+NumExpr 2.9.0 is a release offering support for latest versions of PyPy.
+The full test suite should pass now, at least for the Python 3.10 version.
+Thanks to @27rabbitlt for most of the work and @mgorny and @mattip for
+providing help and additional fixes.
 
 Project documentation is available at:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.8.8/PKG-INFO new/numexpr-2.9.0/PKG-INFO
--- old/numexpr-2.8.8/PKG-INFO  2023-12-11 14:06:59.466662000 +0100
+++ new/numexpr-2.9.0/PKG-INFO  2024-01-26 13:52:10.854595400 +0100
@@ -1,11 +1,11 @@
 Metadata-Version: 2.1
 Name: numexpr
-Version: 2.8.8
+Version: 2.9.0
 Summary: Fast numerical expression evaluator for NumPy
 Home-page: https://github.com/pydata/numexpr
 Author: David M. Cooke, Francesc Alted, and others
-Maintainer: Robert A. McLeod
-Maintainer-email: robbmcl...@gmail.com
+Maintainer: Francesc Alted
+Maintainer-email: fal...@gmail.com
 License: MIT
 Classifier: Development Status :: 6 - Mature
 Classifier: Intended Audience :: Financial and Insurance Industry
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.8.8/RELEASE_NOTES.rst 
new/numexpr-2.9.0/RELEASE_NOTES.rst
--- old/numexpr-2.8.8/RELEASE_NOTES.rst 2023-12-11 13:56:26.000000000 +0100
+++ new/numexpr-2.9.0/RELEASE_NOTES.rst 2024-01-26 13:44:10.000000000 +0100
@@ -1,7 +1,20 @@
 ====================================
-Release notes for NumExpr 2.8 series
+Release notes for NumExpr 2.9 series
 ====================================
 
+Changes from 2.8.8 to 2.9.0
+---------------------------
+
+* Support for PyPy (see PRs #467 and #740).  The full test suite
+  should pass now, at least for the 3.10 version.  Thanks to
+  @27rabbitlt for most of the work and @mgorny and @mattip for
+  providing help and additional fixes.  Fixes #463.
+
+* Fixed more sanitizer issues (see PR #469).  Thanks to @27rabbitlt.
+
+* Modernized the test suite to avoid some warnings.
+
+
 Changes from 2.8.7 to 2.8.8
 ---------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.8.8/numexpr/interpreter.cpp 
new/numexpr-2.9.0/numexpr/interpreter.cpp
--- old/numexpr-2.8.8/numexpr/interpreter.cpp   2023-12-11 13:56:26.000000000 
+0100
+++ new/numexpr-2.9.0/numexpr/interpreter.cpp   2024-01-26 13:44:10.000000000 
+0100
@@ -1029,7 +1029,7 @@
     memset(operands, 0, sizeof(operands));
     memset(dtypes, 0, sizeof(dtypes));
 
-    if (kwds) {
+    if (kwds && PyDict_Size(kwds) > 0) {
         tmp = PyDict_GetItemString(kwds, "casting"); // borrowed ref
         if (tmp != NULL && !PyArray_CastingConverter(tmp, &casting)) {
             return NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.8.8/numexpr/necompiler.py 
new/numexpr-2.9.0/numexpr/necompiler.py
--- old/numexpr-2.8.8/numexpr/necompiler.py     2023-12-11 13:56:26.000000000 
+0100
+++ new/numexpr-2.9.0/numexpr/necompiler.py     2024-01-26 13:44:10.000000000 
+0100
@@ -278,7 +278,8 @@
     # We also cannot ban `.\d*j`, where `\d*` is some digits (or none), e.g. 
1.5j, 1.j
     if sanitize:
         no_whitespace = re.sub(r'\s+', '', s)
-        if _blacklist_re.search(no_whitespace) is not None:
+        skip_quotes = re.sub(r'(\'[^\']*\')', '', no_whitespace)
+        if _blacklist_re.search(skip_quotes) is not None:
             raise ValueError(f'Expression {s} has forbidden control 
characters.')
     
     old_ctx = expressions._context.get_current_context()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.8.8/numexpr/tests/test_numexpr.py 
new/numexpr-2.9.0/numexpr/tests/test_numexpr.py
--- old/numexpr-2.8.8/numexpr/tests/test_numexpr.py     2023-12-11 
13:56:26.000000000 +0100
+++ new/numexpr-2.9.0/numexpr/tests/test_numexpr.py     2024-01-26 
13:44:10.000000000 +0100
@@ -19,7 +19,7 @@
 
 import numpy as np
 from numpy import (
-    array, arange, empty, zeros, int32, int64, uint16, complex_, float64, rec,
+    array, arange, empty, zeros, int32, int64, uint16, cdouble, float64, rec,
     copy, ones_like, where, all as alltrue, linspace,
     sum, prod, sqrt, fmod, floor, ceil,
     sin, cos, tan, arcsin, arccos, arctan, arctan2,
@@ -296,7 +296,7 @@
         b = b'a' * 40
         res = evaluate('contains(a, b)')
         assert_equal(res, True)
-        
+
     def test_where_scalar_bool(self):
         a = True
         b = array([1, 2])
@@ -307,7 +307,8 @@
         res = evaluate('where(a, b, c)')
         assert_array_equal(res, c)
 
-    
+    @unittest.skipIf(hasattr(sys, "pypy_version_info"),
+                     "PyPy does not have sys.getrefcount()")
     def test_refcount(self):
         # Regression test for issue #310
         a = array([1])
@@ -317,7 +318,7 @@
 
     def test_locals_clears_globals(self):
         # Check for issue #313, whereby clearing f_locals also clear f_globals
-        # if in the top-frame. This cannot be done inside `unittest` as it is 
always 
+        # if in the top-frame. This cannot be done inside `unittest` as it is 
always
         # executing code in a child frame.
         script = r';'.join([
                 r"import numexpr as ne",
@@ -333,7 +334,7 @@
             ])
         # Raises CalledProcessError on a non-normal exit
         check = subprocess.check_call([sys.executable, '-c', script])
-        # Ideally this test should also be done against ipython but it's not 
+        # Ideally this test should also be done against ipython but it's not
         # a requirement.
 
 
@@ -443,7 +444,7 @@
 
     def test_complex_expr(self):
         def complex(a, b):
-            c = zeros(a.shape, dtype=complex_)
+            c = zeros(a.shape, dtype=cdouble)
             c.real = a
             c.imag = b
             return c
@@ -520,7 +521,7 @@
                 self.fail()
 
             # Forbid colon for lambda funcs
-            try: 
+            try:
                 evaluate('lambda x: x')
             except ValueError:
                 pass
@@ -576,7 +577,15 @@
             evaluate('c.real')
             evaluate('c.imag')
 
-        
+            # pass imaginary unit j
+            evaluate('1.5j')
+            evaluate('3.j')
+
+            # pass forbidden characters within quotes
+            x = np.array(['a', 'b'], dtype=bytes)
+            evaluate("x == 'b:'")
+
+
     def test_no_sanitize(self):
         try: # Errors on compile() after eval()
             evaluate('import os;', sanitize=False)
@@ -596,7 +605,7 @@
     def test_disassemble(self):
         assert_equal(disassemble(NumExpr(
             "where(m, a, -1)", [('m', bool), ('a', float)])),
-            [[b'where_fbff', b'r0', b'r1[m]', b'r2[a]', b'c3[-1.0]'], 
+            [[b'where_fbff', b'r0', b'r1[m]', b'r2[a]', b'c3[-1.0]'],
              [b'noop', None, None, None]])
 
     def test_constant_deduplication(self):
@@ -615,18 +624,18 @@
         assert_equal(ConstantNode(numpy.float32(1)).astKind, "float")
         assert_equal(ConstantNode(numpy.float32("nan")).astKind, "float")
         assert_equal(ConstantNode(numpy.float32(3)).value.dtype, 
numpy.dtype("float32"))
-        assert_array_equal(NumExpr(ConstantNode(numpy.float32(1))).run(), 
+        assert_array_equal(NumExpr(ConstantNode(numpy.float32(1))).run(),
                            numpy.array(1, dtype="float32"))
 
     def test_unaligned_singleton(self):
-        # Test for issue #397 whether singletons outputs assigned to consts 
must be 
+        # Test for issue #397 whether singletons outputs assigned to consts 
must be
         # aligned or not.
         a = np.empty(5, dtype=np.uint8)[1:].view(np.int32)
         evaluate('3', out=a)
         assert_equal(a, 3)
 
     def test_negative_mod(self):
-        # Test for issue #413, modulus of negative integers. C modulus is 
+        # Test for issue #413, modulus of negative integers. C modulus is
         # actually remainder op, and hence different from Python modulus.
         a = np.array([-500, -135, 0, 0, 135, 500], dtype=np.int32)
         n = np.array([-360, -360, -360, 360, 360, 360], dtype=np.int32)
@@ -641,11 +650,11 @@
     def test_negative_power_scalar(self):
         # Test for issue #428, where the power is negative and the base is an
         # integer. This was running afoul in the precomputation in 
`expressions.py:pow_op()`
-        base = np.array([-2, -1, 0, 1, 2, 3], dtype=np.int32)
+        base = np.array([-2, -1, 1, 2, 3], dtype=np.int32)
         out_i = evaluate('base ** -1.0')
         assert_equal(out_i, np.power(base, -1.0))
 
-        base = np.array([-2, -1, 0, 1, 2, 3], dtype=np.int64)
+        base = np.array([-2, -1, 1, 2, 3], dtype=np.int64)
         out_l = evaluate('base ** -1.0')
         assert_equal(out_l, np.power(base, -1.0))
 
@@ -1111,7 +1120,7 @@
 # Test cases for the threading configuration
 class test_threading_config(TestCase):
     def test_max_threads_unset(self):
-        # Has to be done in a subprocess as `importlib.reload` doesn't let us 
+        # Has to be done in a subprocess as `importlib.reload` doesn't let us
         # re-initialize the threadpool
         script = '\n'.join([
                 "import os",
@@ -1123,7 +1132,7 @@
         subprocess.check_call([sys.executable, '-c', script])
 
     def test_max_threads_set(self):
-        # Has to be done in a subprocess as `importlib.reload` doesn't let us 
+        # Has to be done in a subprocess as `importlib.reload` doesn't let us
         # re-initialize the threadpool
         script = '\n'.join([
                 "import os",
@@ -1238,7 +1247,7 @@
     (sysname, nodename, release, os_version, machine, processor) = 
platform.uname()
     print('Platform:          %s-%s-%s' % (sys.platform, machine, os_version))
     try:
-        # cpuinfo doesn't work on OSX well it seems, so protect these outputs 
+        # cpuinfo doesn't work on OSX well it seems, so protect these outputs
         # with a try block
         cpu_info = cpu.info[0]
         print('CPU vendor:        %s' % cpu_info.get('VendorIdentifier', ''))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.8.8/numexpr/version.py 
new/numexpr-2.9.0/numexpr/version.py
--- old/numexpr-2.8.8/numexpr/version.py        2023-12-11 14:06:59.000000000 
+0100
+++ new/numexpr-2.9.0/numexpr/version.py        2024-01-26 13:52:10.000000000 
+0100
@@ -1,4 +1,4 @@
 # THIS FILE IS GENERATED BY `SETUP.PY`
-version = '2.8.8'
-numpy_build_version = '1.26.1'
+version = '2.9.0'
+numpy_build_version = '1.26.2'
 platform_machine = 'AMD64'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.8.8/numexpr.egg-info/PKG-INFO 
new/numexpr-2.9.0/numexpr.egg-info/PKG-INFO
--- old/numexpr-2.8.8/numexpr.egg-info/PKG-INFO 2023-12-11 14:06:59.000000000 
+0100
+++ new/numexpr-2.9.0/numexpr.egg-info/PKG-INFO 2024-01-26 13:52:10.000000000 
+0100
@@ -1,11 +1,11 @@
 Metadata-Version: 2.1
 Name: numexpr
-Version: 2.8.8
+Version: 2.9.0
 Summary: Fast numerical expression evaluator for NumPy
 Home-page: https://github.com/pydata/numexpr
 Author: David M. Cooke, Francesc Alted, and others
-Maintainer: Robert A. McLeod
-Maintainer-email: robbmcl...@gmail.com
+Maintainer: Francesc Alted
+Maintainer-email: fal...@gmail.com
 License: MIT
 Classifier: Development Status :: 6 - Mature
 Classifier: Intended Audience :: Financial and Insurance Industry
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/numexpr-2.8.8/setup.cfg new/numexpr-2.9.0/setup.cfg
--- old/numexpr-2.8.8/setup.cfg 2023-12-11 14:06:59.466662000 +0100
+++ new/numexpr-2.9.0/setup.cfg 2024-01-26 13:52:10.854595400 +0100
@@ -1,10 +1,10 @@
 [metadata]
 name = numexpr
-version = 2.8.8
+version = 2.9.0
 description = Fast numerical expression evaluator for NumPy
 author = David M. Cooke, Francesc Alted, and others
-maintainer = Robert A. McLeod
-maintainer_email = robbmcl...@gmail.com
+maintainer = Francesc Alted
+maintainer_email = fal...@gmail.com
 url = https://github.com/pydata/numexpr
 long_description = file: README.rst
 long_description_content_type = text/x-rst

Reply via email to