in src/hpc/autoscale/clilib.py [0:0]
def constraint_type(c: Union[str, List[str]]) -> str:
assert isinstance(c, str)
try:
return json.dumps(json.loads(c))
except Exception:
...
try:
key, value_expr = c.split("=", 1)
values = [x.strip() for x in value_expr.split(",")]
values_converted = []
for v in values:
converted: Union[int, float, bool, str, None] = v
if v.startswith('"') and v.endswith('"'):
converted = v.lstrip('"').rstrip('"')
elif v.lower() in ["true", "false"]:
converted = v.lower() == "true"
else:
try:
converted = int(v)
except Exception:
try:
converted = float(v)
except Exception:
...
if v == "null":
converted = None
values_converted.append(converted)
if len(values_converted) == 1:
return json.dumps({key: values_converted[0]})
return json.dumps({key: values_converted})
except Exception as e:
_print(str(e))
raise