Custom PEP 517 compatible build-backend based on setuptools.build_meta for
downloading and installing single-file binaries during building wheel.
All binary requirements must be defined in the pyproject.toml.
Schema:
[build-system]
requires = [
"pre-commit-download~=0.1.0",
]
build-backend = "pre_commit_download.hooks"
[tool.pre-commit-download]
install_root = "src/<module_name>/bin" # optional, defaults to **/<module_name>
[tool.pre-commit-download.binaries]
"<executable-name>" = [
{sys_platform = "<sys.platform>", platform_machine = "<platform.machine()>", extract_method = "<tarfile|zipfile>", extract_path = "<executable-name-v1.0.0/executable-name>", exec_suffix="<str>", url = "https://..."},
{...},
]
"<executable-name>" = [
{...},
]Required parameters:
<executable-name>- the name of executable file(s) without extensionsys_platform- compares tosys.platformplatform_machine- compares toplatform.machine()url- source URL
Optional parameters:
install_root- a relative path from the project root there executables should be installed, default to the client's module nameexec_suffix- optional, a platform specified executable suffix (likeexe)extract_method- optional, an archive unpacking provider (tarfileorzipfile); not required ifurlpoints to unpacked fileextract_path- optional, a relative path to the executable inside the archive, defaults to<executable-name>+<exec_suffix>(if defined); not required ifurlpoints to unpacked file