@@ -85,14 +85,11 @@ def seterr(all=None, divide=None, over=None, under=None, invalid=None):
85
85
86
86
Examples
87
87
--------
88
- >>> old_settings = np.seterr(all='ignore') #seterr to known value
89
- >>> np.seterr(over='raise')
90
- {'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'}
91
- >>> np.seterr(**old_settings) # reset to default
92
- {'divide': 'ignore', 'over': 'raise', 'under': 'ignore', 'invalid': 'ignore'}
93
-
88
+ >>> orig_settings = np.seterr(all='ignore') # seterr to known value
94
89
>>> np.int16(32000) * np.int16(3)
95
90
30464
91
+ >>> np.seterr(over='raise')
92
+ {'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'}
96
93
>>> old_settings = np.seterr(all='warn', over='raise')
97
94
>>> np.int16(32000) * np.int16(3)
98
95
Traceback (most recent call last):
@@ -104,6 +101,8 @@ def seterr(all=None, divide=None, over=None, under=None, invalid=None):
104
101
{'divide': 'print', 'over': 'print', 'under': 'print', 'invalid': 'print'}
105
102
>>> np.int16(32000) * np.int16(3)
106
103
30464
104
+ >>> np.seterr(**orig_settings) # restore original
105
+ {'divide': 'print', 'over': 'print', 'under': 'print', 'invalid': 'print'}
107
106
108
107
"""
109
108
@@ -155,14 +154,18 @@ def geterr():
155
154
--------
156
155
>>> np.geterr()
157
156
{'divide': 'warn', 'over': 'warn', 'under': 'ignore', 'invalid': 'warn'}
158
- >>> np.arange(3.) / np.arange(3.)
157
+ >>> np.arange(3.) / np.arange(3.) # doctest: +SHOW_WARNINGS
159
158
array([nan, 1., 1.])
159
+ RuntimeWarning: invalid value encountered in divide
160
160
161
- >>> oldsettings = np.seterr(all='warn', over ='raise')
161
+ >>> oldsettings = np.seterr(all='warn', invalid ='raise')
162
162
>>> np.geterr()
163
- {'divide': 'warn', 'over': 'raise ', 'under': 'warn', 'invalid': 'warn '}
163
+ {'divide': 'warn', 'over': 'warn ', 'under': 'warn', 'invalid': 'raise '}
164
164
>>> np.arange(3.) / np.arange(3.)
165
- array([nan, 1., 1.])
165
+ Traceback (most recent call last):
166
+ ...
167
+ FloatingPointError: invalid value encountered in divide
168
+ >>> oldsettings = np.seterr(**oldsettings) # restore original
166
169
167
170
"""
168
171
maskvalue = umath .geterrobj ()[1 ]
@@ -267,16 +270,16 @@ def seterrcall(func):
267
270
... print("Floating point error (%s), with flag %s" % (type, flag))
268
271
...
269
272
270
- >>> saved_handler = np.seterrcall(err_handler)
271
- >>> save_err = np.seterr(all='call')
273
+ >>> orig_handler = np.seterrcall(err_handler)
274
+ >>> orig_err = np.seterr(all='call')
272
275
273
276
>>> np.array([1, 2, 3]) / 0.0
274
277
Floating point error (divide by zero), with flag 1
275
278
array([inf, inf, inf])
276
279
277
- >>> np.seterrcall(saved_handler )
280
+ >>> np.seterrcall(orig_handler )
278
281
<function err_handler at 0x...>
279
- >>> np.seterr(**save_err )
282
+ >>> np.seterr(**orig_err )
280
283
{'divide': 'call', 'over': 'call', 'under': 'call', 'invalid': 'call'}
281
284
282
285
Log error message:
@@ -294,9 +297,9 @@ def seterrcall(func):
294
297
LOG: Warning: divide by zero encountered in divide
295
298
array([inf, inf, inf])
296
299
297
- >>> np.seterrcall(saved_handler )
298
- <numpy.core.numeric. Log object at 0x...>
299
- >>> np.seterr(**save_err )
300
+ >>> np.seterrcall(orig_handler )
301
+ <numpy.Log object at 0x...>
302
+ >>> np.seterr(**orig_err )
300
303
{'divide': 'log', 'over': 'log', 'under': 'log', 'invalid': 'log'}
301
304
302
305
"""
@@ -341,17 +344,19 @@ def geterrcall():
341
344
--------
342
345
>>> np.geterrcall() # we did not yet set a handler, returns None
343
346
344
- >>> oldsettings = np.seterr(all='call')
347
+ >>> orig_settings = np.seterr(all='call')
345
348
>>> def err_handler(type, flag):
346
349
... print("Floating point error (%s), with flag %s" % (type, flag))
347
- >>> oldhandler = np.seterrcall(err_handler)
350
+ >>> old_handler = np.seterrcall(err_handler)
348
351
>>> np.array([1, 2, 3]) / 0.0
349
352
Floating point error (divide by zero), with flag 1
350
353
array([inf, inf, inf])
351
354
352
355
>>> cur_handler = np.geterrcall()
353
356
>>> cur_handler is err_handler
354
357
True
358
+ >>> old_settings = np.seterr(**orig_settings) # restore original
359
+ >>> old_handler = np.seterrcall(None) # restore original
355
360
356
361
"""
357
362
return umath .geterrobj ()[2 ]
@@ -404,7 +409,7 @@ class errstate(contextlib.ContextDecorator):
404
409
405
410
>>> np.arange(3) / 0.
406
411
array([nan, inf, inf])
407
- >>> with np.errstate(divide='warn '):
412
+ >>> with np.errstate(divide='ignore '):
408
413
... np.arange(3) / 0.
409
414
array([nan, inf, inf])
410
415
@@ -420,6 +425,7 @@ class errstate(contextlib.ContextDecorator):
420
425
421
426
>>> np.geterr()
422
427
{'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'}
428
+ >>> olderr = np.seterr(**olderr) # restore original state
423
429
424
430
"""
425
431
0 commit comments