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

1from .models import WordEntry 

2 

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} 

111 

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} 

126 

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} 

191 

192SOUND_TAGS = { 

193 "Pinyin": "Pinyin", 

194 "Bopomofo": "Bopomofo", 

195 "hiragana": "hiragana", 

196 "romaji": "Rōmaji", 

197} 

198 

199 

200TAGS = {**LABEL_TAGS, **GENDER_TAGS, **TABLE_TAGS, **SOUND_TAGS} 

201 

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} 

344 

345 

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