code: def package_path(cls, root, path):
      
      package_path = os.path.relpath(path, root)
      return cls.normalize_package_path(package_path)
docs: Returns a normalized package path constructed from the given path and its root.
  
      A remote package path is the portion of the remote Go package's import path after the remote
      root path.
  
      For example, the remote import path 'https://github.com/bitly/go-simplejson' has
      a remote root of 'https://github.com/bitly/go-simplejson' and there is only 1 package
      in that remote root.  The package path in this case is '' or '.' and is normalized
      to ''.
  
      Some remote roots have no root package and others have both a root and sub-packages.  The
      remote root of 'github.com/docker/docker' is an example of the former.  One of the packages
      you might import from it is 'github.com/docker/docker/daemon/events' and that package has a
      normalized remote package path of 'daemon/events'.
  
      :param string root: The portion of `path` pointing to the go source code root.  This would be
                          `src` under a standard $GOPATH root.
      :param string path: The full path to the package.  This would be the full path to the package
                          directory relative to the $GOPATH.
      :raises: `ValueError` if the path does not lay within the root.