Coverage for src/wiktextract/extractor/ru/tags.py: 85%
41 statements
« prev ^ index » next coverage.py v7.11.3, created at 2025-11-17 07:23 +0000
« prev ^ index » next coverage.py v7.11.3, created at 2025-11-17 07:23 +0000
1from typing import Union
3from .models import WordEntry
5# https://ru.wiktionary.org/wiki/Викисловарь:Условные_сокращения
6# Стиль
7STYLE_TAGS: dict[str, Union[str, list[str]]] = {
8 "бран.": "offensive",
9 "вульг.": "vulgar",
10 "высок.": "honorific",
11 "гипокор.": "familiar",
12 "груб.": "vulgar",
13 "детск.": "childish",
14 "диал.": "dialectal",
15 # "дисфм.": "дисфемизм",
16 "жарг.": "slang",
17 "ирон.": "ironic",
18 "истор.": "historical",
19 # "канц.": "канцелярское",
20 "книжн.": "literary",
21 "ласк.": "diminutive",
22 # "мол.": "молодёжное",
23 "нар.-поэт.": "poetic",
24 "нар.-разг.": "colloquial",
25 # "научн.": "научное",
26 "неодобр.": "disapproving",
27 "неол.": "neologism",
28 "обсц.": "vulgar",
29 "офиц.": "formal",
30 # "патет.": "патетическое",
31 "поэт.": "poetic",
32 "презр.": "contemplative",
33 "пренебр.": "derogatory",
34 "прост.": "colloquial",
35 # "проф.": "профессиональное",
36 # "публиц.": "публицистическое",
37 "разг.": "colloquial",
38 "рег.": "regional",
39 "ритор.": "rhetoric",
40 "сленг.": "slang",
41 "сниж.": "reduced",
42 # "советск.": "советизм",
43 "спец.": "special",
44 "старин.": "archaic",
45 "табу": "taboo",
46 # "торж.": "торжественное",
47 "трад.-нар.": "traditional",
48 "трад.-поэт.": ["traditional", "poetic"],
49 # "увелич.": "увеличительное",
50 "уменьш.": "diminutive",
51 "умласк.": ["diminutive", "endearing"],
52 "унич.": "pejorative",
53 "усилит.": "emphatic",
54 "устар.": "obsolete",
55 "фам.": "familiar",
56 # "школьн.": "школьное",
57 "шутл.": "humorous",
58 "эвф.": "euphemistic",
59 # "экзот.": "экзотизм",
60 "экспр.": "expressively",
61 # "эррат.": "эрративное",
62 # Категория:Стилистические пометы
63 "неофиц.": "informal",
64 "одобр.": "approving",
65 "сленг": "slang",
66 "уважит.": "polite",
67 "уничиж.": "derogatory",
68}
70# Предметные области
71TOPICS = {
72 "авиац.": "aeronautics",
73 "автомоб.": "automotive",
74 "агрон.": "agriculture",
75 "алхим.": "pseudoscience",
76 "альп.": "sports",
77 "анат.": "medicine",
78 "антроп.": "anthropology",
79 "артилл.": "weaponry",
80 "археол.": "history",
81 "архит.": "architecture",
82 "астрол.": "astrology",
83 "астрон.": "astronomy",
84 "библейск.": "religion",
85 "биол.": "biology",
86 "биохим.": "biochemistry",
87 "ботан.": "botany",
88 "бухг.": "finance",
89 "вет.": "zoology pathology",
90 "воен.": "military",
91 "гастрон.": "medicine",
92 "генет.": ["biology", "medicine"],
93 "геогр.": "geography",
94 "геод.": "geography",
95 "геол.": "geology",
96 "геометр.": "geometry",
97 "геофиз.": "geology",
98 "геральд.": "heraldry",
99 "гидрол.": "geography",
100 "гидротехн.": "engineering",
101 "гляциол.": "geography",
102 "горн.": "mining",
103 "дипл.": "politics",
104 "ж.-д.": "railways",
105 "живоп.": "arts",
106 # "животн.": "животноводство",
107 "зоол.": "zoology",
108 "игр.": "games",
109 "информ.": "computing",
110 "искусств.": "art-history",
111 "ислам.": "Islam",
112 "ихтиол.": "ichthyology",
113 # "йогич.": "йогическое",
114 "карт.": "card-games",
115 "керам.": ["chemistry", "engineering"],
116 "кино": "film",
117 "кинол.": "dogs",
118 "комп.": "computing",
119 "косм.": "astronomy",
120 "кулин.": "cuisine",
121 # "культурол.": "культурологическое",
122 "лес.": "business",
123 "лингв.": "linguistics",
124 "матем.": "mathematics",
125 "машин.": "engineering",
126 "мед.": "medicine",
127 "металл.": "metallurgy",
128 "метеорол.": "meteorology",
129 "мех.": "mechanical-engineering",
130 "микробиол.": "microbiology",
131 "минер.": "mineralogy",
132 "мифол,": "mythology",
133 "морск.": "nautical",
134 "муз.": "music",
135 # "нефтегаз.": "нефтегазовая промышленность и нефтепереработка",
136 "нумизм.": "numismatics",
137 "океан.": "oceanography",
138 "оккульт.": "mysticism",
139 "опт.": ["physics", "engineering"],
140 "орнитол.": "ornithology",
141 "охотн.": "hunting",
142 "палеонт.": "paleontology",
143 "паразит.": "medicine",
144 "парикмах.": "hairdressing",
145 "плотн.": "carpentry",
146 "полигр.": "printing",
147 "полит.": "politics",
148 "портн.": "textiles",
149 "прогр.": "programming",
150 "психиатр.": "psychiatry",
151 "психол.": "psychology",
152 "пчел.": "agriculture",
153 "радио.": ["radio", "engineering"],
154 "радиоэл.": ["radio", "electricity"],
155 "рекл.": "marketing",
156 "религ.": "religion",
157 "рыбол.": "fishing",
158 "с.-х.": "agriculture",
159 "сексол.": "sexuality",
160 # "скорн.": "скорняжное дело",
161 "социол.": "sociology",
162 # "спелеол.": "спелеологический",
163 "спорт.": "sports",
164 "стат.": "statistics",
165 "столярн.": "carpentry",
166 "строит.": "construction",
167 "театр.": "theater",
168 "текст.": "textiles",
169 "телеком.": "telecommunications",
170 "техн.": "engineering",
171 "торг.": "commerce",
172 "управл.": "management",
173 "фант.": "fantasy",
174 "фарм.": "pharmacology",
175 "физ.": "physics",
176 "физиол.": "physiology",
177 "филат.": "philately",
178 "филол.": "philology",
179 "филос.": "philosophy",
180 "фин.": "finance",
181 "фолькл.": "folklore",
182 "фотогр.": "photography",
183 "хим.": "chemistry",
184 "хоз.": "economics",
185 # "хореогр.": "хореографическое",
186 "церк.": "religion",
187 "цирк.": "circus",
188 "цитол.": "cytology",
189 "шахм.": "chess",
190 "швейн.": "sewing",
191 "экол.": "ecology",
192 "экон.": "economics",
193 "эл.-техн.": "electrical-engineering",
194 "эл.-энерг.": "electricity",
195 "энтомол.": "entomology",
196 "этногр": "ethnography",
197 "этнолог.": "ethnology",
198 "ювел.": "jewelry",
199 "юр.": "legal",
200 # Категория:Стилистические пометы
201 "бизн.": "business",
202}
204# Жаргон
205SLANG_TOPICS = {
206 "автомоб. жарг.": "motorcycling",
207 "арест.": "prison",
208 "воен. жарг.": "military",
209 "жарг. аним.": "anime",
210 # "жарг. викип.": "жаргон википроектов"
211 "интернет.": "Internet",
212 "комп. жарг.": "computer",
213 # "студ. жарг.": "студенческий жаргон",
214 "техн. жарг.": "technical",
215 "крим. и крим. жарг.": "criminology",
216 "полит. жарг.": "politics",
217 "жарг. нарк.": "drugs",
218 "жарг. ЛГБТ": "LGBT",
219 # "жарг. гом.": "жаргон гомосексуалов",
220}
222# Грамматические категории
223GRAMMATICAL_TAGS = {
224 "3л.": "impersonal",
225 "адъектив.": "adjective",
226 "безл.": "impersonal",
227 "вводн. сл.": "parenthetic",
228 "вин. п.": "accusative",
229 "вопр.": "interrogative",
230 # "восклиц.": "в восклицательных предложениях",
231 "гл.": "verb",
232 "дат. п.": "dative",
233 "ед. ч.": "singular", # Шаблон:ед
234 "ж. р.": "feminine",
235 "женск.": "feminine",
236 "им. п.": "nominative",
237 "исх. п.": "ablative",
238 "исч.": "countable",
239 "м. р.": "masculine",
240 "местн. п.": "locative",
241 "метоним.": "metonymically",
242 "мн. ч.": "plural", # Шаблон:мн, Шаблон:мн.
243 "неисч.": "uncountable",
244 "неодуш.": "inanimate",
245 "неперех.": "intransitive",
246 "нескл.": "indeclinable",
247 # "обобщ": "",
248 # "общ.": "",
249 "одуш.": "animate",
250 # "отриц.": "",
251 "перех.": "transitive",
252 # "повел.": "",
253 "предик.": "predicative",
254 # "предл. п.": "",
255 "прил.": "adjective",
256 # "прош.": "",
257 # "разд. п.": "",
258 "род. п.": "genitive",
259 "собир.": "collective",
260 "статив.": "stative",
261 "субстантивир.": "substantive",
262 "сущ.": "noun",
263 "тв. п.": "instrumental",
264 # https://ru.wiktionary.org/wiki/Категория:Шаблоны:Условные_сокращения
265 "м.": "masculine", # Шаблон:m
266 "ср.": "neuter", # Шаблон:n
267 "ж.": "feminine", # Шаблон:f
268 "ж. мн.": ["feminine", "plural"], # Шаблон:f.pl
269 "несов.": "imperfective", # Шаблон:impf
270 "м./ж.": ["masculine", "feminine"], # Шаблон:m/f
271 "ср./м.": ["neuter", "masculine"], # Шаблон:n/m
272 "сов.": "perfective", # Шаблон:pf
273 # Шаблон:прил ru 1a^
274 "муж. р.": "masculine",
275 "ср. р.": "neuter",
276 "жен. р.": "feminine",
277 "неод.": "inanimate",
278 "т.": "instrumental",
279 "п.": "prepositional",
280 "кратк. форма": "short-form",
281 # Шаблон:мест ru п1*b
282 "с.": "neuter",
283 "в. (^(одуш.)/_(неодуш.))": ["accusative", "animate", "inanimate"],
284 # Шаблон:словоформы tt
285 "прит.": "possessive",
286 "1-е": "first-person",
287 "2-е": "second-person",
288 "3-е": "third-person",
289 # Template:гл ru ^bСВ
290 "пр. действ. прош.": ["active", "participle", "past"],
291 "деепр. прош.": ["adverbial", "participle", "past"],
292 "пр. страд. прош.": ["passive", "participle", "past"],
293 "прич. страд. прош.": ["passive", "participle", "past"],
294 # Template:гл ru 2a
295 "пр. действ. наст.": ["active", "participle", "present"],
296 "деепр. наст.": ["adverbial", "participle", "present"],
297 "пр. страд. наст.": ["passive", "participle", "present"],
298 # Template:гл pt 1 reg
299 "particípio": "participle",
300 "gerúndio": "gerund",
301}
303# Прочие сокращения
304OTHER_TAGS = {
305 "букв.": "literary",
306 # "искаж.": "искажённое",
307 "неправ.": "irregular",
308 "перен.": "figuratively",
309 "редк.": "rare",
310 # "тж.": "", # Шаблон:тж.
311 "общая": "indefinite",
312 "опред.": "definite",
313 "счётн.": "count-form",
314 "наречия": "adverb",
315 "имена собственные": "proper-noun",
316 "причастия": "participle",
317 "деепричастия": ["adverbial", "participle"],
318 "топонимы": "toponymic",
319 "неопр.": "indefinite",
320 "опр.": "definite",
321 "imperfectum": "imperfect",
322 "perfectum": "perfect",
323 "gerundium": "gerund",
324 "gerundivum": "gerundive",
325 "plusquamperfectum": "pluperfect",
326 "инфинитив": "infinitive",
327 "герундий": "gerund",
328 "предикативы": "predicative",
329 "сша": "USA",
330 "превосх. формы": "superior",
331 "местоимения": "pronoun",
332 "ум.-ласк.": "diminutive",
333 "междометия": "interjection",
334 # Template:гл cu IV
335 "аорист": "aorist",
336 "нетемат.": "non-thematic",
337 "темат.": "thematic",
338 "предлоги": "prepositional",
339 # Template:спряжение es short
340 "modo indicativo": "indicative",
341 "presente": "present",
342 "futuro": "future",
343 "pretérito indefinido": ["past", "indefinite"],
344 "presente de subjuntivo": ["present", "subjunctive"],
345 "yo": ["first-person", "singular"],
346 "tú": ["second-person", "singular"],
347 "él\nella\nusted": ["third-person", "singular"],
348 "nosotros\nnosotras": ["first-person", "plural"],
349 "vosotros\nvosotras": ["second-person", "plural"],
350 "ellos\nellas\nustedes": ["third-person", "plural"],
351 "participio": "participle",
352 "gerundio": "gerund",
353 # Template:спряжение pt short
354 "indicativo": "indicative",
355 "pretérito perfeito": ["past", "perfect"],
356 "subjuntivo": "subjunctive",
357 "imperativo": "imperative",
358 "eu": ["first-person", "singular"],
359 "tu": ["second-person", "singular"],
360 "você\nele / ela": ["third-person", "singular"],
361 "nós": ["first-person", "plural"],
362 "vós": ["second-person", "plural"],
363 "vocês\neles / elas": ["third-person", "plural"],
364 # Template:спряжение fr short
365 "indicatif": "indicative",
366 "présent": "present",
367 "futur simple": "future",
368 "imparfait": ["past", "imperfect"],
369 "conditionnel présent": ["present", "conditional"],
370 "je": ["first-person", "singular"],
371 "il\nelle": ["third-person", "singular"],
372 "nous": ["first-person", "plural"],
373 "vous": ["second-person", "plural"],
374 "ils\nelles": ["third-person", "plural"],
375 "participe passé": ["past", "participle"],
376 "participe présent": ["present", "participle"],
377 # Template:спряжение it short
378 "passato remoto": "past-remote",
379 "presente\ndi congiuntivo": ["present", "subjunctive"],
380 "io": ["first-person", "singular"],
381 "egli\nella\nlei": ["third-person", "singular"],
382 "noi": ["first-person", "plural"],
383 "voi": ["second-person", "plural"],
384 "essi\nesse\nloro": ["third-person", "plural"],
385 # Template:спряжение ro short
386 "modul indicativ": "indicative",
387 "prezent": "present",
388 "imperfect": "imperfect",
389 "perfectul compus": ["compound", "perfect"],
390 "viitorul i": "future-i",
391 "el\nea": ["third-person", "singular"],
392 "voi\ndumneavoastră": ["second-person", "plural"],
393 "ei\nele": ["third-person", "plural"],
394 "conjunctiv, p. 3": ["conjunctive", "third-person"],
395 "participiu": "participle",
396 "gerunziu": "gerund",
397 # Template:спряжение sw short
398 "изъявительное наклонение": "indicative",
399 "настоящее": "present",
400 "имперфект": "imperfect",
401 "перфект": "perfect",
402 "mimi": ["first-person", "singular"],
403 "wewe": ["second-person", "singular"],
404 "yeye (люди)": ["third-person", "singular"],
405 "yeye (вещи)": ["third-person", "singular", "non-human"],
406 "sisi": ["first-person", "plural"],
407 "nyinyi": ["second-person", "plural"],
408 "wao (люди)": ["third-person", "plural"],
409 "wao (вещи)": ["third-person", "plural", "non-human"],
410 "хабитуалис": "habitual",
411 # шаблона:спряжения
412 "эта форма слова или ударение является нестандартной для данной схемы словоизменения": "nonstandard",
413}
415CASE_TAGS = {
416 # Шаблон:сущ ru m a 1a
417 "им.": "nominative",
418 "р.": "genitive",
419 "д.": "dative",
420 "в.": "accusative",
421 "тв.": "instrumental",
422 "пр.": "prepositional",
423 # Шаблон:сущ bg 7
424 "зват.": "vocative",
425 # Шаблон:сущ de (e)s er ern/n
426 "ном.": "nominative",
427 "ген.": "genitive",
428 "дат.": "dative",
429 "акк.": "accusative",
430 # Шаблон:сущ cu (-а)
431 # "м.": "locative", # conflict with gender tag
432 "местный": "locative",
433 "зв.": "vocative",
434 # Template:падежи la 3
435 "абл.": "ablative",
436 "вок.": "vocative",
437 # Template:гл la 1
438 "supinum i": "supine-i",
439 "supinum ii": "supine-ii",
440 # Template:падежи tr
441 "вин.": "accusative",
442 "мест.": "locative",
443 "род.": "genitive",
444 # Template:сущ ru m ina 1c
445 "местный падеж": "locative",
446 "разделительный падеж": "partitive",
447}
449TENSE_TAGS = {
450 # Шаблон:Гл-блок
451 "наст.": "present",
452 "будущ.": "future",
453 "прош.": "past",
454 "будущее": "future",
455 # Template:гл la 1
456 "praesens": "present",
457 "futūrum i": "future-i",
458 "futūrum ii": "future-ii",
459 "infīnitivus praesentis actīvi": ["infinitive", "present", "active"],
460 "infīnitivus praesentis passīvi": ["infinitive", "present", "passive"],
461 "participium praesentis actīvi": ["participle", "present", "active"],
462 "infīnitivus perfecti actīvi": ["infinitive", "perfect", "active"],
463 "participium perfecti passivi": ["participle", "perfect", "passive"],
464 "participium futuri activi": ["participle", "future", "active"],
465 # Template:гл en irreg
466 "прош. вр.": "past",
467 "прич. прош. вр.": ["past", "participle"],
468 # Template:гл ru 2a-ся
469 "наст./будущ.": ["present", "future"],
470 # Template:гл ru 7b/b-дX
471 "настоящее время": "present",
472 "ед. число": "singular",
473 "мн. число": "plural",
474 "1-е лицо": "first-person",
475 "2-е лицо": "second-person",
476 "3-е лицо": "third-person",
477 "прошедшее время": "past",
478 "с. р.": "neuter",
479 "повелительное наклонение": "imperative",
480 "причастия": "participle",
481 "действ. наст.": ["active", "present"],
482 "действ. прош.": ["active", "past"],
483 "страд. наст.": ["passive", "present"],
484 "страд. прош.": ["passive", "past"],
485 "деепричастия": ["adverbial", "participle"],
486 "наст. вр.": "present",
487 "будущее время": "future",
488}
490MOOD_TAGS = {
491 # Шаблон:Гл-блок
492 "повелит.": "imperative",
493 # Template:гл la 1
494 "indicatīvus": "indicative",
495 "coniunctīvus": "conjunctive",
496 "imperatīvus": "imperative",
497}
499PERSON_TAGS = {
500 # Шаблон:Гл-блок
501 "я": ["first-person", "singular"],
502 "ты": ["second-person", "singular"],
503 "он\nона\nоно": ["third-person", "singular"],
504 "он\nона": ["third-person", "singular"],
505 "мы": ["first-person", "plural"],
506 "вы": ["second-person", "plural"],
507 "они": ["third-person", "plural"],
508 # Template:гл la 1
509 "1 p.": "first-person",
510 "2 p.": "second-person",
511 "3 p.": "third-person",
512 # Template:гл en irreg
513 "3-е л. ед. ч.": ["third-person", "singular"],
514}
516VOICE_TAGS = {
517 # Шаблон:Гл-блок
518 "пр. действ.": "active",
519 "деепр.": "adverbial",
520 "пр. страд.": "passive",
521 # Template:гл la 1
522 "act.": "active",
523 "pass.": "passive",
524}
526NUMBER_TAGS = {
527 # Шаблон:сущ cu (-а)
528 "дв. ч.": "dual",
529 "часто мн. ч.": ["often", "plural"],
530 # Template:гл la 1
531 "sing.": "singular",
532 "plur.": "plural",
533 "sg.": "singular",
534 "pl.": "plural",
535}
537TRANSLATION_TAGS = {
538 # Шаблон:перев-блок
539 # https://en.wikipedia.org/wiki/Azerbaijani_alphabet
540 # https://ru.wiktionary.org/wiki/Модуль:languages/data
541 "арабск.": "Arabic",
542 "кир.": "Cyrillic",
543 "лат.": "Latin",
544 "лат": "Latin",
545 "кана": "katakana",
546 "сир.": "Syriac",
547 "иуд.": "Jewish",
548 "центральный": "Central",
549 "демот.": "Demotic Greek",
550 "кафар.": "Katharevousa",
551 "мальдивский": "Maldivian",
552 "традиц.": "traditional",
553 "у": "Wu",
554 "упрощ.": "simplified",
555 "южноминьский": "Min",
556 "курманджи": "Kurmanji",
557 "сорани": "Sorani",
558 "севернокурдский": "Kurmanji",
559 "южнокурдский": "Southern Kurdish",
560 "кириллица": "Cyrillic",
561 "глаголица": "Glagolitic",
562 "араб.": "Arabic",
563 "письменный": "Written-Form", # italic tag
564 "устный": "colloquial",
565}
567MORPHOLOGICAL_TEMPLATE_TAGS = {
568 # "Шаблон:inflection/ru/noun/text" used in "сущ-ru"
569 "одушевлённое": "animate",
570 "неодушевлённое": "inanimate",
571 "одушевлённое или неодушевлённое": ["animate", "inanimate"],
572 "неодушевлённое или одушевлённое": ["animate", "inanimate"],
573 "мужской род": "masculine",
574 "женский род": "feminine",
575 "средний род": "neuter",
576 "общий род (может согласовываться с другими частями речи как мужского": "common", # noqa: E501
577 "мужской или женский род": ["masculine", "feminine"],
578 "мужской или средний род": ["masculine", "neuter"],
579 "женский или мужской род": ["masculine", "feminine"],
580 "женский или средний род": ["feminine", "neuter"],
581 "средний или мужской род": ["masculine", "neuter"],
582 "средний или женский род": ["feminine", "neuter"],
583 "несклоняемое": "indeclinable",
584 "адъективное": "adjective",
585 "местоименное": "pronominal",
586 # https://en.wikipedia.org/wiki/Russian_declension
587 "1-е": "declension-1",
588 "2-е": "declension-2",
589 "3-е": "declension-3",
590 "2-е (5-e)": ["declension-1", "declension-5"],
591 # Шаблон:inflection/ru/adj
592 "качественное": "qualitative",
593 "относительное": "relative",
594 "притяжательное": "possessive",
595 # verb tags from "Шаблон:Гл-блок"
596 "совершенный вид": "perfect",
597 "несовершенный вид": "imperfective",
598 "двувидовой": "biaspectual",
599 "непереходный": "intransitive",
600 "переходный": "transitive",
601 "безличный": "impersonal",
602 "возвратный": "reflexive",
603}
605ALL_TAGS = {
606 **STYLE_TAGS,
607 **GRAMMATICAL_TAGS,
608 **OTHER_TAGS,
609 **CASE_TAGS,
610 **TENSE_TAGS,
611 **MOOD_TAGS,
612 **PERSON_TAGS,
613 **VOICE_TAGS,
614 **NUMBER_TAGS,
615 **TRANSLATION_TAGS,
616}
619def translate_raw_tags(data: WordEntry) -> None:
620 raw_tags = []
621 for raw_tag in data.raw_tags:
622 raw_tag_lower = raw_tag.lower()
623 if raw_tag_lower in ALL_TAGS:
624 tr_data = ALL_TAGS[raw_tag_lower]
625 if isinstance(tr_data, str):
626 data.tags.append(tr_data)
627 elif isinstance(tr_data, list): 627 ↛ 621line 627 didn't jump to line 621 because the condition on line 627 was always true
628 data.tags.extend(tr_data)
629 elif hasattr(data, "topics"):
630 tr_data = ""
631 if raw_tag_lower in TOPICS:
632 tr_data = TOPICS[raw_tag_lower]
633 elif raw_tag_lower in SLANG_TOPICS: 633 ↛ 637line 633 didn't jump to line 637 because the condition on line 633 was always true
634 tr_data = SLANG_TOPICS[raw_tag_lower]
635 if "slang" not in data.tags: 635 ↛ 637line 635 didn't jump to line 637 because the condition on line 635 was always true
636 data.tags.append("slang")
637 if isinstance(tr_data, str) and len(tr_data) > 0: 637 ↛ 639line 637 didn't jump to line 639 because the condition on line 637 was always true
638 data.topics.append(tr_data)
639 elif isinstance(tr_data, list):
640 data.topics.extend(tr_data)
641 else:
642 raw_tags.append(raw_tag)
643 else:
644 raw_tags.append(raw_tag)
645 data.raw_tags = raw_tags