Coverage for src/wiktextract/extractor/pt/tags.py: 90%

20 statements  

« prev     ^ index     » next       coverage.py v7.6.10, created at 2024-12-27 08:07 +0000

1from .models import WordEntry 

2 

3# Predefinição:gramática 

4HEAD_LINE_TAGS = { 

5 "masculino": "masculine", 

6 "feminino": "feminine", 

7 "género comum": "common", 

8 "dois géneros": "dual", 

9 "comum aos dois géneros": ["common", "dual"], 

10 "neutro": "neutral", 

11 "masculino plural": ["masculine", "plural"], 

12 "masculino singular": ["masculine", "singular"], 

13 "masculino de dois números": "masculine", 

14 "masculino comum aos dois números": ["masculine", "common"], 

15 "masculino invariável": ["masculine", "invariable"], 

16 "masculino dual": ["masculine", "dual"], 

17 "feminino plural": ["feminine", "plural"], 

18 "feminino singular": ["feminine", "singular"], 

19 "feminino de dois números": "feminine", 

20 "feminino comum aos dois números": ["feminine", "common"], 

21 "feminino invariável": ["feminine", "invariable"], 

22 "feminino dual": ["feminine", "dual"], 

23 "género comum e plural": ["common", "plural"], 

24 "género comum e singular": ["common", "singular"], 

25 "género comum e comum aos dois números": "common", 

26 "dois géneros plural": "plural", 

27 "dois géneros singular": "singular", 

28 "comum aos dois géneros plural": ["common", "plural"], 

29 "comum aos dois géneros singular": ["common", "singular"], 

30 "comum aos dois géneros e aos dois números": "common", 

31 "neutro plural": ["neutral", "plural"], 

32 "neutro singular": ["neutral", "singular"], 

33 "neutro de dois números": "neutral", 

34 "neutro comum aos dois números": ["neutral", "common"], 

35 "neutro invariável": ["neutral", "invariable"], 

36 "neutro dual": ["neutral", "dual"], 

37 "plural": "plural", 

38 "singular": "singular", 

39 "sem plural": "no-plural", 

40 "singular e plural": ["singular", "plural"], 

41 # "dois números": "", 

42 "comum aos dois números": "common", 

43 "dual": "dual", 

44 "invariável": "invariable", 

45 # "uniforme": "", 

46 # "biforme": "", 

47 "contável": "countable", 

48 "incontável": "uncountable", 

49 "primeira pessoa": "first-person", 

50 "primeira pessoa do singular": ["first-person", "singular"], 

51 "primeira pessoa do plural": ["first-person", "plural"], 

52 "segunda pessoa": "second-person", 

53 "segunda pessoa do singula": ["second-person", "singular"], 

54 "segunda pessoa do plural": ["second-person", "plural"], 

55 "terceira pessoa": "third-person", 

56 "terceira pessoa do singular": ["third-person", "singular"], 

57 "terceira pessoa do plural": ["third-person", "plural"], 

58 "cardinal": "cardinal", 

59 "ordinal": "ordinal", 

60 "multiplicativo": "multiplicative", 

61 # "fracionário": "", 

62 "distributivo": "distributive", 

63 "coletivo": "collective", 

64 "pessoal": "personal", 

65 "demonstrativo": "demonstrative", 

66 "possessivo": "possessive", 

67 "relativo": "relative", 

68 "interrogativo": "interrogative", 

69 # "tratamento": "", 

70 "indefinido": "indefinite", 

71 "definido": "definite", 

72 # "próprio": "", 

73 "comum": "common", 

74 "concreto": "concrete", 

75 "abstrato": "abstract", 

76 "composto": "compound", 

77 # "simples": "", 

78 # "primitivo": "", 

79 # "derivado": "", 

80 "animado": "animate", 

81 "inanimado": "inanimate", 

82 "intransitivo": "intransitive", 

83 "transitivo": "transitive", 

84 "transitivo indireto": ["indirect", "transitive"], 

85 "transitivo direto": ["direct", "transitive"], 

86 "transitivo direto e indireto": ["direct", "indirect", "transitive"], 

87 "pronominal": "pronominal", 

88 "pronominal transitivo indireto": ["pronominal", "indirect", "transitive"], 

89 "bitransitivo": "ditransitive", 

90 "reflexivo": "reflexive", 

91 "auxiliar": "auxiliary", 

92 "impessoal": "impersonal", 

93 "predicativo": "predicative", 

94 "com valor de verbo": "verb", 

95 "de lugar": "place", 

96 # "de modo": "", 

97 # "de tempo": "", 

98 # "de intensidade": "", 

99 "maiúscula": "capitalized", 

100 "minúscula": "lowercase", 

101} 

102 

103TABLE_TAGS = { 

104 # Predefinição:flex.pt 

105 "Masculino": "masculine", 

106 "Feminino": "feminine", 

107 "Plural": "plural", 

108 "Singular": "singular", 

109 # Predefinição:flex.pt.subst.completa 

110 "Coletivo": "collective", 

111 "Normal": "standard", 

112 "Aumentativo": "augmentative", 

113 "Diminutivo": "diminutive", 

114 # Predefinição:conj.pt 

115 "Infinitivo impessoal": ["impersonal", "infinitive"], 

116 "Gerúndio": "gerund", 

117 "Particípio": "participle", 

118 "primeira": "first-person", 

119 "segunda": "second-person", 

120 "terceira": "third-person", 

121 "Modo\nIndicativo": "indicative", 

122 "Presente": "present", 

123 "Pretérito imperfeito": ["past", "continuative"], 

124 "Pretérito perfeito": "past", 

125 "Pretérito mais-que-perfeito": "pluperfect", 

126 "Futuro do presente": ["future", "present"], 

127 "Futuro do pretérito": ["future", "past"], 

128 "Modo\nSubjuntivo\n(Conjuntivo)": ["subjunctive", "conjunctive"], 

129 "Futuro": "future", 

130 "Modo\nImperativo": "imperative", 

131 "Afirmativo": "affirmative", 

132 "Negativo": "negative", 

133 "Infinitivo pessoal": ["personal", "infinitive"], 

134 # Predefinição:conj.en 

135 "Infinitivo": "infinitive", 

136 "Passado simples": "past", 

137} 

138 

139# https://pt.wiktionary.org/wiki/Predefinição:escopo/núcleo 

140GLOSS_TAGS = { 

141 "Grafia portuguesa": "Portugal", 

142 "Grafia brasileira": "Brazil", 

143 "histórico": "historical", 

144 "antigo": "archaic", 

145 "arcaico": "archaic", 

146 "em desuso": "obsolete", 

147 "obsoleto": "obsolete", 

148 "pouco comum": "uncommon", 

149 "raro": "rare", 

150 "obsceno": "vulgar", 

151 "coloquial": "colloquial", 

152 "familiar": "familiar", 

153 "informal": "informal", 

154 # "popular": "", 

155 "figurado": "figuratively", 

156 "depreciativo": "derogatory", 

157 "pejorativo": "pejorative", 

158 "poético": "poetic", 

159 "internetês": ["Internet", "slang"], 

160 "ironia": "ironic", 

161 # "alemanismo": "", 

162 # "italianismo": "Italianism", 

163 # "germanismo": "Germanism", 

164 # "francesismo": "", 

165 # "galicismo": "Gallicism", 

166 "anglicismo": "Anglicism", 

167 # "portuguesismo": "Portuguesism", 

168 # "estrangeirismo": "loanword", 

169 "regionalism": "regional", 

170 "Angola": "Angola", 

171 "Brasil": "Brazil", 

172 # "Amazônia": "Amazonia", 

173 "Nordeste do Brasil": "Northeast-Brazil", 

174 "Norte do Brasil": "North-Brazil", 

175 "Centro-Oeste do Brasil": "Central-West-Brazil", 

176 "Sudeste do Brasil": "Southeast-Brazil", 

177 "Sul do Brasil": "Southern-Brazil", 

178 "Acre": "Acre", 

179 "Alagoas": "Alagoas", 

180 "Amapá": "Amapá", 

181 "Amazonas": "Amazonas", 

182 "Bahia": "Bahia", 

183 "dialeto caipira": "dialectal", 

184 "Ceará": "Ceará", 

185 # "Distrito Federal": "Federal District", 

186 "Espírito Santo": "Espírito Santo", 

187 "Goiás": "Goias", 

188 "Maranhão": "Maranhão", 

189 "Mato Grosso": "Mato Grosso", 

190 "Mato Grosso do Sul": "Mato Grosso do Sul", 

191 "Minas Gerais": "Minas Gerais", 

192 "Pará": "Pará", 

193 "Paraíba": "Paraíba", 

194 "Paraná": "Paraná", 

195 "Pernambuco": "Pernambuco", 

196 "Piauí": "Piauí", 

197 "Rio de Janeiro": "Rio de Janeiro", 

198 "Rio Grande do Norte": "Rio Grande do Norte", 

199 "Rio Grande do Sul": "Rio Grande do Sul", 

200 "Rondônia": "Rondônia", 

201 "Roraima": "Roraima", 

202 # "baralhete": "", 

203 # "canteiros": "", 

204 # "alvanéis": "", 

205 # "telheiros": "", 

206 # "músicos": "", 

207 # "cesteiros": "", 

208 "transitivo": "transitive", 

209 "intransitivo": "intransitive", 

210 "reflexivo": "reflexive", 

211 "pronominal": "pronominal", 

212 "plural": "plural", 

213} 

214 

215OTHER_TAGS = { 

216 "comparativo de superioridade": ["comparative", "superior"], 

217 "superlativo absoluto sintético": ["absolute", "superlative"], 

218 "superlativo relativo de superioridade": [ 

219 "relative", 

220 "superlative", 

221 "superior", 

222 ], 

223} 

224 

225TAGS = {**HEAD_LINE_TAGS, **TABLE_TAGS, **GLOSS_TAGS, **OTHER_TAGS} 

226 

227# https://pt.wiktionary.org/wiki/Predefinição:escopo/núcleo 

228TOPICS = { 

229 "anatomia": "anatomy", 

230 "arquitetura": "architecture", 

231 "botânica": "botany", 

232 "ciência da computação": "computing", 

233 "comunicação": "communications", 

234 # "ciência dos materiais": "", 

235 "engenharia": "engineering", 

236 # "pedagogia": "pedagogy", 

237 # "cronônimo": "chrononym", 

238 "basquetebol": "basketball", 

239 "beisebol": "baseball", 

240 "críquete": "cricket", 

241 "desporto": "sports", 

242 "esporte": "sports", 

243 "ténis": "tennis", 

244 "tênis": "tennis", 

245 "esgrima": "fencing", 

246 "geografia": "geography", 

247 # "toponímia": "", 

248 # "territory": "", 

249 "zoologia": "zoology", 

250 "ornitologia": "ornithology", 

251 # "artrópodes": "", 

252 "entomologia": "entomology", 

253 "ictiologia": "ichthyology", 

254 "veterinária": "veterinary", 

255 # "antropónimo": "", 

256 "alimentação": "food", 

257 "arte": "arts", 

258 "aeronáutica": "aeronautics", 

259 "aritmética": "arithmetic", 

260 "Meteorologia": "meteorology", 

261 "design": "design", 

262 "patologia": "pathology", 

263 "etnologia": "ethnology", 

264 "farmacologia": "pharmacology", 

265 "transporte": "transport", 

266 "Ginecologia": "gynecology", 

267 "linguística": "linguistics", 

268 "indústria têxtil": "textiles", 

269 "mídia": "media", 

270 "ciência da informação": "information-science", 

271 "ludologia": "ludology", 

272 "náutica": "nautical", 

273 "mitologia": "mythology", 

274 "mineralogia": "mineralogy", 

275 "mobiliário": "furniture", 

276 "numismática": "numismatics", 

277 # "Esoterismo": "", 

278 "profissão": "profession", 

279 # "parapsiquismo": "", 

280 "vestuário": "clothing", 

281 "direito": "law", 

282 "química": "chemistry", 

283 "videojogo": "video-games", 

284 "vídeo game": "video-games", 

285 "viticultura": "viticulture", 

286} 

287 

288 

289def translate_raw_tags(data: WordEntry) -> None: 

290 raw_tags = [] 

291 for raw_tag in data.raw_tags: 

292 if raw_tag in TAGS or raw_tag.lower() in TAGS: 

293 tr_tag = TAGS.get(raw_tag, TAGS.get(raw_tag.lower())) 

294 if isinstance(tr_tag, str): 

295 data.tags.append(tr_tag) 

296 elif isinstance(tr_tag, list): 296 ↛ 291line 296 didn't jump to line 291 because the condition on line 296 was always true

297 data.tags.extend(tr_tag) 

298 elif (raw_tag in TOPICS or raw_tag.lower() in TOPICS) and hasattr( 298 ↛ 301line 298 didn't jump to line 301 because the condition on line 298 was never true

299 data, "topics" 

300 ): 

301 data.topics.append(TOPICS.get(raw_tag, TOPICS.get(raw_tag.lower()))) 

302 else: 

303 raw_tags.append(raw_tag) 

304 data.raw_tags = raw_tags