Hi there,
In SA 0.4.6 I get the following failure when attempting to merge an
object that contains a ComparableProperty:
> ....
> prop.merge(self, instance, merged, dont_load, _recursive)
> TypeError: merge() takes exactly 4 arguments (6 given)
Is this something I am doing wrong or a bug?
ta,
Martin
---------------
import sqlalchemy
from sqlalchemy import Column, Table, types
from sqlalchemy.orm import relation, comparable_property
from sqlalchemy.orm.interfaces import PropComparator
engine = sqlalchemy.create_engine('sqlite:///', echo=False)
metadata = sqlalchemy.MetaData()
metadata.bind = engine
Session =
sqlalchemy.orm.scoped_session(sqlalchemy.orm.sessionmaker(autoflush=True,
transactional=True, bind=engine))
mapper = Session.mapper
class PolymorphicProperty(object):
class Comparator(PropComparator):
def __eq__(self, other):
return self._value == other._value
def __init__(self, key=None, value=None):
self.key = key
self.value = value
def _getValue(self):
return self._value
def _setValue(self, value):
setattr(self, '_value', value)
value = property(_getValue, _setValue)
def __str__(self):
return '<%s:%s %s=%s>' % (self.__class__.__name__, self.id,
self.key, self.value)
table = Table('polymorphicProperties', metadata,
Column('id', types.Integer, primary_key=True),
Column('key', types.String(20), nullable=False,
default='keyword'),
Column('_value', types.Text, default=None),
)
mapper(PolymorphicProperty,
table,
properties={
'value':
comparable_property(PolymorphicProperty.Comparator,
PolymorphicProperty.value),
}
)
metadata.create_all(engine)
sess = Session()
sess.begin()
prop = PolymorphicProperty(key='name', value='Bob')
sess.commit()
print prop
sess.expunge(prop)
Session.remove()
sess = Session()
# This Fails
sess.merge(prop)
Session.remove()
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---