Python 3.9+graphlibпонятие
graphlib
модуль
Топологическая сортировка графа зависимостей: в каком порядке выполнять задачи, чтобы каждая шла после своих предпосылок.
Синтаксис
from graphlib import TopologicalSorter
graphlib содержит один класс, TopologicalSorter, и решает одну задачу: упорядочить узлы по зависимостям — сборка, миграции, порядок установки. Кратчайших путей и обходов графа в нём нет, их пишут сами или берут сторонние библиотеки. Граф задаётся словарём «узел → его предшественники», а не наследники, и путаница в направлении переворачивает порядок; цикл даёт CycleError.
Примеры
from graphlib import TopologicalSorter
deps = {'app': {'db', 'cache'}, 'db': {'config'}, 'cache': {'config'}}
order = list(TopologicalSorter(deps).static_order())
print(order[0], order[-1]) # → config app
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности