'Return a 3-tuple for pickling a FITS_rec. Use the super-class
functionality but then add in a tuple of FITS_rec-specific
values that get used in __setstate__.'

def __reduce__(self):

    (reconst_func, reconst_func_args, state) = super(FITS_rec, self).__reduce__()
    column_state = []
    meta = []
    for attrs in ['_converted', '_heapoffset', '_heapsize', '_nfields', '_gap', '_uint', 'parnames', '_coldefs']:
        with suppress(AttributeError):
            if (attrs == '_coldefs'):
                column_state.append(self._coldefs.__deepcopy__(None))
            else:
                column_state.append(getattr(self, attrs))
            meta.append(attrs)
    state = (state + (column_state, meta))
    return (reconst_func, reconst_func_args, state)
