40 lines
1004 B
Python
40 lines
1004 B
Python
from __future__ import unicode_literals
|
|
|
|
import errno
|
|
import os
|
|
|
|
import yaml
|
|
|
|
|
|
def read_configuration_file(path):
|
|
try:
|
|
with open(path) as file_object:
|
|
file_object.seek(0, os.SEEK_END)
|
|
if file_object.tell():
|
|
file_object.seek(0)
|
|
try:
|
|
return yaml.safe_load(file_object)
|
|
except yaml.YAMLError as exception:
|
|
exit(
|
|
'Error loading configuration file: {}; {}'.format(
|
|
path, exception
|
|
)
|
|
)
|
|
except IOError as exception:
|
|
if exception.errno == errno.ENOENT:
|
|
pass
|
|
else:
|
|
raise
|
|
|
|
|
|
def yaml_loads(data, error_message=None):
|
|
if not error_message:
|
|
error_message = 'Error loading: {}; {}'
|
|
|
|
try:
|
|
return yaml.safe_load(data)
|
|
except yaml.YAMLError as exception:
|
|
exit(
|
|
error_message.format(data, exception)
|
|
)
|