Getting closer to doing aliases correctly, sorry for the merge conflicts :/

pull/11/head
Nicholas Hope 2022-06-15 22:35:22 -04:00
parent d504156123
commit 15b737a5c8
1 changed files with 32 additions and 9 deletions

View File

@ -1,12 +1,36 @@
def verifyConfig(cfg: dict):
# Do aliases first
aliasErrors = []
aliases = None
if "aliases" in cfg:
aliases = cfg.pop("aliases")
for key, data in aliases.items():
errMessages = validBind(key, data)
if len(errMessages) > 0:
for msg in errMessages:
errors.append("Error in aliases: %s" % (msg))
errors = []
for cclass in cfg:
for key, data in cfg[cclass].items():
# Replace aliases with their expansion
if aliases is not None:
# this no work: fix pls
if "alias" in data:
data["alias"] = aliases
pass
errMessages = validBind(key, data)
if len(errMessages) > 0:
for msg in errMessages:
errors.append("Error in %s: %s" % (cclass, msg))
errors += aliasErrors
if len(errors) > 0:
cfg.update({"errors": errors})
@ -17,15 +41,15 @@ def validBind(key, data) -> list:
if not validKey(key):
ret.append('Invalid key "%s"' % (key))
data, errMsgs = validBindType(data)
data, errMsgs = validBindType(key, data)
if len(errMsgs) > 0:
for msg in errMsgs:
ret.append(msg)
extras = extraFields(data)
extras = data.keys()
if len(extras) > 0:
extrasString = "\n\t".join(extras)
ret.append('Extra fields in "%s":\n\t%s' % (key, extrasString))
ret.append('Unused fields in "%s":\n\t%s' % (key, extrasString))
return ret
@ -39,7 +63,7 @@ def validKey(key):
return False
return True
def validBindType(data: dict) -> (dict, list):
def validBindType(key, data: dict) -> (dict, list):
validType = False
types = [
"impulse",
@ -54,6 +78,9 @@ def validBindType(data: dict) -> (dict, list):
validType = True
data, errMsgs = removeRelaventFields(data, potentialType)
break
if not validType:
errMsgs.append('Key "%s" has no known bind type' % (key))
return data, errMsgs
@ -71,8 +98,4 @@ def removeRelaventFields(data, bindType) -> (dict, list):
if "condition" not in data:
errMsgs.append("Double requires condition to toggle")
return data, errMsgs
def extraFields(data) -> list:
return data.keys()
return data, errMsgs