Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prefix and filter command line options with rapidsai. #37

Merged
merged 5 commits into from
May 23, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions rapids_build_backend/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,14 @@ def __getattr__(self, name):
return str_val == "true"
return os.environ[env_var]

if config_name in self.config_settings:
try:
value = self.config_settings[f"rapidsai.{config_name}"]
except KeyError:
pass
else:
KyleFromNVIDIA marked this conversation as resolved.
Show resolved Hide resolved
if isinstance(default_value, bool):
return self.config_settings[config_name] == "true"
return self.config_settings[config_name]
return value == "true"
return value

try:
return self.config[config_name]
Expand Down
38 changes: 30 additions & 8 deletions rapids_build_backend/impls.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@
from .config import Config


def _remove_rapidsai_from_config(config_settings):
KyleFromNVIDIA marked this conversation as resolved.
Show resolved Hide resolved
if not config_settings:
return None
return {k: v for k, v in config_settings.items() if not k.startswith("rapidsai.")}


def _parse_matrix(matrix):
if not matrix:
return None
Expand Down Expand Up @@ -222,7 +228,11 @@ def get_requires_for_build_wheel(config_settings):
backend := _get_backend(config.build_backend),
"get_requires_for_build_wheel",
):
requires.extend(backend.get_requires_for_build_wheel(config_settings))
requires.extend(
backend.get_requires_for_build_wheel(
_remove_rapidsai_from_config(config_settings)
)
)

return requires

Expand All @@ -240,7 +250,11 @@ def get_requires_for_build_sdist(config_settings):
backend := _get_backend(config.build_backend),
"get_requires_for_build_sdist",
):
requires.extend(backend.get_requires_for_build_sdist(config_settings))
requires.extend(
backend.get_requires_for_build_sdist(
_remove_rapidsai_from_config(config_settings)
)
)

return requires

Expand All @@ -256,7 +270,11 @@ def get_requires_for_build_editable(config_settings):
backend := _get_backend(config.build_backend),
"get_requires_for_build_editable",
):
requires.extend(backend.get_requires_for_build_editable(config_settings))
requires.extend(
backend.get_requires_for_build_editable(
_remove_rapidsai_from_config(config_settings)
)
)

return requires

Expand All @@ -267,7 +285,9 @@ def build_wheel(wheel_directory, config_settings=None, metadata_directory=None):
project_name = pyproject["project"]["name"]
with _edit_pyproject(config), _write_git_commits(config, project_name):
return _get_backend(config.build_backend).build_wheel(
wheel_directory, config_settings, metadata_directory
wheel_directory,
_remove_rapidsai_from_config(config_settings),
metadata_directory,
)


Expand All @@ -277,29 +297,31 @@ def build_sdist(sdist_directory, config_settings=None):
project_name = pyproject["project"]["name"]
with _edit_pyproject(config), _write_git_commits(config, project_name):
return _get_backend(config.build_backend).build_sdist(
sdist_directory, config_settings
sdist_directory, _remove_rapidsai_from_config(config_settings)
)


def build_editable(wheel_directory, config_settings=None, metadata_directory=None):
config = Config(config_settings=config_settings)
with _edit_pyproject(config):
return _get_backend(config.build_backend).build_editable(
wheel_directory, config_settings, metadata_directory
wheel_directory,
_remove_rapidsai_from_config(config_settings),
metadata_directory,
)


def prepare_metadata_for_build_wheel(metadata_directory, config_settings=None):
config = Config(config_settings=config_settings)
with _edit_pyproject(config):
return _get_backend(config.build_backend).prepare_metadata_for_build_wheel(
metadata_directory, config_settings
metadata_directory, _remove_rapidsai_from_config(config_settings)
)


def prepare_metadata_for_build_editable(metadata_directory, config_settings=None):
config = Config(config_settings=config_settings)
with _edit_pyproject(config):
return _get_backend(config.build_backend).prepare_metadata_for_build_editable(
metadata_directory, config_settings
metadata_directory, _remove_rapidsai_from_config(config_settings)
)
2 changes: 1 addition & 1 deletion tests/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,6 @@ def test_config_env_var(tmp_path, flag, config_value, expected):
def test_config_config_settings(tmp_path, flag, config_value, expected):
config = Config(
setup_config_project(tmp_path, flag, None),
{flag: config_value},
{f"rapidsai.{flag}": config_value},
)
assert getattr(config, flag.replace("-", "_")) == expected
7 changes: 7 additions & 0 deletions tests/test_impls.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from rapids_build_backend.impls import (
_edit_pyproject,
_get_cuda_suffix,
_remove_rapidsai_from_config,
_write_git_commits,
)

Expand All @@ -24,6 +25,12 @@ def set_cwd(cwd):
os.chdir(old_cwd)


def test_remove_rapidsai_from_config():
assert _remove_rapidsai_from_config(
{"rapidsai.disable-cuda": "true", "skbuild.build-dir": "build"}
) == {"skbuild.build-dir": "build"}


@pytest.mark.parametrize(
("project_name", "directories", "commit_files_config", "expected_commit_files"),
[
Expand Down