mirror of https://github.com/python/cpython
Tools/build/stable_abi.py: Improve ergonomics (GH-105355)
* Tools/build/stable_abi.py: Improve ergonomics - Make the manifest file argument optional - Output resolved paths with --list (getting rid of `../../`) - Mention --all or --generate-all if no actions are specified * Don't hardcode Misc/stable_abi.toml in Makefile, rely on the default
This commit is contained in:
parent
28aea5d07d
commit
4d09719341
|
@ -1696,7 +1696,7 @@ check-abidump: all
|
||||||
|
|
||||||
.PHONY: regen-limited-abi
|
.PHONY: regen-limited-abi
|
||||||
regen-limited-abi: all
|
regen-limited-abi: all
|
||||||
$(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/build/stable_abi.py --generate-all $(srcdir)/Misc/stable_abi.toml
|
$(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/build/stable_abi.py --generate-all
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
# Regenerate Unicode Data
|
# Regenerate Unicode Data
|
||||||
|
@ -3142,7 +3142,7 @@ patchcheck: all
|
||||||
|
|
||||||
.PHONY: check-limited-abi
|
.PHONY: check-limited-abi
|
||||||
check-limited-abi: all
|
check-limited-abi: all
|
||||||
$(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/build/stable_abi.py --all $(srcdir)/Misc/stable_abi.toml
|
$(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/build/stable_abi.py --all
|
||||||
|
|
||||||
.PHONY: update-config
|
.PHONY: update-config
|
||||||
update-config:
|
update-config:
|
||||||
|
|
|
@ -25,6 +25,8 @@ import re
|
||||||
import csv
|
import csv
|
||||||
|
|
||||||
SCRIPT_NAME = 'Tools/build/stable_abi.py'
|
SCRIPT_NAME = 'Tools/build/stable_abi.py'
|
||||||
|
DEFAULT_MANIFEST_PATH = (
|
||||||
|
Path(__file__).parent / '../../Misc/stable_abi.toml').resolve()
|
||||||
MISSING = object()
|
MISSING = object()
|
||||||
|
|
||||||
EXCLUDED_HEADERS = {
|
EXCLUDED_HEADERS = {
|
||||||
|
@ -641,8 +643,9 @@ def main():
|
||||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"file", type=Path, metavar='FILE',
|
"file", type=Path, metavar='FILE', nargs='?',
|
||||||
help="file with the stable abi manifest",
|
default=DEFAULT_MANIFEST_PATH,
|
||||||
|
help=f"file with the stable abi manifest (default: {DEFAULT_MANIFEST_PATH})",
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--generate", action='store_true',
|
"--generate", action='store_true',
|
||||||
|
@ -684,7 +687,7 @@ def main():
|
||||||
|
|
||||||
if args.list:
|
if args.list:
|
||||||
for gen in generators:
|
for gen in generators:
|
||||||
print(f'{gen.arg_name}: {base_path / gen.default_path}')
|
print(f'{gen.arg_name}: {(base_path / gen.default_path).resolve()}')
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
run_all_generators = args.generate_all
|
run_all_generators = args.generate_all
|
||||||
|
@ -735,8 +738,10 @@ def main():
|
||||||
|
|
||||||
if not results:
|
if not results:
|
||||||
if args.generate:
|
if args.generate:
|
||||||
parser.error('No file specified. Use --help for usage.')
|
parser.error('No file specified. Use --generate-all to regenerate '
|
||||||
parser.error('No check specified. Use --help for usage.')
|
+ 'all files, or --help for usage.')
|
||||||
|
parser.error('No check specified. Use --all to check all files, '
|
||||||
|
+ 'or --help for usage.')
|
||||||
|
|
||||||
failed_results = [name for name, result in results.items() if not result]
|
failed_results = [name for name, result in results.items() if not result]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue