MCPcopy Index your code
hub / github.com/python/cpython / _qname

Method _qname

Lib/xml/etree/ElementTree.py:1865–1900  ·  view source on GitHub ↗
(self, qname, uri=None)

Source from the content-addressed store, hash-verified

1863 raise ValueError(f'Prefix {prefix} of QName "{prefixed_name}" is not declared in scope')
1864
1865 def _qname(self, qname, uri=None):
1866 if uri is None:
1867 uri, tag = qname[1:].rsplit('}', 1) if qname[:1] == '{' else ('', qname)
1868 else:
1869 tag = qname
1870
1871 prefixes_seen = set()
1872 for u, prefix in self._iter_namespaces(self._declared_ns_stack):
1873 if u == uri and prefix not in prefixes_seen:
1874 return f'{prefix}:{tag}' if prefix else tag, tag, uri
1875 prefixes_seen.add(prefix)
1876
1877 # Not declared yet => add new declaration.
1878 if self._rewrite_prefixes:
1879 if uri in self._prefix_map:
1880 prefix = self._prefix_map[uri]
1881 else:
1882 prefix = self._prefix_map[uri] = f'n{len(self._prefix_map)}'
1883 self._declared_ns_stack[-1].append((uri, prefix))
1884 return f'{prefix}:{tag}', tag, uri
1885
1886 if not uri and '' not in prefixes_seen:
1887 # No default namespace declared => no prefix needed.
1888 return tag, tag, uri
1889
1890 for u, prefix in self._iter_namespaces(self._ns_stack):
1891 if u == uri:
1892 self._declared_ns_stack[-1].append((uri, prefix))
1893 return f'{prefix}:{tag}' if prefix else tag, tag, uri
1894
1895 if not uri:
1896 # As soon as a default namespace is defined,
1897 # anything that has no namespace (and thus, no prefix) goes there.
1898 return tag, tag, uri
1899
1900 raise ValueError(f'Namespace "{uri}" is not declared in scope')
1901
1902 def data(self, data):
1903 if not self._ignored_depth:

Callers 1

endMethod · 0.95

Calls 5

_iter_namespacesMethod · 0.95
setFunction · 0.85
rsplitMethod · 0.45
addMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected