Source code for pyobs.robotic.scripts.callmodule

from __future__ import annotations
import logging
from typing import Any, TYPE_CHECKING

from pydantic import Field

if TYPE_CHECKING:
    from pyobs.robotic.task import TaskData
from pyobs.robotic.scripts import Script

log = logging.getLogger(__name__)


[docs] class CallModule(Script): """Script for calling method on a module.""" module: str method: str params: list[Any] = Field(default_factory=list)
[docs] async def can_run(self, data: TaskData | None) -> bool: try: await self.comm.proxy(self.module) return True except ValueError: return False
[docs] async def run(self, data: TaskData | None) -> None: proxy = await self.comm.proxy(self.module) await proxy.execute(self.method, *self.params)
__all__ = ["CallModule"]