
Almost all of the problems were using print statements instead of equivalent Python 3 syntax. You'll notice that in Python 2, the AST parses `print(...)` and `print ...` equivalently: $ python Python 2.7.9 (default, Dec 15 2014, 10:01:34) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import ast >>> body = ast.parse('print("Foo")').body[0] >>> body <_ast.Print object at 0x1033452d0> >>> body.values [<_ast.Str object at 0x103345310>] >>> body2 = ast.parse('print "Foo"').body[0] >>> body2 <_ast.Print object at 0x103345350> >>> body2.values [<_ast.Str object at 0x103345390>] This leaves 2 files - exec.py, os-chmod.py - which are skipped due to syntax errors on Python 3.4. Change-Id: I2d97a249503317092372a874c018561cf875b066
13 lines
237 B
Python
13 lines
237 B
Python
import marshal
|
|
import tempfile
|
|
|
|
|
|
serialized = marshal.dumps({'a': 1})
|
|
print(marshal.loads(serialized))
|
|
|
|
file_obj = tempfile.TemporaryFile()
|
|
marshal.dump(range(5), file_obj)
|
|
file_obj.seek(0)
|
|
print(marshal.load(file_obj))
|
|
file_obj.close()
|