'Parameters
data : iterable[tuple[int, pandas.DataFrame or bcolz.ctable]]
The data chunks to write. Each chunk should be a tuple of sid
and the data for that asset.
assets : set[int], optional
The assets that should be in ``data``. If this is provided
we will check ``data`` against the assets and provide better
progress information.
show_progress : bool, optional
Whether or not to show a progress bar while writing.
invalid_data_behavior : {\'warn\', \'raise\', \'ignore\'}, optional
What to do when data is encountered that is outside the range of
a uint32.
Returns
table : bcolz.ctable
The newly-written table.'

def write(self, data, assets=None, show_progress=False, invalid_data_behavior='warn'):

    ctx = maybe_show_progress(((sid, self.to_ctable(df, invalid_data_behavior)) for (sid, df) in data), show_progress=show_progress, item_show_func=self.progress_bar_item_show_func, label=self.progress_bar_message, length=(len(assets) if (assets is not None) else None))
    with ctx as it:
        return self._write_internal(it, assets)
