MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / execute

Method execute

lib/sqlalchemy/orm/unitofwork.py:519–552  ·  view source on GitHub ↗
(self, uow)

Source from the content-addressed store, hash-verified

517 self.setup_flush_actions = False
518
519 def execute(self, uow):
520 delete_states = set()
521 save_states = set()
522
523 for mapper in self._mappers(uow):
524 for state in uow.mappers[mapper].difference(self.processed):
525 isdelete, listonly = uow.states[state]
526 if not listonly:
527 if isdelete:
528 delete_states.add(state)
529 else:
530 save_states.add(state)
531
532 if delete_states:
533 self.dependency_processor.presort_deletes(uow, delete_states)
534 self.processed.update(delete_states)
535 if save_states:
536 self.dependency_processor.presort_saves(uow, save_states)
537 self.processed.update(save_states)
538
539 if delete_states or save_states:
540 if not self.setup_flush_actions and (
541 self.dependency_processor.prop_has_changes(
542 uow, delete_states, True
543 )
544 or self.dependency_processor.prop_has_changes(
545 uow, save_states, False
546 )
547 ):
548 self.dependency_processor.per_property_flush_actions(uow)
549 self.setup_flush_actions = True
550 return True
551 else:
552 return False
553
554
555class _PostSortRec:

Callers

nothing calls this directly

Calls 8

_mappersMethod · 0.80
differenceMethod · 0.45
addMethod · 0.45
presort_deletesMethod · 0.45
updateMethod · 0.45
presort_savesMethod · 0.45
prop_has_changesMethod · 0.45

Tested by

no test coverage detected