generated from jCloud/repository-template
Bug fix: core.python.arguments.PythonASTArgumentsListParser.to_argument_list failed if a type annotation is not a single name
This commit is contained in:
@@ -127,26 +127,26 @@ class PythonASTArgumentsListParser:
|
|||||||
if arg.annotation is None:
|
if arg.annotation is None:
|
||||||
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.POSITIONAL_ONLY, None, None))
|
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.POSITIONAL_ONLY, None, None))
|
||||||
else:
|
else:
|
||||||
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.POSITIONAL_ONLY, None, arg.annotation.id))
|
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.POSITIONAL_ONLY, None, ast.unparse(arg.annotation)))
|
||||||
for arg in self.ast_arguments_list.args:
|
for arg in self.ast_arguments_list.args:
|
||||||
if arg.annotation is None:
|
if arg.annotation is None:
|
||||||
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.NORMAL, None, None))
|
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.NORMAL, None, None))
|
||||||
else:
|
else:
|
||||||
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.NORMAL, None, arg.annotation.id))
|
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.NORMAL, None, ast.unparse(arg.annotation)))
|
||||||
if self.ast_arguments_list.vararg is not None:
|
if self.ast_arguments_list.vararg is not None:
|
||||||
if self.ast_arguments_list.vararg.annotation is None:
|
if self.ast_arguments_list.vararg.annotation is None:
|
||||||
arguments.append(PythonFunctionArgument(self.ast_arguments_list.vararg.arg, PythonArgumentKind.VARARG, None, None))
|
arguments.append(PythonFunctionArgument(self.ast_arguments_list.vararg.arg, PythonArgumentKind.VARARG, None, None))
|
||||||
else:
|
else:
|
||||||
arguments.append(PythonFunctionArgument(self.ast_arguments_list.vararg.arg, PythonArgumentKind.VARARG, None, self.ast_arguments_list.vararg.annotation.id))
|
arguments.append(PythonFunctionArgument(self.ast_arguments_list.vararg.arg, PythonArgumentKind.VARARG, None, ast.unparse(self.ast_arguments_list.vararg.annotation)))
|
||||||
for arg in self.ast_arguments_list.kwonlyargs:
|
for arg in self.ast_arguments_list.kwonlyargs:
|
||||||
if arg.annotation is None:
|
if arg.annotation is None:
|
||||||
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.KEYWORD_ONLY, None, None))
|
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.KEYWORD_ONLY, None, None))
|
||||||
else:
|
else:
|
||||||
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.KEYWORD_ONLY, None, arg.annotation.id))
|
arguments.append(PythonFunctionArgument(arg.arg, PythonArgumentKind.KEYWORD_ONLY, None, ast.unparse(arg.annotation)))
|
||||||
if self.ast_arguments_list.kwarg is not None:
|
if self.ast_arguments_list.kwarg is not None:
|
||||||
if self.ast_arguments_list.kwarg.annotation is None:
|
if self.ast_arguments_list.kwarg.annotation is None:
|
||||||
arguments.append(PythonFunctionArgument(self.ast_arguments_list.kwarg.arg, PythonArgumentKind.KWARGS, None, None))
|
arguments.append(PythonFunctionArgument(self.ast_arguments_list.kwarg.arg, PythonArgumentKind.KWARGS, None, None))
|
||||||
else:
|
else:
|
||||||
arguments.append(PythonFunctionArgument(self.ast_arguments_list.kwarg.arg, PythonArgumentKind.KWARGS, None, self.ast_arguments_list.kwarg.annotation.id))
|
arguments.append(PythonFunctionArgument(self.ast_arguments_list.kwarg.arg, PythonArgumentKind.KWARGS, None, ast.unparse(self.ast_arguments_list.kwarg.annotation)))
|
||||||
|
|
||||||
return arguments
|
return arguments
|
||||||
@@ -32,6 +32,7 @@ def argument_list(argument_list: str) -> ast.arguments:
|
|||||||
@pytest.mark.parametrize('ast_arguments_list,expected', [
|
@pytest.mark.parametrize('ast_arguments_list,expected', [
|
||||||
(argument_list('a'), [PythonFunctionArgument('a', PythonArgumentKind.NORMAL, None, None)]),
|
(argument_list('a'), [PythonFunctionArgument('a', PythonArgumentKind.NORMAL, None, None)]),
|
||||||
(argument_list('a: str'), [PythonFunctionArgument('a', PythonArgumentKind.NORMAL, None, 'str')]),
|
(argument_list('a: str'), [PythonFunctionArgument('a', PythonArgumentKind.NORMAL, None, 'str')]),
|
||||||
|
(argument_list('a: str | int'), [PythonFunctionArgument('a', PythonArgumentKind.NORMAL, None, 'str | int')]),
|
||||||
(argument_list('a: str, b'), [
|
(argument_list('a: str, b'), [
|
||||||
PythonFunctionArgument('a', PythonArgumentKind.NORMAL, None, 'str'),
|
PythonFunctionArgument('a', PythonArgumentKind.NORMAL, None, 'str'),
|
||||||
PythonFunctionArgument('b', PythonArgumentKind.NORMAL, None, None)
|
PythonFunctionArgument('b', PythonArgumentKind.NORMAL, None, None)
|
||||||
|
|||||||
Reference in New Issue
Block a user