bellini.procedure.Procedure

class bellini.procedure.Procedure(objects=None, devices=None)[source]

Bases: abc.ABC

A procedure that involves a series of experimental states (composed of Groups, Distributions, and Quantities), as well as instruments to manipulate these states

__init__(objects=None, devices=None)[source]
Parameters
  • objects (dict, optional) – The experimental objects in the Procedure. Should be structured label (str) -> object (usually Container)

  • devices (dict, optional) – The experimental devices in Procedure. Should be structured label (str) -> device (Device)

Methods

__init__([objects, devices])

Parameters
  • objects (dict, optional) -- The experimental objects in the Procedure. Should be structured

apply_law(law, container_name[, timesteps])

Apply law to container container_name

measure(measurement_name, **arg_names)

Use MeasurementDevice measurement_name to readout a measurement from the experimental state according to the device's readout_state function.

perform(actionable_name, **arg_names)

Use ActionableDevice actionable_name to manipuate the current experimental state according to the device's apply_state function.

register(name, x)

Add a new experimental object or device x to the Procedure, with reference name name

Attributes

g

Return an networkx graph representing how experimental states change over time.

apply_law(law, container_name, timesteps=1)[source]

Apply law to container container_name

Parameters
  • law (Law) – Law to apply

  • container_name (str) – Container to apply law on

  • timesteps (int, default=1) – The number timesteps back to include when feeding Groups to law

property g

Return an networkx graph representing how experimental states change over time. Meant to be graphed with nx.multipartite using key layer.

measure(measurement_name, **arg_names)[source]

Use MeasurementDevice measurement_name to readout a measurement from the experimental state according to the device’s readout_state function. arg_names should correspond to the device’s readout_state() signature

perform(actionable_name, **arg_names)[source]

Use ActionableDevice actionable_name to manipuate the current experimental state according to the device’s apply_state function. arg_names should correspond to the device’s apply_state() signature

register(name, x)[source]

Add a new experimental object or device x to the Procedure, with reference name name