summaryrefslogtreecommitdiff
path: root/numpy/core
diff options
context:
space:
mode:
authorMike Taves <mwtoews@gmail.com>2021-03-08 22:25:15 +1300
committerMike Taves <mwtoews@gmail.com>2021-03-08 22:25:15 +1300
commit8045d1c79bd0615c8760d2423976196a1ca32d65 (patch)
tree982c3044085a0bddb073d61607a1927aece311c9 /numpy/core
parent4af35a75b313411753b037f040d0eaf234321c5b (diff)
downloadnumpy-8045d1c79bd0615c8760d2423976196a1ca32d65.tar.gz
MAINT: OrderedDict is no longer necessary from Python 3.7
Diffstat (limited to 'numpy/core')
-rw-r--r--numpy/core/_ufunc_config.py28
-rw-r--r--numpy/core/records.py15
2 files changed, 14 insertions, 29 deletions
diff --git a/numpy/core/_ufunc_config.py b/numpy/core/_ufunc_config.py
index 454d911cf..b40e7445e 100644
--- a/numpy/core/_ufunc_config.py
+++ b/numpy/core/_ufunc_config.py
@@ -98,10 +98,9 @@ def seterr(all=None, divide=None, over=None, under=None, invalid=None):
File "<stdin>", line 1, in <module>
FloatingPointError: overflow encountered in short_scalars
- >>> from collections import OrderedDict
>>> old_settings = np.seterr(all='print')
- >>> OrderedDict(np.geterr())
- OrderedDict([('divide', 'print'), ('over', 'print'), ('under', 'print'), ('invalid', 'print')])
+ >>> np.geterr()
+ {'divide': 'print', 'over': 'print', 'under': 'print', 'invalid': 'print'}
>>> np.int16(32000) * np.int16(3)
30464
@@ -153,15 +152,14 @@ def geterr():
Examples
--------
- >>> from collections import OrderedDict
- >>> sorted(np.geterr().items())
- [('divide', 'warn'), ('invalid', 'warn'), ('over', 'warn'), ('under', 'ignore')]
+ >>> np.geterr()
+ {'divide': 'warn', 'over': 'warn', 'under': 'ignore', 'invalid': 'warn'}
>>> np.arange(3.) / np.arange(3.)
array([nan, 1., 1.])
>>> oldsettings = np.seterr(all='warn', over='raise')
- >>> OrderedDict(sorted(np.geterr().items()))
- OrderedDict([('divide', 'warn'), ('invalid', 'warn'), ('over', 'raise'), ('under', 'warn')])
+ >>> np.geterr()
+ {'divide': 'warn', 'over': 'raise', 'under': 'warn', 'invalid': 'warn'}
>>> np.arange(3.) / np.arange(3.)
array([nan, 1., 1.])
@@ -270,7 +268,6 @@ def seterrcall(func):
>>> saved_handler = np.seterrcall(err_handler)
>>> save_err = np.seterr(all='call')
- >>> from collections import OrderedDict
>>> np.array([1, 2, 3]) / 0.0
Floating point error (divide by zero), with flag 1
@@ -278,8 +275,8 @@ def seterrcall(func):
>>> np.seterrcall(saved_handler)
<function err_handler at 0x...>
- >>> OrderedDict(sorted(np.seterr(**save_err).items()))
- OrderedDict([('divide', 'call'), ('invalid', 'call'), ('over', 'call'), ('under', 'call')])
+ >>> np.seterr(**save_err)
+ {'divide': 'call', 'over': 'call', 'under': 'call', 'invalid': 'call'}
Log error message:
@@ -298,8 +295,8 @@ def seterrcall(func):
>>> np.seterrcall(saved_handler)
<numpy.core.numeric.Log object at 0x...>
- >>> OrderedDict(sorted(np.seterr(**save_err).items()))
- OrderedDict([('divide', 'log'), ('invalid', 'log'), ('over', 'log'), ('under', 'log')])
+ >>> np.seterr(**save_err)
+ {'divide': 'log', 'over': 'log', 'under': 'log', 'invalid': 'log'}
"""
if func is not None and not isinstance(func, collections.abc.Callable):
@@ -402,7 +399,6 @@ class errstate(contextlib.ContextDecorator):
Examples
--------
- >>> from collections import OrderedDict
>>> olderr = np.seterr(all='ignore') # Set error handling to known state.
>>> np.arange(3) / 0.
@@ -421,8 +417,8 @@ class errstate(contextlib.ContextDecorator):
Outside the context the error handling behavior has not changed:
- >>> OrderedDict(sorted(np.geterr().items()))
- OrderedDict([('divide', 'ignore'), ('invalid', 'ignore'), ('over', 'ignore'), ('under', 'ignore')])
+ >>> np.geterr()
+ {'divide': 'ignore', 'over': 'ignore', 'under': 'ignore', 'invalid': 'ignore'}
"""
diff --git a/numpy/core/records.py b/numpy/core/records.py
index a626a0589..a32f5abf1 100644
--- a/numpy/core/records.py
+++ b/numpy/core/records.py
@@ -35,7 +35,7 @@ Record arrays allow us to access fields as properties::
"""
import os
import warnings
-from collections import Counter, OrderedDict
+from collections import Counter
from contextlib import nullcontext
from . import numeric as sb
@@ -75,23 +75,12 @@ _byteorderconv = {'b':'>',
numfmt = nt.typeDict
-# taken from OrderedDict recipes in the Python documentation
-# https://docs.python.org/3.3/library/collections.html#ordereddict-examples-and-recipes
-class _OrderedCounter(Counter, OrderedDict):
- """Counter that remembers the order elements are first encountered"""
-
- def __repr__(self):
- return '%s(%r)' % (self.__class__.__name__, OrderedDict(self))
-
- def __reduce__(self):
- return self.__class__, (OrderedDict(self),)
-
def find_duplicate(list):
"""Find duplication in a list, return a list of duplicated elements"""
return [
item
- for item, counts in _OrderedCounter(list).items()
+ for item, counts in Counter(list).items()
if counts > 1
]