Coverage for src/wiktextract/extractor/ko/etymology.py: 97%

19 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-09-12 08:27 +0000

1from wikitextprocessor.parser import LEVEL_KIND_FLAGS, LevelNode, NodeKind 

2 

3from ...page import clean_node 

4from ...wxr_context import WiktextractContext 

5from .models import WordEntry 

6 

7 

8def extract_etymology_section( 

9 wxr: WiktextractContext, word_entry: WordEntry, level_node: LevelNode 

10) -> None: 

11 if len(word_entry.etymology_texts) > 0: 

12 word_entry.etymology_texts.clear() 

13 word_entry.categories.clear() 

14 

15 has_list = False 

16 for list_node in level_node.find_child(NodeKind.LIST): 

17 has_list = True 

18 for list_item in list_node.find_child(NodeKind.LIST_ITEM): 

19 text = clean_node(wxr, word_entry, list_item.children) 

20 if len(text) > 0: 20 ↛ 18line 20 didn't jump to line 18 because the condition on line 20 was always true

21 word_entry.etymology_texts.append(text) 

22 

23 if not has_list: 

24 text = clean_node( 

25 wxr, 

26 word_entry, 

27 list(level_node.invert_find_child(LEVEL_KIND_FLAGS)), 

28 ) 

29 if len(text) > 0: 

30 word_entry.etymology_texts.append(text)