MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / setup_mapping

Method setup_mapping

lib/sqlalchemy/orm/decl_base.py:300–328  ·  view source on GitHub ↗
(
        cls,
        registry: _RegistryType,
        cls_: Type[_O],
        dict_: _ClassDict,
        table: Optional[FromClause],
        mapper_kw: _MapperKwArgs,
    )

Source from the content-addressed store, hash-verified

298
299 @classmethod
300 def setup_mapping(
301 cls,
302 registry: _RegistryType,
303 cls_: Type[_O],
304 dict_: _ClassDict,
305 table: Optional[FromClause],
306 mapper_kw: _MapperKwArgs,
307 ) -> Optional[_MapperConfig]:
308 manager = attributes.opt_manager_of_class(cls)
309 if manager and manager.class_ is cls_:
310 raise exc.InvalidRequestError(
311 f"Class {cls!r} already has been instrumented declaratively"
312 )
313
314 if cls_.__dict__.get("__abstract__", False):
315 return None
316
317 defer_map = _get_immediate_cls_attr(
318 cls_, "_sa_decl_prepare_nocascade", strict=True
319 ) or hasattr(cls_, "_sa_decl_prepare")
320
321 if defer_map:
322 return _DeferredMapperConfig(
323 registry, cls_, dict_, table, mapper_kw
324 )
325 else:
326 return _ClassScanMapperConfig(
327 registry, cls_, dict_, table, mapper_kw
328 )
329
330 def __init__(
331 self,

Callers 1

_as_declarativeFunction · 0.80

Calls 5

_get_immediate_cls_attrFunction · 0.85
opt_manager_of_classMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected