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

Method execute

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

Source from the content-addressed store, hash-verified

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