"""Functions to help Azara and Rui locate pirate treasure.""" def get_coordinate(record): """Return coordinate value from a tuple containing the treasure name, and treasure coordinate. :param record: tuple - with a (treasure, coordinate) pair. :return: str - the extracted map coordinate. """ return record[1] def convert_coordinate(coordinate): """Split the given coordinate into tuple containing its individual components. :param coordinate: str - a string map coordinate :return: tuple - the string coordinate split into its individual components. """ return (coordinate[0], coordinate[1]) def compare_records(azara_record, rui_record): """Compare two record types and determine if their coordinates match. :param azara_record: tuple - a (treasure, coordinate) pair. :param rui_record: tuple - a (location, tuple(coordinate_1, coordinate_2), quadrant) trio. :return: bool - do the coordinates match? """ azara_converted_coordinate: tuple = convert_coordinate(azara_record[1]) rui_coordinate: tuple = rui_record[1] return azara_converted_coordinate == rui_coordinate def create_record(azara_record, rui_record): """Combine the two record types (if possible) and create a combined record group. :param azara_record: tuple - a (treasure, coordinate) pair. :param rui_record: tuple - a (location, coordinate, quadrant) trio. :return: tuple or str - the combined record (if compatible), or the string "not a match" (if incompatible). """ if compare_records(azara_record, rui_record): return azara_record + rui_record return "not a match" def clean_up(combined_record_group): """Clean up a combined record group into a multi-line string of single records. :param combined_record_group: tuple - everything from both participants. :return: str - everything "cleaned", excess coordinates and information are removed. The return statement should be a multi-lined string with items separated by newlines. (see HINTS.md for an example). """ # azara_record[0] + rui_record[0] + rui_record[1] + rui_record[2] cleaned_string: str = "" for data in combined_record_group: cleaned_string += f"('{data[0]}', '{data[2]}', {data[3]}, '{data[4]}')\n" return cleaned_string