in cfn_policy_validator/parsers/utils/topological_sorter.py [0:0]
def __inner_sort(self, resource_name, resource_value):
self.visited_resource_names.append(resource_name)
visitor = ResourceVisitor(resource_name, resource_value, self.resources)
# we need to create a starting node for the crawler to perform a DFS on the tree and call ResourceVisitor
# on each visited node
parent = CloudFormationNode("Resources", self.resources)
resource = CloudFormationNode(resource_name, resource_value, parent=parent, visitors=[visitor])
resource.visit_children()
node = visitor.get_node()
for dependency_name in node.depends_on:
if dependency_name not in self.visited_resource_names:
dependent_resource_value = self.resources[dependency_name]
self.__inner_sort(dependency_name, dependent_resource_value)
self.sorted_resources.append(node)