Chris@87: from __future__ import division, absolute_import, print_function Chris@87: Chris@87: from distutils.command.build_py import build_py as old_build_py Chris@87: from numpy.distutils.misc_util import is_string Chris@87: Chris@87: class build_py(old_build_py): Chris@87: Chris@87: def run(self): Chris@87: build_src = self.get_finalized_command('build_src') Chris@87: if build_src.py_modules_dict and self.packages is None: Chris@87: self.packages = list(build_src.py_modules_dict.keys ()) Chris@87: old_build_py.run(self) Chris@87: Chris@87: def find_package_modules(self, package, package_dir): Chris@87: modules = old_build_py.find_package_modules(self, package, package_dir) Chris@87: Chris@87: # Find build_src generated *.py files. Chris@87: build_src = self.get_finalized_command('build_src') Chris@87: modules += build_src.py_modules_dict.get(package, []) Chris@87: Chris@87: return modules Chris@87: Chris@87: def find_modules(self): Chris@87: old_py_modules = self.py_modules[:] Chris@87: new_py_modules = [_m for _m in self.py_modules if is_string(_m)] Chris@87: self.py_modules[:] = new_py_modules Chris@87: modules = old_build_py.find_modules(self) Chris@87: self.py_modules[:] = old_py_modules Chris@87: Chris@87: return modules Chris@87: Chris@87: # XXX: Fix find_source_files for item in py_modules such that item is 3-tuple Chris@87: # and item[2] is source file.