code: def calculate_relative_url(url, filename=None, baseurl=None, subpath=None):
      
  
      # ensure the provided subpath is a list
      if isinstance(subpath, str):
          subpath = subpath.strip("/").split("/")
      elif subpath is None:
          subpath = []
  
      # if a base path was supplied, calculate the file's subpath relative to it
      if baseurl:
          baseurl = urllib.parse.urljoin(baseurl, ".")  # ensure baseurl is normalized (to remove '/./' and '/../')
          assert url.startswith(baseurl), "URL must start with baseurl"
          subpath = subpath + url[len(baseurl):].strip("/").split("/")[:-1]
  
      # if we don't have a filename, extract it from the URL
      if not filename:
          filename = unquote(urlparse(url).path.split("/")[-1])
  
      # calculate the url path to use to refer to this file, relative to destpath
      relative_file_url = "/".join(["."] + subpath + [filename])
  
      return relative_file_url, subpath, filename
docs: Calculate the relative path for a URL relative to a base URL, possibly also injecting in a subpath prefix.