def get_depends_on_set()

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