import argparse
import traceback
import sys
from pathlib import Path
from _pyproject_hooks import BuildBackend, BackendHookError, parse_config_settings_args
def build_wheel(*, wheeldir, config_settings=None):
wheeldir.mkdir(parents=True, exist_ok=True)
BuildBackend.from_directory().get_caller().build_wheel(wheeldir, config_settings)
def parse_args(argv=None):
parser = argparse.ArgumentParser(prog='%pyproject_wheel')
parser.add_argument('wheeldir', help=argparse.SUPPRESS, type=Path)
parser.add_argument(
'-C',
dest='config_settings',
action='append',
help='Configuration settings to pass to the PEP 517 backend',
)
args = parser.parse_args(argv)
args.config_settings = parse_config_settings_args(args.config_settings)
return args
if __name__ == '__main__':
try:
build_wheel(**vars(parse_args()))
except BackendHookError as exc:
print(exc, file=sys.stderr)
sys.exit(exc.returncode)
except Exception:
traceback.print_exc()
sys.exit(1)
else:
sys.exit(0)