code: def _other_wrapper(self, name, writing):
          
          io_attr = getattr(self._io, name)
  
          def other_wrapper(*args, **kwargs):
              """Wrap all other calls to the stream Object.
  
              We do this to track changes to the write pointer.  Anything that
              moves the write pointer in a file open for appending should move
              the read pointer as well.
  
              Args:
                  *args: Pass through args.
                  **kwargs: Pass through kwargs.
  
              Returns:
                  Wrapped stream object method.
              """
              write_seek = self._io.tell()
              ret_value = io_attr(*args, **kwargs)
              if write_seek != self._io.tell():
                  self._read_seek = self._io.tell()
                  self._read_whence = 0
              if not writing or not IS_PY2:
                  return ret_value
  
          return other_wrapper
docs: Wrap a stream attribute in an other_wrapper.
  
          Args:
            name: the name of the stream attribute to wrap.
  
          Returns:
            other_wrapper which is described below.