mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
refactor: Sort visitor methods of _UnparseVisitor
This commit is contained in:
@@ -81,81 +81,6 @@ class _UnparseVisitor(ast.NodeVisitor):
|
||||
else:
|
||||
return node.arg
|
||||
|
||||
def visit_Attribute(self, node: ast.Attribute) -> str:
|
||||
return "%s.%s" % (self.visit(node.value), node.attr)
|
||||
|
||||
def visit_BinOp(self, node: ast.BinOp) -> str:
|
||||
return " ".join(self.visit(e) for e in [node.left, node.op, node.right])
|
||||
|
||||
def visit_BoolOp(self, node: ast.BoolOp) -> str:
|
||||
op = " %s " % self.visit(node.op)
|
||||
return op.join(self.visit(e) for e in node.values)
|
||||
|
||||
def visit_Call(self, node: ast.Call) -> str:
|
||||
args = ([self.visit(e) for e in node.args] +
|
||||
["%s=%s" % (k.arg, self.visit(k.value)) for k in node.keywords])
|
||||
return "%s(%s)" % (self.visit(node.func), ", ".join(args))
|
||||
|
||||
def visit_Dict(self, node: ast.Dict) -> str:
|
||||
keys = (self.visit(k) for k in node.keys)
|
||||
values = (self.visit(v) for v in node.values)
|
||||
items = (k + ": " + v for k, v in zip(keys, values))
|
||||
return "{" + ", ".join(items) + "}"
|
||||
|
||||
def visit_Index(self, node: ast.Index) -> str:
|
||||
return self.visit(node.value)
|
||||
|
||||
def visit_Lambda(self, node: ast.Lambda) -> str:
|
||||
return "lambda %s: ..." % self.visit(node.args)
|
||||
|
||||
def visit_List(self, node: ast.List) -> str:
|
||||
return "[" + ", ".join(self.visit(e) for e in node.elts) + "]"
|
||||
|
||||
def visit_Name(self, node: ast.Name) -> str:
|
||||
return node.id
|
||||
|
||||
if sys.version_info < (3, 8):
|
||||
# these ast nodes were deprecated in python 3.8
|
||||
def visit_Num(self, node: ast.Num) -> str:
|
||||
return repr(node.n)
|
||||
|
||||
def visit_Str(self, node: ast.Str) -> str:
|
||||
return repr(node.s)
|
||||
|
||||
def visit_Bytes(self, node: ast.Bytes) -> str:
|
||||
return repr(node.s)
|
||||
|
||||
def visit_NameConstant(self, node: ast.NameConstant) -> str:
|
||||
return repr(node.value)
|
||||
|
||||
def visit_Ellipsis(self, node: ast.Ellipsis) -> str:
|
||||
return "..."
|
||||
|
||||
def visit_Set(self, node: ast.Set) -> str:
|
||||
return "{" + ", ".join(self.visit(e) for e in node.elts) + "}"
|
||||
|
||||
def visit_Subscript(self, node: ast.Subscript) -> str:
|
||||
return "%s[%s]" % (self.visit(node.value), self.visit(node.slice))
|
||||
|
||||
def visit_UnaryOp(self, node: ast.UnaryOp) -> str:
|
||||
return "%s %s" % (self.visit(node.op), self.visit(node.operand))
|
||||
|
||||
def visit_Tuple(self, node: ast.Tuple) -> str:
|
||||
if node.elts:
|
||||
return ", ".join(self.visit(e) for e in node.elts)
|
||||
else:
|
||||
return "()"
|
||||
|
||||
if sys.version_info >= (3, 6):
|
||||
def visit_Constant(self, node: ast.Constant) -> str:
|
||||
if node.value is Ellipsis:
|
||||
return "..."
|
||||
else:
|
||||
return repr(node.value)
|
||||
|
||||
def generic_visit(self, node):
|
||||
raise NotImplementedError('Unable to parse %s object' % type(node).__name__)
|
||||
|
||||
def _visit_arg_with_default(self, arg: ast.arg, default: Optional[ast.AST]) -> str:
|
||||
"""Unparse a single argument to a string."""
|
||||
name = self.visit(arg)
|
||||
@@ -203,3 +128,78 @@ class _UnparseVisitor(ast.NodeVisitor):
|
||||
args.append("**" + self.visit(node.kwarg))
|
||||
|
||||
return ", ".join(args)
|
||||
|
||||
def visit_Attribute(self, node: ast.Attribute) -> str:
|
||||
return "%s.%s" % (self.visit(node.value), node.attr)
|
||||
|
||||
def visit_BinOp(self, node: ast.BinOp) -> str:
|
||||
return " ".join(self.visit(e) for e in [node.left, node.op, node.right])
|
||||
|
||||
def visit_BoolOp(self, node: ast.BoolOp) -> str:
|
||||
op = " %s " % self.visit(node.op)
|
||||
return op.join(self.visit(e) for e in node.values)
|
||||
|
||||
def visit_Call(self, node: ast.Call) -> str:
|
||||
args = ([self.visit(e) for e in node.args] +
|
||||
["%s=%s" % (k.arg, self.visit(k.value)) for k in node.keywords])
|
||||
return "%s(%s)" % (self.visit(node.func), ", ".join(args))
|
||||
|
||||
def visit_Dict(self, node: ast.Dict) -> str:
|
||||
keys = (self.visit(k) for k in node.keys)
|
||||
values = (self.visit(v) for v in node.values)
|
||||
items = (k + ": " + v for k, v in zip(keys, values))
|
||||
return "{" + ", ".join(items) + "}"
|
||||
|
||||
def visit_Index(self, node: ast.Index) -> str:
|
||||
return self.visit(node.value)
|
||||
|
||||
def visit_Lambda(self, node: ast.Lambda) -> str:
|
||||
return "lambda %s: ..." % self.visit(node.args)
|
||||
|
||||
def visit_List(self, node: ast.List) -> str:
|
||||
return "[" + ", ".join(self.visit(e) for e in node.elts) + "]"
|
||||
|
||||
def visit_Name(self, node: ast.Name) -> str:
|
||||
return node.id
|
||||
|
||||
def visit_Set(self, node: ast.Set) -> str:
|
||||
return "{" + ", ".join(self.visit(e) for e in node.elts) + "}"
|
||||
|
||||
def visit_Subscript(self, node: ast.Subscript) -> str:
|
||||
return "%s[%s]" % (self.visit(node.value), self.visit(node.slice))
|
||||
|
||||
def visit_UnaryOp(self, node: ast.UnaryOp) -> str:
|
||||
return "%s %s" % (self.visit(node.op), self.visit(node.operand))
|
||||
|
||||
def visit_Tuple(self, node: ast.Tuple) -> str:
|
||||
if node.elts:
|
||||
return ", ".join(self.visit(e) for e in node.elts)
|
||||
else:
|
||||
return "()"
|
||||
|
||||
if sys.version_info >= (3, 6):
|
||||
def visit_Constant(self, node: ast.Constant) -> str:
|
||||
if node.value is Ellipsis:
|
||||
return "..."
|
||||
else:
|
||||
return repr(node.value)
|
||||
|
||||
if sys.version_info < (3, 8):
|
||||
# these ast nodes were deprecated in python 3.8
|
||||
def visit_Bytes(self, node: ast.Bytes) -> str:
|
||||
return repr(node.s)
|
||||
|
||||
def visit_Ellipsis(self, node: ast.Ellipsis) -> str:
|
||||
return "..."
|
||||
|
||||
def visit_NameConstant(self, node: ast.NameConstant) -> str:
|
||||
return repr(node.value)
|
||||
|
||||
def visit_Num(self, node: ast.Num) -> str:
|
||||
return repr(node.n)
|
||||
|
||||
def visit_Str(self, node: ast.Str) -> str:
|
||||
return repr(node.s)
|
||||
|
||||
def generic_visit(self, node):
|
||||
raise NotImplementedError('Unable to parse %s object' % type(node).__name__)
|
||||
|
||||
Reference in New Issue
Block a user