INNER CODE UNIT · Python
datatree
terraform-aws-modules/terraform-aws-lambda · package.py:173
def datatree(name, **fields):
def decode_json(k, v):
if v and isinstance(v, str) and v[0] in '"[{':
try:
o = json.loads(v)
if isinstance(o, dict):
return dataclass(k)(**o)
return o
except json.JSONDecodeError:
pass
return v
return dataclass(name)(
**dict(
(
(k, datatree(k, **v) if isinstance(v, dict) else decode_json(k, v))
for k, v in fields.items()
)