Ejemplo n.º 1
0
 def get_digest_size(self) -> Tuple[str, int]:
     size = 0
     files = {}
     dirs = {}
     for name, n in self.children.items():
         dgst, sz = n.get_digest_size()
         if isinstance(n, ZCDirectory):
             dirs[name] = (dgst, sz)
         else:
             files[name] = (dgst, sz)
         size += sz
     return (cast(str, get_checksum(files, dirs)), size)
Ejemplo n.º 2
0
 def dirstat(dirpath: LocalZarrEntry) -> ZarrStat:
     size = 0
     dir_md5s = {}
     file_md5s = {}
     files = []
     for p in dirpath.iterdir():
         if p.is_dir():
             st = dirstat(p)
             size += st.size
             dir_md5s[p.name] = (st.digest.value, st.size)
             files.extend(st.files)
         else:
             size += p.size
             file_md5s[p.name] = (md5file_nocache(p.filepath), p.size)
             files.append(p)
     return ZarrStat(
         size=size,
         digest=Digest.dandi_zarr(get_checksum(file_md5s, dir_md5s)),
         files=files,
     )
Ejemplo n.º 3
0
def test_zarr_get_checksum_empty():
    with pytest.raises(ValueError):
        get_checksum(files={}, directories={})
Ejemplo n.º 4
0
def test_zarr_get_checksum(files, directories, checksum):
    assert get_checksum(files=files, directories=directories) == checksum