Coverage for src/wiktextract/extractor/cs/tags.py: 66%
32 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-03 05:44 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-03 05:44 +0000
1from .models import WordEntry
3# https://cs.wiktionary.org/wiki/Modul:Priznaky/seznam
4LABEL_TAGS = {
5 "v Americe": "US",
6 "argot": "slang",
7 "archaicky": "archaic",
8 "básnicky": "poetic",
9 "bavorský výraz": "Bavarian",
10 "biblický výraz": "Biblical",
11 "cirkusový slang": "slang",
12 "častěji": "often",
13 # "částečně": "partially",
14 "v Čechách": "Bohemia",
15 "dětsky": "childish",
16 "divadelní slang": "slang",
17 "dokonavé": "perfective",
18 # "domácky": "",
19 "dopravní slang": "slang",
20 "doslovně": "literary",
21 "drogový slang": "slang",
22 # "dříve": "formerly",
23 "eufemisticky": "euphemistic",
24 "expresivně": "expressively",
25 "familiárně": "familiar",
26 "formálně": "formally",
27 "hanlivě": "derogatory",
28 # "brněnský hantec": "",
29 "historicky": "historical",
30 "hornický slang": "slang",
31 "horolezecký slang": "slang",
32 "hovorově": "colloquially",
33 "muzikantský slang": "slang",
34 "hyperonymum": "hypernym",
35 "hyponymum": "hyponym",
36 "internetový slang": "slang",
37 "intranzitivní": "intransitive",
38 "ironicky": "ironic",
39 "karetní slang": "slang",
40 "knižně": "literary",
41 "kriminální slang": ["criminal-slang", "slang"],
42 "křesťanský slang": ["Christian", "slang"],
43 "latinsky": "Latin",
44 "slang mládeže": "slang",
45 "v plurálu": "plural",
46 "v moderním kontextu": "modern",
47 "na Moravě": "Moravia",
48 "motoristický slang": "slang",
49 "myslivecký slang": "slang",
50 "slang námořníků": "slang",
51 "nářečně": "dialectal",
52 "nedokonavé": "imperfect",
53 "neformálně": "informal",
54 "neologismus": "neologism",
55 "jen neosobní": "impersonal",
56 "nepočitatelné": "uncountable",
57 # "nepřesně": "",
58 "nesprávně": "incorrectly",
59 "neutrálně": "neutral",
60 # "nezvratné": "",
61 # "v obecném jazyce": "",
62 "oblastně": "regional",
63 "obrazně": "figuratively",
64 # "odborně": "",
65 # "okazionalismus": "",
66 "pejorativně": "pejorative",
67 "počitatelné": "countable",
68 "policejní slang": "slang",
69 "pomnožné": "multiplicative",
70 "poněkud zastarale": "outdated",
71 "pražský výraz": "Prague",
72 "přechýleně": "oblique",
73 "přeneseně": "figuratively",
74 # "přibližně": "",
75 "v Rakousku": "Austria",
76 "řemeslnický slang": "slang",
77 "v širším slova smyslu": "broadly",
78 "v užším slova smyslu": "narrowly",
79 "slangově": "slang",
80 "v současnosti": "present",
81 "současným pravopisem": "contemporary",
82 "spisovné skloňování": "literary",
83 "sportovní slang": "slang",
84 "starým pravopisem": "archaic",
85 "staročesky": "Old-Cezch",
86 "studentský slang": "slang",
87 "technický slang": "slang",
88 "televizní slang": "slang",
89 "trampský slang": "slang",
90 "tranzitivní": "transitive",
91 "vězeňský slang": "slang",
92 "vodácký slang": "slang",
93 "vojenský slang": "slang",
94 "vulgárně": "vulgar",
95 # "vznešeně": "noble",
96 # "xenofobní výraz": "",
97 "z angličtiny": "English",
98 "zastarale": "obsolete",
99 "zdravotnický slang": "slang",
100 "zdrobněle": "diminutive",
101 "zkráceně": "abbreviation",
102 "zkratkou": "abbreviation",
103 "zřídka": "rare",
104 "zveličele": "exaggerated",
105 "zvratné": "reflexive",
106 "železničářský slang": "slang",
107 "žertovně": "humorous",
108 "židovský slang": ["Jewish", "slang"],
109 "ambitranzitivní": "ambitransitive",
110}
112GENDER_TAGS = {
113 "mužský": "masculine",
114 "životný": "animate",
115 "neživotný": "inanimate",
116 "femininum (ženský rod)": "feminine",
117 "ženský": "feminine",
118 "ženský rod": "feminine",
119 "neutrum (střední rod)": "neuter",
120 "střední": "neuter",
121 "střední rod": "neuter",
122 "maskulinum (mužský rod)": "masculine",
123 "mužský rod": "masculine",
124 # "všechny rody": "",
125}
127TABLE_TAGS = {
128 # Šablona:Substantivum_(cs)
129 "jednotné": "singular",
130 "množné": "plural",
131 "nominativ": "nominative",
132 "genitiv": "genitive",
133 "dativ": "dative",
134 "akuzativ": "accusative",
135 "vokativ": "vocative",
136 "lokál": "locative",
137 "instrumentál": "instrumental",
138 # Šablona:Adjektivum_(cs)
139 "mužský\nživotný": ["masculine", "animate"],
140 "mužský\nneživotný": ["masculine", "inanimate"],
141 # Šablona:Stupňování_(cs)
142 "pozitiv": "positive",
143 "komparativ": "comparative",
144 "superlativ": "superlative",
145 # Šablona:Sloveso_(cs)
146 "Oznamovací způsob": "indicative",
147 "číslo jednotné": "singular",
148 "číslo množné": "plural",
149 "1.": "first-person",
150 "2.": "second-person",
151 "3.": "third-person",
152 "přítomný čas": "present",
153 "Rozkazovací způsob": "imperative",
154 "číslo\njednotné": "singular",
155 "Příčestí": "participle",
156 "mužský životný\ni neživotný": ["masculine", "animate", "inanimate"],
157 "mužský neživotný\na ženský": ["masculine", "animate", "feminine"],
158 "činné": "active",
159 "Přechodníky": "transgressive",
160 "ženský\nstřední": ["feminine", "neuter"],
161 "mužský\nženský\nstřední": ["masculine", "feminine", "neuter"],
162 "přítomný": "present",
163 # Šablona:Sloveso_(de)
164 "Indikativ": "indicative",
165 "aktivum": "active",
166 "singulár": "singular",
167 "plurál": "plural",
168 "prézens": "present",
169 "préteritum": "preterite",
170 "perfektum": ["present", "perfect"],
171 "plusquamperfektum": ["past", "perfect"],
172 "futurum 1": "future-i",
173 "futurum 2": "future-ii",
174 "konjunktiv I": "conjunctive-i",
175 "konjunktiv II": "conjunctive-ii",
176 "Imperativ": "imperative",
177 "Infinitiv": "infinitive",
178 "Příčestí činné (přítomné)": ["active", "participle", "present"],
179 "silná": "strong",
180 "slabá": "weak",
181 "smíšená": "mixed",
182 # Template:Adjektivum (nl) skloňování
183 "společný": "common",
184 "střední": "neuter",
185 # Template:Adjektivum (nl) stupňování
186 "neurčitý": "indefinite",
187 "určitý": "definite",
188 "Komparativ": "comparative",
189 "Superlativ": "superlative",
190 # Template:Sloveso (en)
191 "infinitiv": "infinitive",
192 "3. osoba": "third-person",
193 "vid průběhový": ["present", "progressive"],
194 # Template:Sloveso (fr)
195 "Číslo jednotné": "singular",
196 "Číslo množné": "plural",
197 "1. je (j')": "first-person",
198 "2. tu": "second-person",
199 "3. il / elle": "third-person",
200 "1. nous": "first-person",
201 "2. vous": "second-person",
202 "3. ils / elles": "third-person",
203 "Jednoduché\nčasy": "simple",
204 "Prézens": "present",
205 "Imperfektum": "imperfect",
206 "Passé simple": "past",
207 "Futurum I": "future-i",
208 "Složené\nčasy": "compound",
209 "Passé composé": ["past", "compound"],
210 "Plusquamperfektum": ["past", "perfect"],
211 "Passé antérieur": ["past", "anterior"],
212 "Futurum II": "future-ii",
213 "Spojovací způsob": "subjunctive",
214 "1. que je (j')": "first-person",
215 "2. que tu": "second-person",
216 "3. qu'il / elle": "third-person",
217 "1. que nous": "first-person",
218 "2. que vous": "second-person",
219 "3. qu'ils / elles": "third-person",
220 "Passé": "past",
221 "Podmiňovací způsob": "conditional",
222 "Číslo\n jednotné": "singular",
223 "Přechodník": "transgressive",
224 # Template:Sloveso (es)
225 "způsob oznamovací": "indicative",
226 "souminulý čas": "past",
227 "minulý čas dokonavý": ["past", "perfective"],
228 "budoucí čas": "future",
229 "podmiňovací": "conditional",
230 "způsob spojovací": "connective",
231 "souminulý čas (ra)": "past",
232 "souminulý čas (se)": "past",
233 "způsob rozkazovací": "imperative",
234 "kladný": "affirmative",
235 "záporný": "negative",
236 "neosobní tvary": "impersonal",
237 "gerundium": "gerund",
238 "příčestí": "participle",
239 "příčestí minulé": ["past", "participle"],
240}
242SOUND_TAGS = {
243 "Pinyin": "Pinyin",
244 "Bopomofo": "Bopomofo",
245 "bopomofo": "Bopomofo",
246 "hiragana": "hiragana",
247 "romaji": "Rōmaji",
248 "Jyutping": "Jyutping",
249}
252TAGS = {**LABEL_TAGS, **GENDER_TAGS, **TABLE_TAGS, **SOUND_TAGS}
254TOPICS = {
255 "v alchymii": "alchemy",
256 "v anatomii": "anatomy",
257 "v antropologii": "anthropology",
258 "v archeologii": "archaeology",
259 "v architektuře": "architecture",
260 "v astrologii": "astrology",
261 "v bankovnictví": "banking",
262 "v basketbalu": "basketball",
263 "v biochemii": "biochemistry",
264 "v biologii": "biology",
265 "v botanice": "botany",
266 "v buddhizmu": "Buddhism",
267 "církevní": "ecclesiastical",
268 "cirkusový slang": "circus",
269 "v cukrovarnictví": "sugar-making",
270 "v diplomacii": "diplomacy",
271 "v dopravě": "transport",
272 "dopravní slang": "transport",
273 "drogový slang": "drugs",
274 "v ekologii": "ecology",
275 "v ekonomii": "economics",
276 "v elektrotechnice": "electrical-engineering",
277 "v energetice": "energy",
278 "v entomologii": "entomology",
279 "v epidemiologii": "epidemiology",
280 # "v estetice": "",
281 "v etnografii": "ethnography",
282 "v lékárenství": "pharmacy",
283 "ve filmu": "film",
284 "ve filosofii": "philosophy",
285 "ve finančnictví": "finance",
286 "ve folklóru": "folklore",
287 "ve fotografii": "photography",
288 "ve fyzice": "physics",
289 "ve fyziologii": "physiology",
290 "v gastronomii": "gastronomy",
291 "v genetice": "genetics",
292 "v geodézii": "geodesy",
293 "v geologii": "geology",
294 "v geometrii": "geometry",
295 "v historii": "history",
296 "v ledním hokeji": "ice-hockey",
297 "v hornictví": "mining",
298 "hornický slang": "mining",
299 "horolezecký slang": "mountaineering",
300 "v hudbě": "music",
301 "muzikantský slang": "music",
302 "v hutnictví": "metallurgy",
303 # "chatovací zkratka": "",
304 "v chemii": "chemistry",
305 # "v chodském nářečí": "",
306 "v ichtyologii": "ichthyology",
307 "v informatice": "computer-science",
308 "internetový slang": "Internet",
309 "v islámu": "Islam",
310 "v jazykovědě": "linguistics",
311 "v jaderné fyzice": "nuclear-physics",
312 # "v kartářství": "",
313 "v karetních hrách": "card-games",
314 "karetní slang": "card-games",
315 "keramika": "ceramics",
316 "v knihovnictví": "librarianship",
317 "v komunikaci": "communications",
318 "v konspiračních teoriích": "conspiracy",
319 # "v koželužství": "",
320 "v krejčovství": "tailor",
321 "v křesťanství": "Christianity",
322 # "v kvalitářství": "",
323 # "v kybernetice": "",
324 "v lesnictví": "forestry",
325 "v letectví": "aviation",
326 "v lexikologii": "lexicology",
327 "v literatuře": "literature",
328 "v logice": "logic",
329 "v loďařství": "shipbuilding",
330 "v matematice": "mathematics",
331 "v lékařství": "medicine",
332 "v meteorologii": "meteorology",
333 "v mezinárodním právu": "law",
334 "v mineralogii": "mineralogy",
335 "v mykologii": "mycology",
336 "myslivecký slang": "hunting",
337 "v mytologii": "mythology",
338 "v náboženství": "religion",
339 "v obchodním styku": "business",
340 "v obuvnictví": "shoemaking",
341 "v optice": "optics",
342 "v pedagogice": "education",
343 "v pivovarnictví": "brewing",
344 "v plavbě": "sailing",
345 "v pojišťovnictví": "insurance",
346 "v politice": "politics",
347 "policejní slang": "police",
348 "v polygrafii": "printing",
349 "v poštovnictví": "mail",
350 "v potravinářství": "food",
351 "v právu": "law",
352 "v psychologii": "psychology",
353 "v publicistice": "journalism",
354 "v prostředí obchodu s nemovitostmi": "real-estate",
355 "v rybářství": "fishing",
356 "v římském právu": "law",
357 "sexualita": "sexuality",
358 "v sklářství": "glassmaking",
359 "v sociologii": "sociology",
360 "současným pravopisem": "orthography",
361 "ve sportu": "sports",
362 "sportovní slang": "sports",
363 "ve statistice": "statistics",
364 "ve stavebnictví": "construction",
365 "ve stylistice": "stylistics",
366 "v šermu": "fencing",
367 "v technice": "technology",
368 "technický slang": "technical",
369 "televizní slang": "television",
370 "v teologii": "theology",
371 "v textilnictví": "textiles",
372 "v truhlářství": "carpentry",
373 "v typografii": "typography",
374 "v umění": "arts",
375 "v urbanismu": "urbanism",
376 "ve včelařství": "beekeeping",
377 "ve veterinářství": ["veterinary", "medicine"],
378 "vězeňský slang": "prison",
379 "vodácký slang": "boating",
380 "v vodním stavitelství": ["hydraulics", "engineering"],
381 "ve vojenství": "military",
382 "vojenský slang": "military",
383 "ve výpočetní technice": "computer-sciences",
384 "ve vulkanologii": "volcanology",
385 "ve výtvarnictví": "arts",
386 "v zahradnictví": "horticulture",
387 "zdravotní": "health",
388 "zdravotnický slang": "medicine",
389 "v zemědělství": "agriculture",
390 "v geografii": "geography",
391 "v zoologii": "zoology",
392 "ve zvukařství": "sound-engineering",
393 "železničářský slang": "railways",
394 "žurnalisticky": "journalism",
395}
398def translate_raw_tags(data: WordEntry) -> None:
399 raw_tags = []
400 for raw_tag in data.raw_tags:
401 found_tag = False
402 if raw_tag in TAGS and hasattr(data, "tags"):
403 found_tag = True
404 tr_tag = TAGS[raw_tag]
405 if isinstance(tr_tag, str) and tr_tag not in data.tags:
406 data.tags.append(tr_tag)
407 elif isinstance(tr_tag, list): 407 ↛ 411line 407 didn't jump to line 411 because the condition on line 407 was always true
408 for tag in tr_tag:
409 if tag not in data.tags: 409 ↛ 408line 409 didn't jump to line 408 because the condition on line 409 was always true
410 data.tags.append(tag)
411 if raw_tag in TOPICS and hasattr(data, "topics"): 411 ↛ 412line 411 didn't jump to line 412 because the condition on line 411 was never true
412 found_tag = True
413 topic = TOPICS[raw_tag]
414 if isinstance(topic, str) and topic not in data.topics:
415 data.topics.append(topic)
416 elif isinstance(topic, list):
417 for t in topic:
418 if t not in data.topics:
419 data.topics.append(t)
420 if not found_tag:
421 raw_tags.append(raw_tag)
422 data.raw_tags = raw_tags