'Inserts the given row into the matrix.
Missing columns at the end (right) will be filled with the default value.'

def insert(self, i, row, default=None, **kwargs):

    try:
        row = [v for v in row]
    except:
        raise TypeError('Datasheet.insert(x):    x    must    be    list')
    list.insert(self, i, row)
    m = max(((((len(self) > 1) and self._m) or 0), len(row)))
    if (len(row) < m):
        row.extend(([default] * (m - len(row))))
    if (self._m < m):
        for row in self:
            if (len(row) < m):
                row.extend(([default] * (m - len(row))))
    self.__dict__['_m'] = m
