'Overriding sort method'

def sort(self, column, order=Qt.AscendingOrder):

    reverse = (order == Qt.DescendingOrder)
    if (column == 0):
        self.sizes = sort_against(self.sizes, self.keys, reverse)
        self.types = sort_against(self.types, self.keys, reverse)
        try:
            self.keys.sort(reverse=reverse)
        except:
            pass
    elif (column == 1):
        self.keys = sort_against(self.keys, self.types, reverse)
        self.sizes = sort_against(self.sizes, self.types, reverse)
        try:
            self.types.sort(reverse=reverse)
        except:
            pass
    elif (column == 2):
        self.keys = sort_against(self.keys, self.sizes, reverse)
        self.types = sort_against(self.types, self.sizes, reverse)
        try:
            self.sizes.sort(reverse=reverse)
        except:
            pass
    elif (column == 3):
        self.keys = sort_against(self.keys, self.sizes, reverse)
        self.types = sort_against(self.types, self.sizes, reverse)
        try:
            self.sizes.sort(reverse=reverse)
        except:
            pass
    elif (column == 4):
        values = [self._data[key] for key in self.keys]
        self.keys = sort_against(self.keys, values, reverse)
        self.sizes = sort_against(self.sizes, values, reverse)
        self.types = sort_against(self.types, values, reverse)
    self.beginResetModel()
    self.endResetModel()
