summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-08-25 12:57:10 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2010-08-25 12:57:10 -0400
commit65a6e97906802237228ea359f33bb33f1ad4a2f9 (patch)
treed5e9755186315c3522a507c148489e85587e5cb7 /lib/sqlalchemy
parent7ab906e258eec23841c7f0c67266ebb337382277 (diff)
downloadsqlalchemy-65a6e97906802237228ea359f33bb33f1ad4a2f9.tar.gz
- hybrid_and
- move the update_wrapper to synonym for now, we can't assume the return value of hybrid.expr is an updateable wrapper
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/ext/hybrid.py11
-rw-r--r--lib/sqlalchemy/orm/properties.py2
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)