You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-03 00:45:53 +08:00
Better 3.6+ nested format strings
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -99,3 +99,9 @@ def g():
|
||||
|
||||
assert f.__doc__ is None
|
||||
assert g.__doc__ is None
|
||||
|
||||
import decimal
|
||||
width, precision, value = (10, 4, decimal.Decimal('12.34567'))
|
||||
assert f'result: {value:{width}.{precision}}' == 'result: 12.35'
|
||||
assert f'result: {value:{width:0}.{precision:1}}' == 'result: 12.35'
|
||||
assert f'{2}\t' == '2\t'
|
||||
|
@@ -456,9 +456,10 @@ def customize_for_version36(self, version):
|
||||
es = escape_string("{%s%s}" % (value, conversion))
|
||||
f_str = "%s" % es
|
||||
else:
|
||||
old_in_format_string = self.in_format_string
|
||||
self.in_format_string = True
|
||||
value = self.traverse(expr, indent="")
|
||||
self.in_format_string = False
|
||||
self.in_format_string = old_in_format_string
|
||||
es = escape_string("{%s%s}" % (value, conversion))
|
||||
f_str = "f%s" % es
|
||||
|
||||
@@ -473,6 +474,7 @@ def customize_for_version36(self, version):
|
||||
|
||||
expr = node[0]
|
||||
assert expr == "expr"
|
||||
old_in_format_string = self.in_format_string
|
||||
self.in_format_string = True
|
||||
value = self.traverse(expr, indent="")
|
||||
format_value_attr = node[-1]
|
||||
@@ -489,7 +491,7 @@ def customize_for_version36(self, version):
|
||||
else:
|
||||
conversion = FSTRING_CONVERSION_MAP.get(attr, "")
|
||||
|
||||
self.in_format_string = False
|
||||
self.in_format_string = old_in_format_string
|
||||
f_str = "f%s" % escape_string("{%s%s}" % (value, conversion))
|
||||
self.write(f_str)
|
||||
|
||||
@@ -502,6 +504,8 @@ def customize_for_version36(self, version):
|
||||
p = self.prec
|
||||
self.prec = 100
|
||||
|
||||
old_in_format_string = self.in_format_string
|
||||
self.in_format_string = True
|
||||
result = ""
|
||||
for expr in node[:-1]:
|
||||
assert expr == "expr"
|
||||
@@ -527,7 +531,11 @@ def customize_for_version36(self, version):
|
||||
# Remove leading quotes
|
||||
result += strip_quotes(value)
|
||||
pass
|
||||
self.write('f%s' % escape_string(result))
|
||||
self.in_format_string = old_in_format_string
|
||||
if self.in_format_string:
|
||||
self.write(result)
|
||||
else:
|
||||
self.write("f%s" % escape_string(result))
|
||||
|
||||
self.prec = p
|
||||
self.prune()
|
||||
|
Reference in New Issue
Block a user