

def iter_tree(self):
    '\n        Yields every system, node, config, etc. that needs to be produced to\n        the output.\n        '
    for item in self.confman.find(self.pattern, systems=self.show_systems, full_match=self.full_match, exclude=self.exclude):
        if isinstance(item, core.Node):
            if self.show_nodes:
                (yield dict(type='node', item=item))
        elif self.show_systems:
            (yield dict(type='system', item=item))
        if self.show_node_prop:
            items = dict(item.showable())
            if self.list_props:
                for (key_path, value) in util.path_iter_dict(items):
                    (yield dict(type='prop', item=item, prop={
                        key_path: value,
                    }))
            else:
                (yield dict(type='prop', item=item, prop=items))
        if isinstance(item, core.Node):
            for conf in sorted(item.iter_all_configs(), key=(lambda x: x.name)):
                if self.show_config:
                    (yield dict(type='config', item=item, config=conf, inherited=(conf.node != item)))
                if self.show_layers:
                    for (i, (sort_key, layer_name, file_path)) in enumerate(conf.settings.layers):
                        (yield dict(type='layer', item=item, config=conf, layer=layer_name, file_path=file_path, index=i))
                if self.show_config_prop:
                    (yield dict(type='confprop', item=item, config=conf, prop=conf))
                plugin = conf.get_plugin()
                if (plugin and self.show_controls and plugin.controls):
                    (yield dict(type='controls', item=item, config=conf, controls=plugin.controls))
                if self.show_settings:
                    for (key, value) in util.path_iter_dict(conf.settings):
                        (yield dict(type='setting', item=item, config=conf, setting=key, value=value))
        cloud_prop = item.get('cloud', {
            
        })
        if (self.show_cloud_prop and cloud_prop):
            if self.list_props:
                for (key_path, value) in util.path_iter_dict(cloud_prop):
                    (yield dict(type='cloud', item=item, prop={
                        key_path: value,
                    }))
            else:
                (yield dict(type='cloud', cloud=cloud_prop, item=item, prop=cloud_prop))
        if (self.query_status and cloud_prop.get('instance')):
            provider = self.tool.sky.get_provider(cloud_prop)
            status = provider.get_instance_status(cloud_prop)
            (yield dict(type='status', item=item, status=status))

dataset/ETHPy150Open ohmu/poni/poni/listout.py ListOutput.iter_tree/original