Skip to content

Commit 506c96a

Browse files
committed
Add dedup logic
1 parent 7d31577 commit 506c96a

File tree

1 file changed

+36
-9
lines changed

1 file changed

+36
-9
lines changed

script/premint/generate_batch_renewals.py

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,22 +95,49 @@ def main():
9595
print(f"Input file: {input_file}")
9696
print(f"Output file: {output_file}")
9797

98-
# Read names from input file and generate CSV
99-
with open(input_file, 'r') as infile, open(output_file, 'w', newline='') as outfile:
98+
# Read names from input file and collect unique IDs
99+
seen_ids = set()
100+
unique_entries = []
101+
duplicate_names = []
102+
103+
with open(input_file, 'r') as infile:
104+
for line_num, line in enumerate(infile, 1):
105+
name = line.strip()
106+
if name: # Skip empty lines
107+
name_id = keccak256_to_uint(name)
108+
if name_id not in seen_ids:
109+
seen_ids.add(name_id)
110+
unique_entries.append((name_id, duration_seconds, name))
111+
else:
112+
duplicate_names.append((line_num, name))
113+
114+
# Write CSV with unique entries only
115+
with open(output_file, 'w', newline='') as outfile:
100116
csv_writer = csv.writer(outfile)
101117

102118
# Write header
103119
csv_writer.writerow(['id', 'duration'])
104120

105-
# Process each name
106-
for line in infile:
107-
name = line.strip()
108-
if name: # Skip empty lines
109-
name_id = keccak256_to_uint(name)
110-
csv_writer.writerow([name_id, duration_seconds])
121+
# Write unique entries
122+
for name_id, duration, _ in unique_entries:
123+
csv_writer.writerow([name_id, duration])
124+
125+
# Report results
126+
total_names = sum(1 for line in open(input_file) if line.strip())
127+
unique_count = len(unique_entries)
128+
duplicate_count = len(duplicate_names)
111129

112130
print(f"CSV file generated: {output_file}")
113-
print(f"Processed {sum(1 for line in open(input_file) if line.strip())} names")
131+
print(f"Total names processed: {total_names}")
132+
print(f"Unique entries written: {unique_count}")
133+
print(f"Duplicates found and skipped: {duplicate_count}")
134+
135+
if duplicate_names:
136+
print("\nDuplicate names found:")
137+
for line_num, name in duplicate_names:
138+
print(f" Line {line_num}: {name}")
139+
else:
140+
print("No duplicates found.")
114141
return 0
115142

116143
if __name__ == "__main__":

0 commit comments

Comments
 (0)