code: def open(self, path, delimiter=None, mode='r', buffering=-1, encoding=None, errors=None,
               newline=None):
          
          if not re.match('^[rbt]{1,3}$', mode):
              raise ValueError('mode argument must be only have r, b, and t')
  
          file_open = get_read_function(path, self.disable_compression)
          file = file_open(path, mode=mode, buffering=buffering, encoding=encoding, errors=errors,
                           newline=newline)
          if delimiter is None:
              return self(file)
          else:
              return self(''.join(list(file)).split(delimiter))
docs: Reads and parses input files as defined.
  
          If delimiter is not None, then the file is read in bulk then split on it. If it is None
          (the default), then the file is parsed as sequence of lines. The rest of the options are
          passed directly to builtins.open with the exception that write/append file modes is not
          allowed.
  
          >>> seq.open('examples/gear_list.txt').take(1)
          [u'tent\\n']
  
          :param path: path to file
          :param delimiter: delimiter to split joined text on. if None, defaults to per line split
          :param mode: file open mode
          :param buffering: passed to builtins.open
          :param encoding: passed to builtins.open
          :param errors: passed to builtins.open
          :param newline: passed to builtins.open
          :return: output of file depending on options wrapped in a Sequence via seq