def Open(self, path_spec, mode='rb'):
    if self._is_open and not self._is_cached:
      raise IOError(u'Already open.')

    if mode != 'rb':
      raise ValueError(u'Unsupport mode: {0:s}.'.format(mode))

    if not path_spec:
      raise ValueError(u'Missing path specification.')

    if not self._is_open:
      self._Open(path_spec, mode=mode)
      self._is_open = True
      self._path_spec = path_spec

      if path_spec and not self._resolver_context.GetFileSystem(path_spec):
        self._resolver_context.CacheFileSystem(path_spec, self)
        self._is_cached = True

    if self._is_cached:
      self._resolver_context.GrabFileSystem(path_spec)
Opens the file system object defined by path specification.
dataset/ETHPy150Open log2timeline/dfvfs/dfvfs/vfs/file_system.py/FileSystem.Open