Skip to content

Commit f87e4d9

Browse files
committed
Simplify equality checking
1 parent d69c0c9 commit f87e4d9

File tree

1 file changed

+4
-55
lines changed

1 file changed

+4
-55
lines changed

src/zarr/storage/_obstore.py

Lines changed: 4 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -56,67 +56,16 @@ class ObjectStore(Store):
5656
"""The underlying obstore instance."""
5757

5858
def __eq__(self, value: object) -> bool:
59-
from obstore.store import (
60-
AzureStore,
61-
GCSStore,
62-
HTTPStore,
63-
LocalStore,
64-
MemoryStore,
65-
S3Store,
66-
)
67-
6859
if not isinstance(value, ObjectStore):
6960
return False
7061

71-
if not isinstance(self.store, type(value.store)):
62+
if self.read_only != value.read_only:
7263
return False
73-
if not self.read_only == value.read_only:
64+
65+
if not isinstance(self.store, type(value.store)):
7466
return False
7567

76-
match value.store:
77-
case AzureStore():
78-
assert isinstance(self.store, AzureStore)
79-
if (
80-
(self.store.config != value.store.config)
81-
or (self.store.client_options != value.store.client_options)
82-
or (self.store.prefix != value.store.prefix)
83-
or (self.store.retry_config != value.store.retry_config)
84-
):
85-
return False
86-
case GCSStore():
87-
assert isinstance(self.store, GCSStore)
88-
if (
89-
(self.store.config != value.store.config)
90-
or (self.store.client_options != value.store.client_options)
91-
or (self.store.prefix != value.store.prefix)
92-
or (self.store.retry_config != value.store.retry_config)
93-
):
94-
return False
95-
case S3Store():
96-
assert isinstance(self.store, S3Store)
97-
if (
98-
(self.store.config != value.store.config)
99-
or (self.store.client_options != value.store.client_options)
100-
or (self.store.prefix != value.store.prefix)
101-
or (self.store.retry_config != value.store.retry_config)
102-
):
103-
return False
104-
case HTTPStore():
105-
assert isinstance(self.store, HTTPStore)
106-
if (
107-
(self.store.url != value.store.url)
108-
or (self.store.client_options != value.store.client_options)
109-
or (self.store.retry_config != value.store.retry_config)
110-
):
111-
return False
112-
case LocalStore():
113-
assert isinstance(self.store, LocalStore)
114-
if self.store.prefix != value.store.prefix:
115-
return False
116-
case MemoryStore():
117-
if self.store is not value.store:
118-
return False # Two memory stores can't be equal because we can't pickle memory stores
119-
return True
68+
return self.store == value.store
12069

12170
def __init__(self, store: _UpstreamObjectStore, *, read_only: bool = False) -> None:
12271
import obstore as obs

0 commit comments

Comments
 (0)