Browse Source

bpo-37053: handle strings like u"bar" correctly in Tools/parser/unparse.py (GH-13583)

Constant.kind is added in https://bugs.python.org/issue36280.
Current possible values for Constant.kind are "u" or None.

For r'bar' and b'bar', Constant.kind value is None, so there's no need
for special handling.


https://bugs.python.org/issue37053
pull/13588/head
Chih-Hsuan Yen 7 years ago
committed by Miss Islington (bot)
parent
commit
aaf47caf35
  1. 5
      Lib/test/test_tools/test_unparse.py
  2. 1
      Misc/NEWS.d/next/Tools-Demos/2019-05-26-16-47-06.bpo-37053.-EYRuz.rst
  3. 2
      Tools/parser/unparse.py

5
Lib/test/test_tools/test_unparse.py

@ -139,6 +139,11 @@ class UnparseTestCase(ASTTestCase):
self.check_roundtrip(r"""f'{f"{0}"*3}'""")
self.check_roundtrip(r"""f'{f"{y}"*3}'""")
def test_strings(self):
self.check_roundtrip("u'foo'")
self.check_roundtrip("r'foo'")
self.check_roundtrip("b'foo'")
def test_del_statement(self):
self.check_roundtrip("del x, y, z")

1
Misc/NEWS.d/next/Tools-Demos/2019-05-26-16-47-06.bpo-37053.-EYRuz.rst

@ -0,0 +1 @@
Handle strings like u"bar" correctly in Tools/parser/unparse.py. Patch by Chih-Hsuan Yen.

2
Tools/parser/unparse.py

@ -399,6 +399,8 @@ class Unparser:
elif value is ...:
self.write("...")
else:
if t.kind == "u":
self.write("u")
self._write_constant(t.value)
def _List(self, t):

Loading…
Cancel
Save