from __future__ import annotations
import logging
from typing import Any, TYPE_CHECKING
from pyobs.utils.serialization import PolymorphicBaseModel
if TYPE_CHECKING:
from pyobs.robotic.task import TaskData
log = logging.getLogger(__name__)
[docs]
class Script(PolymorphicBaseModel):
exptime_done: float = 0.0
[docs]
async def can_run(self, data: TaskData | None) -> bool:
"""Checks whether this script could run now.
Returns:
True, if the script can run now.
"""
return True
[docs]
async def run(self, data: TaskData | None) -> None:
"""Run script.
Raises:
InterruptedError: If interrupted
"""
raise NotImplementedError
[docs]
def estimate_duration(self) -> float:
"""Estimate duration of this script in seconds."""
return 0.0
__all__ = ["Script"]