def _sort_dependencies()

in src/sagemaker_algorithm_toolkit/hyperparameter_validation.py [0:0]


    def _sort_dependencies(self, hyperparameters):
        dependencies_stack = []
        visited = {hp: False for hp in hyperparameters}

        def _visit(name, visited, stack):
            visited[name] = True
            if self.hyperparameters[name].dependencies:
                for dep in self.hyperparameters[name].dependencies:
                    if dep in visited and not visited[dep]:
                        _visit(dep, visited, stack)
            stack.insert(0, name)

        for hp in hyperparameters:
            if not visited[hp]:
                _visit(hp, visited, dependencies_stack)

        return dependencies_stack