Skip to content

Commit b1e2b84

Browse files
committed
[RU] More reverse variants
Variants bump from 449,720 to 642,708. Related to "2150.
1 parent 769f57d commit b1e2b84

File tree

1 file changed

+94
-28
lines changed

1 file changed

+94
-28
lines changed

wikidict/lang/ru/template_handlers.py

Lines changed: 94 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -371,39 +371,89 @@ def render_variant(tpl: str, parts: list[str], data: defaultdict[str, str], *, w
371371

372372
# Details found on # https://ru.wiktionary.org/wiki/Шаблон:TPL
373373
DECL = {
374-
"сущ ru f ina 0": [],
375-
"сущ ru f ina 1a": ["а", "ы", "е", "у", "ой", "ою", "ам", "ами", "ах"],
376-
"сущ ru f ina 2a": ["я", "и", "е", "ю", "ей", "ею", "ь", "ям", "ями", "ях"],
377-
"сущ ru f ina 3a": ["а", "и", "е", "у", "ой", "ою", "ам", "ами", "ах"],
378-
"сущ ru f ina 5a": ["а", "ы", "е", "у", "ей", "ею", "ам", "ами", "ам"],
379-
"сущ ru f ina 6a": ["я", "и", "е", "ю", "ей", "ею", "ям", "ями", "ях"],
380-
"сущ ru f ina 7a": ["я", "и", "ю", "ей", "ею", "й", "ям", "ями", "ях"],
381-
"сущ ru f ina 8a": ["ь", "и", "ью", "ей", "ям", "ями", "ях"],
382-
"сущ ru f ina 1b": ["а́", "ы́", "е́", "у́", "о́й", "о́ю", "а́м", "а́ми", "а́х"],
383-
"сущ ru f ina 3b": ["а́", "и́", "е́", "у́", "о́й", "о́ю", "а́м", "а́ми", "а́х"],
384-
"сущ ru f ina 4b": ["а́", "и́", "е́", "у́", "о́й", "о́ю", "е́й", "а́м", "а́ми", "а́х"],
385-
"сущ ru f ina 6b": ["я́", "е́", "ю́", "ей", "ею", "я́м", "я́ми", "я́х"],
374+
"сущ ru f a 0": [],
375+
"сущ ru f a 1a": ["а", "ы", "е", "у", "ой", "ою", "ам", "ами", "ах"],
376+
"сущ ru f a 2a": ["я", "и", "е", "ю", "ей", "ею", "ь", "ям", "ями", "ях"],
377+
"сущ ru f a 3a": ["а", "и", "е", "у", "ой", "ою", "ам", "ами", "ах"],
378+
"сущ ru f a 5a": ["а", "ы", "е", "у", "ей", "ею", "ам", "ами", "ам"],
379+
"сущ ru f a 6a": ["я", "и", "е", "ю", "ей", "ею", "ям", "ями", "ях"],
380+
"сущ ru f a 7a": ["я", "и", "ю", "ей", "ею", "й", "ям", "ями", "ях"],
381+
"сущ ru f a 8a": ["ь", "и", "ью", "ей", "ям", "ями", "ях"],
382+
"сущ ru f a 1b": ["а́", "ы́", "е́", "у́", "о́й", "о́ю", "а́м", "а́ми", "а́х"],
383+
"сущ ru f a 3b": ["а́", "и́", "е́", "у́", "о́й", "о́ю", "а́м", "а́ми", "а́х"],
384+
"сущ ru f a 4b": ["а́", "и́", "е́", "у́", "о́й", "о́ю", "е́й", "а́м", "а́ми", "а́х"],
385+
"сущ ru f a 6b": ["я́", "е́", "ю́", "ей", "ею", "я́м", "я́ми", "я́х"],
386386
"сущ ru m a 0": [],
387387
"сущ ru m a 1a": ["а", "у", "ом", "е", "ы", "ов", "ам", "ами", "ах"],
388+
"сущ ru m a 2a": ["ь", "я", "ю", "ем", "е", "и", "ей", "ям", "ями", "ях"],
389+
"сущ ru m a 3a": ["а", "у", "ом", "е", "и", "ов", "ам", "ами", "ах"],
390+
"сущ ru m a 4a": ["а", "у", "ом", "е", "и", "ей", "ам", "ами", "ах"],
391+
"сущ ru m a 5a": ["а", "у", "ем", "е", "ы", "ев", "ам", "ами", "ах"],
392+
"сущ ru m a 6a": ["й", "я", "ю", "ем", "е", "и", "ев", "ям", "ями", "ях"],
393+
"сущ ru m a 7a": ["й", "я", "ю", "ем", "и", "ев", "ям", "ями", "ях"],
388394
"сущ ru m a 1b": ["а́", "у́", "о́м", "е́", "ы́", "о́в", "а́м", "а́ми", "а́х"],
389395
"сущ ru m a 2b": ["ю́", "я́", "ём", "е́", "е́й", "я́м", "я́ми", "я́х"],
390396
"сущ ru m a 4b": ["а́", "у́", "о́м", "е́", "и́", "е́й", "а́м", "а́ми", "а́х"],
391397
"сущ ru m a 6b": ["я́", "ю́", "ём", "е́", "ёв", "я́м", "я́ми", "я́х"],
392-
"сущ ru m ina 0": [],
393-
"сущ ru m ina 1a": ["а", "у", "ом", "е", "ы", "ов", "ам", "ами", "ах"],
394-
"сущ ru m ina 2a": ["ь", "я", "ю", "ем", "е", "и", "ей", "ям", "ями", "ях"],
395-
"сущ ru m ina 3a": ["а", "у", "ом", "е", "и", "ов", "ам", "ами", "ах"],
396-
"сущ ru m ina 4a": ["а", "у", "ом", "е", "и", "ей", "ам", "ами", "ах"],
397-
"сущ ru m ina 5a": ["а", "у", "ем", "е", "ы", "ев", "ам", "ами", "ах"],
398-
"сущ ru m ina 6a": ["й", "я", "ю", "ем", "е", "и", "ев", "ям", "ями", "ях"],
399-
"сущ ru m ina 7a": ["й", "я", "ю", "ем", "и", "ев", "ям", "ями", "ях"],
398+
"прил ru 1a": ["ый", "ого", "ому", "ым", "ом", "ое", "ая", "ой", "ую", "ою", "ые", "ых", "ым", "ыми"],
399+
"прил ru 2a": ["ий", "его", "ему", "им", "ем", "ь", "ее", "яя", "ей", "юю", "я", "ие", "их", "ими"],
400+
"прил ru 3a": [
401+
"ий",
402+
"ого",
403+
"ому",
404+
"им",
405+
"ом",
406+
"ое",
407+
"ого",
408+
"ому",
409+
"о",
410+
"ая",
411+
"ой",
412+
"ую",
413+
"ою",
414+
"а",
415+
"ие",
416+
"их",
417+
"ими",
418+
],
419+
"прил ru 4a": ["ий", "его", "ему", "ий", "им", "ем", "ее", "ая", "ей", "ую", "ею", "ие", "их", "ими"],
420+
"прил ru 5a": [
421+
"ый",
422+
"его",
423+
"ему",
424+
"ым",
425+
"ем",
426+
"ее",
427+
"е",
428+
"ая",
429+
"ей",
430+
"ую",
431+
"ею",
432+
"а",
433+
"ые",
434+
"ым",
435+
"ых",
436+
"ыми",
437+
"ы",
438+
],
439+
"прил ru 6a": ["ий", "его", "ему", "ий", "им", "ем", "ее", "яя", "ей", "юю", "ею", "ие", "их", "ими"],
440+
"прил ru 1b": ["о́й", "о́го", "о́му", "ы́м", "о́м", "о́е", "а́я", "у́ю", "о́ю", "ы́е", "ы́х", "ы́м", "ы́ми"],
400441
"прил ru 3b": ["о́й", "о́го", "о́му", "и́м", "о́м", "о́е", "а́я", "у́ю", "о́ю", "и́е", "и́х", "и́ми"],
401442
}
402-
DECL["сущ ru f ina 2b"] = DECL["сущ ru f ina 1b"]
403-
DECL["сущ ru f ina 5b"] = DECL["сущ ru f ina 1b"]
404-
DECL["сущ ru f ina 4a"] = DECL["сущ ru f ina 3a"]
443+
DECL["сущ ru f a 2b"] = DECL["сущ ru f a 1b"]
444+
DECL["сущ ru f a 5b"] = DECL["сущ ru f a 1b"]
445+
DECL["сущ ru f a 4a"] = DECL["сущ ru f a 3a"]
405446
DECL["сущ ru m a 3b"] = DECL["сущ ru m a 1b"]
406447
DECL["сущ ru m a 5b"] = DECL["сущ ru m a 1b"]
448+
DECL["сущ ru f ina 0"] = DECL["сущ ru f a 0"]
449+
DECL["сущ ru m ina 0"] = DECL["сущ ru m a 0"]
450+
for n in range(1, 8):
451+
DECL[f"сущ ru f ina {n}a"] = DECL[f"сущ ru f a {n}a"]
452+
DECL[f"сущ ru m ina {n}a"] = DECL[f"сущ ru m a {n}a"]
453+
for n in range(1, 7):
454+
DECL[f"сущ ru f ina {n}b"] = DECL[f"сущ ru f a {n}b"]
455+
DECL[f"сущ ru m ina {n}b"] = DECL[f"сущ ru m a {n}b"]
456+
DECL["прил ru 4b"] = DECL["прил ru 3b"]
407457

408458

409459
def render_reverse_variant(tpl: str, parts: list[str], data: defaultdict[str, str], *, word: str = "") -> str:
@@ -430,15 +480,31 @@ def render_reverse_variant(tpl: str, parts: list[str], data: defaultdict[str, st
430480
suffixes = DECL[tpl]
431481

432482
match tpl:
433-
case "сущ ru f ina 3b" | "сущ ru f ina 5b":
483+
case (
484+
"сущ ru f a 1b"
485+
| "сущ ru f a 3b"
486+
| "сущ ru f a 5b"
487+
| "сущ ru f ina 1b"
488+
| "сущ ru f ina 3b"
489+
| "сущ ru f ina 5b"
490+
):
434491
return "|".join([основа1, *[f"{основа}{suf}" for suf in suffixes]])
435-
case "сущ ru f ina 6b" | "сущ ru f ina 7b":
492+
case "сущ ru f a 6b" | "сущ ru f a 7b" | "сущ ru f ina 6b" | "сущ ru f ina 7b":
436493
return "|".join([f"{основа1}й", *[f"{основа}{suf}" for suf in suffixes]])
437-
case "сущ ru m a 1b" | "сущ ru m a 3b" | "сущ ru m a 4b" | "сущ ru m a 5b":
494+
case (
495+
"сущ ru m a 1b"
496+
| "сущ ru m a 3b"
497+
| "сущ ru m a 4b"
498+
| "сущ ru m a 5b"
499+
| "сущ ru m ina 1b"
500+
| "сущ ru m ina 3b"
501+
| "сущ ru m ina 4b"
502+
| "сущ ru m ina 5b"
503+
):
438504
return "|".join([основа, *[f"{основа1}{suf}" for suf in suffixes]])
439-
case "сущ ru m a 2b":
505+
case "сущ ru m a 2b" | "сущ ru m ina 2b":
440506
return "|".join([f"{основа}ь", *[f"{основа1}{suf}" for suf in suffixes]])
441-
case "сущ ru m a 6b":
507+
case "сущ ru m a 6b" | "сущ ru m ina 6b":
442508
return "|".join([f"{основа}й", *[f"{основа1}{suf}" for suf in suffixes]])
443509
case _:
444510
return "|".join([основа, *[f"{основа}{suf}" for suf in suffixes]])

0 commit comments

Comments
 (0)