def _singleParameterToJson(parameter: Parameter,
                           get: bool = False,
                           includeMeta: List[str] = [],
                           simpleFormat: bool = True) -> Dict:
    """Create a JSON representation of a parameter."""

    ret = {parameter.name: None}
    snap = parameter.snapshot(update=get)
    if len(includeMeta) == 0 and simpleFormat:
        ret[parameter.name] = snap.get('value', None)
    else:
        ret[parameter.name] = dict()
        for k, v in snap.items():
            if k in ['value'] + includeMeta:
                ret[parameter.name][k] = v
    return ret
Beispiel #2
0
def test_snapshot():
    p = Parameter('testparam', set_cmd=None, get_cmd=None)

    def divide_by_2(x):
        return x / 2

    c = ConversionParameter('test_delegate_parameter',
                            p,
                            lambda x: x * 2,
                            set_conv=divide_by_2,
                            initial_value=2)

    snapshot = c.snapshot()
    source_parameter_snapshot = snapshot.pop('source_parameter')
    assert source_parameter_snapshot == p.snapshot()

    assert snapshot['value'] == 2
    assert source_parameter_snapshot['value'] == 1.0

    assert divide_by_2.__name__ in snapshot['set_conversion']
    assert 'lambda' in snapshot['get_conversion']