summaryrefslogtreecommitdiff
path: root/pyproject_wheel.py
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2025-03-26 08:56:56 +0000
committerCoprDistGit <infra@openeuler.org>2025-03-26 08:56:56 +0000
commit05e453f33d593c331357af998dcc63610dd31374 (patch)
treec79c2ad412872d264b1d9d3490af578a6e4283eb /pyproject_wheel.py
parentdf5ddad58ca74b9796b242cf4881f46408553703 (diff)
automatic import of pyproject-rpm-macrosopeneuler24.03_LTS_SP1
Diffstat (limited to 'pyproject_wheel.py')
-rw-r--r--pyproject_wheel.py78
1 files changed, 0 insertions, 78 deletions
diff --git a/pyproject_wheel.py b/pyproject_wheel.py
deleted file mode 100644
index 6d62176..0000000
--- a/pyproject_wheel.py
+++ /dev/null
@@ -1,78 +0,0 @@
-import argparse
-import sys
-import subprocess
-
-
-def parse_config_settings_args(config_settings):
- """
- Given a list of config `KEY=VALUE` formatted config settings,
- return a dictionary that can be passed to PEP 517 hook functions.
- """
- if not config_settings:
- return config_settings
- new_config_settings = {}
- for arg in config_settings:
- key, _, value = arg.partition('=')
- if key in new_config_settings:
- if not isinstance(new_config_settings[key], list):
- # convert the existing value to a list
- new_config_settings[key] = [new_config_settings[key]]
- new_config_settings[key].append(value)
- else:
- new_config_settings[key] = value
- return new_config_settings
-
-
-def get_config_settings_args(config_settings):
- """
- Given a dictionary of PEP 517 backend config_settings,
- yield --config-settings args that can be passed to pip's CLI
- """
- if not config_settings:
- return
- for key, values in config_settings.items():
- if not isinstance(values, list):
- values = [values]
- for value in values:
- if value == '':
- yield f'--config-settings={key}'
- else:
- yield f'--config-settings={key}={value}'
-
-
-def build_wheel(*, wheeldir, stdout=None, config_settings=None):
- command = (
- sys.executable,
- '-m', 'pip',
- 'wheel',
- '--wheel-dir', wheeldir,
- '--no-deps',
- '--use-pep517',
- '--no-build-isolation',
- '--disable-pip-version-check',
- '--no-clean',
- '--progress-bar', 'off',
- '--verbose',
- *get_config_settings_args(config_settings),
- '.',
- )
- cp = subprocess.run(command, stdout=stdout)
- return cp.returncode
-
-
-def parse_args(argv=None):
- parser = argparse.ArgumentParser(prog='%pyproject_wheel')
- parser.add_argument('wheeldir', help=argparse.SUPPRESS)
- 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__':
- sys.exit(build_wheel(**vars(parse_args())))