@@ -68,6 +68,9 @@ def can_add(self, path: str) -> bool:
68
68
# -------------------- store operations -----------------------
69
69
@rule (name = node_names , data = st .data ())
70
70
def add_group (self , name : str , data : DataObject ) -> None :
71
+ # Handle possible case-insensitive file systems (e.g. MacOS)
72
+ if isinstance (self .store , LocalStore ):
73
+ name = name .lower ()
71
74
if self .all_groups :
72
75
parent = data .draw (st .sampled_from (sorted (self .all_groups )), label = "Group parent" )
73
76
else :
@@ -90,6 +93,9 @@ def add_array(
90
93
name : str ,
91
94
array_and_chunks : tuple [np .ndarray [Any , Any ], tuple [int , ...]],
92
95
) -> None :
96
+ # Handle possible case-insensitive file systems (e.g. MacOS)
97
+ if isinstance (self .store , LocalStore ):
98
+ name = name .lower ()
93
99
array , chunks = array_and_chunks
94
100
fill_value = data .draw (npst .from_dtype (array .dtype ))
95
101
if self .all_groups :
@@ -135,6 +141,7 @@ def add_array(
135
141
# self.model.rename(from_group, new_path)
136
142
# self.repo.store.rename(from_group, new_path)
137
143
144
+ @precondition (lambda self : self .store .supports_deletes )
138
145
@precondition (lambda self : len (self .all_arrays ) >= 1 )
139
146
@rule (data = st .data ())
140
147
def delete_array_using_del (self , data : DataObject ) -> None :
@@ -149,6 +156,7 @@ def delete_array_using_del(self, data: DataObject) -> None:
149
156
del group [array_name ]
150
157
self .all_arrays .remove (array_path )
151
158
159
+ @precondition (lambda self : self .store .supports_deletes )
152
160
@precondition (lambda self : len (self .all_groups ) >= 2 ) # fixme don't delete root
153
161
@rule (data = st .data ())
154
162
def delete_group_using_del (self , data : DataObject ) -> None :
@@ -284,6 +292,10 @@ def supports_partial_writes(self) -> bool:
284
292
def supports_writes (self ) -> bool :
285
293
return self .store .supports_writes
286
294
295
+ @property
296
+ def supports_deletes (self ) -> bool :
297
+ return self .store .supports_deletes
298
+
287
299
288
300
class ZarrStoreStateMachine (RuleBasedStateMachine ):
289
301
""" "
@@ -366,6 +378,7 @@ def get_partial_values(self, data: DataObject) -> None:
366
378
model_vals_ls ,
367
379
)
368
380
381
+ @precondition (lambda self : self .store .supports_deletes )
369
382
@precondition (lambda self : len (self .model .keys ()) > 0 )
370
383
@rule (data = st .data ())
371
384
def delete (self , data : DataObject ) -> None :
0 commit comments