Coverage for src/wiktextract/extractor/ku/etymology.py: 95%
23 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-07 00:55 +0000
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-07 00:55 +0000
1from wikitextprocessor import LevelNode, NodeKind, WikiNode
3from ...page import clean_node
4from ...wxr_context import WiktextractContext
5from .models import WordEntry
8def extract_etymology_section(
9 wxr: WiktextractContext, word_entry: WordEntry, level_node: LevelNode
10):
11 # https://ku.wiktionary.org/wiki/Wîkîferheng:Etîmolojî
12 e_nodes = []
13 for node in level_node.children:
14 if isinstance(node, LevelNode):
15 break
16 elif isinstance(node, WikiNode) and node.kind == NodeKind.LIST:
17 for list_item in node.find_child(NodeKind.LIST_ITEM):
18 e_links: list[tuple[str, str]] = []
19 e_text = clean_node(
20 wxr, word_entry, list_item.children, link_collector=e_links
21 )
22 if e_text != "": 22 ↛ 17line 22 didn't jump to line 17 because the condition on line 22 was always true
23 word_entry.etymology_texts.append(e_text)
24 word_entry.etymology_links.extend(e_links)
25 else:
26 e_nodes.append(node)
27 if len(e_nodes) > 0: 27 ↛ exitline 27 didn't return from function 'extract_etymology_section' because the condition on line 27 was always true
28 e_links: list[tuple[str, str]] = []
29 e_text = clean_node(wxr, word_entry, e_nodes, link_collector=e_links)
30 if e_text != "":
31 word_entry.etymology_texts.append(e_text)
32 word_entry.etymology_links.extend(e_links)