I want to pass an instance of the mapped class to a method other than SQLAlchemy (in another process), and I only need the values ββof my attributes. The problem is that the UnboundExecutionError event UnboundExecutionError , every time the method wants to read the attribute value. I understand why this is happening, but I would like to have a solution to this problem.
I only need the values ββof my specific attributes (id, name and dirty in the example) and I do not need the SQLAlchemy overhead in the assignment method.
Class class:
Base = declarative_base() class Record(Base): __tablename__ = 'records' _id = Column('id', Integer, primary_key=True) _name = Column('name', String(50)) _dirty = Column('dirty', Boolean, index=True) @synonym_for('_id') @property def id(self): return self._id @property def name(self): return self._name @name.setter def name(self, value): self._name = value self._dirty = True name = synonym('_name', descriptor=name) @synonym_for('_dirty') @property def dirty(self): return self._dirty
Call example:
... def do_it(self): records = self.query.filter(Record.dirty == True) for record in records: pass_to_other_process(record)
I tried using session.expunge() and copy.copy() , but to no avail.
python sqlalchemy
Manuel faux
source share