def node_info(cls_or_slf, node, attrpath, attrpaths, siblings, level, value_dims):
        """
        Given a node, return relevant information.
        """
        opts = None
        if hasattr(node, 'children'):
            (lvl, lines) = (level, [(level, cls_or_slf.component_type(node))])
            opts = cls_or_slf.option_info(node)
        elif hasattr(node, 'main'):
            (lvl, lines) = cls_or_slf.adjointlayout_info(node, siblings, level, value_dims)
        elif getattr(node, '_deep_indexable', False):
            (lvl, lines) = cls_or_slf.ndmapping_info(node, siblings, level, value_dims)
        elif hasattr(node, 'unit_format'):
            (lvl, lines) = level, [(level, repr(node))]
        else:
            (lvl, lines) = cls_or_slf.element_info(node, siblings, level, value_dims)
            opts = cls_or_slf.option_info(node)

        # The attribute indexing path acts as a prefix (if applicable)
        if attrpath is not None:
            padding = cls_or_slf.padding(attrpaths)
            (fst_lvl, fst_line) = lines[0]
            line = '.'+attrpath.ljust(padding) +' ' + fst_line
            lines[0] = (fst_lvl, line)
        else:
            fst_lvl = level

        if cls_or_slf.show_options and opts and opts.kwargs:
            lines += [(fst_lvl, l) for l in cls_or_slf.format_options(opts)]
        return (lvl, lines)
def node_info ( cls_or_slf , node , attrpath , attrpaths , siblings , level , value_dims ) : opts = None if hasattr ( node , 'children' ) : ( lvl , lines ) = ( level , [ ( level , cls_or_slf . component_type ( node ) ) ] ) opts = cls_or_slf . option_info ( node ) elif hasattr ( node , 'main' ) : ( lvl , lines ) = cls_or_slf . adjointlayout_info ( node , siblings , level , value_dims ) elif getattr ( node , '_deep_indexable' , False ) : ( lvl , lines ) = cls_or_slf . ndmapping_info ( node , siblings , level , value_dims ) elif hasattr ( node , 'unit_format' ) : ( lvl , lines ) = level , [ ( level , repr ( node ) ) ] else : ( lvl , lines ) = cls_or_slf . element_info ( node , siblings , level , value_dims ) opts = cls_or_slf . option_info ( node ) if attrpath is not None : padding = cls_or_slf . padding ( attrpaths ) ( fst_lvl , fst_line ) = lines [ 0 ] line = '.' + attrpath . ljust ( padding ) + ' ' + fst_line lines [ 0 ] = ( fst_lvl , line ) else : fst_lvl = level if cls_or_slf . show_options and opts and opts . kwargs : lines += [ ( fst_lvl , l ) for l in cls_or_slf . format_options ( opts ) ] return ( lvl , lines )
Given a node, return relevant information.