diff options
author | Stefan Behnel <stefan_ml@behnel.de> | 2019-04-18 17:05:03 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-18 17:05:03 (GMT) |
commit | e8113f51a8bdf33188ee30a1c038a298329e7bfa (patch) | |
tree | 9352ef363c501a34f32ed4e8e43d3cf3b23b0def /Lib | |
parent | 7e954e7de4f3777b5ce239640bd2b76aced09561 (diff) | |
download | cpython-e8113f51a8bdf33188ee30a1c038a298329e7bfa.zip cpython-e8113f51a8bdf33188ee30a1c038a298329e7bfa.tar.gz cpython-e8113f51a8bdf33188ee30a1c038a298329e7bfa.tar.bz2 |
bpo-30485: Change the prefix for defining the default namespace in ElementPath from None to '' since there is existing code that uses that and it's more convenient to have an all-string-keys dict (e.g. when sorting items etc.). (#12860)
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_xml_etree.py | 2 | ||||
-rw-r--r-- | Lib/xml/etree/ElementPath.py | 8 |
2 files changed, 3 insertions, 7 deletions
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index f5b118b..14ce32a 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -2463,7 +2463,7 @@ class ElementFindTest(unittest.TestCase): nsmap = {'xx': 'Y'} self.assertEqual(len(root.findall(".//xx:b", namespaces=nsmap)), 1) self.assertEqual(len(root.findall(".//b", namespaces=nsmap)), 2) - nsmap = {'xx': 'X', None: 'Y'} + nsmap = {'xx': 'X', '': 'Y'} self.assertEqual(len(root.findall(".//xx:b", namespaces=nsmap)), 2) self.assertEqual(len(root.findall(".//b", namespaces=nsmap)), 1) diff --git a/Lib/xml/etree/ElementPath.py b/Lib/xml/etree/ElementPath.py index 4d231a7..b670d58 100644 --- a/Lib/xml/etree/ElementPath.py +++ b/Lib/xml/etree/ElementPath.py @@ -71,7 +71,7 @@ xpath_tokenizer_re = re.compile( ) def xpath_tokenizer(pattern, namespaces=None): - default_namespace = namespaces.get(None) if namespaces else None + default_namespace = namespaces.get('') if namespaces else None for token in xpath_tokenizer_re.findall(pattern): tag = token[1] if tag and tag[0] != "{": @@ -275,11 +275,7 @@ def iterfind(elem, path, namespaces=None): cache_key = (path,) if namespaces: - if None in namespaces: - cache_key += (namespaces[None],) + tuple(sorted( - item for item in namespaces.items() if item[0] is not None)) - else: - cache_key += tuple(sorted(namespaces.items())) + cache_key += tuple(sorted(namespaces.items())) try: selector = _cache[cache_key] |