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

Method parse

src/borg/repoobj.py:183–203  ·  view source on GitHub ↗
(
        self, id: bytes, cdata: bytes, decompress: bool = True, want_compressed: bool = False, ro_type: str = None
    )

Source from the content-addressed store, hash-verified

181 raise NotImplementedError("parse_meta is not available for RepoObj1")
182
183 def parse(
184 self, id: bytes, cdata: bytes, decompress: bool = True, want_compressed: bool = False, ro_type: str = None
185 ) -> tuple[dict, bytes]:
186 assert not (not decompress and not want_compressed), "invalid parameter combination!"
187 assert isinstance(id, bytes)
188 assert isinstance(cdata, bytes)
189 assert ro_type is not None
190 data_compressed = self.key.decrypt(id, cdata)
191 compressor_cls, compression_level = Compressor.detect(data_compressed[:2])
192 compressor = compressor_cls(level=compression_level, legacy_mode=True)
193 meta_compressed = {}
194 meta_compressed["ctype"] = compressor.ID
195 meta_compressed["clevel"] = compressor.level
196 meta_compressed["csize"] = len(data_compressed)
197 if decompress:
198 meta, data = compressor.decompress(None, data_compressed)
199 if not AUTHENTICATED_NO_KEY:
200 self.key.assert_id(id, data)
201 else:
202 meta, data = None, None
203 return meta_compressed if want_compressed else meta, data_compressed if want_compressed else data

Callers 2

Calls 3

decryptMethod · 0.45
detectMethod · 0.45
assert_idMethod · 0.45

Tested by 2