Untitled
unknown
plain_text
10 months ago
2.2 kB
7
Indexable
def get_filter_description(filters): return " and ".join(filters) if filters else "any criteria" def is_airline_name_match(entry, airline_name): return airline_name and airline_name.lower() in entry['AirlineName'].lower() def is_airport_name_match(entry, origin_or_destination_airportname): if not origin_or_destination_airportname: return False return any( origin_or_destination_airportname.lower() in route['AirportName'].lower() for route in entry.get('RouteList', []) ) def is_flight_number_match(entry, flight_number): return flight_number and flight_number in entry['FlightNumber'] def is_airport_and_flight_number_match(entry, origin_or_destination_airportname, flight_number): return is_airport_name_match(entry, origin_or_destination_airportname) and is_flight_number_match(entry, flight_number) def filter_entries(shared_data, airline_name, origin_or_destination_airportname, flight_number): if not any([airline_name, origin_or_destination_airportname, flight_number]): return [] # If both airportName and flightNumber are available, filter by both if origin_or_destination_airportname and flight_number: return [ entry for entry in shared_data.flight_response['DailyScheduleResult'] if is_airport_and_flight_number_match(entry, origin_or_destination_airportname, flight_number) ] # Otherwise, filter based on individual conditions return [ entry for entry in shared_data.flight_response['DailyScheduleResult'] if is_airline_name_match(entry, airline_name) or is_airport_name_match(entry, origin_or_destination_airportname) or is_flight_number_match(entry, flight_number) ] def log_filtered_entries(filtered_entries): logger.info(f"filtered entries {filtered_entries}") def get_result_data(filtered_entries): return { "DailyScheduleResult": filtered_entries } # Main logic filter_description = get_filter_description(filters) filtered_entries = filter_entries(shared_data, airline_name, origin_or_destination_airportname, flight_number) log_filtered_entries(filtered_entries) result_data = get_result_data(filtered_entries)
Editor is loading...
Leave a Comment