/
niceSOFT
/
python3-hatchling
Обзор
Документация
Войти
/
niceSOFT
/
python3-hatchling
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
backend/src/hatchling/cli/metadata/__init__.py
58 строк
2 KB
Dimitri Papadopoulos Orfanos
Upgrade Ruff to 0.13.2 (#1890)
28 сен 2025, 21:20
Не верифицирован
28 сен 2025, 21:20
aff6f39
Код
Авторство
О чём код?
from __future__ import annotations import argparse from typing import Any def metadata_impl( *, called_by_app: bool, # noqa: ARG001 field: str, compact: bool, ) -> None: import json import os from hatchling.bridge.app import Application from hatchling.metadata.core import ProjectMetadata from hatchling.metadata.utils import resolve_metadata_fields from hatchling.plugin.manager import PluginManager app = Application() root = os.getcwd() plugin_manager = PluginManager() project_metadata = ProjectMetadata(root, plugin_manager) metadata = resolve_metadata_fields(project_metadata) if field: # no cov if field not in metadata: app.abort(f"Unknown metadata field: {field}") elif field == "readme": app.display(metadata[field]["text"]) elif isinstance(metadata[field], str): app.display(metadata[field]) else: app.display(json.dumps(metadata[field], indent=4)) return for key, value in list(metadata.items()): if not value: metadata.pop(key) if compact: app.display(json.dumps(metadata, separators=(",", ":"))) else: # no cov app.display(json.dumps(metadata, indent=4)) def metadata_command( subparsers: argparse._SubParsersAction, defaults: Any, # noqa: ARG001 ) -> None: parser = subparsers.add_parser("metadata") parser.add_argument("field", nargs="?") parser.add_argument("-c", "--compact", action="store_true") parser.add_argument("--app", dest="called_by_app", action="store_true", help=argparse.SUPPRESS) parser.set_defaults(func=metadata_impl)