GOATS

The GOATSDirector exposes coordinator objects that orchestrate several managers to satisfy GOATS-specific workflows.

Usage Example

from gpp_client import GPPClient
from gpp_client import GPPDirector
client = GPPClient()
director = GPPDirector(client)
observations = await director.goats.observation.get_all()
class gpp_client.directors.goats.GOATSDirector(client: GPPClient)[source]

Bases: 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.

observation

Coordinates observation data tailored for GOATS.

Type:

GOATSObservationCoordinator

program

Coordinates program data tailored for GOATS.

Type:

GOATSProgramCoordinator

client: GPPClient

Authenticated low-level client reused by every manager / coordinator.

Coordinator Layer

class gpp_client.directors.goats.coordinators.observation.GOATSObservationCoordinator(client: GPPClient)[source]

Bases: BaseCoordinator

Modifies the return of the observation manager to return the GOATS payload.

client: GPPClient

Shared low-level client injected by the parent director.

async get_all(*, program_id: str) dict[str, Any][source]

Retrieve the GOATS-specific observations for a program ID.

Parameters:

program_id (str) – The ID for the observing program.

Returns:

The GOATS-specific observations payload.

Return type:

dict[str, Any]

class gpp_client.directors.goats.coordinators.program.GOATSProgramCoordinator(client: GPPClient)[source]

Bases: BaseCoordinator

Modifies the return of the program manager to return the GOATS payload.

client: GPPClient

Shared low-level client injected by the parent director.

async get_all() dict[str, Any][source]

Retrieve all programs with accepted proposals.

Returns:

The GOATS-specific programs payload.

Return type:

dict[str, Any]