🤖 自动格式化代码 [skip ci]
This commit is contained in:
@@ -18,21 +18,21 @@ logger = get_logger("hfc_version")
|
||||
|
||||
class HFCVersionManager:
|
||||
"""HFC版本号管理器"""
|
||||
|
||||
|
||||
# 默认版本号
|
||||
DEFAULT_VERSION = "v1.0.0"
|
||||
|
||||
|
||||
# 当前运行时版本号
|
||||
_current_version: Optional[str] = None
|
||||
|
||||
|
||||
@classmethod
|
||||
def set_version(cls, version: str) -> bool:
|
||||
"""
|
||||
设置当前运行时版本号
|
||||
|
||||
|
||||
参数:
|
||||
version: 版本号字符串,格式如 v1.0.0 或 1.0.0
|
||||
|
||||
|
||||
返回:
|
||||
bool: 设置是否成功
|
||||
"""
|
||||
@@ -48,103 +48,103 @@ class HFCVersionManager:
|
||||
except Exception as e:
|
||||
logger.error(f"设置版本号失败: {e}")
|
||||
return False
|
||||
|
||||
|
||||
@classmethod
|
||||
def get_version(cls) -> str:
|
||||
"""
|
||||
获取当前版本号
|
||||
|
||||
|
||||
返回:
|
||||
str: 当前版本号
|
||||
"""
|
||||
if cls._current_version:
|
||||
return cls._current_version
|
||||
|
||||
|
||||
# 尝试从环境变量获取
|
||||
env_version = os.getenv("HFC_PERFORMANCE_VERSION")
|
||||
if env_version:
|
||||
if cls.set_version(env_version):
|
||||
return cls._current_version
|
||||
|
||||
|
||||
# 返回默认版本号
|
||||
return cls.DEFAULT_VERSION
|
||||
|
||||
|
||||
@classmethod
|
||||
def auto_generate_version(cls, base_version: str = None) -> str:
|
||||
"""
|
||||
自动生成版本号(基于时间戳)
|
||||
|
||||
|
||||
参数:
|
||||
base_version: 基础版本号,如果不提供则使用默认版本
|
||||
|
||||
|
||||
返回:
|
||||
str: 生成的版本号
|
||||
"""
|
||||
if not base_version:
|
||||
base_version = cls.DEFAULT_VERSION
|
||||
|
||||
|
||||
# 提取基础版本号的主要部分
|
||||
base_match = re.match(r'v?(\d+\.\d+)', base_version)
|
||||
base_match = re.match(r"v?(\d+\.\d+)", base_version)
|
||||
if base_match:
|
||||
base_part = base_match.group(1)
|
||||
else:
|
||||
base_part = "1.0"
|
||||
|
||||
|
||||
# 添加时间戳
|
||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M")
|
||||
generated_version = f"v{base_part}.{timestamp}"
|
||||
|
||||
|
||||
cls.set_version(generated_version)
|
||||
logger.info(f"自动生成版本号: {generated_version}")
|
||||
|
||||
|
||||
return generated_version
|
||||
|
||||
|
||||
@classmethod
|
||||
def _validate_version(cls, version: str) -> Optional[str]:
|
||||
"""
|
||||
验证版本号格式
|
||||
|
||||
|
||||
参数:
|
||||
version: 待验证的版本号
|
||||
|
||||
|
||||
返回:
|
||||
Optional[str]: 验证后的版本号,失败返回None
|
||||
"""
|
||||
if not version or not isinstance(version, str):
|
||||
return None
|
||||
|
||||
|
||||
version = version.strip()
|
||||
|
||||
|
||||
# 支持的格式:
|
||||
# v1.0.0, 1.0.0, v1.0, 1.0, v1.0.0.20241222_1530 等
|
||||
patterns = [
|
||||
r'^v?(\d+\.\d+\.\d+)$', # v1.0.0 或 1.0.0
|
||||
r'^v?(\d+\.\d+)$', # v1.0 或 1.0
|
||||
r'^v?(\d+\.\d+\.\d+\.\w+)$', # v1.0.0.build 或 1.0.0.build
|
||||
r'^v?(\d+\.\d+\.\w+)$', # v1.0.build 或 1.0.build
|
||||
r"^v?(\d+\.\d+\.\d+)$", # v1.0.0 或 1.0.0
|
||||
r"^v?(\d+\.\d+)$", # v1.0 或 1.0
|
||||
r"^v?(\d+\.\d+\.\d+\.\w+)$", # v1.0.0.build 或 1.0.0.build
|
||||
r"^v?(\d+\.\d+\.\w+)$", # v1.0.build 或 1.0.build
|
||||
]
|
||||
|
||||
|
||||
for pattern in patterns:
|
||||
match = re.match(pattern, version)
|
||||
if match:
|
||||
# 确保版本号以v开头
|
||||
if not version.startswith('v'):
|
||||
version = 'v' + version
|
||||
if not version.startswith("v"):
|
||||
version = "v" + version
|
||||
return version
|
||||
|
||||
|
||||
return None
|
||||
|
||||
|
||||
@classmethod
|
||||
def reset_version(cls):
|
||||
"""重置版本号为默认值"""
|
||||
cls._current_version = None
|
||||
logger.info("HFC版本号已重置为默认值")
|
||||
|
||||
|
||||
@classmethod
|
||||
def get_version_info(cls) -> dict:
|
||||
"""
|
||||
获取版本信息
|
||||
|
||||
|
||||
返回:
|
||||
dict: 版本相关信息
|
||||
"""
|
||||
@@ -154,7 +154,7 @@ class HFCVersionManager:
|
||||
"default_version": cls.DEFAULT_VERSION,
|
||||
"is_custom": current != cls.DEFAULT_VERSION,
|
||||
"env_version": os.getenv("HFC_PERFORMANCE_VERSION"),
|
||||
"timestamp": datetime.now().isoformat()
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
}
|
||||
|
||||
|
||||
@@ -182,4 +182,4 @@ def reset_hfc_version():
|
||||
# 在模块加载时显示当前版本信息
|
||||
if __name__ != "__main__":
|
||||
current_version = HFCVersionManager.get_version()
|
||||
logger.debug(f"HFC性能记录模块已加载,当前版本: {current_version}")
|
||||
logger.debug(f"HFC性能记录模块已加载,当前版本: {current_version}")
|
||||
|
||||
Reference in New Issue
Block a user