Author: Amaury Forgeot d'Arc <[email protected]>
Branch: py3k
Changeset: r48876:1afdb2a14313
Date: 2011-11-07 21:02 +0100
http://bitbucket.org/pypy/pypy/changeset/1afdb2a14313/

Log:    Allow bytes source code in compile()

diff --git a/pypy/module/__builtin__/compiling.py 
b/pypy/module/__builtin__/compiling.py
--- a/pypy/module/__builtin__/compiling.py
+++ b/pypy/module/__builtin__/compiling.py
@@ -30,6 +30,8 @@
     if space.is_true(space.isinstance(w_source, w_ast_type)):
         ast_node = space.interp_w(ast.mod, w_source)
         ast_node.sync_app_attrs(space)
+    elif space.isinstance_w(w_source, space.w_bytes):
+        source_str = space.bytes_w(w_source)
     else:
         source_str = space.str_w(w_source)
         # This flag tells the parser to reject any coding cookies it sees.
diff --git a/pypy/module/__builtin__/test/test_builtin.py 
b/pypy/module/__builtin__/test/test_builtin.py
--- a/pypy/module/__builtin__/test/test_builtin.py
+++ b/pypy/module/__builtin__/test/test_builtin.py
@@ -509,6 +509,10 @@
         code = u"# -*- coding: utf-8 -*-\npass\n"
         raises(SyntaxError, compile, code, "tmp", "exec")
 
+    def test_bytes_compile(self):
+        code = b"# -*- coding: utf-8 -*-\npass\n"
+        compile(code, "tmp", "exec")
+
     def test_recompile_ast(self):
         import _ast
         # raise exception when node type doesn't match with compile mode
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to