Getting closer to doing aliases correctly, sorry for the merge conflicts :/
parent
d504156123
commit
15b737a5c8
41
verify.py
41
verify.py
|
@ -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
|
Loading…
Reference in New Issue