Files
wehub-resource-sync e06fe8e8c6
Self-hosted runner (benchmark) / Benchmark (aws-g5-4xlarge-cache) (push) Waiting to run
New model PR merged notification / Notify new model (push) Waiting to run
Update Transformers metadata / build_and_package (push) Waiting to run
Secret Leaks / trufflehog (push) Failing after 1s
Build documentation / build (push) Failing after 1s
Build documentation / build_other_lang (push) Failing after 0s
CodeQL Security Analysis / CodeQL Analysis (push) Failing after 0s
PR CI / pr-ci (push) Failing after 1s
Slow tests on important models (on Push - A10) / Get all modified files (push) Failing after 1s
Slow tests on important models (on Push - A10) / Model CI (push) Has been skipped
chore: import upstream snapshot with attribution
2026-07-13 11:57:37 +08:00

70 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python
# Copyright 2026 The HuggingFace Inc. team.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Extract metadata from setup.py for CI testing.
Usage:
python utils/extract_metadata.py extras # List all extras (one per line)
python utils/extract_metadata.py python-versions # Output JSON array of Python versions
"""
import json
import sys
from pathlib import Path
from types import ModuleType
def get_setup_module() -> ModuleType:
"""Import and return the setup module."""
repo_root: Path = Path(__file__).parent.parent
sys.path.insert(0, str(repo_root))
import setup
return setup
def extract_extras() -> None:
"""Print all extras in definition order (one per line)."""
setup: ModuleType = get_setup_module()
for extra in setup.extras.keys():
print(extra)
def extract_python_versions() -> None:
"""Print supported Python versions as a JSON array."""
setup: ModuleType = get_setup_module()
min_ver: int
max_ver: int
min_ver, max_ver = setup.SUPPORTED_PYTHON_VERSIONS
versions: list[str] = [f"3.{v}" for v in range(min_ver, max_ver + 1)]
print(json.dumps(versions))
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python utils/extract_metadata.py {extras|python-versions}", file=sys.stderr)
sys.exit(1)
command: str = sys.argv[1]
if command == "extras":
extract_extras()
elif command == "python-versions":
extract_python_versions()
else:
print(f"Unknown command: {command}", file=sys.stderr)
print("Usage: python utils/extract_metadata.py {extras|python-versions}", file=sys.stderr)
sys.exit(1)