chore: cleanup for 3.11+
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
This commit is contained in:
committed by
Henry Schreiner
parent
88ef8dbd29
commit
63a7c44b7f
@@ -4,7 +4,7 @@ import shlex
|
||||
import typing
|
||||
from collections.abc import Sequence
|
||||
from dataclasses import dataclass
|
||||
from typing import Literal
|
||||
from typing import Literal, get_args
|
||||
|
||||
from .logger import log
|
||||
from .util.helpers import parse_key_value_string
|
||||
@@ -21,8 +21,9 @@ class BuildFrontendConfig:
|
||||
def from_config_string(config_string: str) -> BuildFrontendConfig:
|
||||
config_dict = parse_key_value_string(config_string, ["name"], ["args"])
|
||||
name = " ".join(config_dict["name"])
|
||||
if name not in {"pip", "build", "build[uv]"}:
|
||||
msg = f"Unrecognised build frontend {name!r}, only 'pip', 'build', and 'build[uv]' are supported"
|
||||
if name not in get_args(BuildFrontendName):
|
||||
names = ", ".join(repr(n) for n in get_args(BuildFrontendName))
|
||||
msg = f"Unrecognised build frontend {name!r}, must be one of {names}"
|
||||
raise ValueError(msg)
|
||||
|
||||
name = typing.cast(BuildFrontendName, name)
|
||||
@@ -44,22 +45,21 @@ def _get_verbosity_flags(level: int, frontend: BuildFrontendName) -> list[str]:
|
||||
if level < 0:
|
||||
return ["-" + -level * "q"]
|
||||
elif not 0 <= level < 2:
|
||||
msg = f"build_verbosity {level} is not supported for build frontend. Ignoring."
|
||||
msg = f"build_verbosity {level} is not supported for {frontend} frontend. Ignoring."
|
||||
log.warning(msg)
|
||||
return []
|
||||
|
||||
|
||||
def _split_config_settings(config_settings: str, frontend: BuildFrontendName) -> list[str]:
|
||||
def _split_config_settings(config_settings: str) -> list[str]:
|
||||
config_settings_list = shlex.split(config_settings)
|
||||
s = "s" if frontend == "pip" else ""
|
||||
return [f"--config-setting{s}={setting}" for setting in config_settings_list]
|
||||
return [f"-C{setting}" for setting in config_settings_list]
|
||||
|
||||
|
||||
def get_build_frontend_extra_flags(
|
||||
build_frontend: BuildFrontendConfig, verbosity_level: int, config_settings: str
|
||||
) -> list[str]:
|
||||
return [
|
||||
*_split_config_settings(config_settings, build_frontend.name),
|
||||
*_split_config_settings(config_settings),
|
||||
*build_frontend.args,
|
||||
*_get_verbosity_flags(verbosity_level, build_frontend.name),
|
||||
]
|
||||
|
||||
@@ -22,7 +22,7 @@ else:
|
||||
|
||||
|
||||
PlatformName = Literal["linux", "macos", "windows", "pyodide"]
|
||||
PLATFORMS: Final[set[PlatformName]] = {"linux", "macos", "windows", "pyodide"}
|
||||
PLATFORMS: Final[frozenset[PlatformName]] = frozenset(typing.get_args(PlatformName))
|
||||
|
||||
|
||||
class GenericPythonConfiguration(Protocol):
|
||||
|
||||
@@ -283,16 +283,10 @@ def test_config_settings(platform_specific, platform, intercepted_build_args, mo
|
||||
|
||||
assert build_options.config_settings == config_settings
|
||||
|
||||
assert _split_config_settings(config_settings, "build") == [
|
||||
"--config-setting=setting=value",
|
||||
"--config-setting=setting=value2",
|
||||
"--config-setting=other=something else",
|
||||
]
|
||||
|
||||
assert _split_config_settings(config_settings, "pip") == [
|
||||
"--config-settings=setting=value",
|
||||
"--config-settings=setting=value2",
|
||||
"--config-settings=other=something else",
|
||||
assert _split_config_settings(config_settings) == [
|
||||
"-Csetting=value",
|
||||
"-Csetting=value2",
|
||||
"-Cother=something else",
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user