aboutsummaryrefslogtreecommitdiff
path: root/quality_control/parsing.py
diff options
context:
space:
mode:
Diffstat (limited to 'quality_control/parsing.py')
-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