Как сортировать по зависимости?

У меня есть класс, который имеет список «зависимостей», указывающих на другие классы того же базового типа.

class Foo(Base):
    dependencies = []

class Bar(Base):
    dependencies = [Foo]

class Baz(Base):
    dependencies = [Bar]

Я хотел бы отсортировать экземпляры, которые эти классы генерируют, основываясь на их зависимостях. В моем примере я ожидал, что сначала появятся экземпляры Foo, затем Bar, а затем Baz.

Как лучше всего это отсортировать?

Ответы на вопрос(2)

Ваш ответ на вопрос