code: def relpath(self, path, start=None):
          
          if not path:
              raise ValueError("no path specified")
          path = make_string_path(path)
          if start is not None:
              start = make_string_path(start)
          else:
              start = self.filesystem.cwd
          if self.filesystem.alternative_path_separator is not None:
              path = path.replace(self.filesystem.alternative_path_separator,
                                  self._os_path.sep)
              start = start.replace(self.filesystem.alternative_path_separator,
                                    self._os_path.sep)
          path = path.replace(self.filesystem.path_separator, self._os_path.sep)
          start = start.replace(
              self.filesystem.path_separator, self._os_path.sep)
          path = self._os_path.relpath(path, start)
          return path.replace(self._os_path.sep, self.filesystem.path_separator)
docs: We mostly rely on the native implementation and adapt the
          path separator.