code: def _need_to_buffer(file_obj, mode, ext):
      
      try:
          is_seekable = file_obj.seekable()
      except AttributeError:
          #
          # Under Py2, built-in file objects returned by open do not have
          # .seekable, but have a .seek method instead.
          #
          is_seekable = hasattr(file_obj, 'seek')
      return six.PY2 and mode.startswith('r') and ext in _COMPRESSOR_REGISTRY and not is_seekable
docs: Returns True if we need to buffer the whole file in memory in order to proceed.