@@ -98,6 +98,8 @@ def upgrade_generators_yaml(problem_path: Path, bar: ProgressBar) -> None:
98
98
if data is None or not isinstance (data , dict ):
99
99
return
100
100
101
+ changed = False
102
+
101
103
rename = [
102
104
("invalid_inputs" , "invalid_input" ),
103
105
("invalid_answers" , "invalid_answer" ),
@@ -114,16 +116,18 @@ def upgrade_generators_yaml(problem_path: Path, bar: ProgressBar) -> None:
114
116
continue
115
117
bar .log (f"renaming 'data.{ old_name } ' to 'data.{ new_name } ' in generators.yaml" )
116
118
_replace (data , old_name , new_name )
119
+ changed = True
117
120
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
119
123
if "testdata.yaml" in data :
120
124
testdata = data ["testdata.yaml" ]
121
125
assert isinstance (testdata , dict )
122
126
print_path = f" ({ path [1 :]} )" if len (path ) > 1 else ""
123
127
124
128
rename = [
125
129
("output_validator_flags" , "output_validator_args" ),
126
- ("inut_validator_flags " , "inut_validator_args " ),
130
+ ("input_validator_flags " , "input_validator_args " ),
127
131
]
128
132
for old , new in rename :
129
133
if old in testdata :
@@ -133,21 +137,23 @@ def upgrade_generated_testdata_yaml(data: dict[str, Any], path: str) -> None:
133
137
resume = True ,
134
138
)
135
139
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 } " )
140
141
_replace (testdata , old , new )
142
+ changed = True
141
143
if "data" in data and data ["data" ]:
142
144
children = data ["data" ] if isinstance (data ["data" ], list ) else [data ["data" ]]
143
145
for dictionary in children :
144
146
for child_name , child_data in sorted (dictionary .items ()):
145
147
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
147
152
148
- upgrade_generated_testdata_yaml (data , "" )
153
+ changed |= upgrade_generated_testdata_yaml (data , "" )
149
154
150
- write_yaml (data , generators_yaml )
155
+ if changed :
156
+ write_yaml (data , generators_yaml )
151
157
152
158
153
159
def upgrade_statement (problem_path : Path , bar : ProgressBar ) -> None :
0 commit comments