Source code for gpp_client.directors.goats.goats
__all__ = ["GOATSDirector"]
from dataclasses import dataclass
from ..base import BaseDirector
from .coordinators import GOATSObservationCoordinator, GOATSProgramCoordinator
[docs]
@dataclass
class GOATSDirector(BaseDirector):
"""
Facade for GOATS-domain workflows.
The director instantiates and exposes coordinator objects that orchestrate
multiple managers to fulfil complex GOATS-specific tasks. Each coordinator
receives the shared ``GPPClient`` instance injected into this director.
Parameters
----------
client : GPPClient
The low-level API client used by all underlying managers.
Attributes
----------
observation : GOATSObservationCoordinator
Coordinates observation data tailored for GOATS.
program : GOATSProgramCoordinator
Coordinates program data tailored for GOATS.
"""
def __post_init__(self) -> None:
self.observation: GOATSObservationCoordinator = GOATSObservationCoordinator(
self.client
)
self.program: GOATSProgramCoordinator = GOATSProgramCoordinator(self.client)