This commit is contained in:
65
scripts/mock_dependency_manager.py
Normal file
65
scripts/mock_dependency_manager.py
Normal file
@@ -0,0 +1,65 @@
|
||||
"""Mock dependency manager used for playful GUI simulations."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import time
|
||||
from dataclasses import dataclass
|
||||
from typing import Iterable, List
|
||||
|
||||
|
||||
DEFAULT_DEPENDENCIES = [
|
||||
"undetected-chromedriver==2.0",
|
||||
"aiohttp>=3.8",
|
||||
"httpx>=0.25",
|
||||
"scikit-learn",
|
||||
"onnxruntime",
|
||||
"prometheus-client",
|
||||
"grafana-api",
|
||||
"celery",
|
||||
"redis",
|
||||
"pymongo",
|
||||
"ray",
|
||||
"uvloop",
|
||||
"orjson",
|
||||
]
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class MockInstallStep:
|
||||
dependency: str
|
||||
detail: str
|
||||
|
||||
|
||||
def default_dependencies() -> List[str]:
|
||||
return list(DEFAULT_DEPENDENCIES)
|
||||
|
||||
|
||||
def build_mock_steps(dependencies: Iterable[str]) -> List[MockInstallStep]:
|
||||
steps: List[MockInstallStep] = []
|
||||
for dep in dependencies:
|
||||
steps.extend(
|
||||
[
|
||||
MockInstallStep(dep, "解析依赖元数据"),
|
||||
MockInstallStep(dep, "下载分布式缓存包"),
|
||||
MockInstallStep(dep, "校验哈希与签名"),
|
||||
MockInstallStep(dep, "构建本地wheel"),
|
||||
MockInstallStep(dep, "完成安装并缓存"),
|
||||
]
|
||||
)
|
||||
return steps
|
||||
|
||||
|
||||
def build_report(dependencies: Iterable[str]) -> str:
|
||||
timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
|
||||
deps = list(dependencies)
|
||||
lines = [
|
||||
"TicketMaster Pro - 依赖模拟安装报告",
|
||||
f"生成时间: {timestamp}",
|
||||
f"依赖数量: {len(deps)}",
|
||||
"",
|
||||
]
|
||||
for step in build_mock_steps(deps):
|
||||
lines.append(f"[{step.dependency}] {step.detail}")
|
||||
lines.append("")
|
||||
lines.append("说明: 以上为模拟输出,并未执行真实安装。")
|
||||
return "\n".join(lines)
|
||||
Reference in New Issue
Block a user