mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix #7461: autodoc: empty tuple in type annotation is not shown correctly
This commit is contained in:
parent
2e219366c4
commit
c8355234eb
1
CHANGES
1
CHANGES
@ -17,6 +17,7 @@ Bugs fixed
|
|||||||
----------
|
----------
|
||||||
|
|
||||||
* #7461: py domain: fails with IndexError for empty tuple in type annotation
|
* #7461: py domain: fails with IndexError for empty tuple in type annotation
|
||||||
|
* #7461: autodoc: empty tuple in type annotation is not shown correctly
|
||||||
|
|
||||||
Testing
|
Testing
|
||||||
--------
|
--------
|
||||||
|
@ -114,7 +114,10 @@ def unparse(node: ast.AST) -> str:
|
|||||||
elif isinstance(node, ast.UnaryOp):
|
elif isinstance(node, ast.UnaryOp):
|
||||||
return "%s %s" % (unparse(node.op), unparse(node.operand))
|
return "%s %s" % (unparse(node.op), unparse(node.operand))
|
||||||
elif isinstance(node, ast.Tuple):
|
elif isinstance(node, ast.Tuple):
|
||||||
return ", ".join(unparse(e) for e in node.elts)
|
if node.elts:
|
||||||
|
return ", ".join(unparse(e) for e in node.elts)
|
||||||
|
else:
|
||||||
|
return "()"
|
||||||
elif sys.version_info > (3, 6) and isinstance(node, ast.Constant):
|
elif sys.version_info > (3, 6) and isinstance(node, ast.Constant):
|
||||||
# this branch should be placed at last
|
# this branch should be placed at last
|
||||||
return repr(node.value)
|
return repr(node.value)
|
||||||
|
@ -54,6 +54,7 @@ from sphinx.pycode import ast
|
|||||||
("- 1", "- 1"), # UnaryOp
|
("- 1", "- 1"), # UnaryOp
|
||||||
("- a", "- a"), # USub
|
("- a", "- a"), # USub
|
||||||
("(1, 2, 3)", "1, 2, 3"), # Tuple
|
("(1, 2, 3)", "1, 2, 3"), # Tuple
|
||||||
|
("()", "()"), # Tuple (empty)
|
||||||
])
|
])
|
||||||
def test_unparse(source, expected):
|
def test_unparse(source, expected):
|
||||||
module = ast.parse(source)
|
module = ast.parse(source)
|
||||||
|
Loading…
Reference in New Issue
Block a user