Files
jarca-ledger-mcp/jarca_ledger_mcp/service.py
T
genichin c0580f7173 feat: add monthly settlement read model
Implements REQ-022 monthly settlement read-model foundation.
2026-07-12 00:43:50 +09:00

72 lines
2.6 KiB
Python

from __future__ import annotations
import sys
from types import ModuleType
from .application import accounts_write_services as _accounts_write_services
from .application import asset_account_services as _asset_account_services
from .application import assets_service as _assets_service
from .application import budgets_write_services as _budgets_write_services
from .application import category_rules_write_services as _category_rules_write_services
from .application import categorization_services as _categorization_services
from .application import cross_transfer_service as _cross_transfer_service
from .application import imports_service as _imports_service
from .application import import_transfer_services as _import_transfer_services
from .application import monthly_settlement_service as _monthly_settlement_service
from .application import reconciliation_service as _reconciliation_service
from .application import review_decision_service as _review_decision_service
from .application import shared as _shared
from .application import system_services as _system_services
from .application import transactions_write_services as _transactions_write_services
from .application import transaction_report_services as _transaction_report_services
from .application import uncategorized_workbench_service as _uncategorized_workbench_service
# Keep compatibility for tests/monkeypatches that reach into service internals.
_current_kst_datetime = _shared._current_kst_datetime
_PROXY_MODULES = (
_shared,
_accounts_write_services,
_system_services,
_asset_account_services,
_assets_service,
_budgets_write_services,
_category_rules_write_services,
_transaction_report_services,
_reconciliation_service,
_review_decision_service,
_monthly_settlement_service,
_imports_service,
_import_transfer_services,
_cross_transfer_service,
_categorization_services,
_uncategorized_workbench_service,
_transactions_write_services,
)
def _export_public_names() -> list[str]:
exported: set[str] = set()
module_globals = globals()
for module in _PROXY_MODULES:
for name in dir(module):
if name.startswith("_"):
continue
module_globals.setdefault(name, getattr(module, name))
exported.add(name)
return sorted(exported)
__all__ = _export_public_names()
class _ServiceModule(ModuleType):
def __setattr__(self, name: str, value) -> None:
super().__setattr__(name, value)
for module in _PROXY_MODULES:
if hasattr(module, name):
setattr(module, name, value)
sys.modules[__name__].__class__ = _ServiceModule