docs: def streaming_bulk(self, actions, chunk_size=500, max_chunk_bytes=100 * 1024 * 1024,
                         raise_on_error=True, expand_action_callback=ActionParser.expand_action,
                         raise_on_exception=True, **kwargs):
          """
          Streaming bulk consumes actions from the iterable passed in and return the results of all bulk data
          :func:`~elasticsearch.helpers.bulk` which is a wrapper around streaming
          bulk that returns summary information about the bulk operation once the
          entire input is consumed and sent.
          :arg actions: iterable containing the actions to be executed
          :arg chunk_size: number of docs in one chunk sent to es (default: 500)
          :arg max_chunk_bytes: the maximum size of the request in bytes (default: 100MB)
          :arg raise_on_error: raise ``BulkIndexError`` containing errors (as `.errors`)
              from the execution of the last chunk when some occur. By default we raise.
          :arg raise_on_exception: if ``False`` then don't propagate exceptions from
              call to ``bulk`` and just report the items that failed as failed.
          :arg expand_action_callback: callback executed on each action passed in,
              should return a tuple containing the action line and the data line
              (`None` if data line should be omitted).
          """
          actions = list(map(expand_action_callback, actions))
  
          for bulk_actions in self._chunk_actions(actions, chunk_size, max_chunk_bytes):
              yield self._process_bulk_chunk(bulk_actions, raise_on_exception, raise_on_error, **kwargs)