27 lines
945 B
Python
27 lines
945 B
Python
"""Реестр Python-резолверов маппинга РСБУ.
|
|
|
|
Резолвер — функция fn(doc, template) -> list[dict], возвращающая
|
|
сбалансированный набор значений строк rsbu.move.line (Дт/Кт + субконто).
|
|
Резолверы регистрируются декоратором @resolver(key) при импорте модуля
|
|
и не редактируются пользователем.
|
|
"""
|
|
|
|
RESOLVER_REGISTRY = {}
|
|
|
|
|
|
def resolver(key):
|
|
"""Декоратор регистрации резолвера по ключу."""
|
|
def deco(fn):
|
|
RESOLVER_REGISTRY[key] = fn
|
|
return fn
|
|
return deco
|
|
|
|
|
|
def get_resolver(key):
|
|
return RESOLVER_REGISTRY.get(key)
|
|
|
|
|
|
def resolver_selection():
|
|
"""Список ключей резолверов для Selection-поля шаблона."""
|
|
return [(key, key) for key in sorted(RESOLVER_REGISTRY)]
|