from smnp.function.model import CombinedFunction, Function from smnp.function.signature import signature from smnp.type.model import Type from smnp.type.signature.matcher.type import ofType _signature1 = signature(ofType(Type.FLOAT)) def _function1(env, value): return Type.integer(int(value.value)) _signature2 = signature(ofType(Type.STRING)) def _function2(env, value): return Type.integer(int(value.value)) _signature3 = signature(ofType(Type.INTEGER)) def _function3(env, value): return value function = CombinedFunction( 'Integer', Function(_signature1, _function1), Function(_signature2, _function2), Function(_signature3, _function3), )