¿Cómo ordenar según las dependencias?

Tengo una clase que tiene una lista de "dependencias" que apunta a otras clases del mismo tipo base.

class Foo(Base):
    dependencies = []

class Bar(Base):
    dependencies = [Foo]

class Baz(Base):
    dependencies = [Bar]

Me gustaría ordenar las instancias que generan estas clases en función de sus dependencias. En mi ejemplo, esperaría que las instancias de Foo vinieran primero, luego Bar, luego Baz.

¿Cuál es la mejor manera de solucionar esto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta