AFL.automation.prepare.PrepareDriver#

Functions

listify(obj)

Classes

MassBalance([name, minimum_volume])

MassBalanceDriver([overrides])

PersistentConfig(path[, defaults, ...])

A dictionary-like class that serializes changes to disk

PrepareDriver(driver_name[, overrides])

Base class for prepare drivers.

Solution(name[, total_mass, total_volume, ...])

class AFL.automation.prepare.PrepareDriver.PrepareDriver(driver_name: str, overrides=None)[source]#

Base class for prepare drivers.

Subclasses provide transport/backend-specific execution while this class handles shared target conditioning and mass-balance feasibility/solve flow.

defaults = {'enable_multistep_dilution': False, 'fixed_compositions': {}, 'multistep_diluent_policy': 'primary_solvent', 'multistep_max_steps': 2, 'stocks': []}#
__init__(driver_name: str, overrides=None)[source]#
status()[source]#
is_feasible(targets: dict | list[dict], enable_multistep_dilution: bool | None = None) list[dict | None][source]#
apply_fixed_comps(target: dict) dict[source]#
before_balance(target: dict) None[source]#

Subclass hook to perform backend-specific checks before solving.

resolve_destination(dest: str | None) str[source]#

Return destination identifier for this backend.

execute_preparation(target: dict, balanced_target: Solution, destination: str) bool[source]#

Execute backend-specific prepare actions.

Returns False for handled, non-fatal failures where caller should return (None, None). Raise for hard failures.

execute_preparation_plan(target: dict, balanced_target: Solution, destination: str, procedure_plan: dict, intermediate_destinations: list[str]) bool[source]#
on_prepare_exception(destination: str, dest_was_none: bool) None[source]#

Subclass hook to rollback destination bookkeeping on exceptions.

build_prepare_result(feasible_result: dict, balanced_target: Solution) dict[source]#

Build return payload for prepare().

prepare(target: dict, dest: str | None = None, enable_multistep_dilution: bool | None = None) tuple[dict, str] | tuple[None, None][source]#