10000 Merge branch 'master' into einsum-dispatch · shoyer/numpy@2dfb68e · GitHub
[go: up one dir, main page]

Skip to content

Commit 2dfb68e

Browse files
authored
Merge branch 'master' into einsum-dispatch
2 parents ea7ff5f + 872372b commit 2dfb68e

File tree

81 files changed

+4262
-1564
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+4262
-1564
lines changed

azure-pipelines.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
trigger:
2+
# start a new build for every push
3+
batch: False
4+
branches:
5+
include:
6+
- master
7+
- maintenance/*
18
jobs:
29
- job: macOS
310
pool:

benchmarks/benchmarks/bench_shape_base.py

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,18 @@ def time_block2d(self, shape, dtype, n_chunks):
8888

8989

9090
class Block3D(Benchmark):
91-
params = [1, 10, 100]
92-
param_names = ['size']
93-
94-
def setup(self, n):
91+
"""This benchmark concatenates an array of size ``(5n)^3``"""
92+
# Having copy as a `mode` of the block3D
93+
# allows us to directly compare the benchmark of block
94+
# to that of a direct memory copy into new buffers with
95+
# the ASV framework.
96+
# block and copy will be plotted on the same graph
97+
# as opposed to being displayed as separate benchmarks
98+
params = [[1, 10, 100],
99+
['block', 'copy']]
100+
param_names = ['n', 'mode']
101+
102+
def setup(self, n, mode):
95103
# Slow setup method: hence separated from the others above
96104
self.a000 = np.ones((2 * n, 2 * n, 2 * n), int) * 1
97105

@@ -105,8 +113,7 @@ def setup(self, n):
105113

106114
self.a111 = np.ones((3 * n, 3 * n, 3 * n), int) * 8
107115

108-
def time_3d(self, n):
109-
np.block([
116+
self.block = [
110117
[
111118
[self.a000, self.a001],
112119
[self.a010, self.a011],
@@ -115,7 +122,17 @@ def time_3d(self, n):
115122
[self.a100, self.a101],
116123
[self.a110, self.a111],
117124
]
118-
])
125+
]
126+
self.arr_list = [a
127+
for two_d in self.block
128+
for one_d in two_d
129+
for a in one_d]
130+
131+
def time_3d(self, n, mode):
132+
if mode == 'block':
133+
np.block(self.block)
134+
else: # mode == 'copy'
135+
[arr.copy() for arr in self.arr_list]
119136

120137
# Retain old benchmark name for backward compat
121138
time_3d.benchmark_name = "bench_shape_base.Block.time_3d"

doc/RELEASE_WALKTHROUGH.rst.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ repository::
4646
$ git checkout maintenance/1.14.x
4747
$ git pull upstream maintenance/1.14.x
4848
$ git submodule update
49-
$ git clean -xdf
49+
$ git clean -xdf > /dev/null
5050

5151
Edit pavement.py and setup.py as detailed in HOWTO_RELEASE::
5252

@@ -94,7 +94,7 @@ Edit the ``.travis.yml`` and ``.appveyor.yml`` files to make sure they have the
9494
correct version, and put in the commit hash for the ``REL`` commit created
9595
above for ``BUILD_COMMIT``, see the _example from `v1.14.3`::
9696

97-
$ gvim .travis.yml appveyor.yml
97+
$ gvim .travis.yml .appveyor.yml
9898
$ git commit -a
9999
$ git push origin HEAD
100100

@@ -137,6 +137,7 @@ Generate the README files
137137
This needs to be done after all installers are present, but before the pavement
138138
file is updated for continued development.
139139

140+
$ cd ../numpy
140141
$ paver write_release_and_log
141142

142143

doc/changelog/1.15.3-changelog.rst

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
2+
Contributors
3+
============
4+
5+
A total of 7 people contributed to this release. People with a "+" by their
6+
names contributed a patch for the first time.
7+
8+
* Allan Haldane
9+
* Charles Harris
10+
* Jeroen Demeyer
11+
* Kevin Sheppard
12+
* Matthew Bowden +
13+
* Matti Picus
14+
* Tyler Reddy
15+
16+
Pull requests merged
17+
====================
18+
19+
A total of 12 pull requests were merged for this release.
20+
21+
* `#12080 <https://github.com/numpy/numpy/pull/12080>`__: MAINT: Blacklist some MSVC complex functions.
22+
* `#12083 <https://github.com/numpy/numpy/pull/12083>`__: TST: Add azure CI testing to 1.15.x branch.
23+
* `#12084 <https://github.com/numpy/numpy/pull/12084>`__: BUG: test_path() now uses Path.resolve()
24+
* `#12085 <https://github.com/numpy/numpy/pull/12085>`__: TST, MAINT: Fix some failing tests on azure-pipelines mac and...
25+
* `#12187 <https://github.com/numpy/numpy/pull/12187>`__: BUG: Fix memory leak in mapping.c
26+
* `#12188 <https://github.com/numpy/numpy/pull/12188>`__: BUG: Allow boolean subtract in histogram
27+
* `#12189 <https://github.com/numpy/numpy/pull/12189>`__: BUG: Fix in-place permutation
28+
* `#12190 <https://github.com/numpy/numpy/pull/12190>`__: BUG: limit default for get_num_build_jobs() to 8
29+
* `#12191 <https://github.com/numpy/numpy/pull/12191>`__: BUG: OBJECT_to_* should check for errors
30+
* `#12192 <https://github.com/numpy/numpy/pull/12192>`__: DOC: Prepare for NumPy 1.15.3 release.
31+
* `#12237 <https://github.com/numpy/numpy/pull/12237>`__: BUG: Fix MaskedArray fill_value type conversion.
32+
* `#12238 <https://github.com/numpy/numpy/pull/12238>`__: TST: Backport azure-pipeline testing fixes for Mac

doc/neps/_static/nep-0000.png

-7.7 KB
Loading

doc/neps/index.rst.tmpl

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,19 @@ Meta-NEPs (NEPs about NEPs or Processes)
2929

3030
nep-template
3131

32-
Accepted NEPs, implementation in progress
33-
-----------------------------------------
32+
Provisional NEPs (provisionally accepted; interface may change)
33+
---------------------------------------------------------------
34+
35+
.. toctree::
36+
:maxdepth: 1
37+
38+
{% for nep, tags in neps.items() if tags['Status'] == 'Provisional' %}
39+
{{ tags['Title'] }} <{{ tags['Filename'] }}>
40+
{% endfor %}
41+
42+
43+
Accepted NEPs (implementation in progress)
44+
------------------------------------------
3445

3546
.. toctree::
3647
:maxdepth: 1
@@ -52,7 +63,7 @@ Open NEPs (under consideration)
5263

5364

5465

55-
Implemented NEPs
66+
Finished NEPs
5667
----------------
5768

5869
.. toctree::
@@ -62,22 +73,23 @@ Implemented NEPs
6273
{{ tags['Title'] }} <{{ tags['Filename'] }}>
6374
{% endfor %}
6475

65-
Deferred NEPs
66-
-------------
76+
Deferred and Superseded NEPs
77+
----------------------------
6778

6879
.. toctree::
6980
:maxdepth: 1
7081

71-
{% for nep, tags in neps.items() if tags['Status'] == 'Deferred' %}
82+
{% for nep, tags in neps.items() if tags['Status'] in ('Deferred', 'Superseded') %}
7283
{{ tags['Title'] }} <{{ tags['Filename'] }}>
7384
{% endfor %}
7485

75-
Rejected NEPs
76-
-------------
86+
Rejected and Withdrawn NEPs
87+
---------------------------
7788

7889
.. toctree::
7990
:maxdepth: 1
8091

81-
{% for nep, tags in neps.items() if tags['Status'] == 'Rejected' %}
92+
{% for nep, tags in neps.items() if tags['Status'] in ('Rejected', 'Withdrawn') %}
8293
{{ tags['Title'] }} <{{ tags['Filename'] }}>
8394
{% endfor %}
95+

doc/neps/nep-0000.rst

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,18 @@ feature proposal [1]_.
3131
Types
3232
^^^^^
3333

34-
There are two kinds of NEP:
34+
There are three kinds of NEPs:
3535

3636
1. A **Standards Track** NEP describes a new feature or implementation
3737
for NumPy.
3838

39-
2. A **Process** NEP describes a process surrounding NumPy, or
39+
2. An **Informational** NEP describes a NumPy design issue, or provides
40+
general guidelines or information to the Python community, but does not
41+
propose a new feature. Informational NEPs do not necessarily represent a
42+
NumPy community consensus or recommendation, so users and implementers are
43+
free to ignore Informational NEPs or follow their advice.
44+
45+
3. A **Process** NEP describes a process surrounding NumPy, or
4046
proposes a change to (or an event in) a process. Process NEPs are
4147
like Standards Track NEPs but apply to areas other than the NumPy
4248
language itself. They may propose an implementation, but not to
@@ -105,6 +111,20 @@ Once a NEP has been ``Accepted``, the reference implementation must be
105111
completed. When the reference implementation is complete and incorporated
106112
into the main source code repository, the status will be changed to ``Final``.
107113

114+
To allow gathering of additional design and interface feedback before
115+
committing to long term stability for a language feature or standard library
116+
API, a NEP may also be marked as "Provisional". This is short for
117+
"Provisionally Accepted", and indicates that the proposal has been accepted for
118+
inclusion in the reference implementation, but additional user feedback is
119+
needed before the full design can be considered "Final". Unlike regular
120+
accepted NEPs, provisionally accepted NEPs may still be Rejected or Withdrawn
121+
even after the related changes have been included in a Python release.
122+
123+
Wherever possible, it is considered preferable to reduce the scope of a
124+
proposal to avoid the need to rely on the "Provisional" status (e.g. by
125+
deferring some features to later NEPs), as this status can lead to version
126+
compatibility challenges in the wider NumPy ecosystem.
127+
108128
A NEP can also be assigned status ``Deferred``. The NEP author or a
109129
core developer can assign the NEP this status when no progress is being made
110130
on the NEP.

0 commit comments

Comments
 (0)
0