in opensearchpy/helpers/actions.py [0:0]
def feed(self, action, data):
ret = None
raw_data, raw_action = data, action
action = self.serializer.dumps(action)
# +1 to account for the trailing new line character
cur_size = len(action.encode("utf-8")) + 1
if data is not None:
data = self.serializer.dumps(data)
cur_size += len(data.encode("utf-8")) + 1
# full chunk, send it and start a new one
if self.bulk_actions and (
self.size + cur_size > self.max_chunk_bytes
or self.action_count == self.chunk_size
):
ret = (self.bulk_data, self.bulk_actions)
self.bulk_actions, self.bulk_data = [], []
self.size, self.action_count = 0, 0
self.bulk_actions.append(action)
if data is not None:
self.bulk_actions.append(data)
self.bulk_data.append((raw_action, raw_data))
else:
self.bulk_data.append((raw_action,))
self.size += cur_size
self.action_count += 1
return ret