0
0
Fork 0
mirror of https://github.com/netdata/netdata.git synced 2025-05-16 06:11:38 +00:00
netdata_netdata/collectors/python.d.plugin/python_modules/bases/loaders.py
Ilya Mashchenko 56336f5acf
py stuff: change l2isbad to ilyam8 ()
* change l2isbad to ilyam8

* change l2isbad to ilyam8
2019-03-21 12:35:44 +03:00

46 lines
1 KiB
Python

# -*- coding: utf-8 -*-
# Description:
# Author: Ilya Mashchenko (ilyam8)
# SPDX-License-Identifier: GPL-3.0-or-later
from sys import version_info
PY_VERSION = version_info[:2]
try:
if PY_VERSION > (3, 1):
from pyyaml3 import SafeLoader as YamlSafeLoader
else:
from pyyaml2 import SafeLoader as YamlSafeLoader
except ImportError:
from yaml import SafeLoader as YamlSafeLoader
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))
YamlSafeLoader.add_constructor(DEFAULT_MAPPING_TAG, dict_constructor)
def load_yaml(stream):
loader = YamlSafeLoader(stream)
try:
return loader.get_single_data()
finally:
loader.dispose()
def load_config(file_name):
with open(file_name, 'r') as stream:
return load_yaml(stream)