Source code for pyobs.robotic.scheduler.constraints.timeconstraint

from __future__ import annotations
from typing import TYPE_CHECKING
import astroplan
from astropydantic import AstroPydanticTime  # type: ignore
from pydantic import Field
from astropy.time import Time

from .constraint import Constraint

if TYPE_CHECKING:
    from ..dataprovider import DataProvider
    from pyobs.robotic import Task


[docs] class TimeConstraint(Constraint): """Time constraint.""" start: AstroPydanticTime = Field(default_factory=Time.now) end: AstroPydanticTime = Field(default_factory=Time.now) def to_astroplan(self) -> astroplan.TimeConstraint: return astroplan.TimeConstraint(min=self.start, max=self.end) async def __call__(self, time: Time, task: Task, data: DataProvider) -> bool: return bool(self.start <= time <= self.end)
__all__ = ["TimeConstraint"]