feat: 完成env重新设计

This commit is contained in:
2025-12-14 05:52:59 +08:00
parent e68eeb7e46
commit ca1a5836e1
23 changed files with 1316 additions and 743 deletions

58
aide-program/aide/env/modules/python.py vendored Normal file
View File

@@ -0,0 +1,58 @@
"""Python 环境检测模块。"""
from __future__ import annotations
import platform
from pathlib import Path
from typing import Any
from aide.env.modules.base import BaseModule, CheckResult, ModuleInfo
class PythonModule(BaseModule):
"""Python 解释器检测模块类型A无需配置"""
@property
def info(self) -> ModuleInfo:
return ModuleInfo(
name="python",
description="Python 解释器版本",
capabilities=["check"],
requires_config=False,
)
def check(self, config: dict[str, Any], root: Path) -> CheckResult:
"""检测 Python 版本。"""
current_version = platform.python_version()
min_version = config.get("min_version", "3.11")
current_parts = self._parse_version(current_version)
min_parts = self._parse_version(min_version)
if current_parts >= min_parts:
return CheckResult(
success=True,
version=current_version,
message=f">={min_version}",
)
else:
return CheckResult(
success=False,
version=current_version,
message=f"版本不足,要求>={min_version},当前 {current_version}",
can_ensure=False,
)
@staticmethod
def _parse_version(version: str) -> tuple[int, ...]:
"""解析版本号字符串。"""
parts = []
for part in version.split("."):
try:
parts.append(int(part))
except ValueError:
break
return tuple(parts)
module = PythonModule()