From 902be136be37f3d9fe8a301697821c9cc4e57709 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Sun, 11 Jul 2010 23:10:08 +0000 Subject: [PATCH] Merged revisions 82828 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r82828 | benjamin.peterson | 2010-07-11 18:06:06 -0500 (Sun, 11 Jul 2010) | 1 line allow byte literals ........ --- Lib/ast.py | 2 +- Lib/test/test_ast.py | 1 + Misc/NEWS | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Lib/ast.py b/Lib/ast.py index 0b8baf752e..027302fefc 100644 --- a/Lib/ast.py +++ b/Lib/ast.py @@ -50,7 +50,7 @@ def literal_eval(node_or_string): if isinstance(node_or_string, Expression): node_or_string = node_or_string.body def _convert(node): - if isinstance(node, Str): + if isinstance(node, (Str, Bytes)): return node.s elif isinstance(node, Num): return node.n diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py index 7ee16bf5bd..e18888739e 100644 --- a/Lib/test/test_ast.py +++ b/Lib/test/test_ast.py @@ -271,6 +271,7 @@ class ASTHelpers_Test(unittest.TestCase): self.assertEqual(ast.literal_eval('[1, 2, 3]'), [1, 2, 3]) self.assertEqual(ast.literal_eval('{"foo": 42}'), {"foo": 42}) self.assertEqual(ast.literal_eval('(True, False, None)'), (True, False, None)) + self.assertEqual(ast.literal_eval('b"hi"'), b"hi") self.assertRaises(ValueError, ast.literal_eval, 'foo()') def test_literal_eval_issue4907(self): diff --git a/Misc/NEWS b/Misc/NEWS index 601943faf8..7c264735c5 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -78,6 +78,8 @@ C-API Library ------- +- ``ast.literal_eval()`` now allows byte literals. + - Issue #9137: Fix issue in MutableMapping.update, which incorrectly treated keyword arguments called 'self' or 'other' specially. -- 2.40.0