Coverage for src/wiktextract/extractor/pt/head_line.py: 96%

16 statements  

« prev     ^ index     » next       coverage.py v7.9.0, created at 2025-06-13 07:43 +0000

1from wikitextprocessor import NodeKind, TemplateNode, WikiNode 

2 

3from ...page import clean_node 

4from ...wxr_context import WiktextractContext 

5from .models import WordEntry 

6from .tags import translate_raw_tags 

7 

8 

9def extract_head_line_nodes( 

10 wxr: WiktextractContext, 

11 word_entry: WordEntry, 

12 nodes: list[WikiNode | str], 

13) -> None: 

14 for node in nodes: 

15 if isinstance(node, TemplateNode) and node.template_name in [ 

16 "g", 

17 "gramática", 

18 "gênero", 

19 "m", 

20 "f", 

21 "n", 

22 "c", 

23 "c2g", 

24 "pr", 

25 "c.", 

26 "fp", 

27 "mp", 

28 ]: 

29 extract_gramática_template(wxr, word_entry, node) 

30 

31 

32def extract_gramática_template( 

33 wxr: WiktextractContext, 

34 word_entry: WordEntry, 

35 t_node: TemplateNode, 

36) -> None: 

37 # https://pt.wiktionary.org/wiki/Predefinição:gramática 

38 expanded_node = wxr.wtp.parse( 

39 wxr.wtp.node_to_wikitext(t_node), expand_all=True 

40 ) 

41 for italic_node in expanded_node.find_child(NodeKind.ITALIC): 

42 raw_tag = clean_node(wxr, None, italic_node) 

43 if raw_tag != "": 43 ↛ 41line 43 didn't jump to line 41 because the condition on line 43 was always true

44 word_entry.raw_tags.append(raw_tag) 

45 translate_raw_tags(word_entry)