Skip to content

Commit 2dba3e2

Browse files
authored
fix: hide overwrite log (#1535)
* fix: hide overwrite log * fix: ut error
1 parent 72dc4dc commit 2dba3e2

File tree

2 files changed

+17
-18
lines changed

2 files changed

+17
-18
lines changed

swanlab/data/run/exp.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,13 @@ def _add(
141141
step = max(current_len, max_step + 1)
142142

143143
if step in key_obj.steps:
144-
# 允许 overwrite,但区分显式指定和隐式的碰撞
145-
if explicit_step:
146-
swanlog.debug(f"Step {step} on key {key} already exists, overwriting.")
147-
else:
148-
swanlog.warning(f"Implicit step {step} on key {key} resolved as overwrite, but expected to append.")
144+
swanlog.warning(f"Step {step} on key {key} already exists.")
145+
return MetricErrorInfo(column_info=key_obj.column_info, error=DataWrapper.create_duplicate_error())
146+
# # 允许 overwrite,但区分显式指定和隐式的碰撞
147+
# if explicit_step:
148+
# swanlog.debug(f"Step {step} on key {key} already exists, overwriting.")
149+
# else:
150+
# swanlog.warning(f"Implicit step {step} on key {key} resolved as overwrite, but expected to append.")
149151
data.parse(step=step, key=key)
150152
# ---------------------------------- 图表创建 ----------------------------------
151153

test/unit/data/run/test_main.py

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -155,25 +155,22 @@ def test_log_number_ok(self):
155155
ll2 = run.log(data, step=3)
156156
assert all(ll2[k].metric_step == 3 for k in ll2)
157157
overwrite_data = {"a": 10, "b": 0.2, "c": {"d": 4}, "math.nan": 3, "math.inf": 5}
158-
# 重复的step会被覆盖,且保留原有epoch
158+
# 临时屏蔽 overwrite 后,重复的 step 会返回 duplicated error
159159
ll3 = run.log(overwrite_data, step=3)
160-
assert all(ll3[k].is_error is False for k in ll3)
160+
assert all(ll3[k].is_error is True for k in ll3)
161161
assert all(ll3[k].column_error is None for k in ll3)
162-
assert all(ll3[k].error is None for k in ll3)
163-
assert ll3["a"].data == 10
164-
assert ll3["b"].data == 0.2
165-
assert ll3["c.d"].data == 4
166-
assert ll3["math.nan"].data == 3
167-
assert ll3["math.inf"].data == 5
168-
assert all(ll3[k].metric_step == 3 for k in ll3)
169-
assert all(ll3[k].metric_epoch == ll2[k].metric_epoch for k in ll3)
170-
assert all(ll3[k].metric_overwrite is True for k in ll3)
162+
assert all(ll3[k].error is not None for k in ll3)
163+
assert all(ll3[k].error.duplicated is True for k in ll3)
164+
assert all(ll3[k].data is None for k in ll3)
165+
assert all(ll3[k].metric_step is None for k in ll3)
166+
assert all(ll3[k].metric_epoch is None for k in ll3)
167+
assert all(ll3[k].metric_overwrite is False for k in ll3)
171168
# 如果是新的key的重复step,会被添加
172169
ll4 = run.log({"tmp": 1}, step=3)
173170
assert all(ll4[k].is_error is False for k in ll4)
174171
assert all(ll4[k].metric_step == 3 for k in ll4)
175172
assert all(ll4[k].metric_overwrite is False for k in ll4)
176-
# 显式覆盖后,隐式step仍然应该沿着当前最大step继续递增
173+
# 重复 step 被拦截后,隐式 step 仍然应该沿着当前最大 step 继续递增
177174
ll5 = run.log({"a": 11})
178175
assert ll5["a"].data == 11
179176
assert ll5["a"].metric_step == 4
@@ -249,7 +246,7 @@ def test_log_text_ok(self):
249246
ll3 = run.log({"a": [Text("abc"), Text("def")]})
250247
assert ll3["a"].data == ["abc", "def"]
251248
data = {"a": [Text("abc")] * 109}
252-
ll4 = run.log(data, step=4)
249+
ll4 = run.log(data, step=5)
253250
assert ll4["a"].data == ["abc"] * 108
254251

255252
# ---------------------------------- 解析log Audio ----------------------------------

0 commit comments

Comments
 (0)