diff --git a/src/unisync/config.py b/src/unisync/config.py index 4e1bf2f..3294807 100644 --- a/src/unisync/config.py +++ b/src/unisync/config.py @@ -7,16 +7,18 @@ from pathlib import Path import ipaddress import configparser +from unisync.defaults import * + @dataclass class ServerConfig: """ Dataclass keeping the config for connecting to the server """ user: str - sshargs: str = "" - hostname: str = "" - ip: str = "" - port: int = 22 + sshargs: str + hostname: str + ip: str + port: int def __post_init__(self): """ @@ -44,15 +46,15 @@ class UnisonConfig: """ Dataclass keeping unison specific configurations """ - bools: list = field(default_factory=list) - values: dict = field(default_factory=dict) + bools: list + values: dict @dataclass class OtherConfig: """ Dataclass keeping miscellanous configuration options """ - cache_dir_path: Path = Path("~/.unisync").expanduser() + cache_dir_path: Path @dataclass class Config: @@ -62,7 +64,7 @@ class Config: server: ServerConfig roots: RootsConfig unison: UnisonConfig - other: OtherConfig = field(default_factory=OtherConfig) + other: OtherConfig def load_config(config_path:str) -> Config: @@ -83,13 +85,13 @@ def load_config(config_path:str) -> Config: server_config = ServerConfig( config.get(server_section, "user"), - config.get(server_section, "sshargs", fallback=""), - config.get(server_section, "hostname", fallback=""), - config.get(server_section, "ip", fallback=""), - config.getint(server_section, "port", fallback=22) + config.get(server_section, "sshargs", fallback=DEFAULT_SERVER_SSHARGS), + config.get(server_section, "hostname", fallback=DEFAULT_SERVER_HOSTNAME), + config.get(server_section, "ip", fallback=DEFAULT_SERVER_IP), + config.getint(server_section, "port", fallback=DEFAULT_SERVER_PORT) ) roots_config = RootsConfig( - config.get(roots_section, "local"), + config.get(roots_section, "local", fallback=DEFAULT_ROOTS_LOCAL), config.get(roots_section, "remote") ) other_config = OtherConfig(