class documentation

A per-class object that serves class- and object-specific results. This is used by :class:`.AssociationProxy` when it is invoked in terms of a specific class or instance of a class, i.e. when it is used as a regular Python descriptor. When referring to the :class:`.AssociationProxy` as a normal Python descriptor, the :class:`.AssociationProxyInstance` is the object that actually serves the information. Under normal circumstances, its presence is transparent:: >>> User.keywords.scalar False In the special case that the :class:`.AssociationProxy` object is being accessed directly, in order to get an explicit handle to the :class:`.AssociationProxyInstance`, use the :meth:`.AssociationProxy.for_class` method:: proxy_state = inspect(User).all_orm_descriptors["keywords"].for_class(User) # view if proxy object is scalar or not >>> proxy_state.scalar False .. versionadded:: 1.3

Class Method for_proxy Undocumented
Method __clause_element__ Undocumented
Method __init__ Undocumented
Method __repr__ Undocumented
Method any Produce a proxied 'any' expression using EXISTS.
Method delete Undocumented
Method get Undocumented
Method has Produce a proxied 'has' expression using EXISTS.
Method set Undocumented
Instance Variable collection_class Undocumented
Instance Variable key Undocumented
Instance Variable owning_class Undocumented
Instance Variable parent Undocumented
Instance Variable target_class The intermediary class handled by this :class:`.AssociationProxyInstance`.
Instance Variable target_collection Undocumented
Instance Variable value_attr Undocumented
Property attr Return a tuple of ``(local_attr, remote_attr)``.
Property info Undocumented
Property local_attr The 'local' class attribute referenced by this :class:`.AssociationProxyInstance`.
Property remote_attr The 'remote' class attribute referenced by this :class:`.AssociationProxyInstance`.
Property scalar Return ``True`` if this :class:`.AssociationProxyInstance` proxies a scalar relationship on the local side.
Class Method _cls_unwrap_target_assoc_proxy Undocumented
Class Method _construct_for_assoc Undocumented
Method _criterion_exists Undocumented
Method _default_getset Undocumented
Method _get_property Undocumented
Method _inflate Undocumented
Method _initialize_scalar_accessors Undocumented
Method _new Undocumented
Method _set Undocumented
Instance Variable _scalar_get Undocumented
Instance Variable _scalar_set Undocumented
Property _comparator Undocumented
Property _target_is_object Undocumented
Property _unwrap_target_assoc_proxy Undocumented
Property _value_is_scalar Undocumented

Inherited from SQLORMOperations:

Method and_ Undocumented
Method of_type Undocumented
Class Variable __slots__ Undocumented

Inherited from SQLCoreOperations (via SQLORMOperations):

Method __add__ Implement the ``+`` operator.
Method __and__ Implement the ``&`` operator.
Method __contains__ Undocumented
Method __eq__ Implement the ``==`` operator.
Method __floordiv__ Implement the ``//`` operator.
Method __ge__ Implement the ``>=`` operator.
Method __getitem__ Implement the [] operator.
Method __gt__ Implement the ``>`` operator.
Method __invert__ Implement the ``~`` operator.
Method __le__ Implement the ``<=`` operator.
Method __lt__ Implement the ``<`` operator.
Method __mod__ Implement the ``%`` operator.
Method __mul__ Implement the ``*`` operator.
Method __ne__ Implement the ``!=`` operator.
Method __neg__ Implement the ``-`` operator.
Method __or__ Implement the ``|`` operator.
Method __radd__ Implement the ``+`` operator in reverse.
Method __rfloordiv__ Implement the ``//`` operator in reverse.
Method __rmod__ Implement the ``%`` operator in reverse.
Method __rmul__ Implement the ``*`` operator in reverse.
Method __rsub__ Implement the ``-`` operator in reverse.
Method __rtruediv__ Implement the ``/`` operator in reverse.
Method __sub__ Implement the ``-`` operator.
Method __truediv__ Implement the ``/`` operator.
Method all_ Produce an :func:`_expression.all_` clause against the parent object.
Method any_ Produce an :func:`_expression.any_` clause against the parent object.
Method asc Produce a :func:`_expression.asc` clause against the parent object.
Method between Produce a :func:`_expression.between` clause against the parent object, given the lower and upper range.
Method bool_op Return a custom boolean operator.
Method collate Produce a :func:`_expression.collate` clause against the parent object, given the collation string.
Method concat Implement the 'concat' operator.
Method contains Implement the 'contains' operator.
Method desc Produce a :func:`_expression.desc` clause against the parent object.
Method distinct Produce a :func:`_expression.distinct` clause against the parent object.
Method endswith Implement the 'endswith' operator.
Method ilike Implement the ``ilike`` operator, e.g. case insensitive LIKE.
Method in_ Implement the ``in`` operator.
Method is_ Implement the ``IS`` operator.
Method is_distinct_from Implement the ``IS DISTINCT FROM`` operator.
Method is_not Implement the ``IS NOT`` operator.
Method is_not_distinct_from Implement the ``IS NOT DISTINCT FROM`` operator.
Method isnot Undocumented
Method like Implement the ``like`` operator.
Method match Implements a database-specific 'match' operator.
Method not_ilike implement the ``NOT ILIKE`` operator.
Method not_in implement the ``NOT IN`` operator.
Method not_like implement the ``NOT LIKE`` operator.
Method notilike Undocumented
Method notin_ Undocumented
Method notlike Undocumented
Method nulls_first Produce a :func:`_expression.nulls_first` clause against the parent object.
Method nulls_last Produce a :func:`_expression.nulls_last` clause against the parent object.
Method nullsfirst Undocumented
Method nullslast Undocumented
Method op Produce a generic operator function.
Method operate Operate on an argument.
Method regexp_match Implements a database-specific 'regexp match' operator.
Method regexp_replace Implements a database-specific 'regexp replace' operator.
Method reverse_operate Reverse operate on an argument.
Method startswith Implement the ``startswith`` operator.
Property _propagate_attrs Undocumented

Inherited from ColumnOperators (via SQLORMOperations, SQLCoreOperations):

Method __lshift__ implement the << operator.
Method __rshift__ implement the >> operator.
Method bitwise_and Produce a bitwise AND operation, typically via the ``&`` operator.
Method bitwise_lshift Produce a bitwise LSHIFT operation, typically via the ``<<`` operator.
Method bitwise_not Produce a bitwise NOT operation, typically via the ``~`` operator.
Method bitwise_or Produce a bitwise OR operation, typically via the ``|`` operator.
Method bitwise_rshift Produce a bitwise RSHIFT operation, typically via the ``>>`` operator.
Method bitwise_xor Produce a bitwise XOR operation, typically via the ``^`` operator, or ``#`` for PostgreSQL.
Method icontains Implement the ``icontains`` operator, e.g. case insensitive version of :meth:`.ColumnOperators.contains`.
Method iendswith Implement the ``iendswith`` operator, e.g. case insensitive version of :meth:`.ColumnOperators.endswith`.
Method isnot_distinct_from Undocumented
Method istartswith Implement the ``istartswith`` operator, e.g. case insensitive version of :meth:`.ColumnOperators.startswith`.
Class Variable timetuple Hack, allows datetime objects to be compared on the LHS.
Method _rconcat Implement an 'rconcat' operator.

Inherited from TypingOnly (via SQLORMOperations, SQLCoreOperations, ColumnOperators, Operators):

Method __init_subclass__ Undocumented
@classmethod
def for_proxy(cls, parent: AssociationProxy[_T], owning_class: Type[Any], parent_instance: Any) -> AssociationProxyInstance[_T]: (source)

Undocumented

def __clause_element__(self) -> NoReturn: (source)

Undocumented

def __init__(self, parent: _AssociationProxyProtocol[_T], owning_class: Type[Any], target_class: Type[Any], value_attr: str): (source)

Undocumented

def __repr__(self) -> str: (source)

Undocumented

def any(self, criterion: Optional[_ColumnExpressionArgument[bool]] = None, **kwargs: Any) -> ColumnElement[bool]: (source)

Produce a proxied 'any' expression using EXISTS. This expression will be a composed product using the :meth:`.Relationship.Comparator.any` and/or :meth:`.Relationship.Comparator.has` operators of the underlying proxied attributes.

def delete(self, obj: Any): (source)

Undocumented

@overload
def get(self: _Self, obj: Literal[None]) -> _Self:
@overload
def get(self, obj: Any) -> _T:
(source)
def has(self, criterion: Optional[_ColumnExpressionArgument[bool]] = None, **kwargs: Any) -> ColumnElement[bool]: (source)

Produce a proxied 'has' expression using EXISTS. This expression will be a composed product using the :meth:`.Relationship.Comparator.any` and/or :meth:`.Relationship.Comparator.has` operators of the underlying proxied attributes.

def set(self, obj: Any, values: _T): (source)

Undocumented

collection_class = (source)

Undocumented

Undocumented

owning_class = (source)

Undocumented

Undocumented

target_class: Type[Any] = (source)

The intermediary class handled by this :class:`.AssociationProxyInstance`. Intercepted append/set/assignment events will result in the generation of new instances of this class.

target_collection = (source)

Undocumented

value_attr = (source)

Undocumented

Return a tuple of ``(local_attr, remote_attr)``. This attribute was originally intended to facilitate using the :meth:`_query.Query.join` method to join across the two relationships at once, however this makes use of a deprecated calling style. To use :meth:`_sql.select.join` or :meth:`_orm.Query.join` with an association proxy, the current method is to make use of the :attr:`.AssociationProxyInstance.local_attr` and :attr:`.AssociationProxyInstance.remote_attr` attributes separately:: stmt = ( select(Parent). join(Parent.proxied.local_attr). join(Parent.proxied.remote_attr) ) A future release may seek to provide a more succinct join pattern for association proxy attributes. .. seealso:: :attr:`.AssociationProxyInstance.local_attr` :attr:`.AssociationProxyInstance.remote_attr`

@util.ro_non_memoized_property
info: _InfoType = (source)

Undocumented

The 'local' class attribute referenced by this :class:`.AssociationProxyInstance`. .. seealso:: :attr:`.AssociationProxyInstance.attr` :attr:`.AssociationProxyInstance.remote_attr`

The 'remote' class attribute referenced by this :class:`.AssociationProxyInstance`. .. seealso:: :attr:`.AssociationProxyInstance.attr` :attr:`.AssociationProxyInstance.local_attr`

@util.memoized_property
scalar: bool = (source)

Return ``True`` if this :class:`.AssociationProxyInstance` proxies a scalar relationship on the local side.

@classmethod
def _cls_unwrap_target_assoc_proxy(cls, target_class: Any, value_attr: str) -> Optional[AssociationProxyInstance[_T]]: (source)

Undocumented

@classmethod
def _construct_for_assoc(cls, target_assoc: Optional[AssociationProxyInstance[_T]], parent: _AssociationProxyProtocol[_T], owning_class: Type[Any], target_class: Type[Any], value_attr: str) -> AssociationProxyInstance[_T]: (source)

Undocumented

def _criterion_exists(self, criterion: Optional[_ColumnExpressionArgument[bool]] = None, **kwargs: Any) -> ColumnElement[bool]: (source)

Undocumented

def _default_getset(self, collection_class: Any) -> Tuple[_GetterProtocol[Any], _SetterProtocol]: (source)

Undocumented

def _get_property(self) -> MapperProperty[Any]: (source)

Undocumented

def _inflate(self, proxy: _AssociationCollection[Any]): (source)

Undocumented

def _initialize_scalar_accessors(self): (source)

Undocumented

def _new(self, lazy_collection: _LazyCollectionProtocol[_T]) -> Tuple[Type[Any], _T]: (source)

Undocumented

def _set(self, proxy: _AssociationCollection[Any], values: Iterable[Any]): (source)

Undocumented

_scalar_get = (source)

Undocumented

_scalar_set = (source)

Undocumented

Undocumented

@util.memoized_property
_unwrap_target_assoc_proxy: Optional[AssociationProxyInstance[_T]] = (source)

Undocumented

@util.memoized_property
_value_is_scalar: bool = (source)

Undocumented