def parse_elt(elt_expr) -> Tuple[MichelsonType, MichelsonType]: return parse_micheline_value( elt_expr, { ('Elt', 2): lambda x: tuple(cls.args[i].from_micheline_value(arg) for i, arg in enumerate(x)) })
def from_micheline_value(cls, val_expr): item = parse_micheline_value( val_expr, { ('Some', 1): lambda x: cls.args[0].from_micheline_value(x[0]), ('None', 0): lambda x: None }) return cls(item)
def from_micheline_value(cls, val_expr) -> 'OrType': value = parse_micheline_value( val_expr, { ('Left', 1): lambda x: (cls.args[0].from_micheline_value(x[0]), Undefined), ('Right', 1): lambda x: (Undefined, cls.args[1].from_micheline_value(x[0])) }) return cls(value)
def from_micheline_value(cls, val_expr) -> 'UnitType': parse_micheline_value(val_expr, {('Unit', 0): lambda x: x}) return cls()
def from_micheline_value(cls, val_expr) -> 'BoolType': value = parse_micheline_value(val_expr, { ('False', 0): lambda x: False, ('True', 0): lambda x: True }) return cls(value)