

@classmethod
def _session_flush(cls, session, flush_context, instances):
    for obj in session.deleted:
        class_ = obj.__class__
        tracked_columns = cls.mapped_entities.get(class_, tuple())
        for col in tracked_columns:
            value = getattr(flush_context, col)
            if (value is not None):
                session._depot_old = getattr(session, '_depot_old', set())
                session._depot_old.update(value.files)
    for obj in session.new.union(session.dirty):
        class_ = obj.__class__
        tracked_columns = cls.mapped_entities.get(class_, tuple())
        for col in tracked_columns:
            history = get_history(obj, col)
            added_files = itertools.chain(*(f.files for f in history.added if (f is not None)))
            deleted_files = itertools.chain(*(f.files for f in history.deleted if (f is not None)))
            session._depot_new = getattr(session, '_depot_new', set())
            session._depot_new.update(added_files)
            session._depot_old = getattr(session, '_depot_old', set())
            session._depot_old.update(deleted_files)

dataset/ETHPy150Open amol-/depot/depot/fields/sqlalchemy.py _SQLAMutationTracker._session_flush/VarMisuse@60/74 `obj`->`flush_context`