diff --git a/unilabos/app/oss_upload.py b/unilabos/app/oss_upload.py index e7cbc3f2..b6677a72 100644 --- a/unilabos/app/oss_upload.py +++ b/unilabos/app/oss_upload.py @@ -2,7 +2,8 @@ import argparse import os import time from datetime import datetime -from typing import Dict, Optional, Tuple +from pathlib import Path +from typing import Dict, Optional, Tuple, Union import requests @@ -97,7 +98,7 @@ def _put_upload(file_path: str, upload_url: str) -> bool: def oss_upload( - file_path: str, + file_path: Union[str, Path], filename: Optional[str] = None, driver_name: str = "default", exp_type: str = "default", @@ -122,6 +123,7 @@ def oss_upload( "oss_path": str # OSS路径(成功时)或空字符串(失败时) } """ + file_path = Path(file_path) if filename is None: filename = os.path.basename(file_path) diff --git a/unilabos/ros/nodes/presets/host_node.py b/unilabos/ros/nodes/presets/host_node.py index 574a3899..71d8c377 100644 --- a/unilabos/ros/nodes/presets/host_node.py +++ b/unilabos/ros/nodes/presets/host_node.py @@ -752,6 +752,12 @@ class HostNode(BaseROS2DeviceNode): if return_info_str is not None: try: return_info = json.loads(return_info_str) + # 适配后端的一些额外处理 + return_value = return_info.get("return_value") + if isinstance(return_value, dict): + unilabos_samples = return_info.get("unilabos_samples") + if isinstance(unilabos_samples, list): + return_info["unilabos_samples"] = unilabos_samples suc = return_info.get("suc", False) if not suc: status = "failed"