code: def splitpath(self, path):
          
          path = self.normcase(path)
          sep = self._path_separator(path)
          path_components = path.split(sep)
          if not path_components:
              return ('', '')
  
          starts_with_drive = self._starts_with_drive_letter(path)
          basename = path_components.pop()
          colon = self._matching_string(path, ':')
          if not path_components:
              if starts_with_drive:
                  components = basename.split(colon)
                  return (components[0] + colon, components[1])
              return ('', basename)
          for component in path_components:
              if component:
                  # The path is not the root; it contains a non-separator
                  # component. Strip all trailing separators.
                  while not path_components[-1]:
                      path_components.pop()
                  if starts_with_drive:
                      if not path_components:
                          components = basename.split(colon)
                          return (components[0] + colon, components[1])
                      if (len(path_components) == 1 and
                              path_components[0].endswith(colon)):
                          return (path_components[0] + sep, basename)
                  return (sep.join(path_components), basename)
          # Root path.  Collapse all leading separators.
          return (sep, basename)
docs: Mimic os.path.splitpath using the specified path_separator.
  
          Mimics os.path.splitpath using the path_separator that was specified
          for this FakeFilesystem.
  
          Args:
              path:  (str) The path to split.
  
          Returns:
              (str) A duple (pathname, basename) for which pathname does not
              end with a slash, and basename does not contain a slash.