File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -169,22 +169,16 @@ def _resolve_codec(data: dict[str, JSON]) -> Codec:
169169
170170
171171def numcodec_to_zarr3_codec (codec : numcodecs .abc .Codec ) -> Codec :
172- import numcodecs .zarr3
173-
174- codec_name = codec .__class__ .__name__
175- numcodecs_zarr3_module = numcodecs .zarr3
176-
177- if not hasattr (numcodecs_zarr3_module , codec_name ):
178- raise ValueError (f"No Zarr3 wrapper found for numcodec: { codec_name } " )
179-
180- numcodecs_zarr3_codec_class = getattr (numcodecs_zarr3_module , codec_name )
181-
182172 codec_config = codec .get_config ()
183- codec_config .pop ("id" , None )
184-
185- codec = numcodecs_zarr3_codec_class (** codec_config )
186- assert isinstance (codec , Codec )
187- return codec
173+ codec_name = codec_config .pop ("id" , None )
174+ if codec_name is None :
175+ raise ValueError (f"Codec configuration does not contain 'id': { codec_config } " )
176+ codec_cls = get_codec_class (f"numcodecs.{ codec_name } " )
177+ if codec_cls is None :
178+ raise ValueError (f"Codec class for 'numcodecs.{ codec_name } ' not found." )
179+ codec_v3 = codec_cls .from_dict ({"name" : f"numcodecs.{ codec_name } " , "configuration" : codec_config })
180+ assert isinstance (codec_v3 , Codec )
181+ return codec_v3
188182
189183
190184def _parse_bytes_bytes_codec (data : dict [str , JSON ] | Codec ) -> BytesBytesCodec :
You can’t perform that action at this time.
0 commit comments