forked from ni/nimi-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdefault_method.py.mako
More file actions
28 lines (27 loc) · 1.33 KB
/
default_method.py.mako
File metadata and controls
28 lines (27 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<%page args="f, config, method_template, grpc_types_var, grpc_client_var"/>\
<%
'''Renders a GrpcStubInterpreter method corresponding to the passed-in function metadata.'''
import build.helper as helper
full_func_name = f['interpreter_name'] + method_template['method_python_name_suffix']
method_decl_params = helper.get_params_snippet(f, helper.ParameterUsageOptions.INTERPRETER_METHOD_DECLARATION)
grpc_name = f.get('grpc_name', f['name'])
grpc_request_args = helper.get_params_snippet(f, helper.ParameterUsageOptions.GRPC_REQUEST_PARAMETERS)
return_statement = helper.get_grpc_interpreter_method_return_snippet(f['parameters'], config)
if return_statement == 'return':
return_statement = None
capture_response = 'response = ' if return_statement else ''
client = 'self._restricted_client' if grpc_client_var == 'restricted_grpc' else 'self._client'
included_in_proto = f.get('included_in_proto', True)
%>\
def ${full_func_name}(${method_decl_params}): # noqa: N802
% if included_in_proto:
${capture_response}self._invoke(
${client}.${grpc_name},
${grpc_types_var}.${grpc_name}Request(${grpc_request_args}),
)
% if return_statement:
${return_statement}
% endif
% else:
raise NotImplementedError('${full_func_name} is not supported over gRPC')
% endif