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