Skip to content

Commit 4eae454

Browse files
committed
Getting ready for release 2.8.8
1 parent 153e5f8 commit 4eae454

File tree

5 files changed

+55
-67
lines changed

5 files changed

+55
-67
lines changed

ANNOUNCE.rst

+13-22
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,31 @@
11
========================
2-
Announcing NumExpr 2.8.7
2+
Announcing NumExpr 2.8.8
33
========================
44

55
Hi everyone,
66

7-
NumExpr 2.8.7 is a release to deal with issues related to downstream `pandas`
8-
and other projects where the sanitization blacklist was triggering issues in their
9-
evaluate. Hopefully, the new sanitization code would be much more robust now.
10-
11-
For those who do not wish to have sanitization on by default, it can be changed
12-
by setting an environment variable, `NUMEXPR_SANITIZE=0`.
13-
14-
If you use `pandas` in your packages it is advisable you pin
15-
16-
`numexpr >= 2.8.7`
17-
18-
in your requirements.
7+
NumExpr 2.8.8 is a release to deal mainly with issues appearing with
8+
upcoming `NumPy` 2.0. Also, some small fixes (support for simple complex
9+
expressions like `ne.evaluate('1.5j')`) and improvements are included.
1910

2011
Project documentation is available at:
2112

2213
http://numexpr.readthedocs.io/
2314

24-
Changes from 2.8.6 to 2.8.7
15+
Changes from 2.8.7 to 2.8.8
2516
---------------------------
2617

27-
* More permissive rules in sanitizing regular expression: allow to access digits
28-
after the . with scientific notation. Thanks to Thomas Vincent.
18+
* Fix re_evaluate not taking global_dict as argument. Thanks to Teng Liu
19+
(@27rabbitlt).
2920

30-
* Don't reject double underscores that are not at the start or end of a variable
31-
name (pandas uses those), or scientific-notation numbers with digits after the
32-
decimal point. Thanks to Rebecca Palmer.
21+
* Fix parsing of simple complex numbers. Now, `ne.evaluate('1.5j')` works.
22+
Thanks to Teng Liu (@27rabbitlt).
3323

34-
* Do not use `numpy.alltrue` in the test suite, as it has been deprecated
35-
(replaced by `numpy.all`). Thanks to Rebecca Chen.
24+
* Fixes for upcoming NumPy 2.0:
3625

37-
* Wheels for Python 3.12. Wheels for 3.7 and 3.8 are not generated anymore.
26+
* Replace npy_cdouble with C++ complex. Thanks to Teng Liu (@27rabbitlt).
27+
* Add NE_MAXARGS for future numpy change NPY_MAXARGS. Now it is set to 64
28+
to match NumPy 2.0 value. Thanks to Teng Liu (@27rabbitlt).
3829

3930
What's Numexpr?
4031
---------------

README.rst

+26-40
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ NumExpr: Fast numerical expression evaluator for NumPy
33
======================================================
44

55
:Author: David M. Cooke, Francesc Alted, and others.
6-
:Maintainer: Robert A. McLeod
7-
:Contact: robbmcleod@gmail.com
6+
:Maintainer: Francesc Alted
7+
:Contact: faltet@gmail.com
88
:URL: https://github.com/pydata/numexpr
99
:Documentation: http://numexpr.readthedocs.io/en/latest/
1010
:Travis CI: |travis|
@@ -24,20 +24,6 @@ NumExpr: Fast numerical expression evaluator for NumPy
2424
.. |version| image:: https://img.shields.io/pypi/v/numexpr.png
2525
:target: https://pypi.python.org/pypi/numexpr
2626

27-
IMPORTANT NOTE: NumExpr is looking for maintainers!
28-
---------------------------------------------------
29-
30-
After 5 years as a solo maintainer (and performing a most excellent work), Robert McLeod
31-
is asking for a well deserved break. So the NumExpr project is looking for a new
32-
maintainer for a package that is used in pandas, PyTables and many other packages.
33-
If you have benefited of NumExpr capabilities in the past, and are willing to contribute
34-
back to the community, we would be happy to hear about you!
35-
36-
We are looking for someone that is knowledgeable about compiling extensions, and that is
37-
ready to spend some cycles in making releases (2 or 3 a year, maybe even less!).
38-
Interested? just open a new ticket here and we will help you onboarding.
39-
40-
Thank you!
4127

4228
What is NumExpr?
4329
----------------
@@ -68,19 +54,19 @@ an integrated computing virtual machine. The array operands are split
6854
into small chunks that easily fit in the cache of the CPU and passed
6955
to the virtual machine. The virtual machine then applies the
7056
operations on each chunk. It's worth noting that all temporaries and
71-
constants in the expression are also chunked. Chunks are distributed among
72-
the available cores of the CPU, resulting in highly parallelized code
57+
constants in the expression are also chunked. Chunks are distributed among
58+
the available cores of the CPU, resulting in highly parallelized code
7359
execution.
7460

7561
The result is that NumExpr can get the most of your machine computing
7662
capabilities for array-wise computations. Common speed-ups with regard
7763
to NumPy are usually between 0.95x (for very simple expressions like
78-
:code:`'a + 1'`) and 4x (for relatively complex ones like :code:`'a*b-4.1*a > 2.5*b'`),
79-
although much higher speed-ups can be achieved for some functions and complex
64+
:code:`'a + 1'`) and 4x (for relatively complex ones like :code:`'a*b-4.1*a > 2.5*b'`),
65+
although much higher speed-ups can be achieved for some functions and complex
8066
math operations (up to 15x in some cases).
8167

82-
NumExpr performs best on matrices that are too large to fit in L1 CPU cache.
83-
In order to get a better idea on the different speed-ups that can be achieved
68+
NumExpr performs best on matrices that are too large to fit in L1 CPU cache.
69+
In order to get a better idea on the different speed-ups that can be achieved
8470
on your platform, run the provided benchmarks.
8571

8672
Installation
@@ -89,32 +75,32 @@ Installation
8975
From wheels
9076
^^^^^^^^^^^
9177

92-
NumExpr is available for install via `pip` for a wide range of platforms and
93-
Python versions (which may be browsed at: https://pypi.org/project/numexpr/#files).
78+
NumExpr is available for install via `pip` for a wide range of platforms and
79+
Python versions (which may be browsed at: https://pypi.org/project/numexpr/#files).
9480
Installation can be performed as::
9581

9682
pip install numexpr
9783

98-
If you are using the Anaconda or Miniconda distribution of Python you may prefer
84+
If you are using the Anaconda or Miniconda distribution of Python you may prefer
9985
to use the `conda` package manager in this case::
10086

10187
conda install numexpr
10288

10389
From Source
10490
^^^^^^^^^^^
10591

106-
On most \*nix systems your compilers will already be present. However if you
92+
On most \*nix systems your compilers will already be present. However if you
10793
are using a virtual environment with a substantially newer version of Python than
10894
your system Python you may be prompted to install a new version of `gcc` or `clang`.
10995

110-
For Windows, you will need to install the Microsoft Visual C++ Build Tools
111-
(which are free) first. The version depends on which version of Python you have
96+
For Windows, you will need to install the Microsoft Visual C++ Build Tools
97+
(which are free) first. The version depends on which version of Python you have
11298
installed:
11399

114100
https://wiki.python.org/moin/WindowsCompilers
115101

116-
For Python 3.6+ simply installing the latest version of MSVC build tools should
117-
be sufficient. Note that wheels found via pip do not include MKL support. Wheels
102+
For Python 3.6+ simply installing the latest version of MSVC build tools should
103+
be sufficient. Note that wheels found via pip do not include MKL support. Wheels
118104
available via `conda` will have MKL, if the MKL backend is used for NumPy.
119105

120106
See `requirements.txt` for the required version of NumPy.
@@ -132,19 +118,19 @@ Do not test NumExpr in the source directory or you will generate import errors.
132118
Enable Intel® MKL support
133119
^^^^^^^^^^^^^^^^^^^^^^^^^
134120

135-
NumExpr includes support for Intel's MKL library. This may provide better
136-
performance on Intel architectures, mainly when evaluating transcendental
137-
functions (trigonometrical, exponential, ...).
121+
NumExpr includes support for Intel's MKL library. This may provide better
122+
performance on Intel architectures, mainly when evaluating transcendental
123+
functions (trigonometrical, exponential, ...).
138124

139-
If you have Intel's MKL, copy the `site.cfg.example` that comes with the
140-
distribution to `site.cfg` and edit the latter file to provide correct paths to
141-
the MKL libraries in your system. After doing this, you can proceed with the
125+
If you have Intel's MKL, copy the `site.cfg.example` that comes with the
126+
distribution to `site.cfg` and edit the latter file to provide correct paths to
127+
the MKL libraries in your system. After doing this, you can proceed with the
142128
usual building instructions listed above.
143129

144-
Pay attention to the messages during the building process in order to know
145-
whether MKL has been detected or not. Finally, you can check the speed-ups on
146-
your machine by running the `bench/vml_timing.py` script (you can play with
147-
different parameters to the `set_vml_accuracy_mode()` and `set_vml_num_threads()`
130+
Pay attention to the messages during the building process in order to know
131+
whether MKL has been detected or not. Finally, you can check the speed-ups on
132+
your machine by running the `bench/vml_timing.py` script (you can play with
133+
different parameters to the `set_vml_accuracy_mode()` and `set_vml_num_threads()`
148134
functions in the script so as to see how it would affect performance).
149135

150136
Usage

RELEASE_NOTES.rst

+12-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,18 @@ Release notes for NumExpr 2.8 series
55
Changes from 2.8.7 to 2.8.8
66
---------------------------
77

8-
* **Under development.**
8+
* Fix re_evaluate not taking global_dict as argument. Thanks to Teng Liu
9+
(@27rabbitlt).
10+
11+
* Fix parsing of simple complex numbers. Now, `ne.evaluate('1.5j')` works.
12+
Thanks to Teng Liu (@27rabbitlt).
13+
14+
* Fixes for upcoming NumPy 2.0:
15+
16+
* Replace npy_cdouble with C++ complex. Thanks to Teng Liu (@27rabbitlt).
17+
* Add NE_MAXARGS for future numpy change NPY_MAXARGS. Now it is set to 64
18+
to match NumPy 2.0 value. Thanks to Teng Liu (@27rabbitlt).
19+
920

1021
Changes from 2.8.6 to 2.8.7
1122
---------------------------

RELEASING.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Releasing NumExpr
22
==================
33

4-
* Author: Robert A. McLeod
5-
* Contact: robbmcleod@gmail.com
6-
* Date: 2020-12-28
4+
* Author: Robert A. McLeod, Francesc Alted
5+
* Contact: faltet@gmail.com
6+
* Date: 2023-12-11
77

88
Following are notes for releasing NumExpr.
99

setup.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[metadata]
22
name = numexpr
3-
version = 2.8.8.dev1
3+
version = 2.8.8
44
description = Fast numerical expression evaluator for NumPy
55
author = David M. Cooke, Francesc Alted, and others
66
maintainer = Robert A. McLeod

0 commit comments

Comments
 (0)