35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
## This modile compares discovered PIS codes with existing PIS codes obtained by calling pis_fetch
|
|
|
|
import pis_fetch
|
|
import sys
|
|
|
|
def run(data_list):
|
|
deduplicated_data = dedup(data_list)
|
|
print(f"Removed {len(data_list) - len(deduplicated_data)} duplicate codes")
|
|
print(f"Searching for {len(deduplicated_data)} PIS codes")
|
|
missing_data = find_missing(deduplicated_data)
|
|
print(f"{len(missing_data)} missing PIS codes in OwlBoard data")
|
|
return missing_data
|
|
|
|
def dedup(data_list):
|
|
unique_dicts = {d['pis']: d for d in data_list}.values()
|
|
unique_list_of_dicts = list(unique_dicts)
|
|
return unique_list_of_dicts
|
|
|
|
|
|
def find_missing(data_list):
|
|
existing_pis_list = pis_fetch.load_existing_pis()
|
|
missing_data = []
|
|
|
|
for item in data_list:
|
|
pis_code = item.get('pis')
|
|
if pis_code:
|
|
code_exists = False
|
|
for existing_pis in existing_pis_list:
|
|
if str(existing_pis['code']) == pis_code:
|
|
code_exists = True
|
|
break
|
|
if not code_exists:
|
|
missing_data.append(item)
|
|
|
|
return missing_data |