3699: misc improvements
[arvados.git] / sdk / python / arvados / util.py
index 47d1d5cd9498a7d1b9787c891378ec2df20678a8..ada1aec6eff677f795c406785bc84129fb75cb2e 100644 (file)
@@ -337,3 +337,14 @@ def is_hex(s, *length_args):
     else:
         good_len = True
     return bool(good_len and HEX_RE.match(s))
+
+def list_all(fn, **kwargs):
+    items = []
+    offset = 0
+    items_available = sys.maxint
+    while len(items) < items_available:
+        c = fn(offset=offset, **kwargs).execute()
+        items += c['items']
+        items_available = c['items_available']
+        offset = c['offset'] + len(c['items'])
+    return items