code: def seek(self, pos, whence=0):
      if whence == 0:
          if pos < 0:
              raise OSError("Invalid argument")
          self._current_pos = pos
      elif whence == 2:
          self._current_pos = self._get_size() + pos
      elif whence == 1:
          check_pos = self._current_pos + pos
          if check_pos < 0:
              raise OSError("Invalid argument")
          else:
              self._current_pos = self._current_pos + pos
      else:
          raise ValueError('Parameter "whence" should be 0 or 1 or 2')
      if pos > 0 and self._current_pos > self._get_size() - 1:
          self._current_pos = self._get_size()
      return self._current_pos
  
file_path: mars/mars/lib/filesystem/_oss_lib/handle.py
imports: from io import IOBase
  from ....utils import lazy_import
  from .common import parse_osspath, oss_stat
label_desc: Use image node_id 6 for calling the OSSIOBase obj's underlying member method code with example usage: obj.seek(pos, whence) and returns: self