prole/installer/state.py
chrisfu 6b89ea23d7 Stabilize deliverable k3d pipeline and refactor installer components
- Finalized stable, repeatable reset logic for the k3d pipeline.

- Refactored installer into modular components: core, milestone, runner, and state.

- Introduced new UI abstractions with support for ncurses and Tkinter.

- Updated initialization scripts and configurations for CloudNativePG, Kerberos, OpenBao, and Monitoring.

- Improved pipeline repair and port-forwarding mechanisms.
2026-02-15 00:03:24 -08:00

19 lines
596 B
Python

"""State model for the UI-agnostic installer core."""
from __future__ import annotations
from dataclasses import dataclass, field
from typing import Any
@dataclass
class InstallerState:
current_id: str | None = None
data: dict[str, Any] = field(default_factory=dict)
errors: list[str] = field(default_factory=list)
progress: dict[str, float] = field(default_factory=dict)
history: list[str] = field(default_factory=list)
completed: set[str] = field(default_factory=set)
def mark_completed(self, milestone_id: str) -> None:
self.completed.add(milestone_id)