Compare two flat dicts. Returns (warnings, errors).
(baseline: dict, current: dict, kind: str)
| 39 | |
| 40 | |
| 41 | def _diff_dict(baseline: dict, current: dict, kind: str): |
| 42 | """Compare two flat dicts. Returns (warnings, errors).""" |
| 43 | warnings = [] |
| 44 | errors = [] |
| 45 | |
| 46 | baseline_keys = set(baseline.keys()) |
| 47 | current_keys = set(current.keys()) |
| 48 | |
| 49 | for key in sorted(baseline_keys - current_keys): |
| 50 | errors.append(f"Removed {kind} '{key}'") |
| 51 | |
| 52 | for key in sorted(current_keys - baseline_keys): |
| 53 | warnings.append(f"Added {kind} '{key}': {current[key]}") |
| 54 | |
| 55 | for key in sorted(baseline_keys & current_keys): |
| 56 | if baseline[key] != current[key]: |
| 57 | warnings.append( |
| 58 | f"Changed {kind} '{key}':\n" |
| 59 | f" baseline: {baseline[key]}\n" |
| 60 | f" current: {current[key]}" |
| 61 | ) |
| 62 | |
| 63 | return warnings, errors |
| 64 | |
| 65 | |
| 66 | def _diff_interfaces(baseline: dict, current: dict): |