Skip to content

Commit 8167f3f

Browse files
Apply some pyupgrade suggestions (#1225)
Yield from an iterable instead of iterating to yield items. IOError is kept for compatibility with previous versions; starting from Python 3.3, it is an alias of OSError: https://docs.python.org/3/library/exceptions.html#IOError
1 parent 519f7ef commit 8167f3f

File tree

3 files changed

+11
-23
lines changed

3 files changed

+11
-23
lines changed

zarr/errors.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
2-
31
class MetadataError(Exception):
42
pass
53

zarr/hierarchy.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -634,8 +634,7 @@ def _array_iter(self, keys_only, method, recurse):
634634
yield _key if keys_only else (_key, self[key])
635635
elif recurse and contains_group(self._store, path):
636636
group = self[key]
637-
for i in getattr(group, method)(recurse=recurse):
638-
yield i
637+
yield from getattr(group, method)(recurse=recurse)
639638
else:
640639
dir_name = meta_root + self._path
641640
array_sfx = '.array' + self._metadata_key_suffix
@@ -652,8 +651,7 @@ def _array_iter(self, keys_only, method, recurse):
652651
yield _key if keys_only else (_key, self[key])
653652
elif recurse and contains_group(self._store, path):
654653
group = self[key]
655-
for i in getattr(group, method)(recurse=recurse):
656-
yield i
654+
yield from getattr(group, method)(recurse=recurse)
657655

658656
def visitvalues(self, func):
659657
"""Run ``func`` on each object.
@@ -687,8 +685,7 @@ def _visit(obj):
687685
yield obj
688686
keys = sorted(getattr(obj, "keys", lambda: [])())
689687
for k in keys:
690-
for v in _visit(obj[k]):
691-
yield v
688+
yield from _visit(obj[k])
692689

693690
for each_obj in islice(_visit(self), 1, None):
694691
value = func(each_obj)

zarr/storage.py

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -702,8 +702,7 @@ def _dict_store_keys(d: Dict, prefix="", cls=dict):
702702
for k in d.keys():
703703
v = d[k]
704704
if isinstance(v, cls):
705-
for sk in _dict_store_keys(v, prefix + k + '/', cls):
706-
yield sk
705+
yield from _dict_store_keys(v, prefix + k + '/', cls)
707706
else:
708707
yield prefix + k
709708

@@ -863,8 +862,7 @@ def __eq__(self, other):
863862
)
864863

865864
def keys(self):
866-
for k in _dict_store_keys(self.root, cls=self.cls):
867-
yield k
865+
yield from _dict_store_keys(self.root, cls=self.cls)
868866

869867
def __iter__(self):
870868
return self.keys()
@@ -1462,7 +1460,7 @@ def listdir(self, path=None):
14621460
return sorted(new_children)
14631461
else:
14641462
return children
1465-
except IOError:
1463+
except OSError:
14661464
return []
14671465

14681466
def rmdir(self, path=None):
@@ -1794,8 +1792,7 @@ def keylist(self):
17941792
return sorted(self.zf.namelist())
17951793

17961794
def keys(self):
1797-
for key in self.keylist():
1798-
yield key
1795+
yield from self.keylist()
17991796

18001797
def __iter__(self):
18011798
return self.keys()
@@ -2270,8 +2267,7 @@ def keys(self):
22702267
def values(self):
22712268
with self.db.begin(buffers=self.buffers) as txn:
22722269
with txn.cursor() as cursor:
2273-
for v in cursor.iternext(keys=False, values=True):
2274-
yield v
2270+
yield from cursor.iternext(keys=False, values=True)
22752271

22762272
def __iter__(self):
22772273
return self.keys()
@@ -2581,8 +2577,7 @@ def __contains__(self, key):
25812577

25822578
def items(self):
25832579
kvs = self.cursor.execute('SELECT k, v FROM zarr')
2584-
for k, v in kvs:
2585-
yield k, v
2580+
yield from kvs
25862581

25872582
def keys(self):
25882583
ks = self.cursor.execute('SELECT k FROM zarr')
@@ -2796,12 +2791,10 @@ def keylist(self):
27962791
for key in self.client.keys(self._key('*'))]
27972792

27982793
def keys(self):
2799-
for key in self.keylist():
2800-
yield key
2794+
yield from self.keylist()
28012795

28022796
def __iter__(self):
2803-
for key in self.keys():
2804-
yield key
2797+
yield from self.keys()
28052798

28062799
def __len__(self):
28072800
return len(self.keylist())

0 commit comments

Comments
 (0)