Return the absolute name of the node.

        Concatenate names from root to self within depth.

        Args:
            depth (int): maximum depth to go to.

        Returns:
            str: absolute name of the node (until given depth is reached).

def absolute_name(self, depth=0):
        """
        Return the absolute name of the node.

        Concatenate names from root to self within depth.

        Args:
            depth (int): maximum depth to go to.

        Returns:
            str: absolute name of the node (until given depth is reached).
        """
        node, node_depth = self, self.depth
        if depth < 1:
            depth = node_depth
        while node_depth > depth and node.package is not None:
            node = node.package
            node_depth -= 1
        names = []
        while node is not None:
            names.append(node.name)
            node = node.package
        return '.'.join(reversed(names))