diff options
Diffstat (limited to 'lib/sqlalchemy/ext/declarative/base.py')
| -rw-r--r-- | lib/sqlalchemy/ext/declarative/base.py | 12 |
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_)] |
