MCPcopy
hub / github.com/borgbackup/borg / cached_hash

Function cached_hash

src/borg/archive.py:1181–1197  ·  view source on GitHub ↗
(chunk, id_hash)

Source from the content-addressed store, hash-verified

1179
1180
1181def cached_hash(chunk, id_hash):
1182 allocation = chunk.meta["allocation"]
1183 if allocation == CH_DATA:
1184 data = chunk.data
1185 chunk_id = id_hash(data)
1186 elif allocation in (CH_HOLE, CH_ALLOC):
1187 size = chunk.meta["size"]
1188 assert size <= len(zeros)
1189 data = memoryview(zeros)[:size]
1190 try:
1191 chunk_id = zero_chunk_ids[(id_hash, size)]
1192 except KeyError:
1193 chunk_id = id_hash(data)
1194 zero_chunk_ids[(id_hash, size)] = chunk_id
1195 else:
1196 raise ValueError("unexpected allocation type")
1197 return chunk_id, data
1198
1199
1200class ChunksProcessor:

Callers 3

chunk_processorMethod · 0.85
chunk_processorMethod · 0.85
transfer_chunksFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected