Coverage for src/wiktextract/extractor/id/etymology.py: 19%
16 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-04 10:58 +0000
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-04 10:58 +0000
1from wikitextprocessor.parser import LEVEL_KIND_FLAGS, LevelNode, NodeKind
3from ...page import clean_node
4from ...wxr_context import WiktextractContext
5from .models import WordEntry
8def extract_etymology_section(
9 wxr: WiktextractContext,
10 word_entry: WordEntry,
11 level_node: LevelNode,
12) -> None:
13 has_list = False
14 for list_node in level_node.find_child(NodeKind.LIST):
15 has_list = True
16 for list_item in list_node.find_child(NodeKind.LIST_ITEM):
17 e_str = clean_node(wxr, word_entry, list_item.children)
18 if e_str != "":
19 word_entry.etymology_texts.append(e_str)
20 if not has_list:
21 e_str = clean_node(
22 wxr,
23 word_entry,
24 list(level_node.invert_find_child(LEVEL_KIND_FLAGS)),
25 )
26 if e_str != "":
27 word_entry.etymology_texts.append(e_str)