in datahub/batch/binary_record.py [0:0]
def __init_attr_map_if_need(self):
if self._has_init_attr_map:
return
offset = self._record_header.attr_offset
attr_size = byte2int(self._buffer[offset:offset+4])
if attr_size != 0 and self._attr_map is None:
self._attr_map = dict()
offset += INT_BYTE_SIZE
for i in range(attr_size):
key_size = byte2int(self._buffer[offset:offset+4])
offset += INT_BYTE_SIZE
key_str = to_text(self._buffer[offset:offset+key_size])
offset += key_size
val_size = byte2int(self._buffer[offset:offset+4])
offset += INT_BYTE_SIZE
value_str = to_text(self._buffer[offset:offset+val_size])
offset += val_size
self._attr_map[key_str] = value_str
self._attr_length += (key_size + val_size + 2*INT_BYTE_SIZE)
self._has_init_attr_map = True