MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / presort_deletes

Method presort_deletes

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

Source from the content-addressed store, hash-verified

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