Skip to content

Commit 8e6fe11

Browse files
jhammanjoshmoore
andauthored
fastpath _array_iter for array_keys (#1149)
Co-authored-by: Josh Moore <j.a.moore@dundee.ac.uk>
1 parent 5b9f2ef commit 8e6fe11

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

zarr/hierarchy.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -638,17 +638,19 @@ def _array_iter(self, keys_only, method, recurse):
638638
else:
639639
dir_name = meta_root + self._path
640640
array_sfx = '.array' + self._metadata_key_suffix
641+
group_sfx = '.group' + self._metadata_key_suffix
642+
641643
for key in sorted(listdir(self._store, dir_name)):
642644
if key.endswith(array_sfx):
643645
key = key[:-len(array_sfx)]
646+
_key = key.rstrip("/")
647+
yield _key if keys_only else (_key, self[key])
648+
644649
path = self._key_prefix + key
645650
assert not path.startswith("meta/")
646-
if key.endswith('.group' + self._metadata_key_suffix):
651+
if key.endswith(group_sfx):
647652
# skip group metadata keys
648653
continue
649-
if contains_array(self._store, path):
650-
_key = key.rstrip("/")
651-
yield _key if keys_only else (_key, self[key])
652654
elif recurse and contains_group(self._store, path):
653655
group = self[key]
654656
yield from getattr(group, method)(recurse=recurse)

0 commit comments

Comments
 (0)