in ludwig/utils/algorithms_utils.py [0:0]
def topological_sort_feature_dependencies(features):
# topological sorting of output features for resolving dependencies
dependencies_graph = {}
output_features_dict = {}
for feature in features:
dependencies = []
if 'dependencies' in feature:
dependencies.extend(feature['dependencies'])
if TIED in feature:
dependencies.append(feature[TIED])
dependencies_graph[feature['name']] = dependencies
output_features_dict[feature['name']] = feature
return [output_features_dict[node[0]]
for node in topological_sort(dependencies_graph)]