AFL.automation.mixing.MassBalanceDriver#

Functions

enforce_units(value, unit_type)

Ensure that a number has units and convert to the default_units

urlparse(url[, scheme, allow_fragments])

Parse a URL into 6 components: <scheme>://<netloc>/<path>;<params>?<query>#<fragment>

Classes

Any(*args, **kwargs)

Special type indicating an unconstrained type.

Bounds([lb, ub, keep_feasible])

Bounds constraint on the variables.

Client([ip, port, username, interactive])

Communicate with APIServer

Driver(name[, defaults, overrides, useful_links])

MassBalanceBase()

MassBalanceDriver([overrides])

MixDB([db_spec])

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

class AFL.automation.mixing.MassBalanceDriver.MassBalanceDriver(overrides=None)[source]#
defaults = {'minimum_volume': '20 ul', 'orchestrator_uri': '', 'orchestrator_username': 'Orchestrator', 'prepare_uri': '', 'prepare_username': 'Prepare', 'stocks': [], 'sweep_config': {}, 'targets': [], 'tol': 0.001}#
__init__(overrides=None)[source]#
property stock_components#
property target_components#
process_stocks()[source]#
process_targets()[source]#
add_stock(solution: Dict, reset: bool = False)[source]#
add_target(target: Dict, reset: bool = False)[source]#
add_targets(targets: List[Dict], reset: bool = False)[source]#
reset_stocks()[source]#
reset_targets()[source]#
upload_stocks(stocks=None, reset=True)[source]#
compute_stock_properties(stock=None, **kwargs)[source]#
save_sweep_config(sweep_config=None)[source]#
load_sweep_config()[source]#
upload_targets(targets=None, reset=True)[source]#
list_stocks()[source]#
list_targets()[source]#
list_balanced_targets()[source]#
mixdoctor(**kwargs)[source]#
get_orchestrator_context(orchestrator_uri: str | None = None)[source]#
get_prepare_context(prepare_uri: str | None = None)[source]#
submit_orchestrator_grid(sample_mode: str = 'balanced_all', samples: List[Dict] | None = None, process_sample_kwargs: Dict | None = None, config_overrides: Dict | None = None, orchestrator_uri: str | None = None)[source]#
submit_prepare_grid(sample_mode: str = 'balanced_all', samples: List[Dict] | None = None, prepare_kwargs: Dict | None = None, config_overrides: Dict | None = None, prepare_uri: str | None = None)[source]#
balance(return_report=False)[source]#
get_balance_progress()[source]#
get_balance_settings()[source]#
get_sample_composition(composition_format='mass_fraction')[source]#

Get the composition of the last balanced target in the requested format.

Uses the Solution objects in self.balanced which have full access to the component database, avoiding the need for the caller to reconstruct Solution objects.

Parameters:

composition_format (str or dict) – If str, a single format applied to all components. If dict, maps component names to format strings; components not listed default to 'mass_fraction'. Valid formats: 'mass_fraction', 'volume_fraction', 'concentration', 'molarity'.

Returns:

Composition dictionary with component names as keys and numeric values in the requested format.

Return type:

dict

list_components()[source]#
add_component(**component)[source]#
update_component(**component)[source]#
remove_component(name=None, uid=None)[source]#