def partial_declaration_path(decl):
    """
    Returns a list of parent declarations names without template arguments that
    have default value.

    Args:
        decl (declaration_t): declaration for which the partial declaration
                              path should be calculated.

    Returns:
        list[(str | basestring)]: list of names, where first item is the top
                                  parent name and last item the inputted
                                  declaration name.
    """

    # TODO:
    # If parent declaration cache already has declaration_path, reuse it for
    # calculation.
    if not decl:
        return []
    if not decl.cache.partial_declaration_path:
        result = [decl.partial_name]
        parent = decl.parent
        while parent:
            if parent.cache.partial_declaration_path:
                result.reverse()
                decl.cache.partial_declaration_path \
                    = parent.cache.partial_declaration_path + result
                return decl.cache.partial_declaration_path
            else:
                result.append(parent.partial_name)
                parent = parent.parent
        result.reverse()
        decl.cache.partial_declaration_path = result
        return result

    return decl.cache.partial_declaration_path
def partial_declaration_path ( decl ) : if not decl : return [ ] if not decl . cache . partial_declaration_path : result = [ decl . partial_name ] parent = decl . parent while parent : if parent . cache . partial_declaration_path : result . reverse ( ) decl . cache . partial_declaration_path = parent . cache . partial_declaration_path + result return decl . cache . partial_declaration_path else : result . append ( parent . partial_name ) parent = parent . parent result . reverse ( ) decl . cache . partial_declaration_path = result return result return decl . cache . partial_declaration_path
Returns a list of parent declarations names without template arguments that
    have default value.

    Args:
        decl (declaration_t): declaration for which the partial declaration
                              path should be calculated.

    Returns:
        list[(str | basestring)]: list of names, where first item is the top
                                  parent name and last item the inputted
                                  declaration name.