def __init__(cls, name, bases, members):
        # The sole purpose of this metaclass right now is to add the same
        # data.deleter to all HDUs with a data property.
        # It's unfortunate, but there's otherwise no straightforward way
        # that a property can inherit setters/deleters of the property of the
        # same name on base classes
        if members in 'data':
            data_prop = members['data']
            if (isinstance(data_prop, (lazyproperty, property)) and
                    data_prop._fdel is None):
                # Don't do anything if the class has already explicitly
                # set the deleter for its data property
                def data(self):
                    # The deleter
                    if self._file is not None and self._data_loaded:
                        data_refcount = sys.getrefcount(self.data)
                        # Manually delete *now* so that FITS_rec.__del__
                        # cleanup can happen if applicable
                        del self.__dict__['data']
                        # Don't even do this unless the *only* reference to the
                        # .data array was the one we're deleting by deleting
                        # this attribute; if any other references to the array
                        # are hanging around (perhaps the user ran ``data =
                        # hdu.data``) don't even consider this:
                        if data_refcount == 2:
                            self._file._maybe_close_mmap()

                setattr(cls, 'data', data_prop.deleter(data))


# TODO: Come up with a better __repr__ for HDUs (and for HDULists, for that
# matter)
dataset/ETHPy150Open spacetelescope/PyFITS/pyfits/hdu/base.py/_BaseHDUMeta.__init__/swapped operands of `in`