core/source/lib.py

78 lines
1.9 KiB
Python
Raw Normal View History

2022-11-29 23:53:14 +01:00
import enum as _enum
import time as _time
def file_read(path):
handle = open(path, "r")
content = handle.read()
handle.close()
return content
def file_write(path, content):
handle = open(path, "w")
handle.write(content)
handle.close()
def string_coin(template, arguments):
result = template
for (key, value, ) in arguments.items():
result = result.replace("{{%s}}" % key, value)
return result
def get_current_timestamp():
return int(round(_time.time(), 0))
def dict_merge(core_dict, mantle_dict, recursive = False):
result_dict = {}
for current_dict in [core_dict, mantle_dict]:
for (key, value, ) in current_dict.items():
if (not (key in result_dict)):
result_dict[key] = value
else:
if (recursive and (type(result_dict[key]) == dict) and (type(value) == dict)):
result_dict[key] = dict_merge(result_dict[key], value)
elif (recursive and (type(result_dict[key]) == list) and (type(value) == list)):
result_dict[key] = (result_dict[key] + value)
else:
result_dict[key] = value
return result_dict
class enum_condition(_enum.Enum):
unknown = 0
ok = 1
warning = 2
critical = 3
def condition_encode(condition):
if (condition == enum_condition.ok):
return "ok"
elif (condition == enum_condition.unknown):
return "unknown"
elif (condition == enum_condition.warning):
return "warning"
elif (condition == enum_condition.critical):
return "critical"
else:
raise ValueError("unhandled condition: %s" % str(condition))
def condition_decode(condition_encoded):
if (condition_encoded == "ok"):
return enum_condition.ok
elif (condition_encoded == "unknown"):
return enum_condition.unknown
elif (condition_encoded == "warning"):
return enum_condition.warning
elif (condition_encoded == "critical"):
return enum_condition.critical
else:
raise ValueError("unhandled encoded condition: %s" % condition_encoded)