33
44import ast
55import functools
6+ import sys
67from typing import Callable
78
89from specfile .exceptions import SpecfileException
@@ -29,12 +30,14 @@ def format_expression(expression: str, line_length_threshold: int = 80) -> str:
2930
3031 def fmt (node , indent = 0 , prefix = "" , multiline = False ):
3132 result = " " * indent + prefix
32- if isinstance ( node , ( ast . Constant , ast .NameConstant ) ):
33+ if sys . version_info < ( 3 , 8 ) and isinstance ( node , ast .NameConstant ):
3334 result += repr (node .value )
34- elif isinstance (node , ast .Str ):
35+ elif sys . version_info < ( 3 , 8 ) and isinstance (node , ast .Str ):
3536 result += repr (node .s )
36- elif isinstance (node , ast .Num ):
37+ elif sys . version_info < ( 3 , 8 ) and isinstance (node , ast .Num ):
3738 result += repr (node .n )
39+ elif isinstance (node , ast .Constant ):
40+ result += repr (node .value )
3841 elif isinstance (node , (ast .Tuple , ast .List , ast .Dict , ast .Call )):
3942 if isinstance (node , ast .Tuple ):
4043 start , end = "(" , ")" if multiline or len (node .elts ) != 1 else ",)"
0 commit comments