def _GetDisplayAndSortTuples(self, data):

        (display_tuple, sort_tuple) = self._data_to_tuples_func(data)

        better_sort = []

        for item in sort_tuple:

            if isinstance(item, str):

                item = HydrusData.HumanTextSortKey(item)

            better_sort.append(item)

        sort_tuple = tuple(better_sort)

        return (display_tuple, sort_tuple)
    def _GetDisplayAndSortTuples(self, data):

        try:

            (display_tuple, sort_tuple) = self._data_to_tuples_func(data)

        except Exception as e:

            if not self._have_shown_a_column_data_error:

                HydrusData.ShowText(
                    'A multi-column list was unable to generate text or sort data for one or more rows! Please send hydrus dev the traceback!'
                )
                HydrusData.ShowException(e)

                self._have_shown_a_column_data_error = True

            error_display_tuple = [
                'unable to display'
                for i in range(self._column_list_status.GetColumnCount())
            ]

            return (error_display_tuple, None)

        better_sort = []

        for item in sort_tuple:

            if isinstance(item, str):

                item = HydrusData.HumanTextSortKey(item)

            better_sort.append(item)

        sort_tuple = tuple(better_sort)

        return (display_tuple, sort_tuple)