[pypy-commit] pypy py3k-test-cpyext: Don't import rpython.tool.udir from pypy.tool.cpyext.extbuild, since it's not py3-compatible
rlamy
pypy.commits at gmail.com
Sat Oct 1 22:57:49 EDT 2016
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: py3k-test-cpyext
Changeset: r87512:4e5503abe3ab
Date: 2016-10-02 03:04 +0100
http://bitbucket.org/pypy/pypy/changeset/4e5503abe3ab/
Log: Don't import rpython.tool.udir from pypy.tool.cpyext.extbuild, since
it's not py3-compatible
diff --git a/pypy/module/cpyext/test/test_cpyext.py b/pypy/module/cpyext/test/test_cpyext.py
--- a/pypy/module/cpyext/test/test_cpyext.py
+++ b/pypy/module/cpyext/test/test_cpyext.py
@@ -13,6 +13,7 @@
from rpython.tool.identity_dict import identity_dict
from rpython.tool import leakfinder
from rpython.rlib import rawrefcount
+from rpython.tool.udir import udir
only_pypy ="config.option.runappdirect and '__pypy__' not in sys.builtin_module_names"
@@ -64,6 +65,7 @@
else:
compile_extra = link_extra = None
return SpaceCompiler(space,
+ builddir_base=udir,
include_extra=api.include_dirs,
compile_extra=compile_extra,
link_extra=link_extra,
@@ -219,6 +221,7 @@
def setup_class(cls):
space = cls.space
cls.w_here = space.wrap(str(HERE))
+ cls.w_udir = space.wrap(str(udir))
if not cls.runappdirect:
cls.sys_info = get_cpyext_info(space)
cls.w_runappdirect = space.wrap(cls.runappdirect)
@@ -230,11 +233,11 @@
#state.non_heaptypes_w[:] = []
cls.w_debug_collect = space.wrap(interp2app(debug_collect))
else:
- cls.sys_info = get_sys_info_app()
+ cls.sys_info = get_sys_info_app(udir)
def w_import_module(self, name, init=None, body='', filename=None,
include_dirs=None, PY_SSIZE_T_CLEAN=False):
from extbuild import get_sys_info_app
- sys_info = get_sys_info_app()
+ sys_info = get_sys_info_app(self.udir)
return sys_info.import_module(
name, init=init, body=body, filename=filename,
include_dirs=include_dirs,
diff --git a/pypy/tool/cpyext/extbuild.py b/pypy/tool/cpyext/extbuild.py
--- a/pypy/tool/cpyext/extbuild.py
+++ b/pypy/tool/cpyext/extbuild.py
@@ -2,7 +2,6 @@
import sys
import py
from pypy import pypydir
-from rpython.tool.udir import udir
from rpython.translator.gensupp import uniquemodulename
if os.name != 'nt':
@@ -17,8 +16,9 @@
Note: here, 'system' means OS + target interpreter + test config + ...
"""
- def __init__(self, include_extra=None, compile_extra=None, link_extra=None,
- extra_libs=None, ext=None):
+ def __init__(self, builddir_base, include_extra=None, compile_extra=None,
+ link_extra=None, extra_libs=None, ext=None):
+ self.builddir_base = builddir_base
self.include_extra = include_extra or []
self.compile_extra = compile_extra
self.link_extra = link_extra
@@ -39,7 +39,7 @@
"""
include_dirs = include_dirs or []
modname = name.split('.')[-1]
- dirname = (udir/uniquemodulename('module')).ensure(dir=1)
+ dirname = (py.path.local(self.builddir_base)/uniquemodulename('module')).ensure(dir=1)
if source_strings:
assert not source_files
files = convert_sources_to_files(source_strings, dirname)
@@ -64,7 +64,6 @@
if filename is None, the module name will be used to construct the
filename.
"""
- name = name.encode()
if body or init:
body = body.encode()
if init is None:
@@ -227,7 +226,7 @@
raise RuntimeError("This interpreter does not define a filename "
"suffix for C extensions!")
-def get_sys_info_app():
+def get_sys_info_app(base_dir):
from distutils.sysconfig import get_python_inc
if sys.platform == 'win32':
compile_extra = ["/we4013"]
@@ -240,6 +239,7 @@
"-O0", "-g", "-Werror=implicit-function-declaration", "-fPIC"]
link_extra = None
return ExtensionCompiler(
+ builddir_base=base_dir,
include_extra=[get_python_inc()],
compile_extra=compile_extra,
link_extra=link_extra,
More information about the pypy-commit
mailing list