in azext_edge/edge/util/common.py [0:0]
def chunk_list(data: list, chunk_len: int, data_size: int = 1024, size_unit: str = "kb") -> List[list]:
if size_unit.lower() == "mb":
data_size *= 1024
result = []
current_chunk = []
for item in data:
current_chunk.append(item)
serialized_size = len(json.dumps(current_chunk).encode("utf-8")) / 1024 # convert bytes to kb
if len(current_chunk) > chunk_len or serialized_size > data_size:
current_chunk.pop()
result.append(current_chunk)
current_chunk = [item]
if current_chunk:
result.append(current_chunk)
return result