summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-05-01 12:46:35 +0200
committerDanilo M. <danix@danix.xyz>2026-05-01 12:46:35 +0200
commitaec3c628fb6196dd2d3cbfba84fe70a66c727833 (patch)
tree4c323091c89c0f224f6019d9b3f808fa2a1539de /core
parent5d59ab205cb00e1dc2abd242ccf93a7006c7b18f (diff)
downloadpublisher-aec3c628fb6196dd2d3cbfba84fe70a66c727833.tar.gz
publisher-aec3c628fb6196dd2d3cbfba84fe70a66c727833.zip
fix: clean up config module - remove self-import pattern, pass path explicitly in tests
Diffstat (limited to 'core')
-rw-r--r--core/config.py19
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)),
)