build_py.py 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. from __future__ import division, absolute_import, print_function
  2. from distutils.command.build_py import build_py as old_build_py
  3. from numpy.distutils.misc_util import is_string
  4. class build_py(old_build_py):
  5. def run(self):
  6. build_src = self.get_finalized_command('build_src')
  7. if build_src.py_modules_dict and self.packages is None:
  8. self.packages = list(build_src.py_modules_dict.keys ())
  9. old_build_py.run(self)
  10. def find_package_modules(self, package, package_dir):
  11. modules = old_build_py.find_package_modules(self, package, package_dir)
  12. # Find build_src generated *.py files.
  13. build_src = self.get_finalized_command('build_src')
  14. modules += build_src.py_modules_dict.get(package, [])
  15. return modules
  16. def find_modules(self):
  17. old_py_modules = self.py_modules[:]
  18. new_py_modules = [_m for _m in self.py_modules if is_string(_m)]
  19. self.py_modules[:] = new_py_modules
  20. modules = old_build_py.find_modules(self)
  21. self.py_modules[:] = old_py_modules
  22. return modules
  23. # XXX: Fix find_source_files for item in py_modules such that item is 3-tuple
  24. # and item[2] is source file.