csvpath.managers.results.readers.file_lines_reader
1import os 2import csv 3from abc import ABC, abstractmethod 4from .readers import LinesReader 5from csvpath.util.line_spooler import LineSpooler, CsvLineSpooler 6from typing import NewType 7 8 9FileContent = NewType("FileContent", list[list[str]] | LineSpooler) 10 11 12class FileLinesReader(LinesReader): 13 def __init__(self) -> None: 14 super().__init__() 15 self._lines: LineSpooler = None 16 17 @property 18 def lines(self) -> FileContent: 19 if self.result is None: 20 raise Exception("Result cannot be None") 21 if self._lines is None: 22 self._lines = CsvLineSpooler(self.result) 23 return self._lines
FileContent =
FileContent
13class FileLinesReader(LinesReader): 14 def __init__(self) -> None: 15 super().__init__() 16 self._lines: LineSpooler = None 17 18 @property 19 def lines(self) -> FileContent: 20 if self.result is None: 21 raise Exception("Result cannot be None") 22 if self._lines is None: 23 self._lines = CsvLineSpooler(self.result) 24 return self._lines
Helper class that provides a standard way to create an ABC using inheritance.
lines: FileContent