def decode_array_metadata(s): meta = parse_metadata(s) # check metadata format zarr_format = meta.get('zarr_format', None) if zarr_format != ZARR_FORMAT: raise MetadataError('unsupported zarr format: %s' % zarr_format) # extract array metadata fields try: dtype = decode_dtype(meta['dtype']) fill_value = decode_fill_value(meta['fill_value'], dtype) meta = dict( zarr_format=meta['zarr_format'], shape=tuple(meta['shape']), chunks=tuple(meta['chunks']), dtype=dtype, compressor=meta['compressor'], fill_value=fill_value, order=meta['order'], filters=meta['filters'], ) except Exception as e: raise MetadataError('error decoding metadata: %s' % e) else: return meta
def decode_array_metadata(cls, s: Union[MappingType, str]) -> MappingType[str, Any]: meta = cls.parse_metadata(s) # check metadata format zarr_format = meta.get("zarr_format", None) if zarr_format != cls.ZARR_FORMAT: raise MetadataError("unsupported zarr format: %s" % zarr_format) # extract array metadata fields try: dtype = cls.decode_dtype(meta["dtype"]) if dtype.hasobject: import numcodecs object_codec = numcodecs.get_codec(meta['filters'][0]) else: object_codec = None dimension_separator = meta.get("dimension_separator", None) fill_value = cls.decode_fill_value(meta['fill_value'], dtype, object_codec) meta = dict( zarr_format=meta["zarr_format"], shape=tuple(meta["shape"]), chunks=tuple(meta["chunks"]), dtype=dtype, compressor=meta["compressor"], fill_value=fill_value, order=meta["order"], filters=meta["filters"], ) if dimension_separator: meta['dimension_separator'] = dimension_separator except Exception as e: raise MetadataError("error decoding metadata") from e else: return meta
def decode_group_metadata(s): s = _ensure_str(s) meta = json.loads(s) zarr_format = meta.get('zarr_format', None) if zarr_format != ZARR_FORMAT: raise MetadataError('unsupported zarr format: %s' % zarr_format) meta = dict(zarr_format=ZARR_FORMAT, ) return meta
def decode_group_metadata(s): if isinstance(s, binary_type): s = text_type(s, 'ascii') meta = json.loads(s) zarr_format = meta.get('zarr_format', None) if zarr_format != ZARR_FORMAT: raise MetadataError('unsupported zarr format: %s' % zarr_format) meta = dict(zarr_format=ZARR_FORMAT, ) return meta
def decode_group_metadata(s): meta = parse_metadata(s) # check metadata format version zarr_format = meta.get('zarr_format', None) if zarr_format != ZARR_FORMAT: raise MetadataError('unsupported zarr format: %s' % zarr_format) meta = dict(zarr_format=zarr_format) return meta
def decode_group_metadata(cls, s: Union[MappingType, str]) -> MappingType[str, Any]: meta = cls.parse_metadata(s) # check metadata format version zarr_format = meta.get("zarr_format", None) if zarr_format != cls.ZARR_FORMAT: raise MetadataError("unsupported zarr format: %s" % zarr_format) meta = dict(zarr_format=zarr_format) return meta
def decode_metadata(b): s = text_type(b, 'ascii') meta = json.loads(s) zarr_format = meta.get('zarr_format', None) if zarr_format != 1: raise MetadataError('unsupported zarr format: %s' % zarr_format) try: meta = dict( zarr_format=meta['zarr_format'], shape=tuple(meta['shape']), chunks=tuple(meta['chunks']), dtype=decode_dtype(meta['dtype']), compression=meta['compression'], compression_opts=meta['compression_opts'], fill_value=meta['fill_value'], order=meta['order'], ) except Exception as e: raise MetadataError('error decoding metadata: %s' % e) else: return meta
def decode_array_metadata(s): s = _ensure_str(s) meta = json.loads(s) zarr_format = meta.get('zarr_format', None) if zarr_format != ZARR_FORMAT: raise MetadataError('unsupported zarr format: %s' % zarr_format) try: dtype = decode_dtype(meta['dtype']) fill_value = decode_fill_value(meta['fill_value'], dtype) meta = dict( zarr_format=meta['zarr_format'], shape=tuple(meta['shape']), chunks=tuple(meta['chunks']), dtype=dtype, compressor=meta['compressor'], fill_value=fill_value, order=meta['order'], filters=meta['filters'], ) except Exception as e: raise MetadataError('error decoding metadata: %s' % e) else: return meta
def __init__(self, store: StoreLike, metadata_key=meta_root + "consolidated/.zmetadata"): self.store = StoreV3._ensure_store(store) # retrieve consolidated metadata meta = json_loads(self.store[metadata_key]) # check format of consolidated metadata consolidated_format = meta.get('zarr_consolidated_format', None) if consolidated_format != 1: raise MetadataError( 'unsupported zarr consolidated metadata format: %s' % consolidated_format) # decode metadata self.meta_store: Store = KVStoreV3(meta["metadata"])