summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Abramowitz <marc@marc-abramowitz.com>2012-06-26 15:15:27 -0700
committerMarc Abramowitz <marc@marc-abramowitz.com>2012-06-26 15:15:27 -0700
commit311fb781f87f8885d9a94343b4b7e9731bc0c9e7 (patch)
treeae00aff75d63f708deb60b57dbd885b233d24482
parentd169177b19658f115db80d62c91593ca19bb5ee6 (diff)
downloadpython-setuptools-git-311fb781f87f8885d9a94343b4b7e9731bc0c9e7.tar.gz
Add tests and fix for marshal.load of pyc files on Python 3.3
Fixes https://bitbucket.org/tarek/distribute/issue/283/bdist_egg-issues-with-python-330ax --HG-- branch : distribute extra : rebase_source : ec6f2611d3f8a54b7e11cfadf9d03fdcdef39639
-rw-r--r--setuptools/command/bdist_egg.py6
-rw-r--r--tests/python3.3_bdist_egg_test/module.py0
-rw-r--r--tests/python3.3_bdist_egg_test/setup.py13
3 files changed, 18 insertions, 1 deletions
diff --git a/setuptools/command/bdist_egg.py b/setuptools/command/bdist_egg.py
index 68ca15c7..0ee9c55b 100644
--- a/setuptools/command/bdist_egg.py
+++ b/setuptools/command/bdist_egg.py
@@ -426,7 +426,11 @@ def scan_module(egg_dir, base, name, stubs):
pkg = base[len(egg_dir)+1:].replace(os.sep,'.')
module = pkg+(pkg and '.' or '')+os.path.splitext(name)[0]
f = open(filename,'rb'); f.read(8) # skip magic & date
- code = marshal.load(f); f.close()
+ try:
+ code = marshal.load(f); f.close()
+ except ValueError:
+ f.seek(0); f.read(12) # skip magic & date & file size; file size added in Python 3.3
+ code = marshal.load(f); f.close()
safe = True
symbols = dict.fromkeys(iter_symbols(code))
for bad in ['__file__', '__path__']:
diff --git a/tests/python3.3_bdist_egg_test/module.py b/tests/python3.3_bdist_egg_test/module.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/python3.3_bdist_egg_test/module.py
diff --git a/tests/python3.3_bdist_egg_test/setup.py b/tests/python3.3_bdist_egg_test/setup.py
new file mode 100644
index 00000000..04caea74
--- /dev/null
+++ b/tests/python3.3_bdist_egg_test/setup.py
@@ -0,0 +1,13 @@
+from setuptools import setup
+
+setup(
+ name='python3.3_bdist_egg_test',
+ version='0.0.0',
+ description='Test',
+ license='BSD',
+ py_modules=['module'],
+ author='Marc Abramowitz',
+ author_email='marc@marc-abramowitz.com',
+ url='https://bitbucket.org/msabramo/python3.3_bdist_egg_test',
+ # zip_safe=False,
+)