Commit deef9b9f authored by Sergei Lebedev's avatar Sergei Lebedev

Addressed review comments

parent 17bef673
...@@ -308,11 +308,12 @@ class PyxImporter(object): ...@@ -308,11 +308,12 @@ class PyxImporter(object):
elif not os.path.isabs(path): elif not os.path.isabs(path):
path = os.path.abspath(path) path = os.path.abspath(path)
if os.path.isfile(path):
try: try:
zi = zipimporter(path) zi = zipimporter(path)
data = zi.get_data(pyx_module_name) data = zi.get_data(pyx_module_name)
except (ZipImportError, IOError): except (ZipImportError, IOError):
pyx_module_path = os.path.join(path, pyx_module_name) continue # Module not found.
else: else:
# XXX unzip the imported file into the build dir. A bit # XXX unzip the imported file into the build dir. A bit
# hacky, but it works! # hacky, but it works!
...@@ -321,10 +322,13 @@ class PyxImporter(object): ...@@ -321,10 +322,13 @@ class PyxImporter(object):
pyx_module_path = os.path.join(self.pyxbuild_dir, pyx_module_path = os.path.join(self.pyxbuild_dir,
pyx_module_name) pyx_module_name)
with open(pyx_module_path, "wb") as handle: with open(pyx_module_path, "wb") as f:
handle.write(data) f.write(data)
else:
pyx_module_path = os.path.join(path, pyx_module_name)
if not os.path.isfile(pyx_module_path):
continue # Module not found.
if os.path.isfile(pyx_module_path):
return PyxLoader(fullname, pyx_module_path, return PyxLoader(fullname, pyx_module_path,
pyxbuild_dir=self.pyxbuild_dir, pyxbuild_dir=self.pyxbuild_dir,
inplace=self.inplace, inplace=self.inplace,
......
...@@ -96,6 +96,15 @@ def test_zip(): ...@@ -96,6 +96,15 @@ def test_zip():
assert test_zip_module.x == 42 assert test_zip_module.x == 42
finally: finally:
os.remove(zip_path) os.remove(zip_path)
sys.path.remove(zip_path)
def test_zip_nonexisting():
sys.path.append("nonexisting_zip_module.zip")
try:
import nonexisting_zip_module
except ImportError:
pass
if __name__== "__main__": if __name__== "__main__":
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment