import logging from io import TextIOWrapper from utilsv2.log import logger logger = logging.getLogger(__name__) def read_file(fname: str) -> TextIOWrapper | OSError: try: fp = open(fname, "r", newline="\n") return fp except FileNotFoundError: return FileNotFoundError("Nenhum ficheiro encontrado") except PermissionError: return PermissionError("Sem permissões para abrir") def find_events(fp: TextIOWrapper) -> list[tuple[int, int]]: event_indices = [] event_start = -1 idx = 0 for line in fp.read().split("\n"): if event_start == -1: event_start = idx if is_empty(line): event_indices.append((event_start, idx)) event_start = -1 idx += 1 logger.info("Found %d events", len(event_indices)) return event_indices def is_empty(_str: str) -> bool: return len(_str.strip(" ")) == 0 def extract_event(fp: TextIOWrapper, event_bounds: list[tuple[int, int]]): pass def parse(fname: str) -> None: _ret = read_file(fname) if not isinstance(_ret, TextIOWrapper): logger.critical(_ret.__str__()) raise _ret events = find_events(_ret) _ret.seek(0) extract_event(_ret, events)