From ec6d2bf6401eb9d5e3a43fd707a701573df2fb40 Mon Sep 17 00:00:00 2001 From: Czar Echavez Date: Wed, 1 May 2024 16:53:37 +0100 Subject: [PATCH] #2533: fix missing implementation of output_dir override in io.py + moving the dev mode override in SIM_OUTPUT to prevent the override from being overridden --- src/primaite/session/io.py | 7 +++++-- src/primaite/simulator/__init__.py | 20 +++++++++++--------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/primaite/session/io.py b/src/primaite/session/io.py index 9dcc529d..8bbc1b07 100644 --- a/src/primaite/session/io.py +++ b/src/primaite/session/io.py @@ -5,7 +5,7 @@ from typing import Dict, List, Optional from pydantic import BaseModel, ConfigDict -from primaite import _PRIMAITE_ROOT, getLogger, PRIMAITE_PATHS +from primaite import _PRIMAITE_ROOT, getLogger, PRIMAITE_CONFIG, PRIMAITE_PATHS from primaite.simulator import LogLevel, SIM_OUTPUT from primaite.utils.cli.primaite_config_utils import is_dev_mode @@ -66,9 +66,12 @@ class PrimaiteIO: # check if running in dev mode if is_dev_mode(): - # check if there is an output directory set in config session_path = _PRIMAITE_ROOT.parent.parent / "sessions" / date_str / time_str + # check if there is an output directory set in config + if PRIMAITE_CONFIG["developer_mode"]["output_dir"]: + session_path = Path(PRIMAITE_CONFIG["developer_mode"]["output_dir"]) / "sessions" / date_str / time_str + session_path.mkdir(exist_ok=True, parents=True) return session_path diff --git a/src/primaite/simulator/__init__.py b/src/primaite/simulator/__init__.py index e9d44ec3..bbcf9af4 100644 --- a/src/primaite/simulator/__init__.py +++ b/src/primaite/simulator/__init__.py @@ -32,7 +32,17 @@ class _SimOutput: path = PRIMAITE_PATHS.user_sessions_path / date_str / time_str + self._path = path + self._save_pcap_logs: bool = False + self._save_sys_logs: bool = False + self._write_sys_log_to_terminal: bool = False + self._sys_log_level: LogLevel = LogLevel.WARNING # default log level is at WARNING + + @property + def path(self) -> Path: if is_dev_mode(): + date_str = datetime.now().strftime("%Y-%m-%d") + time_str = datetime.now().strftime("%H-%M-%S") # if dev mode is enabled, if output dir is not set, print to primaite repo root path: Path = _PRIMAITE_ROOT.parent.parent / "sessions" / date_str / time_str / "simulation_output" # otherwise print to output dir @@ -44,15 +54,7 @@ class _SimOutput: / time_str / "simulation_output" ) - - self._path = path - self._save_pcap_logs: bool = False - self._save_sys_logs: bool = False - self._write_sys_log_to_terminal: bool = False - self._sys_log_level: LogLevel = LogLevel.WARNING # default log level is at WARNING - - @property - def path(self) -> Path: + self._path = path return self._path @path.setter