Skip to content

Commit da7b080

Browse files
committed
#187 Be sure to remember the multiple files sometimes loaded so the Info will be displayed accurately and completely
1 parent f349e67 commit da7b080

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

src/log/log.py

+27-10
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,11 @@ class Log:
4646
#
4747

4848
def load_meta(self, meta_file_name: str):
49-
self._meta_file_name = meta_file_name
49+
if self._meta_file_name == "":
50+
self._meta_file_name = meta_file_name
51+
else:
52+
self._meta_file_name = [self._meta_file_name, meta_file_name]
53+
5054
with open(os.path.join(self._log_directory, meta_file_name), 'rb') as file:
5155
received_json = json.load(file)
5256
self._log_meta.set_from_json(received_json)
@@ -100,16 +104,21 @@ def load_all(self, meta_file_names: Union[str, list], please_wait: PleaseWait, t
100104
def _load_all_single_episode(self, meta_file_name: str, please_wait: PleaseWait, track: Track,
101105
calculate_new_reward, calculate_alternate_discount_factors, progress_start, progress_finish):
102106
self.load_meta(meta_file_name)
103-
self._log_file_name = meta_file_name[:-len(META_FILE_SUFFIX)]
107+
log_file_name = meta_file_name[:-len(META_FILE_SUFFIX)]
104108
discount_factors.reset_for_log(self._log_meta.discount_factor.get())
105109

110+
if self._log_file_name == "":
111+
self._log_file_name = log_file_name
112+
else:
113+
self._log_file_name = [self._log_file_name, log_file_name]
114+
106115
if track is not None:
107116
assert track.has_world_name(self._log_meta.track_name.get())
108117

109118
progress_middle = (progress_finish - progress_start) / 2 + progress_start
110119

111-
if self._log_file_name.endswith(CONSOLE_LOG_SUFFIX):
112-
with tarfile.open(os.path.join(self._log_directory, self._log_file_name), "r") as tar:
120+
if log_file_name.endswith(CONSOLE_LOG_SUFFIX):
121+
with tarfile.open(os.path.join(self._log_directory, log_file_name), "r") as tar:
113122
for member in tar:
114123
if "/logs/training" in member.name and member.name.endswith("-robomaker.log"):
115124
binary_io = tar.extractfile(member)
@@ -119,7 +128,7 @@ def _load_all_single_episode(self, meta_file_name: str, please_wait: PleaseWait,
119128
progress_start, progress_middle, progress_finish, True, False, member.size, track,
120129
calculate_new_reward, calculate_alternate_discount_factors)
121130
else:
122-
with open(os.path.join(self._log_directory, self._log_file_name), "r") as file_io:
131+
with open(os.path.join(self._log_directory, log_file_name), "r") as file_io:
123132
self._parse_episode_events(
124133
file_io, False,
125134
please_wait,
@@ -169,6 +178,9 @@ def get_meta_file_name(self):
169178
def get_log_file_name(self):
170179
return self._log_file_name
171180

181+
def get_log_directory(self):
182+
return self._log_directory
183+
172184
def get_evaluation_phases(self):
173185
return self._evaluation_phases
174186

@@ -213,9 +225,14 @@ def _parse_episode_events(self, file_io, is_binary: bool, please_wait: PleaseWai
213225
saved_object_locations = None
214226
iteration_id = 0
215227

216-
log_file_path = os.path.join(self._log_directory, self._log_file_name)
228+
if isinstance(self._log_file_name, list):
229+
log_file_name = self._log_file_name[-1]
230+
else:
231+
log_file_name = self._log_file_name
232+
233+
log_file_path = os.path.join(self._log_directory, log_file_name)
217234
self._log_meta.set_file_os_stats(os.stat(log_file_path))
218-
self._log_meta.file_name.set(self._log_file_name)
235+
self._log_meta.file_name.set(log_file_name)
219236

220237
# TODO - This fudge goes away when all the file handling is re-located into here ...
221238
if file_size_override > 0:
@@ -309,10 +326,10 @@ def _parse_episode_events(self, file_io, is_binary: bool, please_wait: PleaseWai
309326

310327
# Override AWS id with better model name from filename if possible
311328
if self._log_meta.model_name.get() and AWS_UID_REG_EX.match(self._log_meta.model_name.get()):
312-
if TRAINING_FILE_REG_EXP.search(self._log_file_name):
313-
self._log_meta.model_name.set(TRAINING_FILE_REG_EXP.sub("", self._log_file_name))
329+
if TRAINING_FILE_REG_EXP.search(log_file_name):
330+
self._log_meta.model_name.set(TRAINING_FILE_REG_EXP.sub("", log_file_name))
314331
else:
315-
self._log_meta.model_name.set(re.sub("\\..*", "", self._log_file_name))
332+
self._log_meta.model_name.set(re.sub("\\..*", "", log_file_name))
316333

317334
def _analyze_episode_details(self):
318335
total_success_steps = 0

src/log/log_meta.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from src.action_space.action_space import ActionSpace
1515
from src.log.meta_field import MetaField, MetaFields, Optionality
1616

17-
LOG_META_VERSION = "4.0.0.DRAFTxx"
17+
LOG_META_VERSION = "4.0.0.DEVELOPMENT"
1818

1919
MANDATORY = Optionality.MANDATORY
2020
OPTIONAL = Optionality.OPTIONAL

src/prototype_ui/main.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def __init__(self):
5151
self._open_file_dialog_chosen_files = None
5252

5353
# Main variables to keep details of current open logs etc.
54-
self._log = None
54+
self._log: Log | None = None
5555
self._log_file_names = None
5656

5757
# Canvas etc. comments TODO
@@ -102,7 +102,10 @@ def _chosen_open_file_callback(self, file_names, model_title):
102102
self._open_file_dialog_chosen_model_title = model_title
103103

104104
def _action_file_info(self):
105-
print("File Info - NOT IMPLEMENTED YET IN VERSION 4")
105+
print("DEBUG FILE INFO")
106+
print(self._log.get_log_directory())
107+
print(self._log.get_log_file_name())
108+
print(self._log.get_meta_file_name())
106109

107110
def _action_change_log_directory(self):
108111
new_directory = QFileDialog.getExistingDirectory(self, self._actions.change_log_directory.statusTip(), self._config_manager.get_log_directory())
@@ -114,7 +117,7 @@ def _action_set_file_options(self):
114117
print("File Options - NOT IMPLEMENTED YET IN VERSION 4")
115118

116119
def _action_exit(self):
117-
print("File Exit - NOT IMPLEMENTED YET IN VERSION 4")
120+
self.close()
118121

119122

120123
if __name__ == '__main__':

0 commit comments

Comments
 (0)