8000 cpython/Lib/xml/dom/pulldom.py at 3.13 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content
{"payload":{"allShortcutsEnabled":false,"fileTree":{"Lib/xml/dom":{"items":[{"name":"NodeFilter.py","path":"Lib/xml/dom/NodeFilter.py","contentType":"file"},{"name":"__init__.py","path":"Lib/xml/dom/__init__.py","contentType":"file"},{"name":"domreg.py","path":"Lib/xml/dom/domreg.py","contentType":"file"},{"name":"expatbuilder.py","path":"Lib/xml/dom/expatbuilder.py","contentType":"file"},{"name":"minicompat.py","path":"Lib/xml/dom/minicompat.py","contentType":"file"},{"name":"minidom.py","path":"Lib/xml/dom/minidom.py","contentType":"file"},{"name":"pulldom.py","path":"Lib/xml/dom/pulldom.py","contentType":"file"},{"name":"xmlbuilder.py","path":"Lib/xml/dom/xmlbuilder.py","contentType":"file"}],"totalCount":8},"Lib/xml":{"items":[{"name":"dom","path":"Lib/xml/dom","contentType":"directory"},{"name":"etree","path":"Lib/xml/etree","contentType":"directory"},{"name":"parsers","path":"Lib/xml/parsers","contentType":"directory"},{"name":"sax","path":"Lib/xml/sax","contentType":"directory"},{"name":"__init__.py","path":"Lib/xml/__init__.py","contentType":"file"}],"totalCount":5},"Lib":{"items":[{"name":"__phello__","path":"Lib/__phello__","contentType":"directory"},{"name":"_pyrepl","path":"Lib/_pyrepl","contentType":"directory"},{"name":"asyncio","path":"Lib/asyncio","contentType":"directory"},{"name":"collections","path":"Lib/collections","contentType":"directory"},{"name":"concurrent","path":"Lib/concurrent","contentType":"directory"},{"name":"ctypes","path":"Lib/ctypes","contentType":"directory"},{"name":"curses","path":"Lib/curses","contentType":"directory"},{"name":"dbm","path":"Lib/dbm","contentType":"directory"},{"name":"email","path":"Lib/email","contentType":"directory"},{"name":"encodings","path":"Lib/encodings","contentType":"directory"},{"name":"ensurepip","path":"Lib/ensurepip","contentType":"directory"},{"name":"html","path":"Lib/html","contentType":"directory"},{"name":"http","path":"Lib/http","contentType":"directory"},{"name":"idlelib","path":"Lib/idlelib","contentType":"directory"},{"name":"importlib","path":"Lib/importlib","contentType":"directory"},{"name":"json","path":"Lib/json","contentType":"directory"},{"name":"logging","path":"Lib/logging","contentType":"directory"},{"name":"multiprocessing","path":"Lib/multiprocessing","contentType":"directory"},{"name":"pathlib","path":"Lib/pathlib","contentType":"directory"},{"name":"pydoc_data","path":"Lib/pydoc_data","contentType":"directory"},{"name":"re","path":"Lib/re","contentType":"directory"},{"name":"site-packages","path":"Lib/site-packages","contentType":"directory"},{"name":"sqlite3","path":"Lib/sqlite3","contentType":"directory"},{"name":"sysconfig","path":"Lib/sysconfig","contentType":"directory"},{"name":"test","path":"Lib/test","contentType":"directory"},{"name":"tkinter","path":"Lib/tkinter","contentType":"directory"},{"name":"tomllib","path":"Lib/tomllib","contentType":"directory"},{"name":"turtledemo","path":"Lib/turtledemo","contentType":"directory"},{"name":"unittest","path":"Lib/unittest","contentType":"directory"},{"name":"urllib","path":"Lib/urllib","contentType":"directory"},{"name":"venv","path":"Lib/venv","contentType":"directory"},{"name":"wsgiref","path":"Lib/wsgiref","contentType":"directory"},{"name":"xml","path":"Lib/xml","contentType":"directory"},{"name":"xmlrpc","path":"Lib/xmlrpc","contentType":"directory"},{"name":"zipfile","path":"Lib/zipfile","contentType":"directory"},{"name":"zoneinfo","path":"Lib/zoneinfo","contentType":"directory"},{"name":"__future__.py","path":"Lib/__future__.py","contentType":"file"},{"name":"__hello__.py","path":"Lib/__hello__.py","contentType":"file"},{"name":"_aix_support.py","path":"Lib/_aix_support.py","contentType":"file"},{"name":"_android_support.py","path":"Lib/_android_support.py","contentType":"file"},{"name":"_apple_support.py","path":"Lib/_apple_support.py","contentType":"file"},{"name":"_collections_abc.py","path":"Lib/_collections_abc.py","contentType":"file"},{"name":"_colorize.py","path":"Lib/_colorize.py","contentType":"file"},{"name":"_compat_pickle.py","path":"Lib/_compat_pickle.py","contentType":"file"},{"name":"_compression.py","path":"Lib/_compression.py","contentType":"file"},{"name":"_ios_support.py","path":"Lib/_ios_support.py","contentType":"file"},{"name":"_markupbase.py","path":"Lib/_markupbase.py","contentType":"file"},{"name":"_opcode_metadata.py","path":"Lib/_opcode_metadata.py","contentType":"file"},{"name":"_osx_support.py","path":"Lib/_osx_support.py","contentType":"file"},{"name":"_py_abc.py","path":"Lib/_py_abc.py","contentType":"file"},{"name":"_pydatetime.py","path":"Lib/_pydatetime.py","contentType":"file"},{"name":"_pydecimal.py","path":"Lib/_pydecimal.py","contentType":"file"},{"name":"_pyio.py","path":"Lib/_pyio.py","contentType":"file"},{"name":"_pylong.py","path":"Lib/_pylong.py","contentType":"file"},{"name":"_sitebuiltins.py","path":"Lib/_sitebuiltins.py","contentType":"file"},{"name":"_strptime.py","path":"Lib/_strptime.py","contentType":"file"},{"name":"_threading_local.py","path":"Lib/_threading_local.py","contentType":"file"},{"name":"_weakrefset.py","path":"Lib/_weakrefset.py","contentType":"file"},{"name":"abc.py","path":"Lib/abc.py","contentType":"file"},{"name":"antigravity.py","path":"Lib/antigravity.py","contentType":"file"},{"name":"argparse.py","path":"Lib/argparse.py","contentType":"file"},{"name":"ast.py","path":"Lib/ast.py","contentType":"file"},{"name":"base64.py","path":"Lib/base64.py","contentType":"file"},{"name":"bdb.py","path":"Lib/bdb.py","contentType":"file"},{"name":"bisect.py","path":"Lib/bisect.py","contentType":"file"},{"name":"bz2.py","path":"Lib/bz2.py","contentType":"file"},{"name":"cProfile.py","path":"Lib/cProfile.py","contentType":"file"},{"name":"calendar.py","path":"Lib/calendar.py","contentType":"file"},{"name":"cmd.py","path":"Lib/cmd.py","contentType":"file"},{"name":"code.py","path":"Lib/code.py","contentType":"file"},{"name":"codecs.py","path":"Lib/codecs.py","contentType":"file"},{"name":"codeop.py","path":"Lib/codeop.py","contentType":"file"},{"name":"colorsys.py","path":"Lib/colorsys.py","contentType":"file"},{"name":"compileall.py","path":"Lib/compileall.py","contentType":"file"},{"name":"configparser.py","path":"Lib/configparser.py","contentType":"file"},{"name":"contextlib.py","path":"Lib/contextlib.py","contentType":"file"},{"name":"contextvars.py","path":"Lib/contextvars.py","contentType":"file"},{"name":"copy.py","path":"Lib/copy.py","contentType":"file"},{"name":"copyreg.py","path":"Lib/copyreg.py","contentType":"file"},{"name":"csv.py","path":"Lib/csv.py","contentType":"file"},{"name":"dataclasses.py","path":"Lib/dataclasses.py","contentType":"file"},{"name":"datetime.py","path":"Lib/datetime.py","contentType":"file"},{"name":"decimal.py","path":"Lib/decimal.py","contentType":"file"},{"name":"difflib.py","path":"Lib/difflib.py","contentType":"file"},{"name":"dis.py","path":"Lib/dis.py","contentType":"file"},{"name":"doctest.py","path":"Lib/doctest.py","contentType":"file"},{"name":"enum.py","path":"Lib/enum.py","contentType":"file"},{"name":"filecmp.py","path":"Lib/filecmp.py","contentType":"file"},{"name":"fileinput.py","path":"Lib/fileinput.py","contentType":"file"},{"name":"fnmatch.py","path":"Lib/fnmatch.py","contentType":"file"},{"name":"fractions.py","path":"Lib/fractions.py","contentType":"file"},{"name":"ftplib.py","path":"Lib/ftplib.py","contentType":"file"},{"name":"functools.py","path":"Lib/functools.py","contentType":"file"},{"name":"genericpath.py","path":"Lib/genericpath.py","contentType":"file"},{"name":"getopt.py","path":"Lib/getopt.py","contentType":"file"},{"name":"getpass.py","path":"Lib/getpass.py","contentType":"file"},{"name":"gettext.py","path":"Lib/gettext.py","contentType":"file"},{"name":"glob.py","path":"Lib/glob.py","contentType":"file"},{"name":"graphlib.py","path":"Lib/graphlib.py","contentType":"file"},{"name":"gzip.py","path":"Lib/gzip.py","contentType":"file"},{"name":"hashlib.py","path":"Lib/hashlib.py","contentType":"file"},{"name":"heapq.py","path":"Lib/heapq.py","contentType":"file"},{"name":"hmac.py","path":"Lib/hmac.py","contentType":"file"},{"name":"imaplib.py","path":"Lib/imaplib.py","contentType":"file"},{"name":"inspect.py","path":"Lib/inspect.py","contentType":"file"},{"name":"io.py","path":"Lib/io.py","contentType":"file"},{"name":"ipaddress.py","path":"Lib/ipaddress.py","contentType":"file"},{"name":"keyword.py","path":"Lib/keyword.py","contentType":"file"},{"name":"linecache.py","path":"Lib/linecache.py","contentType":"file"},{"name":"locale.py","path":"Lib/locale.py","contentType":"file"},{"name":"lzma.py","path":"Lib/lzma.py","contentType":"file"},{"name":"mailbox.py","path":"Lib/mailbox.py","contentType":"file"},{"name":"mimetypes.py","path":"Lib/mimetypes.py","contentType":"file"},{"name":"modulefinder.py","path":"Lib/modulefinder.py","contentType":"file"},{"name":"netrc.py","path":"Lib/netrc.py","contentType":"file"},{"name":"ntpath.py","path":"Lib/ntpath.py","contentType":"file"},{"name":"nturl2path.py","path":"Lib/nturl2path.py","contentType":"file"},{"name":"numbers.py","path":"Lib/numbers.py","contentType":"file"},{"name":"opcode.py","path":"Lib/opcode.py","contentType":"file"},{"name":"operator.py","path":"Lib/operator.py","contentType":"file"},{"name":"optparse.py","path":"Lib/optparse.py","contentType":"file"},{"name":"os.py","path":"Lib/os.py","contentType":"file"},{"name":"pdb.py","path":"Lib/pdb.py","contentType":"file"},{"name":"pickle.py","path":"Lib/pickle.py","contentType":"file"},{"name":"pickletools.py","path":"Lib/pickletools.py","contentType":"file"},{"name":"pkgutil.py","path":"Lib/pkgutil.py","contentType":"file"},{"name":"platform.py","path":"Lib/platform.py","contentType":"file"},{"name":"plistlib.py","path":"Lib/plistlib.py","contentType":"file"},{"name":"poplib.py","path":"Lib/poplib.py","contentType":"file"},{"name":"posixpath.py","path":"Lib/posixpath.py","contentType":"file"},{"name":"pprint.py","path":"Lib/pprint.py","contentType":"file"},{"name":"profile.py","path":"Lib/profile.py","contentType":"file"},{"name":"pstats.py","path":"Lib/pstats.py","contentType":"file"},{"name":"pty.py","path":"Lib/pty.py","contentType":"file"},{"name":"py_compile.py","path":"Lib/py_compile.py","contentType":"file"},{"name":"pyclbr.py","path":"Lib/pyclbr.py","contentType":"file"},{"name":"pydoc.py","path":"Lib/pydoc.py","contentType":"file"},{"name":"queue.py","path":"Lib/queue.py","contentType":"file"},{"name":"quopri.py","path":"Lib/quopri.py","contentType":"file"},{"name":"random.py","path":"Lib/random.py","contentType":"file"},{"name":"reprlib.py","path":"Lib/reprlib.py","contentType":"file"},{"name":"rlcompleter.py","path":"Lib/rlcompleter.py","contentType":"file"},{"name":"runpy.py","path":"Lib/runpy.py","contentType":"file"},{"name":"sched.py","path":"Lib/sched.py","contentType":"file"},{"name":"secrets.py","path":"Lib/secrets.py","contentType":"file"},{"name":"selectors.py","path":"Lib/selectors.py","contentType":"file"},{"name":"shelve.py","path":"Lib/shelve.py","contentType":"file"},{"name":"shlex.py","path":"Lib/shlex.py","contentType":"file"},{"name":"shutil.py","path":"Lib/shutil.py","contentType":"file"},{"name":"signal.py","path":"Lib/signal.py","contentType":"file"},{"name":"site.py","path":"Lib/site.py","contentType":"file"},{"name":"smtplib.py","path":"Lib/smtplib.py","contentType":"file"},{"name":"socket.py","path":"Lib/socket.py","contentType":"file"},{"name":"socketserver.py","path":"Lib/socketserver.py","contentType":"file"},{"name":"sre_compile.py","path":"Lib/sre_compile.py","contentType":"file"},{"name":"sre_constants.py","path":"Lib/sre_constants.py","contentType":"file"},{"name":"sre_parse.py","path":"Lib/sre_parse.py","contentType":"file"},{"name":"ssl.py","path":"Lib/ssl.py","contentType":"file"},{"name":"stat.py","path":"Lib/stat.py","contentType":"file"},{"name":"statistics.py","path":"Lib/statistics.py","contentType":"file"},{"name":"string.py","path":"Lib/string.py","contentType":"file"},{"name":"stringprep.py","path":"Lib/stringprep.py","contentType":"file"},{"name":"struct.py","path":"Lib/struct.py","contentType":"file"},{"name":"subprocess.py","path":"Lib/subprocess.py","contentType":"file"},{"name":"symtable.py","path":"Lib/symtable.py","contentType":"file"},{"name":"tabnanny.py","path":"Lib/tabnanny.py","contentType":"file"},{"name":"tarfile.py","path":"Lib/tarfile.py","contentType":"file"},{"name":"tempfile.py","path":"Lib/tempfile.py","contentType":"file"},{"name":"textwrap.py","path":"Lib/textwrap.py","contentType":"file"},{"name":"this.py","path":"Lib/this.py","contentType":"file"},{"name":"threading.py","path":"Lib/threading.py","contentType":"file"},{"name":"timeit.py","path":"Lib/timeit.py","contentType":"file"},{"name":"token.py","path":"Lib/token.py","contentType":"file"},{"name":"tokenize.py","path":"Lib/tokenize.py","contentType":"file"},{"name":"trace.py","path":"Lib/trace.py","contentType":"file"},{"name":"traceback.py","path":"Lib/traceback.py","contentType":"file"},{"name":"tracemalloc.py","path":"Lib/tracemalloc.py","contentType":"file"},{"name":"tty.py","path":"Lib/tty.py","contentType":"file"},{"name":"turtle.py","path":"Lib/turtle.py","contentType":"file"},{"name":"types.py","path":"Lib/types.py","contentType":"file"},{"name":"typing.py","path":"Lib/typing.py","contentType":"file"},{"name":"uuid.py","path":"Lib/uuid.py","contentType":"file"},{"name":"warnings.py","path":"Lib/warnings.py","contentType":"file"},{"name":"wave.py","path":"Lib/wave.py","contentType":"file"},{"name":"weakref.py","path":"Lib/weakref.py","contentType":"file"},{"name":"webbrowser.py","path":"Lib/webbrowser.py","contentType":"file"},{"name":"zipapp.py","path":"Lib/zipapp.py","contentType":"file"},{"name":"zipimport.py","path":"Lib/zipimport.py","contentType":"file"}],"totalCount":188},"":{"items":[{"name":".azure-pipelines","path":".azure-pipelines","contentType":"directory"},{"name":".devcontainer","path":".devcontainer","contentType":"directory"},{"name":".github","path":".github","contentType":"directory"},{"name":"Android","path":"Android","contentType":"directory"},{"name":"Doc","path":"Doc","contentType":"directory"},{"name":"Grammar","path":"Grammar","contentType":"directory"},{"name":"Include","path":"Include","contentType":"directory"},{"name":"InternalDocs","path":"InternalDocs","contentType":"directory"},{"name":"Lib","path":"Lib","contentType":"directory"},{"name":"Mac","path":"Mac","contentType":"directory"},{"name":"Misc","path":"Misc","contentType":"directory"},{"name":"Modules","path":"Modules","contentType":"directory"},{"name":"Objects","path":"Objects","contentType":"directory"},{"name":"PC","path":"PC","contentType":"directory"},{"name":"PCbuild","path":"PCbuild","contentType":"directory"},{"name":"Parser","path":"Parser","contentType":"directory"},{"name":"Programs","path":"Programs","contentType":"directory"},{"name":"Python","path":"Python","contentType":"directory"},{"name":"Tools","path":"Tools","contentType":"directory"},{"name":"iOS","path":"iOS","contentType":"directory"},{"name":".coveragerc","path":".coveragerc","contentType":"file"},{"name":".editorconfig","path":".editorconfig","contentType":"file"},{"name":".gitattributes","path":".gitattributes","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".mailmap","path":".mailmap","contentType":"file"},{"name":".pre-commit-config.yaml","path":".pre-commit-config.yaml","contentType":"file"},{"name":".readthedocs.yml","path":".readthedocs.yml","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"Makefile.pre.in","path":"Makefile.pre.in","contentType":"file"},{"name":"README.rst","path":"README.rst","contentType":"file"},{"name":"aclocal.m4","path":"aclocal.m4","contentType":"file"},{"name":"config.guess","path":"config.guess","contentType":"file"},{"name":"config.sub","path":"config.sub","contentType":"file"},{"name":"configure","path":"configure","contentType":"file"},{"name":"configure.ac","path":"configure.ac","contentType":"file"},{"name":"install-sh","path":"install-sh","contentType":"file"},{"name":"pyconfig.h.in","path":"pyconfig.h.in","contentType":"file"}],"totalCount":37}},"fileTreeProcessingTime":32.440081,"foldersToFetch":[],"incompleteFileTree":false,"repo":{"id":81598961,"defaultBranch":"main","name":"cpython","ownerLogin":"python","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-02-10T19:23:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1525981?v=4","public":true,"private":false,"isOrgOwned":true},"codeLineWrapEnabled":false,"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"3.13","listCacheKey":"v0:1746633766.0","canEdit":false,"refType":"branch","currentOid":"1dbb644a5b458aebc48022d2c28d16dfd8ae0d73"},"path":"Lib/xml/dom/pulldom.py","currentUser":null,"blob":{"rawLines":["import xml.sax","import xml.sax.handler","","START_ELEMENT = \"START_ELEMENT\"","END_ELEMENT = \"END_ELEMENT\"","COMMENT = \"COMMENT\"","START_DOCUMENT = \"START_DOCUMENT\"","END_DOCUMENT = \"END_DOCUMENT\"","PROCESSING_INSTRUCTION = \"PROCESSING_INSTRUCTION\"","IGNORABLE_WHITESPACE = \"IGNORABLE_WHITESPACE\"","CHARACTERS = \"CHARACTERS\"","","class PullDOM(xml.sax.ContentHandler):"," _locator = None"," document = None",""," def __init__(self, documentFactory=None):"," from xml.dom import XML_NAMESPACE"," self.documentFactory = documentFactory"," self.firstEvent = [None, None]"," self.lastEvent = self.firstEvent"," self.elementStack = []"," self.push = self.elementStack.append"," try:"," self.pop = self.elementStack.pop"," except AttributeError:"," # use class' pop instead"," pass"," self._ns_contexts = [{XML_NAMESPACE:'xml'}] # contains uri -\u003e prefix dicts"," self._current_context = self._ns_contexts[-1]"," self.pending_events = []",""," def pop(self):"," result = self.elementStack[-1]"," del self.elementStack[-1]"," return result",""," def setDocumentLocator(self, locator):"," self._locator = locator",""," def startPrefixMapping(self, prefix, uri):"," if not hasattr(self, '_xmlns_attrs'):"," self._xmlns_attrs = []"," self._xmlns_attrs.append((prefix or 'xmlns', uri))"," self._ns_contexts.append(self._current_context.copy())"," self._current_context[uri] = prefix or None",""," def endPrefixMapping(self, prefix):"," self._current_context = self._ns_contexts.pop()",""," def startElementNS(self, name, tagName , attrs):"," # Retrieve xml namespace declaration attributes."," xmlns_uri = 'http://www.w3.org/2000/xmlns/'"," xmlns_attrs = getattr(self, '_xmlns_attrs', None)"," if xmlns_attrs is not None:"," for aname, value in xmlns_attrs:"," attrs._attrs[(xmlns_uri, aname)] = value"," self._xmlns_attrs = []"," uri, localname = name"," if uri:"," # When using namespaces, the reader may or may not"," # provide us with the original name. If not, create"," # *a* valid tagName from the current context."," if tagName is None:"," prefix = self._current_context[uri]"," if prefix:"," tagName = prefix + \":\" + localname"," else:"," tagName = localname"," if self.document:"," node = self.document.createElementNS(uri, tagName)"," else:"," node = self.buildDocument(uri, tagName)"," else:"," # When the tagname is not prefixed, it just appears as"," # localname"," if self.document:"," node = self.document.createElement(localname)"," else:"," node = self.buildDocument(None, localname)",""," for aname,value in attrs.items():"," a_uri, a_localname = aname"," if a_uri == xmlns_uri:"," if a_localname == 'xmlns':"," qname = a_localname"," else:"," qname = 'xmlns:' + a_localname"," attr = self.document.createAttributeNS(a_uri, qname)"," node.setAttributeNodeNS(attr)"," elif a_uri:"," prefix = self._current_context[a_uri]"," if prefix:"," qname = prefix + \":\" + a_localname"," else:"," qname = a_localname"," attr = self.document.createAttributeNS(a_uri, qname)"," node.setAttributeNodeNS(attr)"," else:"," attr = self.document.createAttribute(a_localname)"," node.setAttributeNode(attr)"," attr.value = value",""," self.lastEvent[1] = [(START_ELEMENT, node), None]"," self.lastEvent = self.lastEvent[1]"," self.push(node)",""," def endElementNS(self, name, tagName):"," self.lastEvent[1] = [(END_ELEMENT, self.pop()), None]"," self.lastEvent = self.lastEvent[1]",""," def startElement(self, name, attrs):"," if self.document:"," node = self.document.createElement(name)"," else:"," node = self.buildDocument(None, name)",""," for aname,value in attrs.items():"," attr = self.document.createAttribute(aname)"," attr.value = value"," node.setAttributeNode(attr)",""," self.lastEvent[1] = [(START_ELEMENT, node), None]"," self.lastEvent = self.lastEvent[1]"," self.push(node)",""," def endElement(self, name):"," self.lastEvent[1] = [(END_ELEMENT, self.pop()), None]"," self.lastEvent = self.lastEvent[1]",""," def comment(self, s):"," if self.document:"," node = self.document.createComment(s)"," self.lastEvent[1] = [(COMMENT, node), None]"," self.lastEvent = self.lastEvent[1]"," else:"," event = [(COMMENT, s), None]"," self.pending_events.append(event)",""," def processingInstruction(self, target, data):"," if self.document:"," node = self.document.createProcessingInstruction(target, data)"," self.lastEvent[1] = [(PROCESSING_INSTRUCTION, node), None]"," self.lastEvent = self.lastEvent[1]"," else:"," event = [(PROCESSING_INSTRUCTION, target, data), None]"," self.pending_events.append(event)",""," def ignorableWhitespace(self, chars):"," node = self.document.createTextNode(chars)"," self.lastEvent[1] = [(IGNORABLE_WHITESPACE, node), None]"," self.lastEvent = self.lastEvent[1]",""," def characters(self, chars):"," node = self.document.createTextNode(chars)"," self.lastEvent[1] = [(CHARACTERS, node), None]"," self.lastEvent = self.lastEvent[1]",""," def startDocument(self):"," if self.documentFactory is None:"," import xml.dom.minidom"," self.documentFactory = xml.dom.minidom.Document.implementation",""," def buildDocument(self, uri, tagname):"," # Can't do that in startDocument, since we need the tagname"," # XXX: obtain DocumentType"," node = self.documentFactory.createDocument(uri, tagname, None)"," self.document = node"," self.lastEvent[1] = [(START_DOCUMENT, node), None]"," self.lastEvent = self.lastEvent[1]"," self.push(node)"," # Put everything we have seen so far into the document"," for e in self.pending_events:"," if e[0][0] == PROCESSING_INSTRUCTION:"," _,target,data = e[0]"," n = self.document.createProcessingInstruction(target, data)"," e[0] = (PROCESSING_INSTRUCTION, n)"," elif e[0][0] == COMMENT:"," n = self.document.createComment(e[0][1])"," e[0] = (COMMENT, n)"," else:"," raise AssertionError(\"Unknown pending event \",e[0][0])"," self.lastEvent[1] = e"," self.lastEvent = e"," self.pending_events = None"," return node.firstChild",""," def endDocument(self):"," self.lastEvent[1] = [(END_DOCUMENT, self.document), None]"," self.pop()",""," def clear(self):"," \"clear(): Explicitly release parsing structures\""," self.document = None","","class ErrorHandler:"," def warning(self, exception):"," print(exception)"," def error(self, exception):"," raise exception"," def fatalError(self, exception):"," raise exception","","class DOMEventStream:"," def __init__(self, stream, parser, bufsize):"," self.stream = stream"," self.parser = parser"," self.bufsize = bufsize"," if not hasattr(self.parser, 'feed'):"," self.getEvent = self._slurp"," self.reset()",""," def reset(self):"," self.pulldom = PullDOM()"," # This content handler relies on namespace support"," self.parser.setFeature(xml.sax.handler.feature_namespaces, 1)"," self.parser.setContentHandler(self.pulldom)",""," def __next__(self):"," rc = self.getEvent()"," if rc:"," return rc"," raise StopIteration",""," def __iter__(self):"," return self",""," def expandNode(self, node):"," event = self.getEvent()"," parents = [node]"," while event:"," token, cur_node = event"," if cur_node is node:"," return"," if token != END_ELEMENT:"," parents[-1].appendChild(cur_node)"," if token == START_ELEMENT:"," parents.append(cur_node)"," elif token == END_ELEMENT:"," del parents[-1]"," event = self.getEvent()",""," def getEvent(self):"," # use IncrementalParser interface, so we get the desired"," # pull effect"," if not self.pulldom.firstEvent[1]:"," self.pulldom.lastEvent = self.pulldom.firstEvent"," while not self.pulldom.firstEvent[1]:"," buf = self.stream.read(self.bufsize)"," if not buf:"," self.parser.close()"," return None"," self.parser.feed(buf)"," rc = self.pulldom.firstEvent[1][0]"," self.pulldom.firstEvent[1] = self.pulldom.firstEvent[1][1]"," return rc",""," def _slurp(self):"," \"\"\" Fallback replacement for getEvent() using the"," standard SAX2 interface, which means we slurp the"," SAX events into memory (no performance gain, but"," we are compatible to all SAX parsers)."," \"\"\""," self.parser.parse(self.stream)"," self.getEvent = self._emit"," return self._emit()",""," def _emit(self):"," \"\"\" Fallback replacement for getEvent() that emits"," the events that _slurp() read previously."," \"\"\""," rc = self.pulldom.firstEvent[1][0]"," self.pulldom.firstEvent[1] = self.pulldom.firstEvent[1][1]"," return rc",""," def clear(self):"," \"\"\"clear(): Explicitly release parsing objects\"\"\""," self.pulldom.clear()"," del self.pulldom"," self.parser = None"," self.stream = None","","class SAX2DOM(PullDOM):",""," def startElementNS(self, name, tagName , attrs):"," PullDOM.startElementNS(self, name, tagName, attrs)"," curNode = self.elementStack[-1]"," parentNode = self.elementStack[-2]"," parentNode.appendChild(curNode)",""," def startElement(self, name, attrs):"," PullDOM.startElement(self, name, attrs)"," curNode = self.elementStack[-1]"," parentNode = self.elementStack[-2]"," parentNode.appendChild(curNode)",""," def processingInstruction(self, target, data):"," PullDOM.processingInstruction(self, target, data)"," node = self.lastEvent[0][1]"," parentNode = self.elementStack[-1]"," parentNode.appendChild(node)",""," def ignorableWhitespace(self, chars):"," PullDOM.ignorableWhitespace(self, chars)"," node = self.lastEvent[0][1]"," parentNode = self.elementStack[-1]"," parentNode.appendChild(node)",""," def characters(self, chars):"," PullDOM.characters(self, chars)"," node = self.lastEvent[0][1]"," parentNode = self.elementStack[-1]"," parentNode.appendChild(node)","","","default_bufsize = (2 ** 14) - 20","","def parse(stream_or_string, parser=None, bufsize=None):"," if bufsize is None:"," bufsize = default_bufsize"," if isinstance(stream_or_string, str):"," stream = open(stream_or_string, 'rb')"," else:"," stream = stream_or_string"," if not parser:"," parser = xml.sax.make_parser()"," return DOMEventStream(stream, parser, bufsize)","","def parseString(string, parser=None):"," from io import StringIO",""," bufsize = len(string)"," buf = StringIO(string)"," if not parser:"," parser = xml.sax.make_parser()"," return DOMEventStream(buf, parser, bufsize)"],"stylingDirectives":null,"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/python/cpython/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"pulldom.py","displayUrl":"https://github.com/python/cpython/blob/3.13/Lib/xml/dom/pulldom.py?raw=true","headerInfo":{"blobSize":"11.4 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"913141c","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fblob%2F3.13%2FLib%2Fxml%2Fdom%2Fpulldom.py","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"336","truncatedSloc":"292"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"Python","languageID":303,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/python/cpython/blob/3.13/Lib/xml/dom/pulldom.py","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/python/cpython/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/python/cpython/raw/refs/heads/3.13/Lib/xml/dom/pulldom.py","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":"/python/.github/blob/5a0a7cb55767fb3667fe2391bcb66bda638edcb4/FUNDING.yml","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"START_ELEMENT","kind":"constant","ident_start":39,"ident_end":52,"extent_start":39,"extent_end":70,"fully_qualified_name":"START_ELEMENT","ident_utf16":{"start":{"line_number":3,"utf16_col":0},"end":{"line_number":3,"utf16_col":13}},"extent_utf16":{"start":{"line_number":3,"utf16_col":0},"end":{"line_number":3,"utf16_col":31}}},{"name":"END_ELEMENT","kind":"constant","ident_start":71,"ident_end":82,"extent_start":71,"extent_end":98,"fully_qualified_name":"END_ELEMENT","ident_utf16":{"start":{"line_number":4,"utf16_col":0},"end":{"line_number":4,"utf16_col":11}},"extent_utf16":{"start":{"line_number":4,"utf16_col":0},"end":{"line_number":4,"utf16_col":27}}},{"name":"COMMENT","kind":"constant","ident_start":99,"ident_end":106,"extent_start":99,"extent_end":118,"fully_qualified_name":"COMMENT","ident_utf16":{"start":{"line_number":5,"utf16_col":0},"end":{"line_number":5,"utf16_col":7}},"extent_utf16":{"start":{"line_number":5,"utf16_col":0},"end":{"line_number":5,"utf16_col":19}}},{"name":"START_DOCUMENT","kind":"constant","ident_start":119,"ident_end":133,"extent_start":119,"extent_end":152,"fully_q 706B ualified_name":"START_DOCUMENT","ident_utf16":{"start":{"line_number":6,"utf16_col":0},"end":{"line_number":6,"utf16_col":14}},"extent_utf16":{"start":{"line_number":6,"utf16_col":0},"end":{"line_number":6,"utf16_col":33}}},{"name":"END_DOCUMENT","kind":"constant","ident_start":153,"ident_end":165,"extent_start":153,"extent_end":182,"fully_qualified_name":"END_DOCUMENT","ident_utf16":{"start":{"line_number":7,"utf16_col":0},"end":{"line_number":7,"utf16_col":12}},"extent_utf16":{"start":{"line_number":7,"utf16_col":0},"end":{"line_number":7,"utf16_col":29}}},{"name":"PROCESSING_INSTRUCTION","kind":"constant","ident_start":183,"ident_end":205,"extent_start":183,"extent_end":232,"fully_qualified_name":"PROCESSING_INSTRUCTION","ident_utf16":{"start":{"line_number":8,"utf16_col":0},"end":{"line_number":8,"utf16_col":22}},"extent_utf16":{"start":{"line_number":8,"utf16_col":0},"end":{"line_number":8,"utf16_col":49}}},{"name":"IGNORABLE_WHITESPACE","kind":"constant","ident_start":233,"ident_end":253,"extent_start":233,"extent_end":278,"fully_qualified_name":"IGNORABLE_WHITESPACE","ident_utf16":{"start":{"line_number":9,"utf16_col":0},"end":{"line_number":9,"utf16_col":20}},"extent_utf16":{"start":{"line_number":9,"utf16_col":0},"end":{"line_number":9,"utf16_col":45}}},{"name":"CHARACTERS","kind":"constant","ident_start":279,"ident_end":289,"extent_start":279,"extent_end":304,"fully_qualified_name":"CHARACTERS","ident_utf16":{"start":{"line_number":10,"utf16_col":0},"end":{"line_number":10,"utf16_col":10}},"extent_utf16":{"start":{"line_number":10,"utf16_col":0},"end":{"line_number":10,"utf16_col":25}}},{"name":"PullDOM","kind":"class","ident_start":312,"ident_end":319,"extent_start":306,"extent_end":7186,"fully_qualified_name":"PullDOM","ident_utf16":{"start":{"line_number":12,"utf16_col":6},"end":{"line_number":12,"utf16_col":13}},"extent_utf16":{"start":{"line_number":12,"utf16_col":0},"end":{"line_number":193,"utf16_col":28}}},{"name":"_locator","kind":"constant","ident_start":349,"ident_end":357,"extent_start":349,"extent_end":364,"fully_qualified_name":"PullDOM._locator","ident_utf16":{"start":{"line_number":13,"utf16_col":4},"end":{"line_number":13,"utf16_col":12}},"extent_utf16":{"start":{"line_number":13,"utf16_col":4},"end":{"line_number":13,"utf16_col":19}}},{"name":"document","kind":"constant","ident_start":369,"ident_end":377,"extent_start":369,"extent_end":384,"fully_qualified_name":"PullDOM.document","ident_utf16":{"start":{"line_number":14,"utf16_col":4},"end":{"line_number":14,"utf16_col":12}},"extent_utf16":{"start":{"line_number":14,"utf16_col":4},"end":{"line_number":14,"utf16_col":19}}},{"name":"__init__","kind":"function","ident_start":394,"ident_end":402,"extent_start":390,"extent_end":989,"fully_qualified_name":"PullDOM.__init__","ident_utf16":{"start":{"line_number":16,"utf16_col":8},"end":{"line_number":16,"utf16_col":16}},"extent_utf16":{"start":{"line_number":16,"utf16_col":4},"end":{"line_number":30,"utf16_col":32}}},{"name":"pop","kind":"function","ident_start":999,"ident_end":1002,"extent_start":995,"extent_end":1104,"fully_qualified_name":"PullDOM.pop","ident_utf16":{"start":{"line_number":32,"utf16_col":8},"end":{"line_number":32,"utf16_col":11}},"extent_utf16":{"start":{"line_number":32,"utf16_col":4},"end":{"line_number":35,"utf16_col":21}}},{"name":"setDocumentLocator","kind":"function","ident_start":1114,"ident_end":1132,"extent_start":1110,"extent_end":1180,"fully_qualified_name":"PullDOM.setDocumentLocator","ident_utf16":{"start":{"line_number":37,"utf16_col":8},"end":{"line_number":37,"utf16_col":26}},"extent_utf16":{"start":{"line_number":37,"utf16_col":4},"end":{"line_number":38,"utf16_col":31}}},{"name":"startPrefixMapping","kind":"function","ident_start":1190,"ident_end":1208,"extent_start":1186,"extent_end":1483,"fully_qualified_name":"PullDOM.startPrefixMapping","ident_utf16":{"start":{"line_number":40,"utf16_col":8},"end":{"line_number":40,"utf16_col":26}},"extent_utf16":{"start":{"line_number":40,"utf16_col":4},"end":{"line_number":45,"utf16_col":51}}},{"name":"endPrefixMapping","kind":"function","ident_start":1493,"ident_end":1509,"extent_start":1489,"extent_end":1580,"fully_qualified_name":"PullDOM.endPrefixMapping","ident_utf16":{"start":{"line_number":47,"utf16_col":8},"end":{"line_number":47,"utf16_col":24}},"extent_utf16":{"start":{"line_number":47,"utf16_col":4},"end":{"line_number":48,"utf16_col":55}}},{"name":"startElementNS","kind":"function","ident_start":1590,"ident_end":1604,"extent_start":1586,"extent_end":3888,"fully_qualified_name":"PullDOM.startElementNS","ident_utf16":{"start":{"line_number":50,"utf16_col":8},"end":{"line_number":50,"utf16_col":22}},"extent_utf16":{"start":{"line_number":50,"utf16_col":4},"end":{"line_number":105,"utf16_col":23}}},{"name":"endElementNS","kind":"function","ident_start":3898,"ident_end":3910,"extent_start":3894,"extent_end":4037,"fully_qualified_name":"PullDOM.endElementNS","ident_utf16":{"start":{"line_number":107,"utf16_col":8},"end":{"line_number":107,"utf16_col":20}},"extent_utf16":{"start":{"line_number":107,"utf16_col":4},"end":{"line_number":109,"utf16_col":42}}},{"name":"startElement","kind":"function","ident_start":4047,"ident_end":4059,"extent_start":4043,"extent_end":4518,"fully_qualified_name":"PullDOM.startElement","ident_utf16":{"start":{"line_number":111,"utf16_col":8},"end":{"line_number":111,"utf16_col":20}},"extent_utf16":{"start":{"line_number":111,"utf16_col":4},"end":{"line_number":124,"utf16_col":23}}},{"name":"endElement","kind":"function","ident_start":4528,"ident_end":4538,"extent_start":4524,"extent_end":4656,"fully_qualified_name":"PullDOM.endElement","ident_utf16":{"start":{"line_number":126,"utf16_col":8},"end":{"line_number":126,"utf16_col":18}},"extent_utf16":{"start":{"line_number":126,"utf16_col":4},"end":{"line_number":128,"utf16_col":42}}},{"name":"comment","kind":"function","ident_start":4666,"ident_end":4673,"extent_start":4662,"extent_end":4963,"fully_qualified_name":"PullDOM.comment","ident_utf16":{"start":{"line_number":130,"utf16_col":8},"end":{"line_number":130,"utf16_col":15}},"extent_utf16":{"start":{"line_number":130,"utf16_col":4},"end":{"line_number":137,"utf16_col":45}}},{"name":"processingInstruction","kind":"function","ident_start":4973,"ident_end":4994,"extent_start":4969,"extent_end":5361,"fully_qualified_name":"PullDOM.processingInstruction","ident_utf16":{"start":{"line_number":139,"utf16_col":8},"end":{"line_number":139,"utf16_col":29}},"extent_utf16":{"start":{"line_number":139,"utf16_col":4},"end":{"line_number":146,"utf16_col":45}}},{"name":"ignorableWhitespace","kind":"function","ident_start":5371,"ident_end":5390,"extent_start":5367,"extent_end":5563,"fully_qualified_name":"PullDOM.ignorableWhitespace","ident_utf16":{"start":{"line_number":148,"utf16_col":8},"end":{"line_number":148,"utf16_col":27}},"extent_utf16":{"start":{"line_number":148,"utf16_col":4},"end":{"line_number":151,"utf16_col":42}}},{"name":"characters","kind":"function","ident_start":5573,"ident_end":5583,"extent_start":5569,"extent_end":5746,"fully_qualified_name":"PullDOM.characters","ident_utf16":{"start":{"line_number":153,"utf16_col":8},"end":{"line_number":153,"utf16_col":18}},"extent_utf16":{"start":{"line_number":153,"utf16_col":4},"end":{"line_number":156,"utf16_col":42}}},{"name":"startDocument","kind":"function","ident_start":5756,"ident_end":5769,"extent_start":5752,"extent_end":5927,"fully_qualified_name":"PullDOM.startDocument","ident_utf16":{"start":{"line_number":158,"utf16_col":8},"end":{"line_number":158,"utf16_col":21}},"extent_utf16":{"start":{"line_number":158,"utf16_col":4},"end":{"line_number":161,"utf16_col":74}}},{"name":"buildDocument","kind":"function","ident_start":5937,"ident_end":5950,"extent_start":5933,"extent_end":6965,"fully_qualified_name":"PullDOM.buildDocument","ident_utf16":{"start":{"line_number":163,"utf16_col":8},"end":{"line_number":163,"utf16_col":21}},"extent_utf16":{"start":{"line_number":163,"utf16_col":4},"end":{"line_number":185,"utf16_col":30}}},{"name":"endDocument","kind":"function","ident_start":6975,"ident_end":6986,"extent_start":6971,"extent_end":7078,"fully_qualified_name":"PullDOM.endDocument","ident_utf16":{"start":{"line_number":187,"utf16_col":8},"end":{"line_number":187,"utf16_col":19}},"extent_utf16":{"start":{"line_number":187,"utf16_col":4},"end":{"line_number":189,"utf16_col":18}}},{"name":"clear","kind":"function","ident_start":7088,"ident_end":7093,"extent_start":7084,"extent_end":7186,"fully_qualified_name":"PullDOM.clear","ident_utf16":{"start":{"line_number":191,"utf16_col":8},"end":{"line_number":191,"utf16_col":13}},"extent_utf16":{"start":{"line_number":191,"utf16_col":4},"end":{"line_number":193,"utf16_col":28}}},{"name":"ErrorHandler","kind":"class","ident_start":7194,"ident_end":7206,"extent_start":7188,"extent_end":7383,"fully_qualified_name":"ErrorHandler","ident_utf16":{"start":{"line_number":195,"utf16_col":6},"end":{"line_number":195,"utf16_col":18}},"extent_utf16":{"start":{"line_number":195,"utf16_col":0},"end":{"line_number":201,"utf16_col":23}}},{"name":"warning","kind":"function","ident_start":7216,"ident_end":7223,"extent_start":7212,"extent_end":7266,"fully_qualified_name":"ErrorHandler.warning","ident_utf16":{"start":{"line_number":196,"utf16_col":8},"end":{"line_number":196,"utf16_col":15}},"extent_utf16":{"start":{"line_number":196,"utf16_col":4},"end":{"line_number":197,"utf16_col":24}}},{"name":"error","kind":"function","ident_start":7275,"ident_end":7280,"extent_start":7271,"extent_end":7322,"fully_qualified_name":"ErrorHandler.error","ident_utf16":{"start":{"line_number":198,"utf16_col":8},"end":{"line_number":198,"utf16_col":13}},"extent_utf16":{"start":{"line_number":198,"utf16_col":4},"end":{"line_number":199,"utf16_col":23}}},{"name":"fatalError","kind":"function","ident_start":7331,"ident_end":7341,"extent_start":7327,"extent_end":7383,"fully_qualified_name":"ErrorHandler.fatalError","ident_utf16":{"start":{"line_number":200,"utf16_col":8},"end":{"line_number":200,"utf16_col":18}},"extent_utf16":{"start":{"line_number":200,"utf16_col":4},"end":{"line_number":201,"utf16_col":23}}},{"name":"DOMEventStream","kind":"class","ident_start":7391,"ident_end":7405,"extent_start":7385,"extent_end":9920,"fully_qualified_name":"DOMEventStream","ident_utf16":{"start":{"line_number":203,"utf16_col":6},"end":{"line_number":203,"utf16_col":20}},"extent_utf16":{"start":{"line_number":203,"utf16_col":0},"end":{"line_number":280,"utf16_col":26}}},{"name":"__init__","kind":"function","ident_start":7415,"ident_end":7423,"extent_start":7411,"extent_end":7650,"fully_qualified_name":"DOMEventStream.__init__","ident_utf16":{"start":{"line_number":204,"utf16_col":8},"end":{"line_number":204,"utf16_col":16}},"extent_utf16":{"start":{"line_number":204,"utf16_col":4},"end":{"line_number":210,"utf16_col":20}}},{"name":"reset","kind":"function","ident_start":7660,"ident_end":7665,"extent_start":7656,"extent_end":7886,"fully_qualified_name":"DOMEventStream.reset","ident_utf16":{"start":{"line_number":212,"utf16_col":8},"end":{"line_number":212,"utf16_col":13}},"extent_utf16":{"start":{"line_number":212,"utf16_col":4},"end":{"line_number":216,"utf16_col":51}}},{"name":"__next__","kind":"function","ident_start":7896,"ident_end":7904,"extent_start":7892,"extent_end":8005,"fully_qualified_name":"DOMEventStream.__next__","ident_utf16":{"start":{"line_number":218,"utf16_col":8},"end":{"line_number":218,"utf16_col":16}},"extent_utf16":{"start":{"line_number":218,"utf16_col":4},"end":{"line_number":222,"utf16_col":27}}},{"name":"__iter__","kind":"function","ident_start":8015,"ident_end":8023,"extent_start":8011,"extent_end":8050,"fully_qualified_name":"DOMEventStream.__iter__","ident_utf16":{"start":{"line_number":224,"utf16_col":8},"end":{"line_number":224,"utf16_col":16}},"extent_utf16":{"start":{"line_number":224,"utf16_col":4},"end":{"line_number":225,"utf16_col":19}}},{"name":"expandNode","kind":"function","ident_start":8060,"ident_end":8070,"extent_start":8056,"extent_end":8527,"fully_qualified_name":"DOMEventStream.expandNode","ident_utf16":{"start":{"line_number":227,"utf16_col":8},"end":{"line_number":227,"utf16_col":18}},"extent_utf16":{"start":{"line_number":227,"utf16_col":4},"end":{"line_number":240,"utf16_col":35}}},{"name":"getEvent","kind":"function","ident_start":8537,"ident_end":8545,"extent_start":8533,"extent_end":9088,"fully_qualified_name":"DOMEventStream.getEvent","ident_utf16":{"start":{"line_number":242,"utf16_col":8},"end":{"line_number":242,"utf16_col":16}},"extent_utf16":{"start":{"line_number":242,"utf16_col":4},"end":{"line_number":255,"utf16_col":17}}},{"name":"_slurp","kind":"function","ident_start":9098,"ident_end":9104,"extent_start":9094,"extent_end":9457,"fully_qualified_name":"DOMEventStream._slurp","ident_utf16":{"start":{"line_number":257,"utf16_col":8},"end":{"line_number":257,"utf16_col":14}},"extent_utf16":{"start":{"line_number":257,"utf16_col":4},"end":{"line_number":265,"utf16_col":27}}},{"name":"_emit","kind":"function","ident_start":9467,"ident_end":9472,"extent_start":9463,"extent_end":9732,"fully_qualified_name":"DOMEventStream._emit","ident_utf16":{"start":{"line_number":267,"utf16_col":8},"end":{"line_number":267,"utf16_col":13}},"extent_utf16":{"start":{"line_number":267,"utf16_col":4},"end":{"line_number":273,"utf16_col":17}}},{"name":"clear","kind":"function","ident_start":9742,"ident_end":9747,"extent_start":9738,"extent_end":9920,"fully_qualified_name":"DOMEventStream.clear","ident_utf16":{"start":{"line_number":275,"utf16_col":8},"end":{"line_number":275,"utf16_col":13}},"extent_utf16":{"start":{"line_number":275,"utf16_col":4},"end":{"line_number":280,"utf16_col":26}}},{"name":"SAX2DOM","kind":"class","ident_start":9928,"ident_end":9935,"extent_start":9922,"extent_end":11018,"fully_qualified_name":"SAX2DOM","ident_utf16":{"start":{"line_number":282,"utf16_col":6},"end":{"line_number":282,"utf16_col":13}},"extent_utf16":{"start":{"line_number":282,"utf16_col":0},"end":{"line_number":312,"utf16_col":36}}},{"name":"startElementNS","kind":"function","ident_start":9955,"ident_end":9969,"extent_start":9951,"extent_end":10181,"fully_qualified_name":"SAX2DOM.startElementNS","ident_utf16":{"start":{"line_number":284,"utf16_col":8},"end":{"line_number":284,"utf16_col":22}},"extent_utf16":{"start":{"line_number":284,"utf16_col":4},"end":{"line_number":288,"utf16_col":39}}},{"name":"startElement","kind":"function","ident_start":10191,"ident_end":10203,"extent_start":10187,"extent_end":10394,"fully_qualified_name":"SAX2DOM.startElement","ident_utf16":{"start":{"line_number":290,"utf16_col":8},"end":{"line_number":290,"utf16_col":20}},"extent_utf16":{"start":{"line_number":290,"utf16_col":4},"end":{"line_number":294,"utf16_col":39}}},{"name":"processingInstruction","kind":"function","ident_start":10404,"ident_end":10425,"extent_start":10400,"extent_end":10620,"fully_qualified_name":"SAX2DOM.processingInstruction","ident_utf16":{"start":{"line_number":296,"utf16_col":8},"end":{"line_number":296,"utf16_col":29}},"extent_utf16":{"start":{"line_number":296,"utf16_col":4},"end":{"line_number":300,"utf16_col":36}}},{"name":"ignorableWhitespace","kind":"function","ident_start":10630,"ident_end":10649,"extent_start":10626,"extent_end":10828,"fully_qualified_name":"SAX2DOM.ignorableWhitespace","ident_utf16":{"start":{"line_number":302,"utf16_col":8},"end":{"line_number":302,"utf16_col":27}},"extent_utf16":{"start":{"line_number":302,"utf16_col":4},"end":{"line_number":306,"utf16_col":36}}},{"name":"characters","kind":"function","ident_start":10838,"ident_end":10848,"extent_start":10834,"extent_end":11018,"fully_qualified_name":"SAX2DOM.characters","ident_utf16":{"start":{"line_number":308,"utf16_col":8},"end":{"line_number":308,"utf16_col":18}},"extent_utf16":{"start":{"line_number":308,"utf16_col":4},"end":{"line_number":312,"utf16_col":36}}},{"name":"default_bufsize","kind":"constant","ident_start":11021,"ident_end":11036,"extent_start":11021,"extent_end":11053,"fully_qualified_name":"default_bufsize","ident_utf16":{"start":{"line_number":315,"utf16_col":0},"end":{"line_number":315,"utf16_col":15}},"extent_utf16":{"start":{"line_number":315,"utf16_col":0},"end":{"line_number":315,"utf16_col":32}}},{"name":"parse","kind":"function","ident_start":11059,"ident_end":11064,"extent_start":11055,"extent_end":11409,"fully_qualified_name":"parse","ident_utf16":{"start":{"line_number":317,"utf16_col":4},"end":{"line_number":317,"utf16_col":9}},"extent_utf16":{"start":{"line_number":317,"utf16_col":0},"end":{"line_number":326,"utf16_col":50}}},{"name":"parseString","kind":"function","ident_start":11415,"ident_end":11426,"extent_start":11411,"extent_end":11636,"fully_qualified_name":"parseString","ident_utf16":{"start":{"line_number":328,"utf16_col":4},"end":{"line_number":328,"utf16_col":15}},"extent_utf16":{"start":{"line_number":328,"utf16_col":0},"end":{"line_number":335,"utf16_col":47}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"modelsAccessAllowed":false,"modelsRepoIntegrationEnabled":false,"csrf_tokens":{"/python/cpython/branches":{"post":"Y8ijsDn2KCoMOJGbCATLva38d3D6jkbLwOGsH0yeNLgYhkNRL42cJPom7WVFDnfxG3w2oMMLAphDEpRjUTN38g"},"/repos/preferences":{"post":"C2oubujAE2quM4qOvOatM9UrBpab-R-jjJdoNxA3jGDqdzbax_5TaIogCNErUeJvm1jS0HF3lB96X_32EjWKZA"}}},"title":"cpython/Lib/xml/dom/pulldom.py at 3.13 · python/cpython","appPayload":{"helpUrl":"https://docs.github.com","findFileWorkerPath":"/assets-cdn/worker/find-file-worker-7d7eb7c71814.js","findInFileWorkerPath":"/assets-cdn/worker/find-in-file-worker-1ae9fa256942.js","githubDevUrl":null,"enabled_features":{"code_nav_ui_events":false,"react_blob_overlay":false,"accessible_code_button":true,"github_models_repo_integration":false}}}
0