diff options
Diffstat (limited to 'collectors/python.d.plugin/python_modules/bases/loaders.py')
-rw-r--r-- | collectors/python.d.plugin/python_modules/bases/loaders.py | 57 |
1 files changed, 10 insertions, 47 deletions
diff --git a/collectors/python.d.plugin/python_modules/bases/loaders.py b/collectors/python.d.plugin/python_modules/bases/loaders.py index 9eb268ce7..d8b2ec815 100644 --- a/collectors/python.d.plugin/python_modules/bases/loaders.py +++ b/collectors/python.d.plugin/python_modules/bases/loaders.py @@ -3,7 +3,6 @@ # Author: Ilya Mashchenko (l2isbad) # SPDX-License-Identifier: GPL-3.0-or-later -import types from sys import version_info @@ -18,24 +17,23 @@ except ImportError: from yaml import SafeLoader as YamlSafeLoader -if PY_VERSION > (3, 1): - from importlib.machinery import SourceFileLoader - DEFAULT_MAPPING_TAG = 'tag:yaml.org,2002:map' -else: - from imp import load_source as SourceFileLoader - DEFAULT_MAPPING_TAG = u'tag:yaml.org,2002:map' - try: from collections import OrderedDict except ImportError: from third_party.ordereddict import OrderedDict +DEFAULT_MAPPING_TAG = 'tag:yaml.org,2002:map' if PY_VERSION > (3, 1) else u'tag:yaml.org,2002:map' + + def dict_constructor(loader, node): return OrderedDict(loader.construct_pairs(node)) -def safe_load(stream): +YamlSafeLoader.add_constructor(DEFAULT_MAPPING_TAG, dict_constructor) + + +def load_yaml(stream): loader = YamlSafeLoader(stream) try: return loader.get_single_data() @@ -43,41 +41,6 @@ def safe_load(stream): loader.dispose() -YamlSafeLoader.add_constructor(DEFAULT_MAPPING_TAG, dict_constructor) - - -class YamlOrderedLoader: - @staticmethod - def load_config_from_file(file_name): - opened, loaded = False, False - try: - stream = open(file_name, 'r') - opened = True - loader = YamlSafeLoader(stream) - loaded = True - parsed = loader.get_single_data() or dict() - except Exception as error: - return dict(), error - else: - return parsed, None - finally: - if opened: - stream.close() - if loaded: - loader.dispose() - - -class SourceLoader: - @staticmethod - def load_module_from_file(name, path): - try: - loaded = SourceFileLoader(name, path) - if isinstance(loaded, types.ModuleType): - return loaded, None - return loaded.load_module(), None - except Exception as error: - return None, error - - -class ModuleAndConfigLoader(YamlOrderedLoader, SourceLoader): - pass +def load_config(file_name): + with open(file_name, 'r') as stream: + return load_yaml(stream) |