diff --git a/src/caelestia/utils/dots/manifest.py b/src/caelestia/utils/dots/manifest.py index 4e02c73..cb3f64b 100644 --- a/src/caelestia/utils/dots/manifest.py +++ b/src/caelestia/utils/dots/manifest.py @@ -68,6 +68,7 @@ class ManifestComponent: @dataclass class _ManifestData: + resolved_comps: bool = False enabled_comps: list[str] = field(default_factory=list) disabled_comps: list[str] = field(default_factory=list) @@ -120,6 +121,9 @@ class Manifest: ) -> None: """Resolves enabled/disabled components. This MUST be called before calling any other method.""" + if self._data.resolved_comps: + return + enable_set = set(enable or []) disable_set = set(disable or []) known = set(self.components) @@ -141,6 +145,7 @@ class Manifest: self._data.enabled_comps.append(name) else: self._data.disabled_comps.append(name) + self._data.resolved_comps = True def enabled_entries(self) -> list[ManifestEntry]: """The entries of every enabled component."""