From 17c6b9e31f9910c30ac660476e7bed8103f3935e Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Fri, 16 Nov 2018 06:54:27 +0300 Subject: meta, refactoring --- kvmd/application.py | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) (limited to 'kvmd/application.py') 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="") 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 -- cgit v1.2.3