code: def _resolve_relative_to(path, original_root, new_root):
      
  
      if not isinstance(path, six.string_types) \
              or path.startswith("s3://") \
              or os.path.isabs(path):
          # Value is definitely NOT a relative path. It is either a S3 URi or Absolute path or not a string at all
          return None
  
      # Value is definitely a relative path. Change it relative to the destination directory
      return os.path.relpath(
          os.path.normpath(os.path.join(original_root, path)),  # Absolute original path w.r.t ``original_root``
          new_root)
docs: If the given ``path`` is a relative path, then assume it is relative to ``original_root``. This method will
      update the path to be resolve it relative to ``new_root`` and return.
  
      Examples
      -------
          # Assume a file called template.txt at location /tmp/original/root/template.txt expressed as relative path
          # We are trying to update it to be relative to /tmp/new/root instead of the /tmp/original/root
          >>> result = _resolve_relative_to("template.txt",  \
                                            "/tmp/original/root", \
                                            "/tmp/new/root")
          >>> result
          ../../original/root/template.txt
  
      Returns
      -------
      Updated path if the given path is a relative path. None, if the path is not a relative path.