py-dag имеет читаемую реализацию, но довольно глючную.
Код networkx DAG намного более полный, но трудный для понимания. Вот несколько простых примеров nextworkx DAG .
Если вы внедряете DAG в производственный код, вероятно, лучше всего полагаться на networkx. Если вы хотите узнать, как реализовать DAG в Python, ознакомьтесь с исходным кодом networkx.