diff options
-rw-r--r-- | lib/sqlalchemy/ext/hybrid.py | 11 | ||||
-rw-r--r-- | lib/sqlalchemy/orm/properties.py | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/lib/sqlalchemy/ext/hybrid.py b/lib/sqlalchemy/ext/hybrid.py index 609f5aa8e..e0b3dab48 100644 --- a/lib/sqlalchemy/ext/hybrid.py +++ b/lib/sqlalchemy/ext/hybrid.py @@ -90,7 +90,7 @@ class property_(object): 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) @@ -135,6 +135,9 @@ class Comparator(interfaces.PropComparator): # interesting.... return self - - -
\ No newline at end of file + +def hybrid_and(self): + if isinstance(self, type): + return expression.and_ + else: + return operator.and_ diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index e6afe8d63..61b7f8c19 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -292,7 +292,7 @@ class DescriptorProperty(MapperProperty): 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) |