Source code for meerkat.writers.concat_writer

from meerkat.columns.abstract import AbstractColumn
from meerkat.writers.abstract import AbstractWriter


[docs]class ConcatWriter(AbstractWriter): def __init__( self, output_type: type = AbstractColumn, template: AbstractColumn = None, *args, **kwargs, ): super(ConcatWriter, self).__init__(*args, **kwargs) self.output_type = output_type self.template = template
[docs] def open(self) -> None: self.outputs = []
[docs] def write(self, data, **kwargs) -> None: # convert to Meerkat column if not already if self.template is not None: if isinstance(data, AbstractColumn): data = data.data data = self.template._clone(data=data) elif not isinstance(data, AbstractColumn): data = self.output_type(data) self.outputs.append(data)
[docs] def flush(self): pass
[docs] def close(self, *args, **kwargs): pass
[docs] def finalize(self, *args, **kwargs) -> None: from meerkat.ops.concat import concat return concat(self.outputs)