habitmove/src/habitmove/parser.py

33 lines
931 B
Python
Raw Normal View History

2021-12-16 12:11:49 +00:00
from __future__ import annotations
2021-12-24 21:34:49 +00:00
from pathlib import Path
2021-12-16 12:11:49 +00:00
from habitmove.nomiedata import Event, ImportData, Tracker
class Parser:
2021-12-24 21:34:49 +00:00
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"""
2021-12-24 21:34:49 +00:00
txt = Path(path).read_text()
return cls(data=txt)
def parse(self) -> ImportData:
"""Extract all data from a data set"""
2021-12-16 12:11:49 +00:00
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