summaryrefslogtreecommitdiff
path: root/numpy/doc/subclassing.py
diff options
context:
space:
mode:
authorMarten van Kerkwijk <mhvk@astro.utoronto.ca>2017-04-10 15:00:00 -0400
committerCharles Harris <charlesr.harris@gmail.com>2017-04-27 13:37:50 -0600
commit1fc6e633e39cd837cd296104022558b2b880ab29 (patch)
tree6b0325ff0a829852dfbecd9f1f632214087cf6bc /numpy/doc/subclassing.py
parentff628f1697538ba03c9fc02409b96896fa56e9f6 (diff)
downloadnumpy-1fc6e633e39cd837cd296104022558b2b880ab29.tar.gz
DOC,TST: clarify example of ndarray subclass using __array_ufunc__
Also add a few more tests of the same example for good measure.
Diffstat (limited to 'numpy/doc/subclassing.py')
-rw-r--r--numpy/doc/subclassing.py13
1 files changed, 6 insertions, 7 deletions
diff --git a/numpy/doc/subclassing.py b/numpy/doc/subclassing.py
index 7877432b5..410fc58bd 100644
--- a/numpy/doc/subclassing.py
+++ b/numpy/doc/subclassing.py
@@ -465,7 +465,7 @@ following.
outputs = kwargs.pop('out', None)
out_no = []
- if outputs is not None:
+ if outputs:
out_args = []
for j, output in enumerate(outputs):
if isinstance(output, A):
@@ -474,6 +474,8 @@ following.
else:
out_args.append(output)
kwargs['out'] = tuple(out_args)
+ else:
+ outputs = (None,) * ufunc.nout
info = {}
if in_no:
@@ -486,14 +488,11 @@ following.
if results is NotImplemented:
return NotImplemented
- if not isinstance(results, tuple):
- if not isinstance(results, np.ndarray):
- return results
+ if ufunc.nout == 1:
results = (results,)
- if outputs is None:
- outputs = [None] * len(results)
- results = tuple(result.view(A) if output is None else output
+ results = tuple((np.asarray(result).view(A)
+ if output is None else output)
for result, output in zip(results, outputs))
if isinstance(results[0], A):
results[0].info = info