MCPcopy Create free account
hub / github.com/BYVoid/OpenCC / write_report

Function write_report

data/scripts/opencc_resources_zip_diff.py:160–259  ·  view source on GitHub ↗
(before_path, after_path, before_entries, after_entries, output_path)

Source from the content-addressed store, hash-verified

158
159
160def write_report(before_path, after_path, before_entries, after_entries, output_path):
161 before_manifest = load_manifest(before_entries)
162 after_manifest = load_manifest(after_entries)
163 before_names = set(before_entries)
164 after_names = set(after_entries)
165 compare_names = sorted((before_names | after_names) - {MANIFEST_NAME})
166 added_files = sorted(after_names - before_names - {MANIFEST_NAME})
167 removed_files = sorted(before_names - after_names - {MANIFEST_NAME})
168 changed_files = [
169 name
170 for name in compare_names
171 if name in before_entries
172 and name in after_entries
173 and before_entries[name]["data"] != after_entries[name]["data"]
174 ]
175
176 lines = [
177 "# OpenCC Resource Zip Diff",
178 "",
179 "## Inputs",
180 "",
181 f"- Before zip: `{before_path}`",
182 f"- After zip: `{after_path}`",
183 metadata_line("Before manifest", before_manifest),
184 metadata_line("After manifest", after_manifest),
185 "",
186 "## Summary",
187 "",
188 f"- Added files: {len(added_files)}",
189 f"- Removed files: {len(removed_files)}",
190 f"- Changed files: {len(changed_files)}",
191 f"- Unchanged files: {len(compare_names) - len(added_files) - len(removed_files) - len(changed_files)}",
192 "",
193 ]
194
195 if added_files:
196 lines.append("## Added Files")
197 lines.append("")
198 for name in added_files:
199 entries = dictionary_file_summary(name, after_entries[name]["data"])
200 entry_suffix = f", {len(entries)} entries" if entries is not None else ""
201 lines.append(f"- `{name}` ({after_entries[name]['size']} bytes{entry_suffix})")
202 append_dictionary_file_examples(lines, entries)
203 lines.append("")
204 if removed_files:
205 lines.append("## Removed Files")
206 lines.append("")
207 for name in removed_files:
208 entries = dictionary_file_summary(name, before_entries[name]["data"])
209 entry_suffix = f", {len(entries)} entries" if entries is not None else ""
210 lines.append(
211 f"- `{name}` ({before_entries[name]['size']} bytes{entry_suffix})"
212 )
213 append_dictionary_file_examples(lines, entries)
214 lines.append("")
215
216 if changed_files:
217 lines.append("## Changed Files")

Callers 1

mainFunction · 0.85

Calls 13

load_manifestFunction · 0.85
metadata_lineFunction · 0.85
lenFunction · 0.85
dictionary_file_summaryFunction · 0.85
decode_textFunction · 0.85
dictionary_summaryFunction · 0.85
append_examplesFunction · 0.85
append_text_diffFunction · 0.85
setClass · 0.50
appendMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected