eric6/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/ast_unparse.py

changeset 8252
70855a87f546
parent 8232
39c4543b7a61
child 8436
f22f8d8337b8
equal deleted inserted replaced
8250:4d65b3ec1d31 8252:70855a87f546
12 12
13 import ast 13 import ast
14 import sys 14 import sys
15 from enum import IntEnum, auto 15 from enum import IntEnum, auto
16 from contextlib import contextmanager, nullcontext 16 from contextlib import contextmanager, nullcontext
17
18 import AstUtilities
17 19
18 # Large float and imaginary literals get turned into infinities in the AST. 20 # Large float and imaginary literals get turned into infinities in the AST.
19 # We unparse those infinities to INFSTR. 21 # We unparse those infinities to INFSTR.
20 _INFSTR = "1e" + repr(sys.float_info.max_10_exp + 1) 22 _INFSTR = "1e" + repr(sys.float_info.max_10_exp + 1)
21 23
596 self._write_str_avoiding_backslashes(value) 598 self._write_str_avoiding_backslashes(value)
597 else: 599 else:
598 self.write(repr(value)) 600 self.write(repr(value))
599 601
600 def visit_Constant(self, node): 602 def visit_Constant(self, node):
601 value = node.value 603 value = AstUtilities.getValue(node)
602 if isinstance(value, tuple): 604 if isinstance(value, tuple):
603 with self.delimit("(", ")"): 605 with self.delimit("(", ")"):
604 self.items_view(self._write_constant, value) 606 self.items_view(self._write_constant, value)
605 elif value is ...: 607 elif value is ...:
606 self.write("...") 608 self.write("...")
607 else: 609 else:
608 if node.kind == "u": 610 if hasattr(node, "kind") and node.kind == "u":
609 self.write("u") 611 self.write("u")
610 self._write_constant(node.value) 612 self._write_constant(value)
613
614 visit_NameConstant = visit_Constant
615 visit_Num = visit_Constant
616 visit_Str = visit_Constant
617 visit_Bytes = visit_Constant
618 visit_Ellipsis = visit_Constant
611 619
612 def visit_List(self, node): 620 def visit_List(self, node):
613 with self.delimit("[", "]"): 621 with self.delimit("[", "]"):
614 self.interleave(lambda: self.write(", "), self.traverse, node.elts) 622 self.interleave(lambda: self.write(", "), self.traverse, node.elts)
615 623

eric ide

mercurial