diff options
author | Devaev Maxim <[email protected]> | 2018-11-16 06:54:27 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2018-11-16 06:54:27 +0300 |
commit | 17c6b9e31f9910c30ac660476e7bed8103f3935e (patch) | |
tree | a944ac26154930acb31a7d2e725181aaf744dc09 /kvmd/application.py | |
parent | 4294eed14e94fc63a1eb1fb664de0690b1a16bf5 (diff) |
meta, refactoring
Diffstat (limited to 'kvmd/application.py')
-rw-r--r-- | kvmd/application.py | 32 |
1 files changed, 2 insertions, 30 deletions
diff --git a/kvmd/application.py b/kvmd/application.py index 31a57925..3db8d20d 100644 --- a/kvmd/application.py +++ b/kvmd/application.py @@ -1,15 +1,10 @@ -import os import argparse import logging import logging.config from typing import Dict -from typing import IO -from typing import Any -import yaml -import yaml.loader -import yaml.nodes +from .yaml import load_yaml_file # ===== @@ -18,32 +13,9 @@ def init() -> Dict: parser.add_argument("-c", "--config", required=True, metavar="<path>") options = parser.parse_args() - config: Dict = _load_yaml_file(options.config) + config: Dict = load_yaml_file(options.config) logging.captureWarnings(True) logging.config.dictConfig(config["logging"]) return config - - -# ===== -def _load_yaml_file(path: str) -> Any: - with open(path) as yaml_file: - try: - return yaml.load(yaml_file, _YamlLoader) - except Exception: - # Reraise internal exception as standard ValueError and show the incorrect file - raise ValueError("Incorrect YAML syntax in file '{}'".format(path)) - - -class _YamlLoader(yaml.loader.Loader): # pylint: disable=too-many-ancestors - def __init__(self, yaml_file: IO) -> None: - yaml.loader.Loader.__init__(self, yaml_file) - self.__root = os.path.dirname(yaml_file.name) - - def include(self, node: yaml.nodes.Node) -> str: - path = os.path.join(self.__root, self.construct_scalar(node)) # pylint: disable=no-member - return _load_yaml_file(path) - - -_YamlLoader.add_constructor("!include", _YamlLoader.include) # pylint: disable=no-member |