Coverage for src/wiktextract/extractor/cs/tags.py: 73%
28 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-13 10:14 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-10-13 10:14 +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}
192SOUND_TAGS = {
193 "Pinyin": "Pinyin",
194 "Bopomofo": "Bopomofo",
195 "hiragana": "hiragana",
196 "romaji": "Rōmaji",
197}
200TAGS = {**LABEL_TAGS, **GENDER_TAGS, **TABLE_TAGS, **SOUND_TAGS}
202TOPICS = {
203 "v alchymii": "alchemy",
204 "v anatomii": "anatomy",
205 "v antropologii": "anthropology",
206 "v archeologii": "archaeology",
207 "v architektuře": "architecture",
208 "v astrologii": "astrology",
209 "v bankovnictví": "banking",
210 "v basketbalu": "basketball",
211 "v biochemii": "biochemistry",
212 "v biologii": "biology",
213 "v botanice": "botany",
214 "v buddhizmu": "Buddhism",
215 "církevní": "ecclesiastical",
216 "cirkusový slang": "circus",
217 "v cukrovarnictví": "sugar-making",
218 "v diplomacii": "diplomacy",
219 "v dopravě": "transport",
220 "dopravní slang": "transport",
221 "drogový slang": "drugs",
222 "v ekologii": "ecology",
223 "v ekonomii": "economics",
224 "v elektrotechnice": "electrical-engineering",
225 "v energetice": "energy",
226 "v entomologii": "entomology",
227 "v epidemiologii": "epidemiology",
228 # "v estetice": "",
229 "v etnografii": "ethnography",
230 "v lékárenství": "pharmacy",
231 "ve filmu": "film",
232 "ve filosofii": "philosophy",
233 "ve finančnictví": "finance",
234 "ve folklóru": "folklore",
235 "ve fotografii": "photography",
236 "ve fyzice": "physics",
237 "ve fyziologii": "physiology",
238 "v gastronomii": "gastronomy",
239 "v genetice": "genetics",
240 "v geodézii": "geodesy",
241 "v geologii": "geology",
242 "v geometrii": "geometry",
243 "v historii": "history",
244 "v ledním hokeji": "ice-hockey",
245 "v hornictví": "mining",
246 "hornický slang": "mining",
247 "horolezecký slang": "mountaineering",
248 "v hudbě": "music",
249 "muzikantský slang": "music",
250 "v hutnictví": "metallurgy",
251 # "chatovací zkratka": "",
252 "v chemii": "chemistry",
253 # "v chodském nářečí": "",
254 "v ichtyologii": "ichthyology",
255 "v informatice": "computer-science",
256 "internetový slang": "Internet",
257 "v islámu": "Islam",
258 "v jazykovědě": "linguistics",
259 "v jaderné fyzice": "nuclear-physics",
260 # "v kartářství": "",
261 "v karetních hrách": "card-games",
262 "karetní slang": "card-games",
263 "keramika": "ceramics",
264 "v knihovnictví": "librarianship",
265 "v komunikaci": "communications",
266 "v konspiračních teoriích": "conspiracy",
267 # "v koželužství": "",
268 "v krejčovství": "tailor",
269 "v křesťanství": "Christianity",
270 # "v kvalitářství": "",
271 # "v kybernetice": "",
272 "v lesnictví": "forestry",
273 "v letectví": "aviation",
274 "v lexikologii": "lexicology",
275 "v literatuře": "literature",
276 "v logice": "logic",
277 "v loďařství": "shipbuilding",
278 "v matematice": "mathematics",
279 "v lékařství": "medicine",
280 "v meteorologii": "meteorology",
281 "v mezinárodním právu": "law",
282 "v mineralogii": "mineralogy",
283 "v mykologii": "mycology",
284 "myslivecký slang": "hunting",
285 "v mytologii": "mythology",
286 "v náboženství": "religion",
287 "v obchodním styku": "business",
288 "v obuvnictví": "shoemaking",
289 "v optice": "optics",
290 "v pedagogice": "education",
291 "v pivovarnictví": "brewing",
292 "v plavbě": "sailing",
293 "v pojišťovnictví": "insurance",
294 "v politice": "politics",
295 "policejní slang": "police",
296 "v polygrafii": "printing",
297 "v poštovnictví": "mail",
298 "v potravinářství": "food",
299 "v právu": "law",
300 "v psychologii": "psychology",
301 "v publicistice": "journalism",
302 "v prostředí obchodu s nemovitostmi": "real-estate",
303 "v rybářství": "fishing",
304 "v římském právu": "law",
305 "sexualita": "sexuality",
306 "v sklářství": "glassmaking",
307 "v sociologii": "sociology",
308 "současným pravopisem": "orthography",
309 "ve sportu": "sports",
310 "sportovní slang": "sports",
311 "ve statistice": "statistics",
312 "ve stavebnictví": "construction",
313 "ve stylistice": "stylistics",
314 "v šermu": "fencing",
315 "v technice": "technology",
316 "technický slang": "technical",
317 "televizní slang": "television",
318 "v teologii": "theology",
319 "v textilnictví": "textiles",
320 "v truhlářství": "carpentry",
321 "v typografii": "typography",
322 "v umění": "arts",
323 "v urbanismu": "urbanism",
324 "ve včelařství": "beekeeping",
325 "ve veterinářství": ["veterinary", "medicine"],
326 "vězeňský slang": "prison",
327 "vodácký slang": "boating",
328 "v vodním stavitelství": ["hydraulics", "engineering"],
329 "ve vojenství": "military",
330 "vojenský slang": "military",
331 "ve výpočetní technice": "computer-sciences",
332 "ve vulkanologii": "volcanology",
333 "ve výtvarnictví": "arts",
334 "v zahradnictví": "horticulture",
335 "zdravotní": "health",
336 "zdravotnický slang": "medicine",
337 "v zemědělství": "agriculture",
338 "v geografii": "geography",
339 "v zoologii": "zoology",
340 "ve zvukařství": "sound-engineering",
341 "železničářský slang": "railways",
342 "žurnalisticky": "journalism",
343}
346def translate_raw_tags(data: WordEntry) -> None:
347 raw_tags = []
348 for raw_tag in data.raw_tags:
349 found_tag = False
350 if raw_tag in TAGS and hasattr(data, "tags"):
351 found_tag = True
352 tr_tag = TAGS[raw_tag]
353 if isinstance(tr_tag, str):
354 data.tags.append(tr_tag)
355 elif isinstance(tr_tag, list): 355 ↛ 357line 355 didn't jump to line 357 because the condition on line 355 was always true
356 data.tags.extend(tr_tag)
357 if raw_tag in TOPICS and hasattr(data, "topics"): 357 ↛ 358line 357 didn't jump to line 358 because the condition on line 357 was never true
358 found_tag = True
359 topic = TOPICS[raw_tag]
360 if isinstance(topic, str):
361 data.topics.append(topic)
362 elif isinstance(topic, list):
363 data.topics.extend(topic)
364 if not found_tag:
365 raw_tags.append(raw_tag)
366 data.raw_tags = raw_tags