fix: trial parser now shows LATEST trial (was stuck on first match); params from last block
This commit is contained in:
@@ -14,10 +14,11 @@ def tail_log(n=120):
|
||||
return []
|
||||
|
||||
def run_state():
|
||||
lines = tail_log(400)
|
||||
lines = tail_log(3000)
|
||||
text = "".join(lines)
|
||||
state = {"phase": "unknown", "trial": 0, "trials_total": 200, "params": [], "done": False, "exit": None}
|
||||
m = re.search(r"Running trial (\d+) of (\d+)", text)
|
||||
m = None
|
||||
for m in re.finditer(r"Running trial (\d+) of (\d+)", text): pass # keep LAST occurrence
|
||||
if m:
|
||||
state["phase"] = "optimizing"
|
||||
state["trial"] = int(m.group(1)); state["trials_total"] = int(m.group(2))
|
||||
@@ -32,8 +33,15 @@ def run_state():
|
||||
# capture current trial params
|
||||
params = {}
|
||||
in_params = False
|
||||
for ln in lines:
|
||||
if "Parameters:" in ln: in_params = True; params = {}; continue
|
||||
last_param_start = None
|
||||
for i, ln in enumerate(lines):
|
||||
if "Parameters:" in ln: last_param_start = i
|
||||
if last_param_start is not None:
|
||||
in_params = True
|
||||
for ln in lines[last_param_start+1:]:
|
||||
pm = re.match(r"\s+\* ([a-z_.]+) = ([^#]+)", ln)
|
||||
if pm: params[pm.group(1)] = pm.group(2).strip()
|
||||
elif ln.strip() and "Parameters" not in ln: break
|
||||
if in_params:
|
||||
pm = re.match(r"\s+\* ([a-z_.]+) = ([^#]+)", ln)
|
||||
if pm: params[pm.group(1)] = pm.group(2).strip()
|
||||
|
||||
Reference in New Issue
Block a user