Source code for peek_plugin_base.PluginPackageFileConfig

import logging
import os

from jsoncfg.config_classes import ConfigNode
from jsoncfg.functions import load_config

logger = logging.getLogger(__name__)


[docs]class PluginPackageFileConfig(object): """ This class helps with accessing the config for the plugin_package.json """ def __init__(self, pluginRootDir: str): """ Constructor :param pluginRootDir: The root directory of this package, where plugin_package.json lives. """ self._pluginRoot = pluginRootDir if not os.path.isdir(self._pluginRoot): raise NotADirectoryError(self._pluginRoot) self._configFilePath = os.path.join(pluginRootDir, "plugin_package.json") if not os.path.isfile(self._configFilePath): assert not os.path.exists(self._configFilePath) with open(self._configFilePath, "w") as fobj: fobj.write("{}") self._cfg = load_config(self._configFilePath) @property def config(self) -> ConfigNode: """Config :return: The jsoncfg config object, for accessing and saving the config. """ return self._cfg