in tools/generate_taint_models/model.py [0:0]
def _generate_parameters(self) -> List[Parameter]:
parameters: List[Parameter] = []
function_arguments = self.definition.args
for ast_arg in function_arguments.args:
parameters.append(
Parameter(
ast_arg.arg,
FunctionDefinitionModel._get_annotation(ast_arg),
Parameter.Kind.ARG,
)
)
keyword_only_parameters = function_arguments.kwonlyargs
if len(keyword_only_parameters) > 0:
parameters.append(
Parameter(name="*", annotation=None, kind=Parameter.Kind.ARG)
)
for parameter in keyword_only_parameters:
parameters.append(
Parameter(
parameter.arg,
FunctionDefinitionModel._get_annotation(parameter),
Parameter.Kind.ARG,
)
)
vararg_parameters = function_arguments.vararg
if isinstance(vararg_parameters, ast.arg):
parameters.append(
Parameter(
f"*{vararg_parameters.arg}",
FunctionDefinitionModel._get_annotation(vararg_parameters),
Parameter.Kind.VARARG,
)
)
kwarg_parameters = function_arguments.kwarg
if isinstance(kwarg_parameters, ast.arg):
parameters.append(
Parameter(
f"**{kwarg_parameters.arg}",
FunctionDefinitionModel._get_annotation(kwarg_parameters),
Parameter.Kind.KWARG,
)
)
return parameters