/
niceSOFT
/
python3-setuptools_scm
Обзор
Документация
Войти
/
niceSOFT
/
python3-setuptools_scm
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
vcs-versioning/src/vcs_versioning/_fallbacks.py
42 строки
1 KB
Ronny Pfannschmidt
Refactor version schemes into proper package structure
22 окт 2025, 21:11
22 окт 2025, 21:11
86c6b1e
Код
Авторство
О чём код?
from __future__ import annotations import logging import os from pathlib import Path from typing import TYPE_CHECKING if TYPE_CHECKING: from . import _types as _t from ._config import Configuration from ._integration import data_from_mime from ._scm_version import ScmVersion, meta, tag_to_version log = logging.getLogger(__name__) _UNKNOWN = "UNKNOWN" def parse_pkginfo(root: _t.PathT, config: Configuration) -> ScmVersion | None: pkginfo = Path(root) / "PKG-INFO" log.debug("pkginfo %s", pkginfo) data = data_from_mime(pkginfo) version = data.get("Version", _UNKNOWN) if version != _UNKNOWN: return meta(version, preformatted=True, config=config) else: return None def fallback_version(root: _t.PathT, config: Configuration) -> ScmVersion | None: if config.parentdir_prefix_version is not None: _, parent_name = os.path.split(os.path.abspath(root)) if parent_name.startswith(config.parentdir_prefix_version): version = tag_to_version( parent_name[len(config.parentdir_prefix_version) :], config ) if version is not None: return meta(str(version), preformatted=True, config=config) if config.fallback_version is not None: log.debug("FALLBACK %s", config.fallback_version) return meta(config.fallback_version, preformatted=True, config=config) return None