Add unicode string support to pyct pretty printer.

PiperOrigin-RevId: 237161597
This commit is contained in:
Brian Lee 2019-03-06 18:37:28 -08:00 committed by TensorFlower Gardener
parent 87cd62e4d1
commit 9fa3d27c4b
2 changed files with 16 additions and 2 deletions

View File

@ -18,7 +18,9 @@ from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import gast
import six
import termcolor
@ -106,9 +108,12 @@ class PrettyPrinter(gast.NodeVisitor):
self._print('%s%s=()' % (self._indent(), self._field(f)))
elif isinstance(v, gast.AST):
self.generic_visit(v, f)
elif isinstance(v, str):
elif isinstance(v, six.binary_type):
self._print('%s%s=%s' % (self._indent(), self._field(f),
self._value('"%s"' % v)))
self._value('b"%s"' % v)))
elif isinstance(v, six.text_type):
self._print('%s%s=%s' % (self._indent(), self._field(f),
self._value('u"%s"' % v)))
else:
self._print('%s%s=%s' % (self._indent(), self._field(f),
self._value(v)))

View File

@ -19,6 +19,7 @@ from __future__ import division
from __future__ import print_function
import ast
import textwrap
from tensorflow.python.autograph.pyct import pretty_printer
from tensorflow.python.platform import test
@ -26,6 +27,14 @@ from tensorflow.python.platform import test
class PrettyPrinterTest(test.TestCase):
def test_unicode_bytes(self):
source = textwrap.dedent('''
def f():
return b'b', u'u', 'depends_py2_py3'
''')
node = ast.parse(source)
self.assertIsNotNone(pretty_printer.fmt(node))
def test_format(self):
node = ast.FunctionDef(
name='f',