Compare desired resources with actual ones (both lists of dictionaries with a unique id). Produce a
plan like a mini Terraform:
create for ids only in desireddelete for ids only in actual — unless the actual resource has "protected": true, in which case
emit skip insteadupdate for ids in both whose other fields differ; include the sorted list of changed field names
(fields present on either side, ignoring protected)Return a list of actions {"action": ..., "id": ..., "fields": [...]} (fields only for updates), sorted
by id.
Implement plan. Input: desired: list[dict], actual: list[dict]. Returns: list[dict].
def plan(desired: list[dict], actual: list[dict]) -> list[dict]:
return []
Run executes the public tests. Submit grades against public and hidden tests.
Compare desired resources with actual ones (both lists of dictionaries with a unique id). Produce a
plan like a mini Terraform:
create for ids only in desireddelete for ids only in actual — unless the actual resource has "protected": true, in which case
emit skip insteadupdate for ids in both whose other fields differ; include the sorted list of changed field names
(fields present on either side, ignoring protected)Return a list of actions {"action": ..., "id": ..., "fields": [...]} (fields only for updates), sorted
by id.
Implement plan. Input: desired: list[dict], actual: list[dict]. Returns: list[dict].
def plan(desired: list[dict], actual: list[dict]) -> list[dict]:
return []
Run executes the public tests. Submit grades against public and hidden tests.