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
« prev ^ index » next coverage.py v7.9.0, created at 2025-06-13 07:43 +0000
1from wikitextprocessor import NodeKind, TemplateNode, WikiNode
3from ...page import clean_node
4from ...wxr_context import WiktextractContext
5from .models import WordEntry
6from .tags import translate_raw_tags
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)
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)