MCPcopy Create free account
hub / github.com/RT-Thread/env-windows / _include

Function _include

tools/python-3.11.9-amd64/Lib/xml/etree/ElementInclude.py:131–185  ·  view source on GitHub ↗
(elem, loader, base_url, max_depth, _parent_hrefs)

Source from the content-addressed store, hash-verified

129
130
131def _include(elem, loader, base_url, max_depth, _parent_hrefs):
132 # look for xinclude elements
133 i = 0
134 while i < len(elem):
135 e = elem[i]
136 if e.tag == XINCLUDE_INCLUDE:
137 # process xinclude directive
138 href = e.get("href")
139 if base_url:
140 href = urljoin(base_url, href)
141 parse = e.get("parse", "xml")
142 if parse == "xml":
143 if href in _parent_hrefs:
144 raise FatalIncludeError("recursive include of %s" % href)
145 if max_depth == 0:
146 raise LimitedRecursiveIncludeError(
147 "maximum xinclude depth reached when including file %s" % href)
148 _parent_hrefs.add(href)
149 node = loader(href, parse)
150 if node is None:
151 raise FatalIncludeError(
152 "cannot load %r as %r" % (href, parse)
153 )
154 node = copy.copy(node) # FIXME: this makes little sense with recursive includes
155 _include(node, loader, href, max_depth - 1, _parent_hrefs)
156 _parent_hrefs.remove(href)
157 if e.tail:
158 node.tail = (node.tail or "") + e.tail
159 elem[i] = node
160 elif parse == "text":
161 text = loader(href, parse, e.get("encoding"))
162 if text is None:
163 raise FatalIncludeError(
164 "cannot load %r as %r" % (href, parse)
165 )
166 if e.tail:
167 text += e.tail
168 if i:
169 node = elem[i-1]
170 node.tail = (node.tail or "") + text
171 else:
172 elem.text = (elem.text or "") + text
173 del elem[i]
174 continue
175 else:
176 raise FatalIncludeError(
177 "unknown parse type in xi:include tag (%r)" % parse
178 )
179 elif e.tag == XINCLUDE_FALLBACK:
180 raise FatalIncludeError(
181 "xi:fallback tag must be child of xi:include (%r)" % e.tag
182 )
183 else:
184 _include(e, loader, base_url, max_depth, _parent_hrefs)
185 i += 1

Callers 1

includeFunction · 0.85

Calls 7

urljoinFunction · 0.90
FatalIncludeErrorClass · 0.85
getMethod · 0.45
addMethod · 0.45
copyMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected