# Multi-channel y offset caluclations:
DISTANCE_BETWEEN_NOZZLES = 9
NUM_MULTI_CHANNEL_NOZZLES = 8
MULTI_LENGTH = (NUM_MULTI_CHANNEL_NOZZLES - 1) * DISTANCE_BETWEEN_NOZZLES
Y_OFFSET_MULTI = MULTI_LENGTH / 2
Z_OFFSET_MULTI = -25.8

Z_OFFSET_P10 = -13  # longest single-channel pipette
Z_OFFSET_P50 = 0
Z_OFFSET_P300 = 0
Z_OFFSET_P1000 = 20  # shortest single-channel pipette

LOW_CURRENT_DEFAULT = 0.05

config_models = list(model_config()['config'].keys())
config_names = list(name_config().keys())
configs = model_config()['config']
#: A list of pipette model names for which we have config entries
MUTABLE_CONFIGS = model_config()['mutableConfigs']
#: A list of mutable configs for pipettes
VALID_QUIRKS = model_config()['validQuirks']
#: A list of valid quirks for pipettes


def load(
        pipette_model: 'PipetteModel',
        pipette_id: str = None) -> PipetteConfig:
    """
    Load pipette config data
示例#2
0
def build_model_name_pairs():
    for model, conf in model_config()['config'].items():
        yield model, conf['name']
        for bcn in conf.get('backCompatNames', []):
            yield model, bcn
示例#3
0
def test_model_for_name(name):
    model = dummy_model_for_name(name)
    assert model in model_config()['config']
示例#4
0
def test_model_config_check():
    defdict = model_config()
    typeguard.check_type('defdict', defdict, PipetteModelSpecs)