126 lines
2.3 KiB
Python
126 lines
2.3 KiB
Python
_conf_data = None
|
|
|
|
|
|
def conf_schema(
|
|
):
|
|
return {
|
|
"type": "object",
|
|
"properties": {
|
|
"url": {
|
|
"type": "object",
|
|
"properties": {
|
|
},
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"properties": {
|
|
"scheme": {
|
|
"type": "string",
|
|
},
|
|
"host": {
|
|
"type": "string",
|
|
},
|
|
"port": {
|
|
"type": "number",
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
},
|
|
},
|
|
"additionalProperties": False,
|
|
"required": [
|
|
"host",
|
|
]
|
|
},
|
|
"required": [
|
|
]
|
|
},
|
|
"environment": {
|
|
"type": "string",
|
|
},
|
|
"account": {
|
|
"type": "object",
|
|
"properties": {
|
|
"username": {
|
|
"type": "string",
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
},
|
|
},
|
|
"additionalProperties": False,
|
|
"required": [
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": False,
|
|
"required": [
|
|
],
|
|
}
|
|
|
|
|
|
def conf_load(
|
|
path : str
|
|
):
|
|
global _conf_data
|
|
if (not _os.path.exists(path)):
|
|
pass
|
|
else:
|
|
conf_data_raw = _json.loads(file_read(path))
|
|
for pair in conf_data_raw.get("url", {}).items():
|
|
if ("host" in pair[1]):
|
|
pass
|
|
else:
|
|
raise ValueError("flawed conf: missing mandatory value 'host' for url entry '%s'" % pair[0])
|
|
_conf_data = {
|
|
"url": convey(
|
|
(
|
|
{
|
|
"test": {
|
|
"scheme": "https",
|
|
"host": "api.ote.domrobot.com",
|
|
"port": 443,
|
|
"path": "jsonrpc/"
|
|
},
|
|
"production": {
|
|
"scheme": "https",
|
|
"host": "api.domrobot.com",
|
|
"port": 443,
|
|
"path": "jsonrpc/"
|
|
}
|
|
}
|
|
|
|
|
conf_data_raw.get("url", {})
|
|
),
|
|
[
|
|
lambda x: x.items(),
|
|
lambda pairs: map(
|
|
lambda pair: (
|
|
pair[0],
|
|
{
|
|
"scheme": pair[1].get("scheme", "https"),
|
|
"host": pair[1]["host"],
|
|
"port": pair[1].get("port", 443),
|
|
"path": pair[1].get("path", "jsonrpc/"),
|
|
}
|
|
),
|
|
pairs
|
|
),
|
|
dict,
|
|
]
|
|
),
|
|
"environment": conf_data_raw.get("environment", "production"),
|
|
"account": {
|
|
"username": conf_data_raw.get("account", {}).get("username", None),
|
|
"password": conf_data_raw.get("account", {}).get("password", None),
|
|
}
|
|
}
|
|
print(_json.dumps(_conf_data, indent = "\t"))
|
|
|
|
|
|
def conf_get(
|
|
path : str
|
|
):
|
|
global _conf_data
|
|
return path_read(_conf_data, path.split("."))
|
|
|