diff --git a/src/wiktextract/extractor/en/page.py b/src/wiktextract/extractor/en/page.py index 0322bbbdb..2a0a0408a 100644 --- a/src/wiktextract/extractor/en/page.py +++ b/src/wiktextract/extractor/en/page.py @@ -773,7 +773,7 @@ def parse_language( have_etym = False stack: list[str] = [] # names of items on the "stack" - def merge_base(data, base): + def merge_base(data: WordData, base: WordData) -> None: for k, v in base.items(): # Copy the value to ensure that we don't share lists or # dicts between structures (even nested ones). @@ -785,9 +785,9 @@ def merge_base(data, base): if data[k] == v: continue if isinstance(data[k], (list, tuple)) or isinstance( - v, (list, tuple) + v, (list, tuple) # Should this be "and"? ): - data[k] = list(data[k]) + list(v) + data[k] = list(data[k]) + list(v) # type: ignore elif data[k] != v: wxr.wtp.warning( "conflicting values for {} in merge_base: " @@ -795,7 +795,8 @@ def merge_base(data, base): sortid="page/904", ) - def complementary_pop(pron, key): + def complementary_pop(pron: WordData, key: str + ) -> WordData: """Remove unnecessary keys from dict values in a list comprehension...""" if key in pron: @@ -806,19 +807,19 @@ def complementary_pop(pron, key): # does not match "word" or one of "forms" if "sounds" in data and "word" in data: accepted = [data["word"]] - accepted.extend(f["form"] for f in data.get("forms", ())) + accepted.extend(f["form"] for f in data.get("forms", dict())) # type:ignore data["sounds"] = list( - complementary_pop(s, "pos") - for s in data["sounds"] - if "form" not in s or s["form"] in accepted + s + for s in data["sounds"] # type:ignore + if "form" not in s or s["form"] in accepted # type:ignore ) # If the result has sounds, eliminate sounds that have a pos that # does not match "pos" if "sounds" in data and "pos" in data: data["sounds"] = list( - s - for s in data["sounds"] - if "pos" not in s or s["pos"] == data["pos"] + complementary_pop(s, "pos") # type:ignore + for s in data["sounds"] # type: ignore + if "pos" not in s or s["pos"] == data["pos"] # type:ignore ) def push_sense():