in google_cloud_automlops/orchestration/base.py [0:0]
def _get_function_parameters(self) -> list:
"""Returns a formatted list of parameters.
Returns:
list: Params list with types converted to kubeflow spec.
Raises:
Exception: Parameter type hints are not provided.
"""
# Extract function parameter names and their descriptions from the function's docstring
signature = inspect.signature(self.func)
parameters = list(signature.parameters.values())
parsed_docstring = docstring_parser.parse(inspect.getdoc(self.func))
doc_dict = {p.arg_name: p.description for p in parsed_docstring.params}
# Extract parameter metadata
parameter_holder = []
for param in parameters:
metadata = {}
metadata['name'] = param.name
metadata['description'] = doc_dict.get(param.name)
metadata['type'] = self.maybe_strip_optional_from_annotation(
param.annotation)
parameter_holder.append(metadata)
# pylint: disable=protected-access
if metadata['type'] == inspect._empty:
raise TypeError(
f'''Missing type hint for parameter "{metadata['name']}". '''
f'''Please specify the type for this parameter.''')
return parameter_holder