for i in range(len(distance_matrix[0])): for j in range(len(distance_matrix[0])): city_map.add_edge(city_map.get_vertex(i), city_map.get_vertex(j), distance_matrix[i][j]) with open('WGUPS Package File.csv', 'r', encoding='utf-8-sig') as csv_file: csv_reader = csv.DictReader(csv_file) for row in csv_reader: package = Package(row['Package ID'], row['Address'], row['City'], row['State'], row['Zip'], row['Delivery Deadline'], row['Weight'], row['Special Notes']) package_table.hash_insert(package.id, package) package.set_location_id(get_location_id(package)) package.special_notes() package_list.append(package) early_delivery = [] for package in package_list: if package.has_early_deadline and not package.is_late: early_delivery.append(package) if package.is_grouped and package not in early_delivery: early_delivery.append(package) late_arrivals_early_deadline = [] late_arrivals = [] for package in package_list: if package.is_late and package.has_early_deadline: late_arrivals_early_deadline.append(package) if package.is_late: