about summary refs log tree commit diff
path: root/quality_control
diff options
context:
space:
mode:
Diffstat (limited to 'quality_control')
-rw-r--r--quality_control/parsing.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/quality_control/parsing.py b/quality_control/parsing.py
index ac53642..e9bd5f7 100644
--- a/quality_control/parsing.py
+++ b/quality_control/parsing.py
@@ -3,7 +3,7 @@
 import csv
 from enum import Enum
 from functools import reduce
-from typing import Iterator, Generator
+from typing import Iterable, Generator
 
 import quality_control.average as avg
 import quality_control.standard_error as se
@@ -124,3 +124,15 @@ def parse_errors(filepath: str, filetype: FileType, strains: list,
     return (
         error for error in __errors(filepath, filetype, strains, seek_pos)
         if error is not None)
+
+def take(iterable: Iterable, num: int) -> list:
+    """Take at most `num` items from `iterable`."""
+    iterator = iter(iterable)
+    items = []
+    try:
+        for i in range(0, num):
+            items.append(next(iterator))
+
+        return items
+    except StopIteration:
+        return items