code: def _prepend(original, to_prepend):
      
  
      if to_prepend is None:
          return original
  
      sep = os.pathsep
  
      def split_path_value(path_value):
          return [] if path_value == '' else path_value.split(sep)
  
      seen = set()
  
      components = []
      for path in split_path_value(to_prepend) + split_path_value(original):
          if path not in seen and path != '':
              components.append(path)
              seen.add(path)
  
      return sep.join(components)
docs: Prepend paths in a string representing a list of paths to another.
  
      original and to_prepend are expected to be strings representing
      os.pathsep-separated lists of filepaths.
  
      If to_prepend is None, original is returned.
  
      The list of paths represented in the returned value consists of the first of
      occurrences of each non-empty path in the list obtained by prepending the
      paths in to_prepend to the paths in original.
  
      examples:
      # Unix
      _prepend('/b:/d:/a:/d', '/a:/b:/c:/a') -> '/a:/b:/c:/d'
      _prepend('/a:/b:/a', '/a:/c:/c')       -> '/a:/c:/b'
      _prepend('/c', '/a::/b:/a')            -> '/a:/b:/c'
      _prepend('/a:/b:/a', None)             -> '/a:/b:/a'
      _prepend('/a:/b:/a', '')               -> '/a:/b'