diff options
Diffstat (limited to 'lib/sqlalchemy/orm/attributes.py')
-rw-r--r-- | lib/sqlalchemy/orm/attributes.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/sqlalchemy/orm/attributes.py b/lib/sqlalchemy/orm/attributes.py index 47349e64a..045a9465d 100644 --- a/lib/sqlalchemy/orm/attributes.py +++ b/lib/sqlalchemy/orm/attributes.py @@ -112,9 +112,11 @@ PASSIVE_ONLY_PERSISTENT = util.symbol("PASSIVE_ONLY_PERSISTENT", ) -class QueryableAttribute(interfaces.PropComparator): +class QueryableAttribute(interfaces._InspectionAttr, interfaces.PropComparator): """Base class for class-bound attributes. """ + is_attribute = True + def __init__(self, class_, key, impl=None, comparator=None, parententity=None, of_type=None): @@ -149,6 +151,10 @@ class QueryableAttribute(interfaces.PropComparator): # TODO: conditionally attach this method based on clause_element ? return self + @property + def expression(self): + return self.comparator.__clause_element__() + def __clause_element__(self): return self.comparator.__clause_element__() @@ -191,10 +197,7 @@ class QueryableAttribute(interfaces.PropComparator): def property(self): return self.comparator.property - -@inspection._inspects(QueryableAttribute) -def _get_prop(source): - return source.property +inspection._self_inspects(QueryableAttribute) class InstrumentedAttribute(QueryableAttribute): """Class bound instrumented attribute which adds descriptor methods.""" |