about summary refs log tree commit diff
path: root/quality_control/parsing.py
diff options
context:
space:
mode:
Diffstat (limited to 'quality_control/parsing.py')
-rw-r--r--quality_control/parsing.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/quality_control/parsing.py b/quality_control/parsing.py
index f1f4f79..ba22e0c 100644
--- a/quality_control/parsing.py
+++ b/quality_control/parsing.py
@@ -1,15 +1,13 @@
 """Module handling the high-level parsing of the files"""
-
-import os
 import collections
 from enum import Enum
 from functools import partial
 from zipfile import ZipFile, is_zipfile
-from typing import Iterable, Generator, Callable, Optional
+from typing import Tuple, Union, Iterable, Generator, Callable, Optional
 
 import quality_control.average as avg
 import quality_control.standard_error as se
-from quality_control.errors import InvalidValue
+from quality_control.errors import InvalidValue, DuplicateHeading
 from quality_control.headers import (
     invalid_header, invalid_headings, duplicate_headings)
 
@@ -67,16 +65,16 @@ def se_errors(line_number, fields):
 def collect_errors(
         filepath: str, filetype: FileType, strains: list,
         update_progress: Optional[Callable] = None,
-        user_aborted: Optional[Callable] = lambda: False) -> Generator:
+        user_aborted: Callable = lambda: False) -> Generator:
     """Run checks against file and collect all the errors"""
-    errors = tuple()
+    errors:Tuple[Union[InvalidValue, DuplicateHeading], ...] = tuple()
     def __process_errors__(line_number, line, error_checker_fn, errors = tuple()):
         errs = error_checker_fn(
             line_number,
             tuple(field.strip() for field in line.split("\t")))
         if errs is None:
             return errors
-        if isinstance(errs, collections.Sequence):
+        if isinstance(errs, collections.abc.Sequence):
             return errors + tuple(error for error in errs if error is not None)
         return errors + (errs,)