in azure_functions_worker/functions.py [0:0]
def add_function(self, function_id: str,
func: typing.Callable,
metadata: protos.RpcFunctionMetadata):
func_name = metadata.name
sig = inspect.signature(func)
params = dict(sig.parameters)
annotations = typing.get_type_hints(func)
return_binding_name: typing.Optional[str] = None
explicit_return_val_set = False
has_explicit_return = False
has_implicit_return = False
bound_params = {}
for binding_name, binding_info in metadata.bindings.items():
self.validate_binding_direction(binding_name,
binding_info.direction, func_name)
has_explicit_return, has_implicit_return = \
self.get_explicit_and_implicit_return(
binding_name, binding_info, has_explicit_return,
has_implicit_return, bound_params)
return_binding_name, explicit_return_val_set = \
self.get_return_binding(binding_name,
binding_info.type,
return_binding_name,
explicit_return_val_set)
requires_context = self.is_context_required(params, bound_params,
annotations,
func_name)
input_types, output_types, _ = self.validate_function_params(
params, bound_params, annotations, func_name)
return_type = \
self.get_function_return_type(annotations,
has_explicit_return,
has_implicit_return,
return_binding_name,
func_name)
self.add_func_to_registry_and_return_funcinfo(func, func_name,
function_id,
metadata.directory,
requires_context,
has_explicit_return,
has_implicit_return,
_,
input_types,
output_types,
return_type)