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.platform
platform_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 (tarfile
orzipfile
); not required ifurl
points to unpacked fileextract_path
- optional, a relative path to the executable inside the archive, defaults to<executable-name>
+<exec_suffix>
(if defined); not required ifurl
points to unpacked file