from sage_setup.optional_extension import is_package_installed_and_updated if sdist: # No need to compute distributions. This avoids a dependency on Cython # just to make an sdist. distributions = None else: distributions = [''] optional_packages_with_extensions = [ 'mcqd', 'bliss', 'tdlib', 'primecount', 'coxeter3', 'fes', 'sirocco', 'meataxe' ] distributions += [ 'sagemath-{}'.format(pkg) for pkg in optional_packages_with_extensions if is_package_installed_and_updated(pkg) ] log.warn('distributions = {0}'.format(distributions)) from sage_setup.find import find_python_sources python_packages, python_modules, cython_modules = find_python_sources( SAGE_SRC, ['sage'], distributions=distributions) log.debug('python_packages = {0}'.format(python_packages)) print("Discovered Python/Cython sources, time: %.2f seconds." % (time.time() - t)) from sage_setup.command.sage_install import sage_install_and_clean
else: log.info("Generating auto-generated sources") from sage_setup.autogen import autogen_all autogen_all() log.info("Discovering Python/Cython source code....") t = time.time() # Exclude a few files if the corresponding distribution is not loaded optional_packages = [ 'mcqd', 'bliss', 'tdlib', 'primecount', 'coxeter3', 'fes', 'sirocco', 'meataxe' ] not_installed_packages = [ package for package in optional_packages if not is_package_installed_and_updated(package) ] distributions_to_exclude = [ f"sagemath-{pkg}" for pkg in not_installed_packages ] files_to_exclude = filter_cython_sources(SAGE_SRC, distributions_to_exclude) log.debug(f"files_to_exclude = {files_to_exclude}") python_packages = find_namespace_packages(where=SAGE_SRC, include=['sage', 'sage.*']) log.debug(f"python_packages = {python_packages}") log.info(