habitmove/src/habitmove/parser.py

33 lines
931 B
Python

from __future__ import annotations
from pathlib import Path
from habitmove.nomiedata import Event, ImportData, Tracker
class Parser:
def __init__(self, data="") -> None:
"""Load a data set and prepare parser data"""
self.data = data
@classmethod
def from_file(cls, path: str) -> Parser:
"""Load in a data set"""
txt = Path(path).read_text()
return cls(data=txt)
def parse(self) -> ImportData:
"""Extract all data from a data set"""
raise NotImplementedError
def extract_version(self) -> str:
"""Extract import dataset version from the data set"""
raise NotImplementedError
def extract_trackers(self) -> list[Tracker]:
"""Extract trackers from the data set"""
raise NotImplementedError
def extract_events(self) -> list[Event]:
"""Extract events from the data set"""
raise NotImplementedError