Skip to content

Commit 15eb997

Browse files
committed
add some docstrings and fix sharding JSON check
1 parent 9c09932 commit 15eb997

File tree

4 files changed

+41
-3
lines changed

4 files changed

+41
-3
lines changed

src/zarr/codecs/__init__.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,22 +64,31 @@
6464

6565
register_codec("numcodecs.bz2", BZ2, qualname="zarr.codecs.numcodecs.BZ2")
6666
register_codec("bz2", BZ2, qualname="zarr.codecs.numcodecs.BZ2")
67+
6768
register_codec("numcodecs.crc32", CRC32, qualname="zarr.codecs.numcodecs.CRC32")
6869
register_codec("crc32", CRC32, qualname="zarr.codecs.numcodecs.CRC32")
70+
6971
register_codec("numcodecs.lz4", LZ4, qualname="zarr.codecs.numcodecs.LZ4")
7072
register_codec("lz4", LZ4, qualname="zarr.codecs.numcodecs.LZ4")
73+
7174
register_codec("numcodecs.lzma", LZMA, qualname="zarr.codecs.numcodecs.LZMA")
7275
register_codec("lzma", LZMA, qualname="zarr.codecs.numcodecs.LZMA")
76+
7377
register_codec("numcodecs.zfpy", ZFPY, qualname="zarr.codecs.numcodecs.ZFPY")
7478
register_codec("zfpy", ZFPY, qualname="zarr.codecs.numcodecs.ZFPY")
79+
7580
register_codec("numcodecs.adler32", Adler32, qualname="zarr.codecs.numcodecs.Adler32")
7681
register_codec("adler32", Adler32, qualname="zarr.codecs.numcodecs.Adler32")
82+
7783
register_codec("numcodecs.astype", AsType, qualname="zarr.codecs.numcodecs.AsType")
7884
register_codec("astype", AsType, qualname="zarr.codecs.numcodecs.AsType")
85+
7986
register_codec("numcodecs.bitround", BitRound, qualname="zarr.codecs.numcodecs.BitRound")
8087
register_codec("bitround", BitRound, qualname="zarr.codecs.numcodecs.BitRound")
88+
8189
register_codec("numcodecs.delta", Delta, qualname="zarr.codecs.numcodecs.Delta")
8290
register_codec("delta", Delta, qualname="zarr.codecs.numcodecs.Delta")
91+
8392
register_codec(
8493
"numcodecs.fixedscaleoffset",
8594
FixedScaleOffset,
@@ -90,20 +99,26 @@
9099
FixedScaleOffset,
91100
qualname="zarr.codecs.numcodecs.FixedScaleOffset",
92101
)
102+
93103
register_codec("numcodecs.fletcher32", Fletcher32, qualname="zarr.codecs.numcodecs.Fletcher32")
94104
register_codec("fletcher32", Fletcher32, qualname="zarr.codecs.numcodecs.Fletcher32")
105+
95106
register_codec(
96107
"numcodecs.jenkins_lookup3", JenkinsLookup3, qualname="zarr.codecs.numcodecs.JenkinsLookup3"
97108
)
98109
register_codec("jenkins_lookup3", JenkinsLookup3, qualname="zarr.codecs.numcodecs.JenkinsLookup3")
99-
register_codec("numcodecs.pcodec", PCodec, qualname="zarr.codecs.numcodecs.pcodec")
110+
100111
register_codec("pcodec", PCodec, qualname="zarr.codecs.numcodecs.PCodec")
101112
register_codec("numcodecs.pcodec", PCodec, qualname="zarr.codecs.numcodecs.PCodec")
113+
102114
register_codec("numcodecs.packbits", PackBits, qualname="zarr.codecs.numcodecs.PackBits")
103115
register_codec("packbits", PackBits, qualname="zarr.codecs.numcodecs.PackBits")
116+
104117
register_codec("numcodecs.quantize", Quantize, qualname="zarr.codecs.numcodecs.Quantize")
105118
register_codec("quantize", Quantize, qualname="zarr.codecs.numcodecs.Quantize")
119+
106120
register_codec("numcodecs.shuffle", Shuffle, qualname="zarr.codecs.numcodecs.Shuffle")
107121
register_codec("shuffle", Shuffle, qualname="zarr.codecs.numcodecs.Shuffle")
122+
108123
register_codec("numcodecs.zlib", Zlib, qualname="zarr.codecs.numcodecs.Zlib")
109124
register_codec("zlib", Zlib, qualname="zarr.codecs.numcodecs.Zlib")

src/zarr/codecs/numcodecs/_codecs.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,12 @@ def compute_encoded_size(self, input_byte_length: int, chunk_spec: ArraySpec) ->
460460

461461
# bytes-to-bytes codecs
462462
class Blosc(_NumcodecsBytesBytesCodec):
463+
"""
464+
A legacy wrapper used to provide a Zarr V3 API for the numcodecs blosc codec.
465+
466+
Use `zarr.codecs.blosc.BloscCodec` instead.
467+
"""
468+
463469
codec_name = "numcodecs.blosc"
464470
_codec_id = "blosc"
465471

@@ -486,6 +492,12 @@ def to_json(self, zarr_format: ZarrFormat) -> LZ4JSON_V2 | LZ4JSON_V3:
486492

487493

488494
class Zstd(_NumcodecsBytesBytesCodec):
495+
"""
496+
A legacy wrapper used to provide a Zarr V3 API for the numcodecs zstd codec.
497+
498+
Use `zarr.codecs.zstd.ZStdCodec` instead.
499+
"""
500+
489501
codec_name = "numcodecs.zstd"
490502
_codec_id = "zstd"
491503
codec_config: ZstdConfig_V3
@@ -513,6 +525,12 @@ def to_json(self, zarr_format: ZarrFormat) -> ZlibJSON_V2 | ZlibJSON_V3:
513525

514526

515527
class GZip(_NumcodecsBytesBytesCodec):
528+
"""
529+
A legacy wrapper used to provide a Zarr V3 API for the numcodecs gzip codec.
530+
531+
Use `zarr.codecs.gzip.GzipCodec` instead.
532+
"""
533+
516534
codec_name = "numcodecs.gzip"
517535
_codec_id = "gzip"
518536
codec_config: GZipConfig

src/zarr/codecs/sharding.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,19 @@ def parse_index_location(data: object) -> ShardingCodecIndexLocation:
132132

133133

134134
def check_json_v2(data: object) -> TypeGuard[ShardingJSON_V2]:
135+
required_keys = {"id", "codecs", "chunk_shape", "index_codecs"}
136+
optional_keys = {"index_location"}
135137
return (
136138
isinstance(data, Mapping)
137-
and set(data.keys()) == {"id", "codecs", "chunk_shape"}
139+
and required_keys.issubset(set(data.keys()))
140+
and set(data.keys()).issubset(required_keys | optional_keys)
138141
and data["id"] == "sharding_indexed"
139142
and isinstance(data["chunk_shape"], Sequence)
140143
and not isinstance(data["chunk_shape"], str)
141144
and isinstance(data["codecs"], Sequence)
142145
and not isinstance(data["codecs"], str)
146+
and isinstance(data["index_codecs"], Sequence)
147+
and not isinstance(data["index_codecs"], str)
143148
)
144149

145150

src/zarr/codecs/transpose.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class TransposeJSON_V3(NamedRequiredConfig[Literal["transpose"], TransposeConfig
4949
def check_json_v2(data: object) -> TypeGuard[TransposeJSON_V2]:
5050
return (
5151
isinstance(data, Mapping)
52-
and set(data.keys()) == {"id", "configuration"}
52+
and set(data.keys()) == {"id", "order"}
5353
and data["id"] == "transpose"
5454
and isinstance(data["order"], Sequence)
5555
and not isinstance(data["order"], str)

0 commit comments

Comments
 (0)