Source code for AFL.automation.mixing.PipetteAction

import copy

[docs] class PipetteAction:
[docs] def __init__(self, source, dest, volume, source_loc=None, dest_loc=None, aspirate_rate=None, dispense_rate=None, mix_aspirate_rate=None, mix_dispense_rate=None, mix_before=None, mix_after=None, blow_out=False, post_aspirate_delay=0.0, post_dispense_delay=0.0, aspirate_equilibration_delay=0.0, drop_tip=True, force_new_tip=False, to_top=True, to_center=False, to_top_z_offset=0, fast_mixing=False ): self.kwargs = {} self.kwargs['source'] = source self.kwargs['dest'] = dest self.kwargs['volume'] = volume self.kwargs['source_loc'] = source_loc self.kwargs['dest_loc'] = dest_loc self.kwargs['mix_before'] = mix_before self.kwargs['mix_after'] = mix_after self.kwargs['aspirate_rate'] = aspirate_rate self.kwargs['dispense_rate'] = dispense_rate self.kwargs['mix_aspirate_rate'] = mix_aspirate_rate self.kwargs['mix_dispense_rate'] = mix_dispense_rate self.kwargs['blow_out'] = blow_out self.kwargs['post_aspirate_delay'] = post_aspirate_delay self.kwargs['post_dispense_delay'] = post_dispense_delay self.kwargs['aspirate_equilibration_delay'] = aspirate_equilibration_delay self.kwargs['drop_tip'] = drop_tip self.kwargs['force_new_tip'] = force_new_tip self.kwargs['to_top'] = to_top self.kwargs['to_center'] = to_center self.kwargs['to_top_z_offset'] = to_top_z_offset # mm! self.kwargs['fast_mixing'] = fast_mixing
def __str__(self): return f'<PipetteAction Vol:{self.volume:4.3f} {self.source}-->{self.dest}>' def __repr__(self): return self.__str__() def __getattr__(self, name): if name in self.kwargs: return self.kwargs[name] else: return getattr(self, name)
[docs] def emit_protocol(self): return self.get_kwargs()
[docs] def get_kwargs(self): kw = copy.deepcopy(self.kwargs) if kw['source_loc'] is None: del kw['source_loc'] if kw['dest_loc'] is None: del kw['dest_loc'] return kw