my.hypothesis: better mypy coverage

This commit is contained in:
Dima Gerasimov 2020-09-29 16:58:50 +01:00
parent 2d2e88b63f
commit d965005036
3 changed files with 19 additions and 11 deletions

View file

@ -4,7 +4,7 @@ See https://beepb00p.xyz/mypy-error-handling.html#kiss for more detail
"""
from itertools import tee
from typing import Union, TypeVar, Iterable, List, Tuple, Type, Optional
from typing import Union, TypeVar, Iterable, List, Tuple, Type, Optional, Callable, Any
T = TypeVar('T')
@ -44,7 +44,7 @@ def split_errors(l: Iterable[ResT[T, E]], ET: Type[E]) -> Tuple[Iterable[T], Ite
return (values, errors)
def sort_res_by(items: Iterable[ResT], key) -> List[ResT]:
def sort_res_by(items: Iterable[Res[T]], key: Callable[[T], Any]) -> List[Res[T]]:
"""
The general idea is: just alaways carry errors with the entry that precedes them
"""
@ -58,7 +58,7 @@ def sort_res_by(items: Iterable[ResT], key) -> List[ResT]:
groups.append((i, group))
group = []
results = []
results: List[Res[T]] = []
for v, errs in sorted(groups, key=lambda p: key(p[0])):
results.extend(errs)
results.append(v)
@ -125,7 +125,7 @@ def extract_error_datetime(e: Exception) -> Optional[datetime]:
return None
def test_datetime_errors():
def test_datetime_errors() -> None:
import pytz
dt_notz = datetime.now()
dt_tz = datetime.now(tz=pytz.timezone('Europe/Amsterdam'))