Ctrl K
ComunidadGuías…

src/compat/character_cards.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
"""Compatibility facade over the host application's character-card port.

The compatibility layer deliberately knows nothing about WebUI modules.  A
host object supplies the public operations, keeping dependency flow toward the
application boundary instead of importing a concrete transport service.
"""

__all__ = [
    "export_character_cards", "import_character_card", "list_character_cards",
    "save_character_card", "update_character_card",
]


def _operation(host, name: str):
    implementation = getattr(host, name, None)
    if not callable(implementation):
        raise TypeError(f"character-card host does not provide {name}()")
    return implementation


def list_character_cards(host, *args, **kwargs):
    return _operation(host, "list_character_cards")(*args, **kwargs)


def save_character_card(host, *args, **kwargs):
    return _operation(host, "save_character_card")(*args, **kwargs)


def update_character_card(host, *args, **kwargs):
    return _operation(host, "update_character_card")(*args, **kwargs)


def export_character_cards(host, *args, **kwargs):
    return _operation(host, "export_character_cards")(*args, **kwargs)


async def import_character_card(host, *args, **kwargs):
    return await _operation(host, "import_character_card")(*args, **kwargs)