Source code for buildcompiler.planning.models

"""Planning contracts for full-build planning output."""

from dataclasses import dataclass, field
from typing import Any

from buildcompiler.domain import BuildRequest, BuildWarning, DesignKind


[docs] @dataclass class UnsupportedPlanningRecord: source_identity: str source_display_id: str | None source_kind: DesignKind reason: str metadata: dict[str, Any] = field(default_factory=dict)
[docs] @dataclass class BuildPlan: lvl2_requests: list[BuildRequest] = field(default_factory=list) lvl1_requests: list[BuildRequest] = field(default_factory=list) domestication_requests: list[BuildRequest] = field(default_factory=list) unsupported: list[UnsupportedPlanningRecord] = field(default_factory=list) warnings: list[BuildWarning] = field(default_factory=list)