PyTracerLab.gui.state module

Shared GUI state container used across tabs and controller.

class PyTracerLab.gui.state.AppState(is_monthly: bool = True, is_halfyearly: bool = False, tracer1: str = 'Tritium', tracer2: str | None = None, solver_key: str = 'de', solver_params: Dict[str, dict]=<factory>, input_series: Tuple[numpy.ndarray, numpy.ndarray] | None=None, target_series: Tuple[numpy.ndarray, numpy.ndarray] | None=None, manual_observations: Dict[datetime.datetime, typing.List[float]]=<factory>, selected_units: List[str] = <factory>, design_units: List[typing.Tuple[str, float]]=<factory>, unit_fractions: Dict[str, float]=<factory>, params: Dict[str, typing.Dict[str, typing.Dict[str, float]]]=<factory>, steady_state_input: float | List[float] = 0.0, n_warmup_half_lives: int = 10, tt_results: numpy.ndarray | None = None, tt_mtt_values: numpy.ndarray | None = None, tt_obs_indices: numpy.ndarray | None = None, tt_param_key: str | None = None, last_simulation: object | None = None, last_times: numpy.ndarray | None = None)[source]

Bases: object

Central application state used by GUI components.

Variables:
  • is_monthly (bool) – Whether input/target series are monthly (else yearly).

  • tracer (str) – LEGACY: single-tracer selection kept for backward compatibility.

  • tracer1 (str) – Primary tracer (e.g., "Tritium", "Carbon-14").

  • tracer2 (str | None) – Optional second tracer; if None or "None", runs single-tracer mode.

  • solver_key (str) – Selected solver registry key ("de", "lsq", or "mcmc").

  • solver_params (dict) – Per-solver configuration dictionary.

  • input_series (tuple(ndarray, ndarray) | None) – Timestamps and input values.

  • target_series (tuple(ndarray, ndarray) | None) – Timestamps and observation values (optional).

  • selected_units (list of str) – Unique unit types (legacy support for parameters tab).

  • design_units (list of (str, float)) – Flat list of chosen units and fractions (can repeat unit types).

  • unit_fractions (dict[str, float]) – Per-instance fraction mapping keyed by unique instance prefix.

  • params (dict) – Nested parameter values/bounds/fixed flags per instance prefix.

  • steady_state_input (float | list of float) – Value(s) for optional steady-state warmup input. Provide a scalar for single-tracer runs or one value per tracer for multi-tracer runs.

  • n_warmup_half_lives (int) – Warmup length in half-lives of the tracer.

  • last_simulation (object | None) – Last simulation result or solver payload for plotting.

  • last_times (ndarray | None) – Cached timestamps for plotting (if needed).

clear_tracer_tracer() None[source]

Reset cached tracer-tracer sweep results.

design_units: List[Tuple[str, float]]
input_series: Tuple[numpy.ndarray, numpy.ndarray] | None = None
is_halfyearly: bool = False
is_monthly: bool = True
last_simulation: object | None = None
last_times: numpy.ndarray | None = None
manual_observations: Dict[datetime.datetime, List[float]]
n_warmup_half_lives: int = 10
params: Dict[str, Dict[str, Dict[str, float]]]
selected_units: List[str]
solver_key: str = 'de'
solver_params: Dict[str, dict]
steady_state_input: float | List[float] = 0.0
target_series: Tuple[numpy.ndarray, numpy.ndarray] | None = None
tracer1: str = 'Tritium'
tracer2: str | None = None
tt_mtt_values: numpy.ndarray | None = None
tt_obs_indices: numpy.ndarray | None = None
tt_param_key: str | None = None
tt_results: numpy.ndarray | None = None
unit_fractions: Dict[str, float]