MCPcopy Create free account
hub / github.com/Keeper-Security/Commander / diff_rows

Function diff_rows

tests/compliance/diff.py:52–70  ·  view source on GitHub ↗

Compare two rows field by field, return list of (field, before_val, after_val).

(before_row, after_row, headers=None)

Source from the content-addressed store, hash-verified

50
51
52def diff_rows(before_row, after_row, headers=None):
53 """Compare two rows field by field, return list of (field, before_val, after_val)."""
54 diffs = []
55 if isinstance(before_row, dict) and isinstance(after_row, dict):
56 all_keys = sorted(set(list(before_row.keys()) + list(after_row.keys())))
57 for k in all_keys:
58 bv = before_row.get(k)
59 av = after_row.get(k)
60 if _normalize(bv) != _normalize(av):
61 diffs.append((k, bv, av))
62 elif isinstance(before_row, (list, tuple)) and isinstance(after_row, (list, tuple)):
63 max_len = max(len(before_row), len(after_row))
64 for i in range(max_len):
65 bv = before_row[i] if i < len(before_row) else None
66 av = after_row[i] if i < len(after_row) else None
67 if bv != av:
68 field = headers[i] if headers and i < len(headers) else f'[{i}]'
69 diffs.append((field, bv, av))
70 return diffs
71
72
73def compare_file(before_path, after_path):

Callers 1

compare_fileFunction · 0.85

Calls 2

_normalizeFunction · 0.85
getMethod · 0.80

Tested by

no test coverage detected