MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / presort_deletes

Method presort_deletes

lib/sqlalchemy/orm/dependency.py:742–764  ·  view source on GitHub ↗
(self, uowcommit, states)

Source from the content-addressed store, hash-verified

740 uow.dependencies.update([(delete_parent, child_action)])
741
742 def presort_deletes(self, uowcommit, states):
743 if self.cascade.delete or self.cascade.delete_orphan:
744 for state in states:
745 history = uowcommit.get_attribute_history(
746 state, self.key, self._passive_delete_flag
747 )
748 if history:
749 if self.cascade.delete_orphan:
750 todelete = history.sum()
751 else:
752 todelete = history.non_deleted()
753 for child in todelete:
754 if child is None:
755 continue
756 uowcommit.register_object(
757 child,
758 isdelete=True,
759 operation="delete",
760 prop=self.prop,
761 )
762 t = self.mapper.cascade_iterator("delete", child)
763 for c, m, st_, dct_ in t:
764 uowcommit.register_object(st_, isdelete=True)
765
766 def presort_saves(self, uowcommit, states):
767 for state in states:

Callers

nothing calls this directly

Calls 5

get_attribute_historyMethod · 0.80
non_deletedMethod · 0.80
register_objectMethod · 0.80
sumMethod · 0.45
cascade_iteratorMethod · 0.45

Tested by

no test coverage detected