def build_sdist(sdist_directory, config_settings=None): """ Function for building source distributions, satisfies PEP-517. """ assert isinstance(sdist_directory, str) assert config_settings is None or isinstance(config_settings, dict) generate_build_info("sdist", strict=True) files = [ f for f in glob.glob("src/datatable/**/*.py", recursive=True) if "_datatable_builder.py" not in f ] files += glob.glob("src/core/**/*.cc", recursive=True) files += glob.glob("src/core/**/*.h", recursive=True) files += glob.glob("ci/xbuild/*.py") files += [f for f in glob.glob("tests/**/*.py", recursive=True)] files += [f for f in glob.glob("tests_random/*.py")] files += ["src/datatable/include/datatable.h"] files.sort() files += ["ci/ext.py", "ci/__init__.py"] files += ["pyproject.toml"] files += ["LICENSE"] # See `is_source_distribution()` assert "VERSION.txt" not in files meta = get_meta() wb = xbuild.Wheel(files, **meta) wb.log = create_logger(verbosity=3) sdist_file = wb.build_sdist(sdist_directory) return sdist_file
def build_wheel(wheel_directory, config_settings=None, metadata_directory=None): """ Function for building wheels, satisfies requirements of PEP-517. """ if config_settings is None: config_settings = {} assert isinstance(wheel_directory, str) assert isinstance(config_settings, dict) assert metadata_directory is None reuse_extension = config_settings.pop("reuse_extension", False) reuse_version = config_settings.pop("reuse_version", None) debug_wheel = config_settings.pop("debug", False) if is_source_distribution() and reuse_version is None: config_settings["reuse_version"] = True if not reuse_version: flavor = "custom" if reuse_extension else \ "debug" if debug_wheel else \ "build" generate_build_info(flavor, strict=True) assert os.path.isfile("src/datatable/_build_info.py") if reuse_extension: pyver = "%d%d" % sys.version_info[:2] soext = "dll" if sys.platform == "win32" else "so" pattern = "src/datatable/lib/_datatable.cpython-%s*.%s" % (pyver, soext) sofiles = glob.glob(pattern) if not sofiles: raise SystemExit("Extension file %s not found" % pattern) if len(sofiles) > 1: raise SystemExit("Multiple extension files found: %r" % (sofiles, )) so_file = sofiles[0] else: so_file = build_extension(cmd=("debug" if debug_wheel else "build"), verbosity=3) files = glob.glob("src/datatable/**/*.py", recursive=True) files += [so_file] files += ["src/datatable/include/datatable.h"] files = [ (f, f[4:]) # (src_file, destination_file) for f in files if "_datatable_builder.py" not in f ] files.sort() meta = get_meta() wb = xbuild.Wheel(files, **meta, **config_settings) wb.log = create_logger(verbosity=3) wheel_file = wb.build_wheel(wheel_directory) return wheel_file
def build_wheel(wheel_directory, config_settings=None, metadata_directory=None): """ Function for building wheels, satisfies requirements of PEP-517. """ if config_settings is None: config_settings = {} assert isinstance(wheel_directory, str) assert isinstance(config_settings, dict) assert metadata_directory is None if is_source_distribution() and "reuse_version" not in config_settings: config_settings["reuse_version"] = True if not config_settings.pop("reuse_version", False): generate_build_info("build", strict=True) assert os.path.isfile("src/datatable/_build_info.py") if config_settings.pop("reuse_extension", False): soext = "dll" if sys.platform == "win32" else "so" sofiles = glob.glob("src/datatable/lib/_datatable*." + soext) if not sofiles: raise SystemExit("Extension file src/datatable/lib/_datatable*.%s " "not found" % soext) if len(sofiles) > 1: raise SystemExit("Multiple extension files found: %r" % (sofiles, )) so_file = sofiles[0] else: so_file = build_extension(cmd="build", verbosity=3) files = glob.glob("src/datatable/**/*.py", recursive=True) files += [so_file] files += ["src/datatable/include/datatable.h"] files = [ (f, f[4:]) # (src_file, destination_file) for f in files if "_datatable_builder.py" not in f ] files.sort() meta = get_meta() wb = xbuild.Wheel(files, **meta, **config_settings) wb.log = create_logger(verbosity=3) wheel_file = wb.build_wheel(wheel_directory) return wheel_file