class documentation

Represent a particular class attribute mapped by :class:`_orm.Mapper`. The most common occurrences of :class:`.MapperProperty` are the mapped :class:`_schema.Column`, which is represented in a mapping as an instance of :class:`.ColumnProperty`, and a reference to another class produced by :func:`_orm.relationship`, represented in the mapping as an instance of :class:`.Relationship`.

Method __init__ Undocumented
Method __repr__ Undocumented
Method cascade_iterator Iterate through instances related to the given instance for a particular 'cascade', starting with this MapperProperty.
Method create_row_processor Produce row processing functions and append to the given set of populators lists.
Method do_init Perform subclass-specific initialization post-mapper-creation steps.
Method init Called after all mappers are created to assemble relationships between mappers and perform other post-mapper-creation initialization steps.
Method instrument_class Hook called by the Mapper to the property to initiate instrumentation of the class attribute managed by this MapperProperty.
Method merge Merge the attribute represented by this ``MapperProperty`` from source to destination object.
Method post_instrument_class Perform instrumentation adjustments that need to occur after init() has completed.
Method set_parent Set the parent mapper that references this MapperProperty.
Method setup Called by Query for the purposes of constructing a SQL statement.
Class Variable __slots__ Undocumented
Class Variable cascade Undocumented
Class Variable comparator The :class:`_orm.PropComparator` instance that implements SQL expression construction on behalf of this mapped attribute.
Class Variable doc optional documentation string
Class Variable info Info dictionary associated with the object, allowing user-defined data to be associated with this :class:`.InspectionAttr`.
Class Variable is_property Part of the InspectionAttr interface; states this object is a mapper property.
Class Variable key name of class attribute
Instance Variable parent the :class:`.Mapper` managing this property.
Property class_attribute Return the class-bound descriptor corresponding to this :class:`.MapperProperty`.
Method _memoized_attr_info Info dictionary associated with the object, allowing user-defined data to be associated with this :class:`.InspectionAttr`.
Class Variable _cache_key_traversal Undocumented
Class Variable _is_relationship Undocumented
Class Variable _links_to_entity True if this MapperProperty refers to a mapped entity.
Instance Variable _attribute_options behavioral options for ORM-enabled Python attributes
Instance Variable _configure_finished Undocumented
Instance Variable _configure_started Undocumented
Instance Variable _has_dataclass_arguments Undocumented

Inherited from HasCacheKey:

Class Variable inherit_cache Indicate if this :class:`.HasCacheKey` instance should make use of the cache key generation scheme used by its immediate superclass.
Class Method _generate_cache_attrs generate cache key dispatcher for a new class.
Class Method _generate_cache_key_for_object Undocumented
Method _gen_cache_key return an optional cache key.
Method _generate_cache_key return a cache key.
Class Variable _generated_cache_key_traversal Undocumented
Class Variable _hierarchy_supports_caching private attribute which may be set to False to prevent the inherit_cache warning from being emitted for a hierarchy of subclasses.
Class Variable _is_has_cache_key Undocumented

Inherited from TypingOnly (via HasCacheKey, _DCAttributeOptions, _MappedAttribute):

Method __init_subclass__ Undocumented

Inherited from InspectionAttr (via HasCacheKey, _DCAttributeOptions, _MappedAttribute, TypingOnly, InspectionAttrInfo):

Class Variable is_aliased_class True if this object is an instance of :class:`.AliasedClass`.
Class Variable is_attribute True if this object is a Python :term:`descriptor`.
Class Variable is_bundle True if this object is an instance of :class:`.Bundle`.
Class Variable is_clause_element True if this object is an instance of :class:`_expression.ClauseElement`.
Class Variable is_instance True if this object is an instance of :class:`.InstanceState`.
Class Variable is_mapper True if this object is an instance of :class:`_orm.Mapper`.
Class Variable is_selectable Return True if this object is an instance of :class:`_expression.Selectable`.
Class Variable _is_internal_proxy True if this object is an internal proxy object.

Inherited from MemoizedSlots (via HasCacheKey, _DCAttributeOptions, _MappedAttribute, TypingOnly, InspectionAttrInfo, InspectionAttr):

Method __getattr__ Undocumented
Method _fallback_getattr Undocumented
def __repr__(self) -> str: (source)

Undocumented

def cascade_iterator(self, type_: str, state: InstanceState[Any], dict_: _InstanceDict, visited_states: Set[InstanceState[Any]], halt_on: Optional[Callable[[InstanceState[Any]], bool]] = None) -> Iterator[Tuple[object, Mapper[Any], InstanceState[Any], _InstanceDict]]: (source)

Iterate through instances related to the given instance for a particular 'cascade', starting with this MapperProperty. Return an iterator3-tuples (instance, mapper, state). Note that the 'cascade' collection on this MapperProperty is checked first for the given type before cascade_iterator is called. This method typically only applies to Relationship.

def create_row_processor(self, context: ORMCompileState, query_entity: _MapperEntity, path: AbstractEntityRegistry, mapper: Mapper[Any], result: Result[Any], adapter: Optional[ORMAdapter], populators: _PopulatorDict): (source)

Produce row processing functions and append to the given set of populators lists.

def do_init(self): (source)

Perform subclass-specific initialization post-mapper-creation steps. This is a template method called by the ``MapperProperty`` object's init() method.

def init(self): (source)

Called after all mappers are created to assemble relationships between mappers and perform other post-mapper-creation initialization steps.

def instrument_class(self, mapper: Mapper[Any]): (source)

Hook called by the Mapper to the property to initiate instrumentation of the class attribute managed by this MapperProperty. The MapperProperty here will typically call out to the attributes module to set up an InstrumentedAttribute. This step is the first of two steps to set up an InstrumentedAttribute, and is called early in the mapper setup process. The second step is typically the init_class_attribute step, called from StrategizedProperty via the post_instrument_class() hook. This step assigns additional state to the InstrumentedAttribute (specifically the "impl") which has been determined after the MapperProperty has determined what kind of persistence management it needs to do (e.g. scalar, object, collection, etc).

def merge(self, session: Session, source_state: InstanceState[Any], source_dict: _InstanceDict, dest_state: InstanceState[Any], dest_dict: _InstanceDict, load: bool, _recursive: Dict[Any, object], _resolve_conflict_map: Dict[_IdentityKeyType[Any], object]): (source)

Merge the attribute represented by this ``MapperProperty`` from source to destination object.

def post_instrument_class(self, mapper: Mapper[Any]): (source)

Perform instrumentation adjustments that need to occur after init() has completed. The given Mapper is the Mapper invoking the operation, which may not be the same Mapper as self.parent in an inheritance scenario; however, Mapper will always at least be a sub-mapper of self.parent. This method is typically used by StrategizedProperty, which delegates it to LoaderStrategy.init_class_attribute() to perform final setup on the class-bound InstrumentedAttribute.

def set_parent(self, parent: Mapper[Any], init: bool): (source)

Set the parent mapper that references this MapperProperty. This method is overridden by some subclasses to perform extra setup when the mapper is first known.

def setup(self, context: ORMCompileState, query_entity: _MapperEntity, path: AbstractEntityRegistry, adapter: Optional[ORMAdapter], **kwargs: Any): (source)

Called by Query for the purposes of constructing a SQL statement. Each MapperProperty associated with the target mapper processes the statement referenced by the query context, adding columns and/or criterion as appropriate.

The :class:`_orm.PropComparator` instance that implements SQL expression construction on behalf of this mapped attribute.

Info dictionary associated with the object, allowing user-defined data to be associated with this :class:`.InspectionAttr`. The dictionary is generated when first accessed. Alternatively, it can be specified as a constructor argument to the :func:`.column_property`, :func:`_orm.relationship`, or :func:`.composite` functions. .. versionchanged:: 1.0.0 :attr:`.InspectionAttr.info` moved from :class:`.MapperProperty` so that it can apply to a wider variety of ORM and extension constructs. .. seealso:: :attr:`.QueryableAttribute.info` :attr:`.SchemaItem.info`

is_property: bool = (source)

Part of the InspectionAttr interface; states this object is a mapper property.

name of class attribute

the :class:`.Mapper` managing this property.

Return the class-bound descriptor corresponding to this :class:`.MapperProperty`. This is basically a ``getattr()`` call:: return getattr(self.parent.class_, self.key) I.e. if this :class:`.MapperProperty` were named ``addresses``, and the class to which it is mapped is ``User``, this sequence is possible:: >>> from sqlalchemy import inspect >>> mapper = inspect(User) >>> addresses_property = mapper.attrs.addresses >>> addresses_property.class_attribute is User.addresses True >>> User.addresses.property is addresses_property True

def _memoized_attr_info(self) -> _InfoType: (source)

Info dictionary associated with the object, allowing user-defined data to be associated with this :class:`.InspectionAttr`. The dictionary is generated when first accessed. Alternatively, it can be specified as a constructor argument to the :func:`.column_property`, :func:`_orm.relationship`, or :func:`.composite` functions. .. versionchanged:: 1.0.0 :attr:`.MapperProperty.info` is also available on extension types via the :attr:`.InspectionAttrInfo.info` attribute, so that it can apply to a wider variety of ORM and extension constructs. .. seealso:: :attr:`.QueryableAttribute.info` :attr:`.SchemaItem.info`

_cache_key_traversal: _TraverseInternalsType = (source)

Undocumented

_is_relationship: bool = (source)
_links_to_entity: bool = (source)

True if this MapperProperty refers to a mapped entity. Should only be True for Relationship, False for all others.

_attribute_options = (source)

behavioral options for ORM-enabled Python attributes .. versionadded:: 2.0

_configure_finished: bool = (source)

Undocumented

_configure_started: bool = (source)

Undocumented