

def replace_tpl(tpl):
    replaces = {
        '{': r'\{',
        '}': r'\}',
        '|': r'\|',
        '.': r'\.',
        '*': r'[^|}]*',
    }
    for _from, _to in replaces.items():
        tpl = tpl.replace(_from, _to)
    return tpl


def replace_result(result):
    return result.replace('[', '<').replace(']', '>')


tpls = {  # todo: remove
    "{помета|(*)}:": "<i>\\1:</i>",
    "{помета|(*)}": "<i>\\1</i> ",

    "{сокр.|*|(*)}": "<i>сокр.</i>  от \\1",
    "{сокр.|*|(*)|без ссылки=1}": "<i>сокр.</i>  от \\1",
    "{аббр.|*|(*)|?}": "<i>аббр.</i>  от \\1",
    "{гипокор.|*|(*)}": "<i>гипокор.</i>  к \\1",
    "{женск.|*|(*)}": "<i>женск.</i>  к \\1",
    "{ласк.|*|(*)}": "<i>ласк.</i>  к \\1",
    "{увелич.|*|(*)}": "<i>увелич.</i>  к \\1",
    "{увеличит.|*|(*)}": "<i>увелич.</i>  к \\1",
    "{уменьш.|*|(*)}": "<i>уменьш.</i>  к \\1",
    "{умласк.|*|(*)}": "<i>уменьш.-ласк.</i>  к \\1",
    "{умласк|*|(*)}": "<i>уменьш.-ласк.</i>  к \\1",
    "{ум.-ласк.|*|(*)}": "<i>уменьш.-ласк.</i>  к \\1",
    "{унич.|*|(*)}": "<i>уничиж.</i>  к \\1",
    "{уничиж.|*|(*)}": "<i>уничиж.</i>  к \\1",
    "{усилит.|*|(*)}": "<i>усилит.</i>  к \\1",
    "{эррат.|*|(*)}": "<i>эррат.</i>  от \\1",
    "{экспр.|*|(*)}": "<i>экспр.</i>  к \\1",

    "{жаргон википроектов}": "<i>жарг. викип.</i> ",
    "{жаргон ФВМ}": "<i>жарг. викип.</i> ",
    "{авто}": "<i>автомоб.</i> ",
    "{сх}": "<i>с.-х.</i> ",
    "{кино}": "<i>кино</i> ",
    "{фото}": "<i>фотогр.</i> ",
    "{слэнг}": "<i>сленг</i> ",
    "{сленг}": "<i>сленг</i> ",
    "{ю-нем}": "<i>южно-нем.</i> ",
    "{жд}": "<i>ж.-д.</i> ",
    "{табу}": "<i>табу</i> ",
    "{чили}": "<i>чили</i> ",

    "{соотн.|(*)}": "связанный, соотносящийся по значению с существительным \\1",
    "{отн.|(*)}": "относящийся к \\1, связанный с ним",
    "{действие|(*)}": "действие по значению гл. \\1",
    "{действие|(*)|(*)}": "действие по значению гл. \\1; \\2",
    "{результат|(*)}": "результат действия по знач. гл. \\1",
    "{свойство|(*)}": "свойство по значению прилагательного \\1",
    "{состояние|(*)}": "состояние по значению прил. \\1",
    "{совершить|(*)}": "совершить действие, выраженное гл. \\1; провести некоторое время, совершая такое действие"
}
