From 269337ceb26c8fd1ca2680ee7db9e82fdbf6b25c Mon Sep 17 00:00:00 2001 From: Tristan Partin Date: Wed, 29 Dec 2021 22:24:19 -0600 Subject: Fix mypy 0.930 issues Removed errant "type: ignore". Fixed issue with "fetch" call. This issue was the following: Dict::get() and Dict::pop() have the following signature: T.Callable[[_T, _U], _U | None] OR T.Callable[[_T], _U | None] Note how the return type is _U here. When the fetch() function was actually being called, it had the following signature: T.Callable[[_T, T.List[_U]], T.Union[T.List[_U], _U]] This is incompatible with the previous definitions. The solution is simply to move where the default value is introduced if fetch() produces None. --- mesonbuild/mesonlib/universal.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mesonbuild/mesonlib') diff --git a/mesonbuild/mesonlib/universal.py b/mesonbuild/mesonlib/universal.py index 53e9514..bae80d4 100644 --- a/mesonbuild/mesonlib/universal.py +++ b/mesonbuild/mesonlib/universal.py @@ -1319,11 +1319,11 @@ def extract_as_list(dict_object: T.Dict[_T, _U], key: _T, pop: bool = False) -> ''' Extracts all values from given dict_object and listifies them. ''' - fetch = dict_object.get + fetch: T.Callable[[_T], _U] = dict_object.get if pop: fetch = dict_object.pop # If there's only one key, we don't return a list with one element - return listify(fetch(key, []), flatten=True) + return listify(fetch(key) or [], flatten=True) def typeslistify(item: 'T.Union[_T, T.Sequence[_T]]', -- cgit v1.1