Skip to content

Commit bbf12ca

Browse files
Moved edge-related methods in Node to the end for better organization
1 parent 386423b commit bbf12ca

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

django_postgresql_dag/models.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,34 @@ def leaves(self):
328328
leaves.add(self)
329329
return leaves
330330

331+
def descendants_edges(self):
332+
"""
333+
Returns a queryset of descendants edges
334+
335+
ToDo: Perform topological sort
336+
"""
337+
return edge_model.objects.filter(
338+
parent__in=self.self_and_descendants(),
339+
child__in=self.self_and_descendants(),
340+
)
341+
342+
def ancestors_edges(self):
343+
"""
344+
Returns a queryset of ancestors edges
345+
346+
ToDo: Perform topological sort
347+
"""
348+
return edge_model.objects.filter(
349+
parent__in=self.self_and_ancestors(),
350+
child__in=self.self_and_ancestors(),
351+
)
352+
353+
def clan_edges(self):
354+
"""
355+
Returns a queryset of all edges associated with a given node
356+
"""
357+
return self.ancestors_edges() | self.descendants_edges()
358+
331359
@staticmethod
332360
def circular_checker(parent, child):
333361
if child in parent.self_and_ancestors():

0 commit comments

Comments
 (0)