Skip to content

Commit ec607ae

Browse files
committed
Use entrypoint.name as the key for registering chunk key encodings.
- Change register_chunk_key_encoding function to take key as first arg similar to codec.
1 parent c6ee5c6 commit ec607ae

File tree

2 files changed

+7
-9
lines changed

2 files changed

+7
-9
lines changed

src/zarr/core/chunk_key_encodings.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,5 +108,5 @@ def parse_chunk_key_encoding(data: ChunkKeyEncodingLike) -> ChunkKeyEncoding:
108108
return chunk_key_encoding
109109

110110

111-
register_chunk_key_encoding(DefaultChunkKeyEncoding, qualname="default")
112-
register_chunk_key_encoding(V2ChunkKeyEncoding, qualname="v2")
111+
register_chunk_key_encoding("default", DefaultChunkKeyEncoding)
112+
register_chunk_key_encoding("v2", V2ChunkKeyEncoding)

src/zarr/registry.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
from zarr.core.chunk_key_encodings import ChunkKeyEncoding
2626
from zarr.core.common import JSON
2727

28-
# CHANGE: Consider adding here
2928
__all__ = [
3029
"Registry",
3130
"get_buffer_class",
@@ -48,9 +47,9 @@ def __init__(self) -> None:
4847
super().__init__()
4948
self.lazy_load_list: list[EntryPoint] = []
5049

51-
def lazy_load(self) -> None:
50+
def lazy_load(self, use_entrypoint_name: bool = False) -> None:
5251
for e in self.lazy_load_list:
53-
self.register(e.load())
52+
self.register(e.load(), qualname=e.name if use_entrypoint_name else None)
5453

5554
self.lazy_load_list.clear()
5655

@@ -158,8 +157,8 @@ def register_buffer(cls: type[Buffer], qualname: str | None = None) -> None:
158157
__buffer_registry.register(cls, qualname)
159158

160159

161-
def register_chunk_key_encoding(cls: type, qualname: str | None = None) -> None:
162-
__chunk_key_encoding_registry.register(cls, qualname)
160+
def register_chunk_key_encoding(key: str, cls: type) -> None:
161+
__chunk_key_encoding_registry.register(cls, key)
163162

164163

165164
def get_codec_class(key: str, reload_config: bool = False) -> type[Codec]:
@@ -300,12 +299,11 @@ def get_ndbuffer_class(reload_config: bool = False) -> type[NDBuffer]:
300299

301300

302301
def get_chunk_key_encoding_class(key: str) -> type[ChunkKeyEncoding]:
303-
__chunk_key_encoding_registry.lazy_load()
302+
__chunk_key_encoding_registry.lazy_load(use_entrypoint_name=True)
304303
if key not in __chunk_key_encoding_registry:
305304
raise KeyError(
306305
f"Chunk key encoding '{key}' not found in registered chunk key encodings: {list(__chunk_key_encoding_registry)}."
307306
)
308-
309307
return __chunk_key_encoding_registry[key]
310308

311309

0 commit comments

Comments
 (0)