Source code for meerkat.mixins.blockable
from meerkat.block.abstract import BlockView
[docs]class BlockableMixin:
def __init__(self, *args, **kwargs):
super(BlockableMixin, self).__init__(*args, **kwargs)
block_class: type = None
[docs] @classmethod
def is_blockable(cls):
return cls.block_class is not None
def _unpack_block_view(self, data):
if isinstance(data, BlockView):
self._block = data.block
self._block_index = data.block_index
data = data.data
else:
block_view: BlockView = self.block_class.from_column_data(data)
self._block, self._block_index = block_view.block, block_view.block_index
return data
def _pack_block_view(self):
return BlockView(block_index=self._block_index, block=self._block)