in src/functions_framework/__init__.py [0:0]
def typed(*args):
def _typed(func):
_typed_event.register_typed_event(input_type, func)
@functools.wraps(func)
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
# no input type provided as a parameter, we need to use reflection
# e.g function declaration:
# @typed
# def myfunc(x:input_type)
if len(args) == 1 and isinstance(args[0], types.FunctionType):
input_type = None
return _typed(args[0])
# input type provided as a parameter to the decorator
# e.g. function declaration
# @typed(input_type)
# def myfunc(x)
else:
input_type = args[0]
return _typed