in src/simplify_docx/iterators/generic.py [0:0]
def build_iterators() -> None:
"""
Build the iterators for the current iteration
"""
_resovled: List[str] = []
def _resolve(x: str):
if x in _resovled:
return
xdef = __definitions__[x]
if not xdef.extends:
__built__[x] = xdef
_resovled.append(x)
return
TAGS_TO_YIELD = dict(xdef.TAGS_TO_YIELD) if xdef.TAGS_TO_YIELD else {}
TAGS_TO_NEST = dict(xdef.TAGS_TO_NEST) if xdef.TAGS_TO_NEST else {}
TAGS_TO_IGNORE = list(xdef.TAGS_TO_IGNORE) if xdef.TAGS_TO_IGNORE else []
TAGS_TO_WARN = dict(xdef.TAGS_TO_WARN) if xdef.TAGS_TO_WARN else {}
TAGS_TO_SKIP = dict(xdef.TAGS_TO_SKIP) if xdef.TAGS_TO_SKIP else {}
for dependency in xdef.extends:
try:
_resolve(dependency)
except KeyError:
msg = "Iterator for '%s' depends on undefined group '%s'" % (x, dependency,)
raise RuntimeError(msg)
ddef = __built__[dependency]
if ddef.TAGS_TO_YIELD:
TAGS_TO_YIELD.update(ddef.TAGS_TO_YIELD)
if ddef.TAGS_TO_NEST:
TAGS_TO_NEST.update(ddef.TAGS_TO_NEST)
if ddef.TAGS_TO_IGNORE:
TAGS_TO_IGNORE.extend(ddef.TAGS_TO_IGNORE)
if ddef.TAGS_TO_WARN:
TAGS_TO_WARN.update(ddef.TAGS_TO_WARN)
if ddef.TAGS_TO_SKIP:
TAGS_TO_SKIP.update(ddef.TAGS_TO_SKIP)
__built__[x] = ElementHandlers(
TAGS_TO_YIELD=TAGS_TO_YIELD,
TAGS_TO_NEST=TAGS_TO_NEST,
TAGS_TO_IGNORE=TAGS_TO_IGNORE,
TAGS_TO_WARN=TAGS_TO_WARN,
TAGS_TO_SKIP=TAGS_TO_SKIP,
)
_resovled.append(x)
for name in __definitions__:
_resolve(name)