(self, module_or_form_id, uploaded_rows, for_type)
return self._generate_diff(parsed_current_rows, parsed_uploaded_rows)
:param uploaded_rows: dict
        :param for_type: type of sheet, module_and_forms, module, form
        :return: diff generated by ghdiff or None
:param uploaded_rows: dict
        :param for_type: type of sheet, module_and_forms, module, form
        :return: diff generated by ghdiff or None
: param uploaded_rows : dict : param for_type : type of sheet module_and_forms module form : return : diff generated by ghdiff or None
def _compare_sheet(self, module_or_form_id, uploaded_rows, for_type):
        """
        :param uploaded_rows: dict
        :param for_type: type of sheet, module_and_forms, module, form
        :return: diff generated by ghdiff or None
        """
        columns_to_compare = COLUMNS_TO_COMPARE[for_type] + self.lang_cols_to_compare
        header_indices = {
            column_name: self._get_current_header_index(module_or_form_id, column_name)
            for column_name in columns_to_compare
        }
        if None in header_indices.values():
            raise BulkAppTranslationsException(_("Could not find column(s) '{}'").format(
                ", ".join([str(k) for k, v in header_indices.items() if v is None])
            ))

        if module_or_form_id not in self.current_rows:
            return self._missing_module_or_form_diff(for_type)
        if self.lang_prefix + self.app.default_language in self.lang_cols_to_compare:
            current_rows = self._filter_rows(for_type, self.current_rows[module_or_form_id], module_or_form_id)
        else:
            current_rows = self.current_rows[module_or_form_id]

        parsed_current_rows = []
        parsed_uploaded_rows = []
        for current_row in current_rows:
            parsed_current_rows.append(
                [current_row[header_indices[column_name]] for column_name in columns_to_compare]
            )
        for uploaded_row in uploaded_rows:
            parsed_uploaded_rows.append([uploaded_row.get(column_name) for column_name in columns_to_compare])

        return self._generate_diff(parsed_current_rows, parsed_uploaded_rows)
def _compare_sheet ( self , module_or_form_id , uploaded_rows , for_type ) : columns_to_compare = COLUMNS_TO_COMPARE [ for_type ] + self . lang_cols_to_compare header_indices = { column_name : self . _get_current_header_index ( module_or_form_id , column_name ) for column_name in columns_to_compare } if None in header_indices . values ( ) : raise BulkAppTranslationsException ( _ ( "Could not find column(s) '{}'" ) . format ( ", " . join ( [ str ( k ) for k , v in header_indices . items ( ) if v is None ] ) ) ) if module_or_form_id not in self . current_rows : return self . _missing_module_or_form_diff ( for_type ) if self . lang_prefix + self . app . default_language in self . lang_cols_to_compare : current_rows = self . _filter_rows ( for_type , self . current_rows [ module_or_form_id ] , module_or_form_id ) else : current_rows = self . current_rows [ module_or_form_id ] parsed_current_rows = [ ] parsed_uploaded_rows = [ ] for current_row in current_rows : parsed_current_rows . append ( [ current_row [ header_indices [ column_name ] ] for column_name in columns_to_compare ] ) for uploaded_row in uploaded_rows : parsed_uploaded_rows . append ( [ uploaded_row . get ( column_name ) for column_name in columns_to_compare ] ) return self . _generate_diff ( parsed_current_rows , parsed_uploaded_rows )