Yeet everything, rebuild from scratch poggies!
This commit is contained in:
52
utilsv2/parser.py
Normal file
52
utilsv2/parser.py
Normal file
@@ -0,0 +1,52 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user