gguf-py : reader prints warnings on duplicate keys

This commit is contained in:
Georgi Gerganov 2024-04-26 14:32:22 +03:00
parent e1b2bf783e
commit ed42711b90
No known key found for this signature in database
GPG key ID: 449E073F9DC10735

View file

@ -139,8 +139,13 @@ class GGUFReader:
def _push_field(self, field: ReaderField, skip_sum: bool = False) -> int: def _push_field(self, field: ReaderField, skip_sum: bool = False) -> int:
if field.name in self.fields: if field.name in self.fields:
raise KeyError(f'Duplicate {field.name} already in list at offset {field.offset}') # TODO: add option to generate error on duplicate keys
self.fields[field.name] = field #raise KeyError(f'Duplicate {field.name} already in list at offset {field.offset}')
print(f'Warning: Duplicate key {field.name} at offset {field.offset}')
self.fields[field.name + '_{}'.format(field.offset)] = field
else:
self.fields[field.name] = field
return 0 if skip_sum else sum(int(part.nbytes) for part in field.parts) return 0 if skip_sum else sum(int(part.nbytes) for part in field.parts)
def _get_str(self, offset: int) -> tuple[npt.NDArray[np.uint64], npt.NDArray[np.uint8]]: def _get_str(self, offset: int) -> tuple[npt.NDArray[np.uint64], npt.NDArray[np.uint8]]: