import csv import io from kazimir.Token import FileToken, is_file extensions = ['.csv'] class CSVToken(FileToken): @staticmethod def test(data: str): return is_file(data, extensions) def __init__(self, data) -> None: super().__init__(data=data) self.name = 'csv' self.joinable = False self.build = None async def compile(self): data = await self.build(self.data) f = io.StringIO(data) reader = csv.reader(f, delimiter=',', quotechar='|') headers = next(reader, None) row = lambda xs: '\n'.join([ f'{x}' for x in xs ]) head = '\n'.join([ f'{x}' for x in headers ]) body = '\n'.join([ f'{row(x)}' for x in reader ]) return f''' {head} {body}
'''.strip()