Removing duplicate file references from history
The group_by_size function has multiple responsibilities:


Group files by size
Verify file
Modify attributes of the class (self.files, self.spreadsheet_reader.main_row_dict)


It would be better to reorganize your code so that each function has a single responsibility.



There is some code duplication here that could be improved:


if grouped_by_size.get(size):
    grouped_by_size[size].append(fileid)
else:
    grouped_by_size[size]=[]
    grouped_by_size[size].append(fileid)



Like this:

files = grouped_by_size.get(size)
if files is None:
    files = []
    grouped_by_size[size] = files
files.append(fileid)