- move the update_wrapper to synonym for now, we can't assume the return value of hybrid.expr is an updateable wrapper
def __get__(self, instance, owner):
if instance is None:
- return util.update_wrapper(self.expr(owner), self)
+ return self.expr(owner)
else:
return self.fget(instance)
# interesting....
return self
-
-
-
\ No newline at end of file
+
+def hybrid_and(self):
+ if isinstance(self, type):
+ return expression.and_
+ else:
+ return operator.and_
lambda: self._comparator_factory(mapper)
)
def get_comparator(owner):
- return proxy_attr
+ return util.update_wrapper(proxy_attr, descriptor)
descriptor.expr = get_comparator
descriptor.impl = _ProxyImpl(self.key)
mapper.class_manager.instrument_attribute(self.key, descriptor)