Skip to content

Commit c5aefd3

Browse files
committed
fixup
1 parent 0e179d3 commit c5aefd3

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/zarr/registry.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,23 @@ def register(self, cls: type[T], qualname: str | None = None) -> None:
5757
self[qualname] = cls
5858

5959

60+
class StoreAdapterRegistry(Registry["StoreAdapter"]):
61+
"""Registry for store adapters that uses adapter_name for entry point loading."""
62+
63+
def lazy_load(self) -> None:
64+
for e in self.lazy_load_list:
65+
adapter_cls = e.load()
66+
# Use adapter_name instead of fully_qualified_name for store adapters
67+
self.register(adapter_cls, adapter_cls.adapter_name)
68+
69+
self.lazy_load_list.clear()
70+
71+
6072
__codec_registries: dict[str, Registry[Codec]] = defaultdict(Registry)
6173
__pipeline_registry: Registry[CodecPipeline] = Registry()
6274
__buffer_registry: Registry[Buffer] = Registry()
6375
__ndbuffer_registry: Registry[NDBuffer] = Registry()
64-
__store_adapter_registry: Registry[StoreAdapter] = Registry()
76+
__store_adapter_registry: StoreAdapterRegistry = StoreAdapterRegistry()
6577

6678
"""
6779
The registry module is responsible for managing implementations of codecs,

0 commit comments

Comments
 (0)