Skip to content

Commit e8eed5f

Browse files
authored
fix: adapt to the Windows platform (#185)
* fix: fix platform tempdir problem * fix: windows platform gbk codec bug * fix: default value of the temp directory * fix: default value of the temp directory raw string
1 parent 3fc4822 commit e8eed5f

File tree

4 files changed

+20
-4
lines changed

4 files changed

+20
-4
lines changed

veadk/evaluation/base_evaluator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ def build_eval_set(self, file_path: str):
215215
eval_case_data_list: list[EvalTestCase] = []
216216

217217
try:
218-
with open(file_path, "r") as f:
218+
with open(file_path, "r", encoding="utf-8") as f:
219219
file_content = json.load(f)
220220
except json.JSONDecodeError as e:
221221
raise ValueError(f"Invalid JSON format in file {file_path}: {e}")

veadk/evaluation/eval_set_recorder.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from google.adk.sessions import BaseSessionService
2222

2323
from veadk.utils.logger import get_logger
24-
from veadk.utils.misc import formatted_timestamp
24+
from veadk.utils.misc import formatted_timestamp, get_temp_dir
2525

2626
logger = get_logger(__name__)
2727

@@ -30,7 +30,7 @@ class EvalSetRecorder(LocalEvalSetsManager):
3030
def __init__(
3131
self, session_service: BaseSessionService, eval_set_id: str = "default"
3232
):
33-
super().__init__(agents_dir="/tmp/")
33+
super().__init__(agents_dir=get_temp_dir())
3434
self.eval_set_id = eval_set_id if eval_set_id != "" else "default"
3535
self.session_service: BaseSessionService = session_service
3636

veadk/tracing/telemetry/opentelemetry_tracer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
from veadk.tracing.telemetry.exporters.inmemory_exporter import InMemoryExporter
3333
from veadk.utils.logger import get_logger
3434
from veadk.utils.patches import patch_google_adk_telemetry
35+
from veadk.utils.misc import get_temp_dir
3536

3637
logger = get_logger(__name__)
3738

@@ -155,7 +156,7 @@ def dump(
155156
self,
156157
user_id: str = "unknown_user_id",
157158
session_id: str = "unknown_session_id",
158-
path: str = "/tmp",
159+
path: str = get_temp_dir(),
159160
) -> str:
160161
def _build_trace_file_path(path: str, user_id: str, session_id: str) -> str:
161162
return f"{path}/{self.name}_{user_id}_{session_id}_{self.trace_id}.json"

veadk/utils/misc.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,3 +148,18 @@ def set_envs(config_yaml_path: str) -> tuple[dict, dict]:
148148
os.environ[k] = str(v)
149149

150150
return config_dict, veadk_environments
151+
152+
153+
def get_temp_dir():
154+
"""
155+
Return the corresponding temporary directory based on the operating system
156+
- For Windows systems, return the system's default temporary directory
157+
- For other systems (macOS, Linux, etc.), return the /tmp directory
158+
"""
159+
# First determine if it is a Windows system
160+
if sys.platform.startswith("win"):
161+
# Windows systems use the temporary directory from environment variables
162+
return os.environ.get("TEMP", os.environ.get("TMP", r"C:\WINDOWS\TEMP"))
163+
else:
164+
# Non-Windows systems (macOS, Linux, etc.) uniformly return /tmp
165+
return "/tmp"

0 commit comments

Comments
 (0)