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)

This commit is contained in:
Stefan Behnel 2019-04-18 19:05:03 +02:00 committed by GitHub
parent 7e954e7de4
commit e8113f51a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 11 deletions

View file

@ -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]