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

changeset 8252
70855a87f546
parent 8232
39c4543b7a61
child 8436
f22f8d8337b8
--- a/eric6/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/ast_unparse.py	Sat Apr 17 16:51:19 2021 +0200
+++ b/eric6/Plugins/CheckerPlugins/CodeStyleChecker/Simplify/ast_unparse.py	Sat Apr 17 18:45:04 2021 +0200
@@ -15,6 +15,8 @@
 from enum import IntEnum, auto
 from contextlib import contextmanager, nullcontext
 
+import AstUtilities
+
 # Large float and imaginary literals get turned into infinities in the AST.
 # We unparse those infinities to INFSTR.
 _INFSTR = "1e" + repr(sys.float_info.max_10_exp + 1)
@@ -598,16 +600,22 @@
             self.write(repr(value))
 
     def visit_Constant(self, node):
-        value = node.value
+        value = AstUtilities.getValue(node)
         if isinstance(value, tuple):
             with self.delimit("(", ")"):
                 self.items_view(self._write_constant, value)
         elif value is ...:
             self.write("...")
         else:
-            if node.kind == "u":
+            if hasattr(node, "kind") and node.kind == "u":
                 self.write("u")
-            self._write_constant(node.value)
+            self._write_constant(value)
+    
+    visit_NameConstant = visit_Constant
+    visit_Num = visit_Constant
+    visit_Str = visit_Constant
+    visit_Bytes = visit_Constant
+    visit_Ellipsis = visit_Constant
 
     def visit_List(self, node):
         with self.delimit("[", "]"):

eric ide

mercurial