Source code for synkit.CRN.Construct.state

from __future__ import annotations

from dataclasses import dataclass, field
from typing import Set


[docs] @dataclass class DerivationState: """ Lightweight builder state inspired by derivation-graph builders. This keeps the active chemical universe separate from the graph object so the orchestration layer does not need to treat NetworkX as its working memory for frontier expansion. """ pool_keys: Set[str] = field(default_factory=set) frontier_keys: Set[str] = field(default_factory=set) step: int = 0
[docs] def begin_step(self, step: int) -> None: self.step = int(step)
[docs] def set_initial(self, *, pool_keys: Set[str], frontier_keys: Set[str]) -> None: self.pool_keys = set(pool_keys) self.frontier_keys = set(frontier_keys) self.step = 0
[docs] def advance(self, next_frontier: Set[str]) -> None: self.frontier_keys = set(next_frontier) self.step += 1