code: def get_absolute_name(package, relative_name):
      
      path = package.split('.') if package else []
      name = relative_name.lstrip('.')
      ndots = len(relative_name) - len(name)
      if ndots > len(path):
          return relative_name
      absolute_path = path[:len(path) + 1 - ndots]
      if name:
          absolute_path.append(name)
      return '.'.join(absolute_path)
docs: Joins a package name and a relative name.
  
      Args:
        package: A dotted name, e.g. foo.bar.baz
        relative_name: A dotted name with possibly some leading dots, e.g. ..x.y
  
      Returns:
        The relative name appended to the parent's package, after going up one
          level for each leading dot.
            e.g. foo.bar.baz + ..hello.world -> foo.hello.world
        The unchanged relative_name if it does not start with a dot
          or has too many leading dots.