mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2025-10-27 08:21:30 +00:00
gguf-py : handle cross-filesystem file range copies
This commit is contained in:
@@ -360,7 +360,13 @@ def copy_tensor_ranges(t: LazyNumpyTensor, fout: BufferedWriter):
|
|||||||
dst_offset += r.size - extra_size
|
dst_offset += r.size - extra_size
|
||||||
else:
|
else:
|
||||||
# not trying to use reflinks, but still using os.copy_file_range for speed
|
# not trying to use reflinks, but still using os.copy_file_range for speed
|
||||||
|
try:
|
||||||
os.copy_file_range(src.fileno(), fout.fileno(), r.size, r.offset, dst_offset)
|
os.copy_file_range(src.fileno(), fout.fileno(), r.size, r.offset, dst_offset)
|
||||||
|
except OSError:
|
||||||
|
# fallback when there's a problem (e.g. cross-filesystem copies)
|
||||||
|
src.seek(r.offset)
|
||||||
|
fout.seek(dst_offset)
|
||||||
|
shutil.copyfileobj(src, fout, r.size)
|
||||||
dst_offset += r.size
|
dst_offset += r.size
|
||||||
else:
|
else:
|
||||||
# not using reflinks, fallback when os.copy_file_range is not supported
|
# not using reflinks, fallback when os.copy_file_range is not supported
|
||||||
|
|||||||
Reference in New Issue
Block a user