The main distinguishing factor for this project is that it can retrieve entire sections of a graph with far fewer queries than most other packages. The trade off is portability: it uses Postgres' Common Table Expressions (CTE) to achieve this and is therefore not compatible with other databases.
NOTE: Not all methods which would benefit from CTEs use them yet. This project is a work in progress. Again, this project is a work in progress. While functional, it is not yet fully optimized.
The primary purpose of this package is to build and manipulate DAGs. If you are looking for graph analysis or visualization, this is not the right package.
Currently, django-postgresql-dag provides numerous methods for retrieving nodes, and a few for retrieving edges within the graph. In-progress are filters within the CTEs in order to limit the area of the graph to be searched, ability to easily export to NetworkX, and other improvements and utilities.
pip install django-postgresql-dag
With optional dependencies for using transformations:
pip install django-postgresql-dag[transforms]
See the checklists in issues to understand the future goals of this project.