Source code for dxaws_accounts.planner
from __future__ import annotations
from typing import Any
from .providers.base import ProviderBase
[docs]
def plan(*, provider: ProviderBase, desired: Any) -> Any:
"""Compute a plan to converge current state to desired state.
Planners are responsible for *deciding what should change*.
They must not perform side effects.
Responsibilities:
- read current state via the provider (read-only operations)
- compare current state to desired state
- produce a deterministic, explicit plan describing required actions
The returned plan should be:
- stable (same inputs -> same plan)
- inspectable (easy to log or debug)
- consumable by the executor
This template implementation performs no diffing and returns
the desired state directly as the plan.
"""
# Template default: identity plan (no diffing yet).
return desired