mirror of
https://github.com/deepmodeling/Uni-Lab-OS
synced 2026-03-26 23:13:13 +00:00
new registry system backwards to yaml
This commit is contained in:
@@ -247,6 +247,12 @@ def parse_args():
|
||||
default=False,
|
||||
help="Run in check mode for CI: validates registry imports and ensures no file changes",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--complete_registry",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="Complete and rewrite YAML registry files using AST analysis results",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--no_update_feedback",
|
||||
action="store_true",
|
||||
@@ -491,11 +497,13 @@ def main():
|
||||
# Step 0: AST 分析优先 + YAML 注册表加载
|
||||
# check_mode 和 upload_registry 都会执行实际 import 验证
|
||||
devices_dirs = args_dict.get("devices", None)
|
||||
complete_registry = args_dict.get("complete_registry", False) or check_mode
|
||||
lab_registry = build_registry(
|
||||
registry_paths=args_dict["registry_path"],
|
||||
devices_dirs=devices_dirs,
|
||||
upload_registry=BasicConfig.upload_registry,
|
||||
check_mode=check_mode,
|
||||
complete_registry=complete_registry,
|
||||
)
|
||||
|
||||
# Check mode: 注册表验证完成后直接退出
|
||||
|
||||
@@ -1,19 +1,8 @@
|
||||
import json
|
||||
import time
|
||||
from typing import Any, Dict, Optional, Tuple
|
||||
|
||||
from unilabos.utils.log import logger
|
||||
from unilabos.utils.type_check import TypeEncoder
|
||||
|
||||
try:
|
||||
import orjson
|
||||
|
||||
def _normalize_device(info: dict) -> dict:
|
||||
"""Serialize via orjson to strip non-JSON types (type objects etc.)."""
|
||||
return orjson.loads(orjson.dumps(info, default=str))
|
||||
except ImportError:
|
||||
def _normalize_device(info: dict) -> dict:
|
||||
return json.loads(json.dumps(info, ensure_ascii=False, cls=TypeEncoder))
|
||||
from unilabos.utils.tools import normalize_json as _normalize_device
|
||||
|
||||
|
||||
def register_devices_and_resources(lab_registry, gather_only=False) -> Optional[Tuple[Dict[str, Any], Dict[str, Any]]]:
|
||||
|
||||
@@ -8,24 +8,7 @@ import json
|
||||
import os
|
||||
from typing import List, Dict, Any, Optional
|
||||
|
||||
try:
|
||||
import orjson as _json_fast
|
||||
|
||||
def _fast_dumps(obj, **kwargs) -> bytes:
|
||||
return _json_fast.dumps(obj, option=_json_fast.OPT_NON_STR_KEYS, default=str)
|
||||
|
||||
def _fast_dumps_pretty(obj, **kwargs) -> bytes:
|
||||
return _json_fast.dumps(
|
||||
obj, option=_json_fast.OPT_NON_STR_KEYS | _json_fast.OPT_INDENT_2, default=str,
|
||||
)
|
||||
except ImportError:
|
||||
_json_fast = None # type: ignore[assignment]
|
||||
|
||||
def _fast_dumps(obj, **kwargs) -> bytes:
|
||||
return json.dumps(obj, ensure_ascii=False, default=str).encode("utf-8")
|
||||
|
||||
def _fast_dumps_pretty(obj, **kwargs) -> bytes:
|
||||
return json.dumps(obj, indent=2, ensure_ascii=False, default=str).encode("utf-8")
|
||||
from unilabos.utils.tools import fast_dumps as _fast_dumps, fast_dumps_pretty as _fast_dumps_pretty
|
||||
|
||||
import requests
|
||||
from unilabos.resources.resource_tracker import ResourceTreeSet
|
||||
|
||||
Reference in New Issue
Block a user