in rostran/core/properties.py [0:0]
def get_depends_on_set(self) -> set:
depends_on_set = set()
def resolve_depends_on(val):
if isinstance(val, dict):
if len(val) == 1:
ref_value = val.get("Ref")
if ref_value and isinstance(ref_value, str):
depends_on_set.add(ref_value)
get_value = val.get("Fn::GetAtt")
if (
get_value
and isinstance(get_value, list)
and len(get_value) >= 2
):
name = get_value[0]
if isinstance(name, str):
depends_on_set.add(name)
else:
for v in val.values():
resolve_depends_on(v)
elif isinstance(val, list):
for v in val:
resolve_depends_on(v)
resolve_depends_on(self.value)
return depends_on_set