Example #1
0
    def __init__(self, cls, member, display_name, is_inherited):
        self.display_name = display_name
        self.is_inherited = is_inherited
        self.in_method_table = hasattr(member,  '__call__') and not self.is_private
        self.args_text = '' if not self.in_method_table else "(%s)" % get_args_text_from_function(member)
        if isinstance(member, property):
            member = member.fget
        command_def = getattr(member, "command") if hasattr(member, "command") else None

        if self.display_name[-8:] == "__init__":
            if len(self.display_name) > 8:  # mask (make private) the __init__ methods for properties (intermediates)
                self.display_name = "__private__init__"
            self.summary_rst_name = ":ref:`__init__ <%s>`\ " % get_cls_init_rst_label(cls)
            self.rst_name = command_def.name if command_def else ""
        else:
            self.summary_rst_name = ":doc:`%s <%s>`\ " % (self.display_name, self.display_name.replace('.', '/'))
            self.rst_name = self.display_name.replace('.', '/')

        intermediate_class = get_intermediate_class(display_name, cls)
        if intermediate_class:
            self.display_name = "__private_" + self.display_name

        if command_def:
            command_def.rst_info = self
            self.maturity = command_def.maturity
        else:
            self.maturity = None
            #self.name = self.display_name
        self.doc = command_def.doc if command_def else self.doc_to_rst(member.__doc__)
Example #2
0
    def __init__(self, cls, member, display_name, is_inherited):
        self.display_name = display_name
        self.is_inherited = is_inherited
        self.in_method_table = hasattr(member,  '__call__') and not self.is_private
        self.args_text = '' if not self.in_method_table else "(%s)" % get_args_text_from_function(member)
        if isinstance(member, property):
            member = member.fget
        command_def = getattr(member, "command") if hasattr(member, "command") else None

        if self.display_name[-8:] == "__init__":
            if len(self.display_name) > 8:  # mask (make private) the __init__ methods for properties (intermediates)
                self.display_name = "__private__init__"
            self.summary_rst_name = ":ref:`__init__ <%s>`\ " % get_cls_init_rst_label(cls)
            self.rst_name = command_def.name if command_def else ""
        else:
            self.summary_rst_name = ":doc:`%s <%s>`\ " % (self.display_name, self.display_name.replace('.', '/'))
            self.rst_name = self.display_name.replace('.', '/')

        intermediate_class = get_intermediate_class(display_name, cls)
        if intermediate_class:
            self.display_name = "__private_" + self.display_name

        if command_def:
            command_def.rst_info = self
            self.maturity = command_def.maturity
        else:
            self.maturity = None
            #self.name = self.display_name
        self.doc = command_def.doc if command_def else self.doc_to_rst(member.__doc__)
Example #3
0
def get_member_rst_list(cls, intermediate_prefix=None):
    """Gets list of RstInfo objects for all the members of the given class"""
    prefix = intermediate_prefix if intermediate_prefix else ''
    # create a ordered dict of names -> whether the name is inherited or not, based on do dir() vs. __dict__ comparison
    members = OrderedDict([(name, name not in cls.__dict__)
                           for name in dir(cls) if not is_name_private(name)
                           ])  # True means we assume all are inherited

    member_rst_list = [
        RstInfo(cls, getattr(cls, name), prefix + name, is_inherited)
        for name, is_inherited in members.items()
    ]

    # add members accessed through intermediate properties, for example, graph.sampling.vertex_sample will appear as 'sampling.vertex_sample'
    properties = [(name, get_intermediate_class(name, cls))
                  for name in members.keys()
                  if isinstance(getattr(cls, name), property)]
    for property_name, intermediate_cls in properties:
        if intermediate_cls:
            p = prefix + property_name + '.'
            member_rst_list.extend(
                get_member_rst_list(intermediate_cls,
                                    intermediate_prefix=p))  # recursion

    return sorted(member_rst_list, key=lambda m: m.display_name)
Example #4
0
def get_member_rst_list(cls, intermediate_prefix=None):
    """Gets list of RstInfo objects for all the members of the given class"""
    prefix = intermediate_prefix if intermediate_prefix else ''
    # create a ordered dict of names -> whether the name is inherited or not, based on do dir() vs. __dict__ comparison
    members = OrderedDict([(name, name not in cls.__dict__) for name in dir(cls) if not is_name_private(name)])  # True means we assume all are inherited

    member_rst_list = [RstInfo(cls, getattr(cls, name), prefix + name, is_inherited) for name, is_inherited in members.items()]

    # add members accessed through intermediate properties, for example, graph.sampling.vertex_sample will appear as 'sampling.vertex_sample'
    properties = [(name, get_intermediate_class(name, cls)) for name in members.keys() if isinstance(getattr(cls, name), property)]
    for property_name, intermediate_cls in properties:
        if intermediate_cls:
            p = prefix + property_name + '.'
            member_rst_list.extend(get_member_rst_list(intermediate_cls, intermediate_prefix=p))  # recursion

    return sorted(member_rst_list, key=lambda m: m.display_name)
Example #5
0
 def walker(obj):
     for name in dir(obj):
         if not name.startswith("_") or (inc_init and name == "__init__"):
             a = getattr(obj, name)
             if inspect.isclass(a):
                 if is_api(a) and cls_func:
                     cls_func(a)
                 walker(a)
             else:
                 if isinstance(a, property):
                     intermediate_class = metaprog.get_intermediate_class(name, obj)
                     if intermediate_class:
                         walker(intermediate_class)
                     a = a.fget
                 if is_api(a) and attr_func:
                     attr_func(obj, a)
Example #6
0
 def walker(obj):
     for name in dir(obj):
         if not name.startswith("_") or (inc_init and name == "__init__"):
             a = getattr(obj, name)
             if inspect.isclass(a):
                 if is_api(a) and cls_func:
                     cls_func(a)
                 walker(a)
             else:
                 if isinstance(a, property):
                     intermediate_class = metaprog.get_intermediate_class(name, obj)
                     if intermediate_class:
                         walker(intermediate_class)
                     a = a.fget
                 if is_api(a) and attr_func:
                     attr_func(obj, a)