49 lines
1.8 KiB
Python
49 lines
1.8 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 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 import_transfer_services as _import_transfer_services
|
|
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.asset_account_services import *
|
|
from .application.categorization_services import *
|
|
from .application.import_transfer_services import *
|
|
from .application.shared import *
|
|
from .application.system_services import *
|
|
from .application.transaction_report_services import *
|
|
|
|
# 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,
|
|
_budgets_write_services,
|
|
_category_rules_write_services,
|
|
_transaction_report_services,
|
|
_import_transfer_services,
|
|
_categorization_services,
|
|
_transactions_write_services,
|
|
)
|
|
|
|
|
|
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
|