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
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']