예제 #1
0
파일: clean.py 프로젝트: agiledata/pkglib
    def _build_ext_outputs(self):
        """list any built artifacts that may pollute the source directory."""
        build_ext = self.get_finalized_command('build_ext')
        if build_ext.uses_cython():
            fetch_build_eggs(['Cython'], dist=self.distribution)
            from Cython.Distutils import build_ext as cython_build_ext  # @UnresolvedImport
            self.distribution.cmdclass['cython_build_ext'] = cython_build_ext
            self.distribution.command_obj['cython_build_ext'] = cython_build_ext(self.distribution)
            self.distribution.command_obj['cython_build_ext'].inplace = build_ext.inplace
            build_ext = self.get_finalized_command('cython_build_ext')
            for ext in build_ext.extensions:
                for name in self._cython_new_sources(build_ext, ext.sources, ext):
                    yield name

        for name in build_ext.get_outputs():
            yield name

        # cf. distribute setuptools.command.build_ext.build_ext.copy_extensions_to_source
        build_py = self.get_finalized_command('build_py')
        for ext in build_ext.extensions:
            fullname = build_ext.get_ext_fullname(ext.name)
            filename = build_ext.get_ext_filename(fullname)
            modpath = fullname.split('.')
            package = '.'.join(modpath[:-1])
            package_dir = build_py.get_package_dir(package)
            yield os.path.join(package_dir, os.path.basename(filename))
예제 #2
0
    def _build_ext_outputs(self):
        """list any built artifacts that may pollute the source directory."""
        build_ext = self.get_finalized_command('build_ext')
        if build_ext.uses_cython():
            fetch_build_eggs(['Cython'], dist=self.distribution)
            from Cython.Distutils import build_ext as cython_build_ext  # @UnresolvedImport
            self.distribution.cmdclass['cython_build_ext'] = cython_build_ext
            self.distribution.command_obj[
                'cython_build_ext'] = cython_build_ext(self.distribution)
            self.distribution.command_obj[
                'cython_build_ext'].inplace = build_ext.inplace
            build_ext = self.get_finalized_command('cython_build_ext')
            for ext in build_ext.extensions:
                for name in self._cython_new_sources(build_ext, ext.sources,
                                                     ext):
                    yield name

        for name in build_ext.get_outputs():
            yield name

        # cf. distribute setuptools.command.build_ext.build_ext.copy_extensions_to_source
        build_py = self.get_finalized_command('build_py')
        for ext in build_ext.extensions:
            fullname = build_ext.get_ext_fullname(ext.name)
            filename = build_ext.get_ext_filename(fullname)
            modpath = fullname.split('.')
            package = '.'.join(modpath[:-1])
            package_dir = build_py.get_package_dir(package)
            yield os.path.join(package_dir, os.path.basename(filename))
예제 #3
0
    def run(self):
        if self.uses_cython():
            # Cython source - use cython's build_ext
            log.info("This project uses Cython, fetching builder egg")
            self.fetch_build_eggs(['Cython'])
            from Cython.Distutils import build_ext as cython_build_ext

            # Wire it into the distribution's command registry so we can run it
            self.distribution.cmdclass['cython_build_ext'] = cython_build_ext
            self.distribution.command_obj['cython_build_ext'] = cython_build_ext(self.distribution)
            self.distribution.command_obj['cython_build_ext'].inplace = self.inplace

            # Kick off the cython build
            self.run_command('cython_build_ext')

        else:
            # Regular C Extensions, build with setuptools
            _build_ext.run(self)
예제 #4
0
    def run(self):
        if self.uses_cython():
            # Cython source - use cython's build_ext
            log.info("This project uses Cython, fetching builder egg")
            self.fetch_build_eggs(['Cython'])
            from Cython.Distutils import build_ext as cython_build_ext

            # Wire it into the distribution's command registry so we can run it
            self.distribution.cmdclass['cython_build_ext'] = cython_build_ext
            self.distribution.command_obj[
                'cython_build_ext'] = cython_build_ext(self.distribution)
            self.distribution.command_obj[
                'cython_build_ext'].inplace = self.inplace

            # Kick off the cython build
            self.run_command('cython_build_ext')

        else:
            # Regular C Extensions, build with setuptools
            _build_ext.run(self)