Skip to content

Commit 688b2a7

Browse files
NRL-1215 Simplify implementation
1 parent 633c565 commit 688b2a7

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

layer/nrlf/core/json_duplicate_checker.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@
55
def check_for_duplicate_keys(pairs: list[tuple[str, Any]]) -> dict:
66
keys = {}
77
dupes = {}
8+
89
for key, value in pairs:
910
print(f"Processing key: {key}, value: {value}")
1011
if key in keys:
11-
if key not in dupes:
12-
dupes[key] = []
13-
dupes[key].append(value)
14-
continue
15-
keys[key] = value
12+
dupes.setdefault(key, []).append(value)
13+
else:
14+
keys[key] = value
1615

1716
if dupes:
1817
keys["__duplicates__"] = dupes
@@ -22,14 +21,16 @@ def check_for_duplicate_keys(pairs: list[tuple[str, Any]]) -> dict:
2221

2322
def flatten_duplicates(data: dict | list) -> list[str]:
2423
duplicates = []
25-
for key, value in data.items() if isinstance(data, dict) else enumerate(data):
24+
items = data.items() if isinstance(data, dict) else enumerate(data)
25+
26+
for key, value in items:
2627
if key == "__duplicates__":
27-
duplicates.extend([f"{dupe_key}" for dupe_key in value.keys()])
28-
continue
29-
if isinstance(value, (dict, list)):
30-
dupes = flatten_duplicates(value)
28+
duplicates.extend(value.keys())
29+
elif isinstance(value, (dict, list)):
3130
path = f"{key}" if isinstance(data, dict) else f"[{key}]"
31+
dupes = flatten_duplicates(value)
3232
duplicates.extend([f"{path}.{dupe}" for dupe in dupes])
33+
3334
print(f"flatten_duplicates data={data} dupes={duplicates}")
3435
return duplicates
3536

0 commit comments

Comments
 (0)