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.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/sqlalchemy/ext/declarative/base.py b/lib/sqlalchemy/ext/declarative/base.py
index 80cd23bc8..62db282d1 100644
--- a/lib/sqlalchemy/ext/declarative/base.py
+++ b/lib/sqlalchemy/ext/declarative/base.py
@@ -15,6 +15,7 @@ from ... import event
from ... import exc
from ... import util
from ...orm import class_mapper
+from ...orm import exc as orm_exc
from ...orm import mapper
from ...orm import synonym
from ...orm.attributes import QueryableAttribute
@@ -717,6 +718,17 @@ class _DeferredMapperConfig(_MapperConfig):
return isinstance(class_, type) and weakref.ref(class_) in cls._configs
@classmethod
+ def raise_unmapped_for_cls(cls, class_):
+ if hasattr(class_, "_sa_raise_deferred_config"):
+ class_._sa_raise_deferred_config()
+
+ raise orm_exc.UnmappedClassError(
+ class_,
+ msg="Class %s has a deferred mapping on it. It is not yet "
+ "usable as a mapped class." % orm_exc._safe_cls_name(class_),
+ )
+
+ @classmethod
def config_for_cls(cls, class_):
return cls._configs[weakref.ref(class_)]