def refresh(self, session=None, attrs=None): """Refresh this object.""" if not session: session = Session.object_session(self) if not session: session = get_session() session.refresh(self, attrs)
def expire(self, session=None, attrs=None): """Expire this object ().""" if not session: session = Session.object_session(self) if not session: session = get_session() session.expire(self, attrs)
def delete(self, session=None): """Delete this object.""" self.deleted = True self.deleted_at = datetime.datetime.utcnow() if not session: session = Session.object_session(self) if not session: session = get_session() session.delete(self) session.flush()
def save(self, session=None): """Save this object.""" if not session: session = Session.object_session(self) if not session: session = get_session() session.add(self) try: session.flush() except IntegrityError as e: if str(e).endswith('is not unique'): raise DuplicateException(str(e)) else: raise
def _session(context): return context or get_session()