Files
FastDeploy/tests/e2e/utils/baseline_manager.py
T
2026-03-27 10:21:37 +08:00

45 lines
1.3 KiB
Python

#!/bin/env python3
import json
import logging
import os
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
class BaselineManager:
def __init__(self, base_dir="/ModelData"):
self.base_dir = base_dir
def _get_path(self, name: str):
branch = os.getenv("TEST_BRANCH", "default")
if os.getenv("STATIC_C8") == "1":
c8_mode = "_static_c8"
elif os.getenv("DYNAMIC_C8") == "1":
c8_mode = "_dynamic_c8"
else:
c8_mode = ""
return f"{self.base_dir}/{name}_{branch}{c8_mode}.txt"
def load(self, name: str):
path = self._get_path(name)
logger.info(f"读取 baseline: {path}")
with open(path, "r", encoding="utf-8") as f:
content = f.read()
try:
return json.loads(content)
except Exception:
return content # 不是 JSON,就当字符串返回
def save(self, name: str, content):
path = self._get_path(name)
logger.info(f"写入 baseline: {path}")
if isinstance(content, (dict, list)):
content = json.dumps(content, ensure_ascii=False, indent=2)
with open(path, "w", encoding="utf-8") as f:
f.write(content)