Public release from ruodoo-project: 19.0 - 2026-11-01 22:52:25 UTC
This commit is contained in:
26
rsbu_mapping/resolvers/registry.py
Normal file
26
rsbu_mapping/resolvers/registry.py
Normal file
@@ -0,0 +1,26 @@
|
||||
"""Реестр 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)]
|
||||
Reference in New Issue
Block a user