Skip to content

Commit 0a65591

Browse files
authored
Merge pull request #226 from labmlai/stdout
Stdout
2 parents abf1b72 + 790c735 commit 0a65591

File tree

4 files changed

+73
-19
lines changed

4 files changed

+73
-19
lines changed

app/server/labml_app/analyses/logs.py

+28
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,31 @@ def update_logs(self, content: str):
107107
else:
108108
page.update_logs(content)
109109
page.save()
110+
111+
def update_logs_bulk(self, content: str):
112+
loaded_pages = []
113+
if len(self.log_pages) == 0:
114+
page = LogPageModel()
115+
self.log_pages.append(page.key)
116+
loaded_pages.append(page)
117+
else:
118+
page = self.log_pages[-1].load()
119+
120+
for line in content.split('\n'):
121+
print(line)
122+
line = line + "\n"
123+
if page.is_full():
124+
unmerged_logs = page.logs_unmerged
125+
page.logs_unmerged = ''
126+
line = unmerged_logs + line
127+
128+
page = LogPageModel()
129+
page.update_logs(line)
130+
self.log_pages.append(page.key)
131+
loaded_pages.append(page)
132+
else:
133+
page.update_logs(line)
134+
135+
for page in loaded_pages:
136+
page.save()
137+
print(page.key)

app/server/labml_app/scripts/fix_models.py

+41-15
Original file line numberDiff line numberDiff line change
@@ -29,24 +29,50 @@ def fix_stdout():
2929
stderr = r.stderr + r.stderr_unmerged
3030
stdlogger = r.logger + r.logger_unmerged
3131

32+
# run only if there's no stdout, stderr or stdlogger
33+
stdout_key = StdOutIndex.get(run_uuid)
34+
if stdout_key is not None:
35+
continue
36+
3237
if stdout:
33-
stdout_list = stdout.split('\n')
34-
for i in range(len(stdout_list) - 1):
35-
stdout_list[i] += '\n'
36-
for line in stdout_list:
37-
update_stdout(run_uuid, line)
38+
key = StdOutIndex.get(run_uuid)
39+
std_out: StdOutModel
40+
41+
if key is None:
42+
std_out = StdOutModel()
43+
std_out.save()
44+
StdOutIndex.set(run_uuid, std_out.key)
45+
else:
46+
std_out = key.load()
47+
48+
std_out.update_logs_bulk(stdout)
49+
std_out.save()
3850
if stderr:
39-
stderr_list = stderr.split('\n')
40-
for i in range(len(stderr_list) - 1):
41-
stderr_list[i] += '\n'
42-
for line in stderr_list:
43-
update_stderr(run_uuid, line)
51+
key = StdErrIndex.get(run_uuid)
52+
std_err: StdErrModel
53+
54+
if key is None:
55+
std_err = StdErrModel()
56+
std_err.save()
57+
StdErrIndex.set(run_uuid, std_err.key)
58+
else:
59+
std_err = key.load()
60+
61+
std_err.update_logs_bulk(stderr)
62+
std_err.save()
4463
if stdlogger:
45-
stdlogger_list = stdlogger.split('\n')
46-
for i in range(len(stdlogger_list) - 1):
47-
stdlogger_list[i] += '\n'
48-
for line in stdlogger_list:
49-
update_std_logger(run_uuid, line)
64+
key = StdLoggerIndex.get(run_uuid)
65+
std_logger: StdLoggerModel
66+
67+
if key is None:
68+
std_logger = StdLoggerModel()
69+
std_logger.save()
70+
StdLoggerIndex.set(run_uuid, std_logger.key)
71+
else:
72+
std_logger = key.load()
73+
74+
std_logger.update_logs_bulk(stdlogger)
75+
std_logger.save()
5076

5177

5278
def clear_all_logs():

app/ui/src/analyses/experiments/logger/view.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ class LoggerView extends ScreenView {
7777
})
7878
this.runHeaderCard = new RunHeaderCard({
7979
uuid: this.uuid,
80-
width: this.actualWidth
80+
width: this.actualWidth,
81+
showRank: false,
8182
})
8283
this.runHeaderCard.render($).then()
8384
$('h2', '.header.text-center', 'Logger')
@@ -137,7 +138,6 @@ class LoggerView extends ScreenView {
137138
}
138139

139140
renderOutput() {
140-
this.outputContainer.innerHTML = ''
141141
this.logView.addLogs(this.stdLogger)
142142
}
143143
}

app/ui/src/analyses/experiments/stderror/view.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ class StdErrorView extends ScreenView {
7777
})
7878
this.runHeaderCard = new RunHeaderCard({
7979
uuid: this.uuid,
80-
width: this.actualWidth
80+
width: this.actualWidth,
81+
showRank: false
8182
})
8283
this.runHeaderCard.render($).then()
8384
$('h2', '.header.text-center', 'Standard Error')
@@ -137,7 +138,6 @@ class StdErrorView extends ScreenView {
137138
}
138139

139140
renderOutput() {
140-
this.outputContainer.innerHTML = ''
141141
this.logView.addLogs(this.stdErr)
142142
}
143143
}

0 commit comments

Comments
 (0)