Source code for mc_plugin_helper.config

"""Module for parse and interact with config."""

from __future__ import annotations

from configparser import ConfigParser
from os import path


[docs]class Config: """Class for config. Attributes: config: Main config object. config_path: Path to config, default "~/.mc-plugin-helper.ini". """ def __init__(self) -> None: """__init__ method.""" self.config = ConfigParser() self.config_path = path.join(path.expanduser("~"), ".mc-plugin-helper.ini")
[docs] @classmethod def init(cls) -> Config: """Class-method for checking, if config already exist. Returns: Class instance. """ instance = cls() if path.exists(instance.config_path): instance.config.read(instance.config_path) else: instance.create() return instance
[docs] def create(self) -> None: """Create a new config.""" self.config["config"] = { # Currently, supporting local files. # In plans also support FTP and SFTP "protocol": "LOCAL", "plugins-path": "./", } self.config["remote-data"] = { "host": "localhost", "port": "5432", "user": "root", "password": "password", } self.update_config()
[docs] def update_config(self) -> None: """Write in file configuration from `self.config`.""" with open(self.config_path, "w") as config_file: self.config.write(config_file)
config = Config.init().config