def yield_domgroups(items, kwitems, reverse=False):
"""Flattens the given items/kwitems.
Yields index and DOMGroup after flattening and a DOMGroup.
"reverse" parameter inverts the flattened yielding.
"""
verse = (1, -1)[reverse]
if isinstance(items, GeneratorType):
items = list(items)
unnamed = (DOMGroup(None, item) for item in items[::verse])
named = (DOMGroup(k, v) for k, v in list(kwitems.items())[::verse])
contents = (unnamed, named)[::verse]
for i, group in enumerate(chain(*contents)):
if isinstance(group.obj, DOMElement):
# Is the DOMGroup is a single DOMElement and we have a name we set his name accordingly
group.obj._name = group.name
yield i, group
评论列表
文章目录