summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ext/declarative/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/ext/declarative/base.py')
-rw-r--r--lib/sqlalchemy/ext/declarative/base.py11
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/sqlalchemy/ext/declarative/base.py b/lib/sqlalchemy/ext/declarative/base.py
index cee22637d..d17338bcb 100644
--- a/lib/sqlalchemy/ext/declarative/base.py
+++ b/lib/sqlalchemy/ext/declarative/base.py
@@ -132,11 +132,8 @@ def _as_declarative(cls, classname, dict_):
"column_property(), relationship(), etc.) must "
"be declared as @declared_attr callables "
"on declarative mixin classes.")
- elif isinstance(obj, _memoized_declared_attr): # and \
- if obj._cascading:
- dict_[name] = ret = obj.__get__(obj, cls)
- else:
- dict_[name] = ret = getattr(cls, name)
+ elif isinstance(obj, _memoized_declared_attr):
+ dict_[name] = ret = obj.resolve_early(cls, name)
if isinstance(ret, (Column, MapperProperty)) and \
ret.doc is None:
ret.doc = obj.__doc__
@@ -166,7 +163,7 @@ def _as_declarative(cls, classname, dict_):
value = dict_[k]
if isinstance(value, declarative_props):
- if value.defer_defer_defer:
+ if value.should_resolve_late:
add_later[k] = value
else:
value = getattr(cls, k)
@@ -426,7 +423,7 @@ class _MapperConfig(object):
**mapper_args
)
for k, v in self.add_later.items():
- setattr(self.cls, k, v.fget(self.cls))
+ setattr(self.cls, k, v.resolve_late(self.cls, k))
class _DeferredMapperConfig(_MapperConfig):