Source code for veupath_chatbot.integrations.veupathdb.factory

"""Integration entrypoints for WDK clients and services."""

from veupath_chatbot.integrations.veupathdb.client import VEuPathDBClient
from veupath_chatbot.integrations.veupathdb.discovery import (
    DiscoveryService,
    get_discovery_service,
)
from veupath_chatbot.integrations.veupathdb.site_router import SiteInfo, get_site_router
from veupath_chatbot.integrations.veupathdb.strategy_api import StrategyAPI
from veupath_chatbot.integrations.veupathdb.temporary_results import TemporaryResultsAPI


[docs] def get_wdk_client(site_id: str) -> VEuPathDBClient: """Get a raw WDK client for a site. :param site_id: VEuPathDB site identifier. """ router = get_site_router() return router.get_client(site_id)
[docs] def get_site(site_id: str) -> SiteInfo: """Get site metadata by ID. :param site_id: VEuPathDB site identifier. """ router = get_site_router() return router.get_site(site_id)
__all__ = [ "DiscoveryService", "SiteInfo", "close_all_clients", "get_discovery_service", "get_results_api", "get_site", "get_strategy_api", "get_wdk_client", "list_sites", ]
[docs] def list_sites() -> list[SiteInfo]: """List all known sites.""" router = get_site_router() return router.list_sites()
[docs] def get_strategy_api(site_id: str) -> StrategyAPI: """Get a Strategy API wrapper for a site. :param site_id: VEuPathDB site identifier. """ return StrategyAPI(get_wdk_client(site_id))
[docs] def get_results_api(site_id: str) -> TemporaryResultsAPI: """Get a temporary results API wrapper for a site. :param site_id: VEuPathDB site identifier. """ return TemporaryResultsAPI(get_wdk_client(site_id))
[docs] async def close_all_clients() -> None: """Close all cached WDK clients.""" router = get_site_router() await router.close_all()