diff options
Diffstat (limited to 'core')
| -rw-r--r-- | core/config.py | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/core/config.py b/core/config.py index 1f400b4..741dfad 100644 --- a/core/config.py +++ b/core/config.py @@ -1,5 +1,5 @@ from __future__ import annotations -from dataclasses import dataclass +from dataclasses import dataclass, field from pathlib import Path import tomlkit @@ -14,10 +14,7 @@ class Config: def is_complete(self) -> bool: return bool(self.blog_repo) - def save(self, path: Path | None = None) -> None: - import core.config as _mod - if path is None: - path = _mod.DEFAULT_CONFIG_PATH + def save(self, path: Path = DEFAULT_CONFIG_PATH) -> None: path.parent.mkdir(parents=True, exist_ok=True) doc = tomlkit.document() doc.add("blog_repo", self.blog_repo) @@ -26,15 +23,13 @@ class Config: path.write_text(tomlkit.dumps(doc)) @classmethod - def load(cls, path: Path | None = None) -> "Config": - import core.config as _mod - if path is None: - path = _mod.DEFAULT_CONFIG_PATH + def load(cls, path: Path = DEFAULT_CONFIG_PATH) -> "Config": if not path.exists(): return cls() data = tomlkit.loads(path.read_text()) + defaults = cls() return cls( - blog_repo=str(data.get("blog_repo", "")), - transart_script=str(data.get("transart_script", "/home/danix/bin/transart.py")), - typora_bin=str(data.get("typora_bin", "typora")), + blog_repo=str(data.get("blog_repo", defaults.blog_repo)), + transart_script=str(data.get("transart_script", defaults.transart_script)), + typora_bin=str(data.get("typora_bin", defaults.typora_bin)), ) |
