code: def pathname2url(p):
      """OS-specific conversion from a file system path to a relative URL
      of the 'file' scheme; not recommended for general use."""
      # e.g.
      #   C:\foo\bar\spam.foo
      # becomes
      #   ///C:/foo/bar/spam.foo
      import urllib.parse
  
      # First, clean up some special forms. We are going to sacrifice
      # the additional information anyway
      if p[:4] == "\\\\?\\":
          p = p[4:]
          if p[:4].upper() == "UNC\\":
              p = "\\" + p[4:]
          elif p[1:2] != ":":
              raise OSError("Bad path: " + p)
      if not ":" in p:
          # No drive specifier, just convert slashes and quote the name
          if p[:2] == "\\\\":
              # path is something like \\host\path\on\remote\host
              # convert this to ////host/path/on/remote/host
              # (notice doubling of slashes at the start of the path)
              p = "\\\\" + p
          components = p.split("\\")
          return urllib.parse.quote("/".join(components))
      comp = p.split(":", maxsplit=2)
      if len(comp) != 2 or len(comp[0]) > 1:
          error = "Bad path: " + p
          raise OSError(error)
  
      drive = urllib.parse.quote(comp[0].upper())
      components = comp[1].split("\\")
      path = "///" + drive + ":"
      for comp in components:
          if comp:
              path = path + "/" + urllib.parse.quote(comp)
      return path
  
label_desc: Use image node_id 2 for calling a global function with example usage: pathname2url(p) and returns: path, urllib