def canonicalize(self, include_nodes=True, sorted=False):
"""Generates a canonical :class:`etc.Node` object from this mock node.
"""
node_class = Directory if self.dir else Value
kwargs = {attr: getattr(self, attr) for attr in node_class.__slots__}
if self.dir:
if include_nodes:
nodes = [node.canonicalize() for node in
six.viewvalues(kwargs['nodes'])]
if sorted:
nodes.sort(key=lambda n: n.key)
kwargs['nodes'] = nodes
else:
kwargs['nodes'] = []
return node_class(**kwargs)
评论列表
文章目录