diff -r 478b4e9551fa Lib/ast.py --- a/Lib/ast.py Sun Dec 04 23:56:30 2011 +0100 +++ b/Lib/ast.py Mon Dec 05 20:05:10 2011 -0500 @@ -61,6 +61,8 @@ elif isinstance(node, Dict): return dict((_convert(k), _convert(v)) for k, v in zip(node.keys, node.values)) + elif isinstance(node, Set): + return {_convert(v) for v in node.elts} elif isinstance(node, Name): if node.id in _safe_names: return _safe_names[node.id] diff -r 478b4e9551fa Lib/test/test_ast.py --- a/Lib/test/test_ast.py Sun Dec 04 23:56:30 2011 +0100 +++ b/Lib/test/test_ast.py Mon Dec 05 20:05:10 2011 -0500 @@ -472,7 +472,9 @@ 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('{1}'), {1}) self.assertRaises(ValueError, ast.literal_eval, 'foo()') + self.assertRaises(ValueError, ast.literal_eval, '{1, a}') def test_literal_eval_issue4907(self): self.assertEqual(ast.literal_eval('2j'), 2j)

AltStyle によって変換されたページ (->オリジナル) /