import configparser from pathlib import Path from ee.tools import mk_parents def load_config(project_dir: Path) -> configparser.ConfigParser: config = configparser.ConfigParser() config_path = project_dir / ".ee" / "config" try: with config_path.open("r") as f: config.read_file(f, source=str(config_path)) except FileNotFoundError: pass return config class Project(object): def __init__(self, project_dir: Path, cfg: configparser.ConfigParser): self.report_dir = project_dir / "ee" / "reports" self.public_dir = project_dir / "ee" self.project_dir = project_dir self._cfg = cfg @property def cfg(self): return self._cfg @classmethod def load(cls): project_dir = Path(".") cfg = load_config(project_dir) return Project(project_dir, cfg) def save(self): path = self.project_dir / ".ee" / "config" mk_parents(path) with (path).open("w") as f: self._cfg.write(f)