Como classificar com base nas dependências?

Tenho uma classe que possui uma lista de "dependências" apontando para outras classes do mesmo tipo bas

class Foo(Base):
    dependencies = []

class Bar(Base):
    dependencies = [Foo]

class Baz(Base):
    dependencies = [Bar]

Gostaria de classificar as instâncias que essas classes geram com base em suas dependências. No meu exemplo, eu esperaria que instâncias do Foo viessem primeiro, depois Bar e Ba

Qual é a melhor maneira de resolver isso?

questionAnswers(4)

yourAnswerToTheQuestion