INNER CODE UNIT · Python
argv_for
WMAL/kodachios · Kodachi-OS-10-stable/open/dock/lib/kodachi_direct.py:561
def argv_for(self, binding, parameters=None):
values = dict(parameters or {})
descriptors = {item["name"]: item for item in binding["parameters"]}
allowed = set(descriptors)
unexpected = sorted(set(values) - allowed)
if unexpected:
raise DirectContractError(
"unexpected typed parameter(s): " + ", ".join(unexpected)
)
argv = []
for token in binding["argv"]:
if token.startswith("{") and token.endswith("}") and token.count("{") == 1:
name = token[1:-1]
value = values.get(name)
if not isinstance(value, str) or not value:
raise DirectContractError(f"required typed parameter {name!r} is absent")
if any(ord(character) < 32 or ord(character) == 127
for character in value):