from pathlib import Path from lxml import etree from functools import cached_property from arguments import ArgumentsParser class Config: def __init__(self, basepath: Path) -> None: self.basepath = basepath self.config = ArgumentsParser().parser.config @cached_property def root(self) -> etree.ElementTree: return etree.parse(self.basepath / self.config) @cached_property def app_root(self) -> etree.Element: return self.root.xpath('/cpuGovernorAutoAdjust').pop() @cached_property def loglevel(self) -> str: return self.app_root.xpath('logLevel').pop().text