'Context manager to save an instance without syncing cells.
Temporarily disables the cells syncing logic, if enabled.  This should
only be used when saving an instance that has been passed down/up from
another cell in order to avoid passing it back to the originator to be
re-saved.'

@contextlib.contextmanager
def skip_cells_sync(self):

    cn_changed = ('cell_name' in self.obj_what_changed())
    if ((not self.obj_attr_is_set('cell_name')) or (self.cell_name is None)):
        self.cell_name = ''
    self.cell_name = ('%s%s' % (cells_utils.BLOCK_SYNC_FLAG, self.cell_name))
    if (not cn_changed):
        self.obj_reset_changes(['cell_name'])
    try:
        (yield)
    finally:
        self._normalize_cell_name()
