Skip to content

Commit 1f4a77b

Browse files
committed
[upgrade] Only write generators.yaml when it changed
1 parent cea9880 commit 1f4a77b

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

bin/upgrade.py

+15-9
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ def upgrade_generators_yaml(problem_path: Path, bar: ProgressBar) -> None:
9898
if data is None or not isinstance(data, dict):
9999
return
100100

101+
changed = False
102+
101103
rename = [
102104
("invalid_inputs", "invalid_input"),
103105
("invalid_answers", "invalid_answer"),
@@ -114,16 +116,18 @@ def upgrade_generators_yaml(problem_path: Path, bar: ProgressBar) -> None:
114116
continue
115117
bar.log(f"renaming 'data.{old_name}' to 'data.{new_name}' in generators.yaml")
116118
_replace(data, old_name, new_name)
119+
changed = True
117120

118-
def upgrade_generated_testdata_yaml(data: dict[str, Any], path: str) -> None:
121+
def upgrade_generated_testdata_yaml(data: dict[str, Any], path: str) -> bool:
122+
changed = False
119123
if "testdata.yaml" in data:
120124
testdata = data["testdata.yaml"]
121125
assert isinstance(testdata, dict)
122126
print_path = f" ({path[1:]})" if len(path) > 1 else ""
123127

124128
rename = [
125129
("output_validator_flags", "output_validator_args"),
126-
("inut_validator_flags", "inut_validator_args"),
130+
("input_validator_flags", "input_validator_args"),
127131
]
128132
for old, new in rename:
129133
if old in testdata:
@@ -133,21 +137,23 @@ def upgrade_generated_testdata_yaml(data: dict[str, Any], path: str) -> None:
133137
resume=True,
134138
)
135139
continue
136-
bar.log(
137-
f"change '{old}' to '{new}' in generators.yaml{print_path}",
138-
resume=True,
139-
)
140+
bar.log(f"change '{old}' to '{new}' in generators.yaml{print_path}")
140141
_replace(testdata, old, new)
142+
changed = True
141143
if "data" in data and data["data"]:
142144
children = data["data"] if isinstance(data["data"], list) else [data["data"]]
143145
for dictionary in children:
144146
for child_name, child_data in sorted(dictionary.items()):
145147
if generate.is_directory(child_data):
146-
upgrade_generated_testdata_yaml(child_data, path + "." + child_name)
148+
changed |= upgrade_generated_testdata_yaml(
149+
child_data, path + "." + child_name
150+
)
151+
return changed
147152

148-
upgrade_generated_testdata_yaml(data, "")
153+
changed |= upgrade_generated_testdata_yaml(data, "")
149154

150-
write_yaml(data, generators_yaml)
155+
if changed:
156+
write_yaml(data, generators_yaml)
151157

152158

153159
def upgrade_statement(problem_path: Path, bar: ProgressBar) -> None:

0 commit comments

Comments
 (0)