From 01b463f0e81f273f49ad50f51511686740913f18 Mon Sep 17 00:00:00 2001 From: katsu560 Date: Sat, 10 Aug 2024 19:57:37 +0900 Subject: [PATCH] add write_data --- gguf-py/gguf/gguf_writer.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gguf-py/gguf/gguf_writer.py b/gguf-py/gguf/gguf_writer.py index 76385a828..6f1498475 100644 --- a/gguf-py/gguf/gguf_writer.py +++ b/gguf-py/gguf/gguf_writer.py @@ -391,6 +391,23 @@ class GGUFWriter: if pad != 0: fp.write(bytes([0] * pad)) + def write_data(self, data: bytes[Any]) -> None: + if self.state is not WriterState.TI_DATA and self.state is not WriterState.WEIGHTS: + raise ValueError(f'Expected output file to contain tensor info or weights, got {self.state}') + assert self.fout is not None + + file_id = -1 + for i, tensors in enumerate(self.tensors): + if len(tensors) > 0: + file_id = i + break + + fout = self.fout[file_id] + + self.write_padding(fout, fout.tell()) + fout.write(data) + self.write_padding(fout, len(data)) + def write_tensor_data(self, tensor: np.ndarray[Any, Any]) -> None: if self.state is not WriterState.TI_DATA and self.state is not WriterState.WEIGHTS: raise ValueError(f'Expected output file to contain tensor info or weights, got {self.state}')