[compat] Replace deficient ChainMap class in Py3.3 and earlier

pull/31213/head
dirkf 2 years ago
parent 4c6fba3765
commit 0f6422590e

@ -3004,8 +3004,11 @@ except ImportError:
# new class in collections # new class in collections
try: try:
from collections import ChainMap as compat_collections_chain_map from collections import ChainMap as compat_collections_chain_map
# Py3.3's ChainMap is deficient
if sys.version_info <= (3, 3):
raise ImportError
except ImportError: except ImportError:
# Py < 3.3 # Py <= 3.3
class compat_collections_chain_map(compat_collections_abc.MutableMapping): class compat_collections_chain_map(compat_collections_abc.MutableMapping):
maps = [{}] maps = [{}]
@ -3060,6 +3063,7 @@ except ImportError:
def parents(self): def parents(self):
return compat_collections_chain_map(*(self.maps[1:])) return compat_collections_chain_map(*(self.maps[1:]))
# Pythons disagree on the type of a pattern (RegexObject, _sre.SRE_Pattern, Pattern, ...?) # Pythons disagree on the type of a pattern (RegexObject, _sre.SRE_Pattern, Pattern, ...?)
compat_re_Pattern = type(re.compile('')) compat_re_Pattern = type(re.compile(''))

Loading…
Cancel
Save