def _extension_details(): global EXTENSIONS # we need this hack on PyPy because _testcapi is built lazily import _testcapi import _pypy_testcapi lib_pypy_dir = os.path.dirname(_pypy_testcapi.__file__) c_file = os.path.join(lib_pypy_dir, '_testcapimodule.c') for path in [_pypy_testcapi.get_hashed_dir(c_file)]: for ext in machinery.EXTENSION_SUFFIXES: filename = EXTENSIONS.name + ext file_path = os.path.join(path, filename) if os.path.exists(file_path): EXTENSIONS.path = path EXTENSIONS.ext = ext EXTENSIONS.filename = filename EXTENSIONS.file_path = file_path return
import imp import os try: import cpyext except ImportError: pass # no 'cpyext', but we still have to define e.g. awaitType else: import _pypy_testcapi cfile = '_testcapimodule.c' thisdir = os.path.dirname(__file__) output_dir = _pypy_testcapi.get_hashed_dir(os.path.join(thisdir, cfile)) try: fp, filename, description = imp.find_module('_testcapi', path=[output_dir]) with fp: imp.load_module('_testcapi', fp, filename, description) except ImportError: if os.name == 'nt': # hack around finding compilers on win32 try: import setuptools except ImportError: pass _pypy_testcapi.compile_shared(cfile, '_testcapi', output_dir) class awaitType: def __init__(self, iterator): self._iterator = iterator
import imp import os try: import cpyext except ImportError: raise ImportError("No module named '_ctypes_test'") try: import _ctypes _ctypes.PyObj_FromPtr = None del _ctypes except ImportError: pass # obscure condition of _ctypes_test.py being imported by py.test else: import _pypy_testcapi cfile = '_ctypes_test.c' thisdir = os.path.dirname(__file__) output_dir = _pypy_testcapi.get_hashed_dir(os.path.join(thisdir, cfile)) try: fp, filename, description = imp.find_module('_ctypes_test', path=[output_dir]) with fp: imp.load_module('_ctypes_test', fp, filename, description) except ImportError: print('could not find _ctypes_test in %s' % output_dir) _pypy_testcapi.compile_shared('_ctypes_test.c', '_ctypes_test', output_dir)