Ë
    r™ãjNŠ  ã            
      ó`  — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 dd	lm
Z
 dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" ddlm#Z# ddlm$Z$ dd lm%Z% dd!l&m'Z' dd"l(m)Z) dd#l*m+Z+ d$dlmZ, d$d%lm-Z- d$d&lm.Z. d$d'lm*Z* d$d(l/m0Z0 d$d)l/m1Z1 d$d*l2m3Z3 d$d+l4m5Z5 d$d,l4m6Z6 d$d-l7m8Z8 d$d.l9m:Z: d$d/l9m;Z; d$d0l9m<Z< d$d1l9m=Z= d$d2l9m>Z> d$d3l9m?Z? d$d4l9m@Z@ erldd5lmAZA dd6lBmCZC dd7lBmDZD dd8lBmEZE dd9lBmFZF dd:lmGZG dd;lHmIZI dd<lJmKZK dd=lLmMZM dd>lNmOZO dd?lNmPZP d$d@lQmRZR d$dAlSmTZT d$dBlSmUZU d$dClVmWZW d$dDl9mXZX d$dEl9mYZY d$dFl9mZZZ  edGe¬H«      Z[ edIe¬H«      Z\ edJdK¬H«      Z] edLdM¬H«      Z^g dN¢Z_e.jÀ                   G dO„ dPee"e[   e%e[   e!e.jÂ                  «      «       Zb G dQ„ dRebe[   ee[   «      Zc G dS„ dTee!e"e[   ee[   «      Zd G dU„ dVede[   ee[   «      ZeyW)Xz|MapperProperty implementations.

This is a private module which defines the behavior of individual ORM-
mapped attributes.

é    )Úannotations)ÚAny)Úcast)ÚDict)Úget_args)ÚList)ÚOptional)ÚSequence)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú
attributes)Úexc)Ú_DeclarativeMapped)Úclass_mapper)ÚUnmapped)ÚCompositeProperty)ÚConcreteInheritedProperty)ÚSynonymProperty)Ú_AttributeOptions)Ú_DataclassDefaultsDontSet)Ú_DEFAULT_ATTRIBUTE_OPTIONS)Ú_IntrospectsAnnotations)Ú_MapsColumns)ÚMapperProperty)ÚPropComparator)ÚStrategizedProperty)Ú_COLUMN_TOKEN)ÚRelationshipProperty)Úde_stringify_annotationé   )Ú
ForeignKey)Úlog)Úutil)Ú	coercions)Úroles)Ú_NoArg)ÚColumn)ÚSchemaConst)Ú
TypeEngine)Úde_optionalize_union_types)Úincludes_none)Ú	is_a_type)Ú
is_fwd_ref)Ú	is_pep593)Ú	is_pep695)ÚSelf)Ú
ForwardRef)Ú_IdentityKeyType)Ú_InstanceDict)Ú_ORMColumnExprArgument)Ú_RegistryType)ÚMapped)Ú_DeclarativeMapperConfig)ÚMapper)ÚSession)Ú_InstallLoaderCallableProto)ÚInstanceState)Ú	_InfoType)ÚColumnElement)ÚNamedColumn)ÚOperatorType)Ú_AnnotationScanType)Ú_MatchedOnType)ÚRODescriptorReferenceÚ_T)ÚboundÚ_PTÚ_NCzNamedColumn[Any]Ú_MCzMappedColumn[Any])ÚColumnPropertyr   r   r#   r   c                  ó  ‡ — e Zd ZU dZeZdZ	 dZded<   ded<   ded	<   d
ed<   dZ	dddddddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d!ˆ fd„Z
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d"d„Zed#d„«       Zed$d„«       Zd%d„Z ej"                  dd«      	 	 d&d„«       Z ej"                  dd«      	 	 d&d„«       Zd'd„Zed'd„«       Zd(d„Zd)ˆ fd„Zd*d„Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+d„Z G d„ dej4                  ee   «      Zd,d „Zˆ xZS )-rM   z¬Describes an object attribute that corresponds to a table column
    or other column expression.

    Public constructor is the :func:`_orm.column_property` function.

    TFzList[NamedColumn[Any]]ÚcolumnsÚboolÚ_is_polymorphic_discriminatorúOptional[str]Ú_mapped_by_synonymzType[PropComparator[_T]]Úcomparator_factory)rO   ÚgroupÚdeferredÚ
instrumentrT   Úactive_historyÚexpire_on_flushÚ_default_scalar_valueÚ_creation_orderrQ   rS   Ú_deferred_column_loaderÚ_raise_column_loaderÚ_renders_in_subqueriesÚ	raiseloadN)Úattribute_optionsrU   rV   r_   rT   rX   Údefault_scalar_valuerY   ÚinfoÚdocÚ_instrumentÚ_assume_readonly_dc_attributesc               ó¼  •— t         ‰| �  ||¬«       |f|z   }|D �cg c]&  }t        j                  t        j
                  |«      ‘Œ( c}| _        || _        || _        || _	        || _
        |�|n| j                  j                  | _        || _        || _        |	| _        |
�| j"                  j%                  |
«       |�|| _        n9t)        | j                  «      D ]  }t+        |dd «      }|€Œ|| _         n d | _        t-        j.                  | «       d| j                  fd| j                  ff| _        | j                  r| xj0                  dz  c_        y y c c}w )N)r`   re   rc   rV   rW   ))r_   T)ÚsuperÚ__init__r)   Úexpectr*   ÚLabeledColumnExprRolerO   rU   rV   r_   rW   Ú	__class__Ú
ComparatorrT   rX   rZ   rY   rb   Úupdaterc   ÚreversedÚgetattrr(   Úset_creation_orderÚstrategy_key)ÚselfÚcolumnr`   rU   rV   r_   rT   rX   ra   rY   rb   rc   rd   re   Úadditional_columnsrO   ÚcÚcolrk   s                     €úd/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/sqlalchemy/orm/properties.pyrh   zColumnProperty.__init__–   sj  ø€ ô" 	‰ÑØ/Ø+Ið 	ô 	
ð �)Ð0Ñ0ˆàFMö
ØABŒI×ÑœU×8Ñ8¸!Õ<ò
ˆŒð ˆŒ
Ø ˆŒØ"ˆŒØ%ˆŒð "Ð-ñ à—‘×*Ñ*ð 	Ôð
 -ˆÔØ%9ˆÔ"Ø.ˆÔàÐØ�I‰I×Ñ˜TÔ"àˆ?ØˆD�Hä §¡Ó-ò  �Ü˜c 5¨$Ó/�Ø‘?Ø"�D”HÙð	 ð  �”ä×Ñ Ô%ð ˜Ÿ™Ð'Ø˜4Ÿ?™?Ð+ð
ˆÔð �>Š>Ø×ÒÐ!7Ñ7Öð ùòI
s   �+Ec
                óp   — | j                   d   }
|
j                  €||
_        |
j                  €||
_        y y ©Nr   )rO   ÚkeyÚname)rr   Ú	decl_scanÚregistryÚclsÚoriginating_modulerz   Úmapped_containerÚ
annotationÚextracted_mapped_annotationÚis_dataclass_fieldrs   s              rw   Údeclarative_scanzColumnProperty.declarative_scanÓ   s8   € ð —‘˜a‘ˆØ�:‰:ÐØˆFŒJØ�;‰;ÐØˆF�Kð ó    c                ó   — | S ©N© ©rr   s    rw   Úmapper_property_to_assignz(ColumnProperty.mapper_property_to_assignå   s   € àˆr…   c                ó|   — | j                   D �cg c]"  }t        |t        «      r|j                  €|df‘Œ$ c}S c c}w ry   )rO   Ú
isinstancer,   Útable)rr   ru   s     rw   Úcolumns_to_assignz ColumnProperty.columns_to_assigné   s>   € ð
 —\‘\ö
àÜ˜!œVÔ$¨¯©¨ð �ŠFò
ð 	
ùò 
s   �'9c                óš   — d| j                   v r| j                  j                  S d| j                   vxs | | j                  j                  vS )N)Úquery_expressionT)rV   T)rq   ÚstrategyÚ_have_default_expressionÚparentÚ_readonly_propsr‰   s    rw   Ú%_memoized_attr__renders_in_subqueriesz4ColumnProperty._memoized_attr__renders_in_subqueriesò   sJ   € Ø%¨×):Ñ):Ñ:Ø—=‘=×9Ñ9Ð9à!¨×):Ñ):Ð:ò 
Ø˜Ÿ™×3Ñ3Ð3ð	
r…   zsqlalchemy.orm.statezsqlalchemy.orm.strategiesc                ó  — t         j                  j                  }t         j                  j                  }|j                  j                  | j                  j                  |j                  | j                  «      | j                  «      S r‡   ©
r(   Ú	preloadedÚ	orm_stateÚorm_strategiesr@   Ú"_instance_level_callable_processorr“   Úclass_managerÚ_LoadDeferredColumnsrz   ©rr   ÚstateÚ
strategiess      rw   Ú&_memoized_attr__deferred_column_loaderz5ColumnProperty._memoized_attr__deferred_column_loaderú   sa   € ô —‘×(Ñ(ˆÜ—^‘^×2Ñ2ˆ
Ø×"Ñ"×EÑEØ�K‰K×%Ñ%Ø×+Ñ+¨D¯H©HÓ5Ø�H‰Hó
ð 	
r…   c                ó  — t         j                  j                  }t         j                  j                  }|j                  j                  | j                  j                  |j                  | j                  d«      | j                  «      S )NTr—   rž   s      rw   Ú#_memoized_attr__raise_column_loaderz2ColumnProperty._memoized_attr__raise_column_loader  sc   € ô —‘×(Ñ(ˆÜ—^‘^×2Ñ2ˆ
Ø×"Ñ"×EÑEØ�K‰K×%Ñ%Ø×+Ñ+¨D¯H©H°dÓ;Ø�H‰Hó
ð 	
r…   c                ó   — | j                   S )zsAllow the ColumnProperty to work in expression before it is turned
        into an instrumented attribute.
        )Ú
expressionr‰   s    rw   Ú__clause_element__z!ColumnProperty.__clause_element__  s   € ð
 �‰Ðr…   c                ó    — | j                   d   S )aÊ  Return the primary column or expression for this ColumnProperty.

        E.g.::


            class File(Base):
                # ...

                name = Column(String(64))
                extension = Column(String(8))
                filename = column_property(name + "." + extension)
                path = column_property("C:/" + filename.expression)

        .. seealso::

            :ref:`mapper_column_property_sql_expressions_composed`

        r   )rO   r‰   s    rw   r¥   zColumnProperty.expression  s   € ð( �|‰|˜A‰Ðr…   c                ó®   — | j                   sy t        j                  |j                  | j                  | j                  | |«      || j                  ¬«       y )N)Ú
comparatorÚparententityrc   )rW   r   Ú_register_descriptorÚclass_rz   rT   rc   )rr   Úmappers     rw   Úinstrument_classzColumnProperty.instrument_class/  sB   € Ø�ŠØä×'Ñ'Ø�M‰MØ�H‰HØ×.Ñ.¨t°VÓ<ØØ—‘ö	
r…   c                óf  •— t         ‰| �  «        t        | j                  «      dkD  rŠt	        | j
                  j                  «      j                  | j                  «      rQt        j                  d| j
                  ›d| j                  d   ›d| j                  d   ›d| j                  ›d�	«       y y y )Nr   z
On mapper z, primary key column 'z6' is being combined with distinct primary key column 'r   z' in attribute 'zM'. Use explicit properties to give each column its own mapped attribute name.)rg   Údo_initÚlenrO   Úsetr“   Úprimary_keyÚ
issupersetr(   Úwarnrz   )rr   rk   s    €rw   r°   zColumnProperty.do_init;  s€   ø€ Ü‰‰Ôäˆt�|‰|Ó˜qÒ ¤S¨¯©×)@Ñ)@Ó%A×%LÑ%LØ�L‰Lô&
ô �IŠIð —;“; §¡¨Q£°·±¸a³À$Ç(Ã(ðLõð&
Ð r…   c                ó‚   — t        | j                  | j                  | j                  | j                  | j
                  dœŽS )N)rV   rU   rX   ra   )rM   rO   rV   rU   rX   rZ   r‰   s    rw   ÚcopyzColumnProperty.copyK  s6   € ÜØ�\‰\Ø—]‘]Ø—*‘*Ø×.Ñ.Ø!%×!;Ñ!;ò
ð 	
r…   c	                óR  — | j                   sy | j                  |v rQ|| j                     }	|s|	|| j                  <   y |j                  | j                  «      }
|
j                  |||	d «       y |j                  r/| j                  |vr |j                  || j                  gd¬«       y y y )NT)Ú	no_loader)rW   rz   Úget_implr²   Úhas_identityÚ_expire_attributes)rr   ÚsessionÚsource_stateÚsource_dictÚ
dest_stateÚ	dest_dictÚloadÚ
_recursiveÚ_resolve_conflict_mapÚvalueÚimpls              rw   ÚmergezColumnProperty.mergeT  sœ   € ð �ŠØØ�X‰X˜Ñ$Ø §¡Ñ)ˆEáØ&+�	˜$Ÿ(™(Ò#à!×*Ñ*¨4¯8©8Ó4�Ø—‘˜ Y°°tÕ<Ø×$Ò$¨¯©¸Ñ)BØ×)Ñ)Ø˜DŸH™H˜:°ð *õ ð *CÐ$r…   c                  ó˜   — e Zd ZU dZesdZded<   ded<   	 dd„Zerdd„Z	 	 dd	„Z	dd
„Z
dd„Zdd„Z	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 dd„Zy)úColumnProperty.Comparatora€  Produce boolean, comparison, and other operators for
        :class:`.ColumnProperty` attributes.

        See the documentation for :class:`.PropComparator` for a brief
        overview.

        .. seealso::

            :class:`.PropComparator`

            :class:`.ColumnOperators`

            :ref:`types_operators`

            :attr:`.TypeEngine.comparator_factory`

        )r¦   rb   Úexpressionsz*RODescriptorReference[ColumnProperty[_PT]]ÚpropúSequence[NamedColumn[Any]]rÊ   c                ó  — | j                   }|||| j                  j                  dœ}|}| j                  j                  r,|}| j                  j                  j                  |«      }||d<   |j                  |«      j                  d|dœ«      S )aí  annotate and possibly adapt a column to be returned
            as the mapped-attribute exposed version of the column.

            The column in this context needs to act as much like the
            column in an ORM mapped context as possible, so includes
            annotations to give hints to various ORM functions as to
            the source entity of this column.   It also adapts it
            to the mapper's with_polymorphic selectable if one is
            present.

            )Úentity_namespacerª   ÚparentmapperÚ	proxy_keyÚadapt_columnÚorm)Úcompile_state_pluginÚplugin_subject)Ú_parententityrË   rz   Ú_parentmapperÚ_polymorphic_adapterÚtraverseÚ	_annotateÚ_set_propagate_attrs)rr   rs   Úper   rv   Úmapper_local_cols         rw   Ú_orm_annotate_columnz.ColumnProperty.Comparator._orm_annotate_column�  s”   € ð ×#Ñ#ˆBà$&Ø "Ø "Ø!ŸY™YŸ]™]ñ	+ˆKð ˆCð ×!Ñ!×6Ò6Ø#&Ð Ø×(Ñ(×=Ñ=×FÑFÀsÓK�ð
 /?�˜NÑ+à—=‘= Ó-×BÑBØ).À"ÑEóð r…   c                 ó   — y r‡   rˆ   r‰   s    rw   r¦   z,ColumnProperty.Comparator.__clause_element__º  s   � r…   c                óä   — | j                   r=| j                  | j                  j                  d   | j                  j                  «      S | j	                  | j                  j                  d   «      S ry   ©ÚadapterrË   rO   rz   rÝ   r‰   s    rw   Ú#_memoized_method___clause_element__z=ColumnProperty.Comparator._memoized_method___clause_element__¼  sS   € ð �|Š|Ø—|‘| D§I¡I×$5Ñ$5°aÑ$8¸$¿)¹)¿-¹-ÓHÐHà×0Ñ0°·±×1BÑ1BÀ1Ñ1EÓFÐFr…   c                ó†   — | j                  «       }	 |j                  S # t        $ r | j                  j                  cY S w xY w)z(The .info dictionary for this attribute.)r¦   rb   ÚAttributeErrorrË   )rr   Úces     rw   Ú_memoized_attr_infoz-ColumnProperty.Comparator._memoized_attr_infoÄ  s=   € ð ×(Ñ(Ó*ˆBð&Ø—w‘w�øÜ!ò &Ø—y‘y—~‘~Ò%ð&ús   ’ žA ¿A c                ó$  — | j                   rH| j                  j                  D �cg c](  }| j                  || j                  j                  «      ‘Œ* c}S | j                  j                  D �cg c]  }| j	                  |«      ‘Œ c}S c c}w c c}w )z{The full sequence of columns referenced by this
            attribute, adjusted for any aliasing in progress.

            rà   )rr   rv   s     rw   Ú_memoized_attr_expressionsz4ColumnProperty.Comparator._memoized_attr_expressionsÍ  s   € ð
 �|Š|ð  $Ÿy™y×0Ñ0öàð —L‘L  d§i¡i§m¡mÕ4òð ð ?C¿i¹i×>OÑ>OöØ7:�D×-Ñ-¨cÕ2òð ùòùò
s   ¥-BÁ-Bc                ó6   — t        | j                  «       |«      S )z‡proxy attribute access down to the mapped column.

            this allows user-defined comparison methods to be accessed.
            )ro   r¦   )rr   rz   s     rw   Ú_fallback_getattrz+ColumnProperty.Comparator._fallback_getattrÜ  s   € ô
 ˜4×2Ñ2Ó4°cÓ:Ð:r…   c                ó6   —  || j                  «       g|¢­i |¤ŽS r‡   ©r¦   ©rr   ÚopÚotherÚkwargss       rw   Úoperatez!ColumnProperty.Comparator.operateã  s"   € ñ �d×-Ñ-Ó/ÐB°%ÒB¸6ÑBÐBr…   c                óV   — | j                  «       } ||j                  ||«      |fi |¤ŽS r‡   ©r¦   Ú_bind_param©rr   rî   rï   rð   rv   s        rw   Úreverse_operatez)ColumnProperty.Comparator.reverse_operateè  s/   € ð ×)Ñ)Ó+ˆCÙ�c—o‘o b¨%Ó0°#Ñ@¸Ñ@Ð@r…   N)rs   rK   ÚreturnrK   )r÷   zNamedColumn[_PT])r÷   rA   )r÷   rÌ   )rz   Ústrr÷   r   ©rî   rD   rï   r   rð   r   r÷   zColumnElement[Any])Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú	__slots__Ú__annotations__rÝ   r¦   râ   ræ   rè   rê   rñ   rö   rˆ   r…   rw   rl   rÉ   n  s¢   … ñ	ñ$ àCˆIà8Ó8à/Ó/ð	ó&	ñP ãAð	Gàó	Gó	&ó	ó	;ð	CØ"ð	CØ,/ð	CØ;>ð	Càó	Cð
	AØ"ð	AØ+.ð	AØ:=ð	Aàô	Ar…   rl   c                óÎ   — | j                   r| j                  st        j                  | «      S t	        | j                   j
                  j                  «      dz   | j                  z   S )Nú.)r“   rz   ÚobjectÚ__repr__rø   r¬   rú   r‰   s    rw   Ú__str__zColumnProperty.__str__î  sG   € Ø�{Š{ $§(¢(Ü—?‘? 4Ó(Ð(Ü�4—;‘;×%Ñ%×.Ñ.Ó/°#Ñ5¸¿¹Ñ@Ð@r…   )rs   z_ORMColumnExprArgument[_T]rt   z_ORMColumnExprArgument[Any]r`   zOptional[_AttributeOptions]rU   rR   rV   rP   r_   rP   rT   z"Optional[Type[PropComparator[_T]]]rX   rP   ra   r   rY   rP   rb   zOptional[_InfoType]rc   rR   rd   rP   re   rP   ©r|   r<   r}   r:   r~   ú	Type[Any]r   rR   rz   rø   r€   zOptional[Type[Mapped[Any]]]r�   úOptional[_AnnotationScanType]r‚   r  rƒ   rP   r÷   ÚNone©r÷   zOptional[MapperProperty[_T]]©r÷   zList[Tuple[Column[Any], int]])r÷   rP   )r÷   z _InstallLoaderCallableProto[Any])r÷   zroles.ColumnsClauseRole)r­   zMapper[Any]r÷   r  )r÷   r  )r÷   zColumnProperty[_T])r½   r>   r¾   úInstanceState[Any]r¿   r8   rÀ   r  rÁ   r8   rÂ   rP   rÃ   zDict[Any, object]rÄ   z#Dict[_IdentityKeyType[Any], object]r÷   r  ©r÷   rø   ) rú   rû   rü   rý   r"   Ústrategy_wildcard_keyÚinherit_cacheÚ_links_to_entityrÿ   rþ   rh   r„   ÚpropertyrŠ   rŽ   r•   r(   Úpreload_moduler¡   r£   r¦   r¥   r®   r°   r·   rÇ   ÚMemoizedSlotsr    rJ   rl   r  Ú__classcell__©rk   s   @rw   rM   rM   g   sŽ  ø… ñð *ÐØ€MØàÐà#Ó#à#'Ó'à%Ó%à0Ó0ð€Ið, :>Ø#ØØØAEØ$Ø$(Ø $Ø$(Ø!Ø Ø/4ñ;8à*ð;8ð 9ð;8ð 7ð	;8ð
 ð;8ð ð;8ð ð;8ð ?ð;8ð ð;8ð "ð;8ð ð;8ð "ð;8ð ð;8ð ð;8ð )-õ;8ðzà+ðð  ðð ð	ð
 *ðð ðð 6ðð 2ðð &Cðð !ðð 
óð$ òó ðð ò
ó ð
ó
ð €T×ÑÐ/Ð1LÓMð	
à	)ò	
ó Nð	
ð €T×ÑÐ/Ð1LÓMð	
à	)ò	
ó Nð	
óð òó ðó*

õó 
ðàðð )ðð #ð	ð
 'ðð !ðð ðð &ðð  Cðð 
óô4~A�T×'Ñ'¨¸Ñ)<ô ~A÷@Ar…   rM   c                  ó   — e Zd ZdZdZy)ÚMappedSQLExpressionaN  Declarative front-end for the :class:`.ColumnProperty` class.

    Public constructor is the :func:`_orm.column_property` function.

    .. versionchanged:: 2.0 Added :class:`_orm.MappedSQLExpression` as
       a Declarative compatible subclass for :class:`_orm.ColumnProperty`.

    .. seealso::

        :class:`.MappedColumn`

    TN)rú   rû   rü   rý   r  rˆ   r…   rw   r  r  ô  s   „ ñð €MØr…   r  c                  ó¦  — e Zd ZU dZdZded<   ded<   ded<   d	ed
<   ded<   ded<   d d„Zd!d„Zd"d„Zd#d„Z	e
d$d„«       Ze
d%d„«       Ze
d&d„«       Zd'd„Z	 	 	 	 	 	 	 	 d(d„Z	 	 	 	 	 	 	 	 d(d„Zd)d„Z	 	 	 	 	 	 	 	 d*d„Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+d„Z ej*                  d«      	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d,d„«       Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 d-d„Zy).ÚMappedColumna_  Maps a single :class:`_schema.Column` on a class.

    :class:`_orm.MappedColumn` is a specialization of the
    :class:`_orm.ColumnProperty` class and is oriented towards declarative
    configuration.

    To construct :class:`_orm.MappedColumn` objects, use the
    :func:`_orm.mapped_column` constructor function.

    .. versionadded:: 2.0


    )rs   r[   Ú_sort_orderÚforeign_keysÚ_has_nullableÚ_has_insert_defaultrV   Údeferred_groupÚdeferred_raiseloadrX   rZ   Ú_attribute_optionsÚ_has_dataclass_argumentsÚ_use_existing_columnzUnion[_NoArg, bool]rV   rP   r  rR   r  ú
Column[_T]rs   zOptional[Set[ForeignKey]]r  r   r  c                óä  ‡— |j                  dt        «      x| _        Š|j                  dd«      | _        ‰d uxr2 ‰t        k7  xr' t	        ˆfd„t        ‰j                  «      D «       «      | _        |j                  dt        j                  «      }|t        j                  u| _        t        j                  | _        ‰j                  t        j                  ur‰j                  |d<   |j                  dd «      | _        |j                  dd «      | _        |j                  d	t        j                  «      | _        |j                  d
d«      | _        |j                  dt        j                  «      | _        t'        dt)        |i |¤Ž«      | _        | j*                  j,                  | _        d|v xr# |j                  d«      d t.        j0                  fv| _        t5        j6                  | «       y )Nr`   Úuse_existing_columnFc              3  óX   •K  — | ]!  \  }}|d k7  r‰|   t         j                  u–— Œ# y­w)Údataclasses_defaultN)r+   ÚNO_ARG)Ú.0ÚiÚattrÚ	attr_optss      €rw   ú	<genexpr>z(MappedColumn.__init__.<locals>.<genexpr>=  s3   øè ø€ ò á�A�tØÐ0Ò0ð ˜!‘¤F§M¡MÔ1ñùs   ƒ'*Úinsert_defaultÚdefaultr  r  rV   rX   Ú
sort_orderr"  Únullable)Úpopr   r  r!  ÚanyÚ	enumerateÚ_fieldsr   Úgetr+   r'  r  rZ   r&  r  r  rV   rX   r  r   r,   rs   r  r-   ÚNULL_UNSPECIFIEDr  r(   rp   )rr   ÚargÚkwr-  r+  s       @rw   rh   zMappedColumn.__init__3  sª  ø€ Ø.0¯f©fØÔ!;ó/
ð 	
ˆÔ )ð %'§F¡FÐ+@À%Ó$HˆÔ!ð ˜TÐ!ò ØÔ7Ñ7òäó ä(¨×):Ñ):Ó;ôó ð 	Ô%ð Ÿ™Ð 0´&·-±-Ó@ˆØ#1¼¿¹Ð#FˆÔ Ü%+§]¡]ˆÔ"à×(Ñ(´·±Ñ=Ø%×9Ñ9ˆBˆy‰Mà Ÿf™fÐ%5°tÓ<ˆÔØ"$§&¡&Ð)=¸tÓ"DˆÔØŸ™˜z¬6¯=©=Ó9ˆŒØ Ÿf™fÐ%5°uÓ=ˆÔàŸ6™6 ,´·±Ó>ˆÔô ˜<¬°Ð);¸Ñ);Ó<ˆŒà ŸK™K×4Ñ4ˆÔØ'¨2Ð-ò 
°"·&±&¸Ó2DØÜ×(Ñ(ðM
ð 3
ˆÔô 	×Ñ Õ%r…   c                ó<   —  | j                   | j                  fi |¤ŽS r‡   )Ú_copy_asrk   )rr   r8  s     rw   Ú_copyzMappedColumn._copy_  s   € Øˆt�}‰}˜TŸ^™^Ñ2¨rÑ2Ð2r…   c                ó,   — | j                  t        «      S )z½produce a copy of this :class:`.MappedColumn` as an
        :class:`.UnmappedColumn`, e.g. for a ``mapped_column()`` that's
        inside of ``Annotated`` that's applied to ``Unmapped[]``.)r:  ÚUnmappedColumnr‰   s    rw   Ú_as_unmapped_columnz MappedColumn._as_unmapped_columnb  s   € ð
 �}‰}œ^Ó,Ð,r…   c                ó@  — |j                  |«      } | j                  j                  di |¤Ž|_        | j                  |_        | j                  |_        | j
                  |_        |j                  j                  |_        | j                  |_        | j                  |_        | j                  |_	        | j                  |_
        | j                  |_        | j                  |_        | j                  |_        | j                  |_        t        j                   |«       |S )Nrˆ   )Ú__new__rs   r;  rV   r  r  r  rX   r  r  r  r   r!  r  rZ   r(   rp   )rr   r~   r8  Únews       rw   r:  zMappedColumn._copy_asi  sæ   € Ø�k‰k˜#ÓˆØ&�T—[‘[×&Ñ&Ñ,¨Ñ,ˆŒ
Ø—}‘}ˆŒØ!×0Ñ0ˆÔØ!%×!8Ñ!8ˆÔØŸ:™:×2Ñ2ˆÔØ!×0Ñ0ˆÔØ ×.Ñ.ˆÔØ!%×!8Ñ!8ˆÔØ"&×":Ñ":ˆÔØ'+×'DÑ'DˆÔ$Ø#'×#<Ñ#<ˆÔ Ø×*Ñ*ˆŒØ$(×$>Ñ$>ˆÔ!Ü×Ñ Ô$Øˆ
r…   c                ó.   — | j                   j                  S r‡   )rs   r{   r‰   s    rw   r{   zMappedColumn.name{  s   € à�{‰{×ÑÐr…   c           
     ó¼  — | j                   }|t        j                  u r#t        | j                  xs | j
                  «      }|s(| j                  s| j                  t        j                  urqt        | j                  || j                  | j
                  | j                  | j                  | j                  t        j                  ur| j                  ¬«      S d ¬«      S y )N)rV   rU   r_   r`   rX   ra   )rV   r+   r'  rP   r  r  rX   rZ   rM   rs   r  )rr   Úeffective_deferreds     rw   rŠ   z&MappedColumn.mapper_property_to_assign  sÅ   € à!Ÿ]™]ÐØ¤§¡Ñ.Ü!%Ø×#Ñ#Ò> t×'>Ñ'>ó"Ðñ
 Ø×"Ò"Ø×)Ñ)´·±Ñ>ä!Ø—‘Ø+Ø×)Ñ)Ø×1Ñ1Ø"&×"9Ñ"9Ø#×2Ñ2ð ×1Ñ1¼¿¹ÑFð ×.Ñ.ôð ð ôð ð r…   c                ót   — | j                   | j                  t        j                  ur| j                  fgS dfgS ry   )rs   r  r+   r'  r‰   s    rw   rŽ   zMappedColumn.columns_to_assignœ  sM   € ð —‘ð ×'Ñ'¬v¯}©}Ñ<ð ×$Ñ$ðð	
ð 		
ð ðð	
ð 		
r…   c                ó   — | j                   S r‡   )rs   r‰   s    rw   r¦   zMappedColumn.__clause_element__©  s   € Ø�{‰{Ðr…   c                ó6   —  || j                  «       g|¢­i |¤ŽS r‡   rì   rí   s       rw   rñ   zMappedColumn.operate¬  s"   € ñ �$×)Ñ)Ó+Ð>¨eÒ>°vÑ>Ð>r…   c                óV   — | j                  «       } ||j                  ||«      |fi |¤ŽS r‡   ró   rõ   s        rw   rö   zMappedColumn.reverse_operate±  s/   € ð ×%Ñ%Ó'ˆÙ�#—/‘/ " eÓ,¨cÑ<°VÑ<Ð<r…   c                ó   — t        «       S r‡   )r  r‰   s    rw   Úfound_in_pep593_annotatedz&MappedColumn.found_in_pep593_annotated·  s   € ô ‹~Ðr…   c                ó<  — | j                   r�|j                  rƒ|j                  rw|j                  rt	        j
                  d«      ‚t        |j                  d«      }|j                  �|j                  n|}|j                  j                  j                  ||«      }|S )Nz3Can't use use_existing_column with deferred mappersF)r!  ÚinheritsÚsingleÚis_deferredÚsa_excÚArgumentErrorr   r{   Úlocal_tableru   r5  )rr   r|   rz   Úgiven_columnÚsupercls_mapperÚcolnames         rw   Ú_adjust_for_existing_columnz(MappedColumn._adjust_for_existing_column¼  sš   € ð ×%Ò%Ø×"Ò"Ø× Ò à×$Ò$Ü×*Ñ*ØIóð ô +¨9×+=Ñ+=¸uÓEˆOð &2×%6Ñ%6Ð%B�×!Ò!Èð ð +×6Ñ6×8Ñ8×<Ñ<Ø˜óˆLð Ðr…   c
                ód  — | j                   }
| j                  ||| j                   «      x}
| _         |
j                  €||
_        |
j                  €||
_        |
j                  }|€6|j
                  r)| j                   j                  s| j                  ||«       ny | j                  ||||||«       y r‡   )	rs   rU  rz   r{   ÚtypeÚ_isnullr  Ú_raise_for_requiredÚ_init_column_for_annotation)rr   r|   r}   r~   r   rz   r€   r�   r‚   rƒ   rs   Úsqltypes               rw   r„   zMappedColumn.declarative_scanÕ  sª   € ð —‘ˆà#×?Ñ?Ø�s˜DŸK™Kó 
ð 	
ˆ�”ð �:‰:ÐØˆFŒJØ�;‰;ÐØˆFŒKà—+‘+ˆà&Ð.Ø�Š t§{¡{×'?Ò'?Ø×(Ñ(¨¨cÕ2àà×(Ñ(ØØØØØ'Øõ	
r…   zsqlalchemy.orm.decl_basec                óœ   — t         j                  j                  }|j                  || j                  «       | j                  ||||||«       y r‡   )r(   r˜   Úorm_decl_baseÚ_undefer_column_namers   rZ  )	rr   r|   r}   r~   r   rz   Ú
param_nameÚparam_annotationÚ	decl_bases	            rw   Údeclarative_scan_for_compositez+MappedColumn.declarative_scan_for_compositeý  sD   € ô —N‘N×0Ñ0ˆ	Ø×&Ñ& z°4·;±;Ô?Ø×(Ñ(Ø�˜C Ð+;Ð=Oõ	
r…   c           
     ór
  — | j                   j                  }t        |dd¬«      r|€J ‚t        |||d¬«      }n t        rt        |t        t        f«      rJ ‚|}t        |«      }	| j                  s|	| j                   _
        d}
d x}}d x}}t        |«      }t        |«      r+|}t        |j                  «      }t        |«      }|r||   }|}t        |«      r$t        |«      }|}|d   }|	rt        |«      }|dd  }
|
D ]  }t        |t         «      sŒ|} n d }|��g|j#                  ||| j                   «      | _         | j$                  s&| j&                  j(                  t*        j,                  urd}nd}|j                   j/                  | j                   |¬«       | j                   j                  }|j0                  t*        j,                  ur-| j0                  t*        j,                  u r|j0                  | _        |j2                  �| j2                  €|j2                  | _        |j4                  �| j4                  €|j4                  | _        |j6                  r| j6                  sd| _        |j8                  r|j8                  | _        |j:                  �-| j:                  t*        j,                  u r|j:                  | _        |j                   j<                  €|j                   j>                  �tA        jB                  d	d
«       |jD                  rstG        |j&                  jH                  «      D ]Q  \  }}|j&                  |   t*        j,                  usŒ&|jK                  dd«      }tA        jB                  d|› d�d
«       ŒS |jL                  �r©| j                   jN                  �s‘|jQ                  ||||||||¬«      }|�€Yg }|r|jS                  |«       |jS                  |«       |r|jS                  |«       t        |tT        «      s t        |t        «      r@tW        |tT        «      r0tY        jZ                  d| j                   j<                  ›d|› d�«      ‚t]        |d   «      r‚t_        |«      dk(  rd}n<t_        |«      dk(  rd|d   › d|d   › d�}nddja                  d„ |D «       «      z   dz   }tY        jZ                  d|d   › d| j                   j<                  ›d|› �«      ‚tY        jZ                  d| j                   j<                  ›d |›d!�«      ‚| j                   jc                  |«       y y y )"NT)Úcheck_genericÚcheck_for_plain_string)Úinclude_genericrˆ   r   r   F)Úomit_defaultsz_Can't use the 'key' or 'name' arguments in Annotated with mapped_column(); this will be ignoredz2.0.22Údataclasses_Ú z
Argument 'zp' is a dataclass argument and cannot be specified within a mapped_column() bundled inside of an Annotated object)Úraw_pep_593_typeÚpep_593_resolved_argumentÚraw_pep_695_typeÚpep_695_resolved_valuezThe type provided inside the z4 attribute Mapped annotation is the SQLAlchemy type z . Expected a Python type insteadz1the type object is not resolvable by the registryr%   z	neither 'z' nor 'z ' are resolvable by the registryznone of ú, c              3  ó(   K  — | ]
  }d |› d �–— Œ y­w)ú'Nrˆ   )r(  Úts     rw   r,  z;MappedColumn._init_column_for_annotation.<locals>.<genexpr>Æ  s   è ø€ Ò'A°Q¨!¨A¨3¨a¬Ñ'Aùs   ‚z are resolvable by the registryzSCould not locate SQLAlchemy Core type when resolving for Python type indicated by 'z)' inside the Mapped[] annotation for the z attribute; zThe object provided inside the zC attribute Mapped annotation is not a Python type, it's the object z. Expected a Python type.)2rs   rW  r2   r$   r   rŒ   rø   r6   r0   r  r0  r/   r4   Ú	__value__r   r3   r  rU  r  r  r&  r+   r'  Ú_mergerV   r  r  r!  rX   r  rz   r{   r(   Úwarn_deprecatedr   r3  r4  ÚreplacerX  r  Ú_resolve_type_with_eventsÚappendr.   Ú
issubclassÚorm_excÚMappedAnnotationErrorr1   r±   ÚjoinÚ	_set_type)rr   r~   r|   rz   r}   Úargumentr   r[  Úde_stringified_argumentr0  Úfind_mapped_inrj  Úresolved_pep_593_typerl  Úresolved_pep_695_typeÚour_typeÚour_argsÚpep_593_componentsÚelemÚuse_args_fromrg  Úidxr7  Únew_sqltypeÚchecksÚdetails                             rw   rZ  z(MappedColumn._init_column_for_annotation  sv  € ð —+‘+×"Ñ"ˆô Ø DÀõ
ð &Ð1Ð1Ð1Ü&=Ø�XÐ1À4ô'Ñ#õ Ü% h´´jÐ0AÔBÐBÐBØ&.Ð#ä Ð!8Ó9ˆà×!Ò!Ø#+ˆD�K‰KÔ à*,ˆØ37Ð7ÐÐ0Ø37Ð7ÐÐ0ä2Ð3JÓKˆä�XÔØ'ÐÜ1Ð2B×2LÑ2LÓMˆHÜÐ 0Ó1ˆHÙØ# HÑ-�à$,Ð!ä�XÔÜ!)¨(Ó!3ÐØ'ÐØ$6°qÑ$9Ð!ÙÜ(BØ)ó)Ð%ð 0°°Ð3ˆNð #ò 	!ˆDÜ˜$¤Õ-Ø $�Ùð	!ð
 !ˆMàÑ$à'×CÑCØ˜3 §¡óˆDŒKð
 ×(Ò(Ø×*Ñ*×>Ñ>Ü—}‘}ñ%ð !%‘à %�à× Ñ ×'Ñ'Ø—‘¨=ð (ô ð —k‘k×&Ñ&ˆGð ×&Ñ&¬f¯m©mÑ;Ø—M‘M¤V§]¡]Ñ2à -× 6Ñ 6�”ð ×,Ñ,Ð8Ø×'Ñ'Ð/à&3×&BÑ&B�Ô#ð ×0Ñ0Ð<Ø×+Ñ+Ð3à*7×*JÑ*J�Ô'ð ×2Ò2Ø×1Ò1à,0�Ô)à×+Ò+Ø&3×&BÑ&B�Ô#ð ×)Ñ)Ð5Ø×$Ñ$¬¯©Ñ5à#0×#<Ñ#<�Ô ð ×$Ñ$×(Ñ(Ð4Ø ×'Ñ'×,Ñ,Ð8ä×$Ñ$ðKàôð ×5Ò5Ü )Ø!×4Ñ4×<Ñ<ó!ò ‘H�C˜ð &×8Ñ8¸Ñ=Ü%Ÿ}™}ò-ð "Ÿk™k¨.¸"Ó=˜Ü×,Ñ,Ø(¨¨ð .Dð Dð %õ	ðð �?‹? 4§;¡;×#;Ó#;à"×<Ñ<ØØØ'ØØ!1Ø*?Ø!1Ø'<ð =ó 	ˆKð Ñ"Ø�Ù#Ø—M‘MÐ"2Ô3Ø—‘˜hÔ'Ù(Ø—M‘MÐ"7Ô8Ü˜h¬
Ô3Ü˜x¬Ô.Ü" 8¬ZÔ8ä!×7Ñ7Ø7¸¿¹¿¹Ð7Jð KNà#˜*Ð$DðFóð ô
 ˜v a™yÔ)Ü˜6“{ aÒ'àOñ ô ˜V›¨Ò)à'¨¨q©	 {°'¸&À¹)¸ð E=ð =ñ ð 'Ø"Ÿi™iÑ'A¸&Ô'AÓAñBà?ñ@ð ô
 "×7Ñ7ð9Ø9?À¹¸ð D7à7;·{±{·±Ð6Ið J&Ø&, Xð	/óð ô "×7Ñ7Ø9¸$¿+¹+¿/¹/Ð9Lð M+à+BÐ*Eð F2ð2óð ð �K‰K×!Ñ! +Õ.ðy $<ˆ?r…   N)r7  r   r8  r   )r8  r   r÷   r5   )r÷   zUnmappedColumn[_T])r~   z	Type[_MC]r8  r   r÷   rL   r  r	  r
  )r÷   r"  rù   )r÷   r   )r|   r<   rz   rø   rR  r"  r÷   r"  r  )r|   r<   r}   r:   r~   r  r   rR   rz   rø   r_  rø   r`  rE   r÷   r  )r~   r  r|   r<   rz   rø   r}   r:   r}  rE   r   rR   r÷   r  )rú   rû   rü   rý   rþ   rÿ   rh   r;  r>  r:  r  r{   rŠ   rŽ   r¦   rñ   rö   rJ  rU  r„   r(   r  rb  rZ  rˆ   r…   rw   r  r    s.  … ñð€Ið" "Ó!ØÓØ!Ó!àÓØ+Ó+Ø)Ó)ó*&óX3ó-óð$ ò ó ð ð òó ðð8 ò

ó ð

óð?Øð?Ø(+ð?Ø7:ð?à	ó?ð
=Øð=Ø'*ð=Ø69ð=à	ó=óð
à+ðð ðð !ð	ð
 
óð2&
à+ð&
ð  ð&
ð ð	&
ð
 *ð&
ð ð&
ð 6ð&
ð 2ð&
ð &Cð&
ð !ð&
ð 
ó&
ðP €T×ÑÐ3Ó4ð
à+ð
ð  ð
ð ð	
ð
 *ð
ð ð
ð ð
ð .ð
ð 
ò
ó 5ð
ð J/àðJ/ð ,ðJ/ð ð	J/ð
  ðJ/ð &ðJ/ð *ðJ/ð 
ôJ/r…   r  c                  ób   ‡ — e Zd ZdZdZedd„«       Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zˆ xZS )r=  a!  Declares a :class:`_schema.Column` on a declarative class that is
    part of the :class:`_schema.Table`, but is not mapped by the ORM.

    To construct :class:`_orm.UnmappedColumn` objects, use the
    :func:`_orm.unmapped_column` constructor function.

    .. versionadded:: 2.1.5

    rˆ   c                 ó   — y r‡   rˆ   r‰   s    rw   rŠ   z(UnmappedColumn.mapper_property_to_assignè  s   € àr…   c
                ó|  •— t         ‰| �  |||||||||	«	       d| j                  t        j                  ufd| j
                  d ufd| j                  d ufd| j                  ffD �
�cg c]	  \  }
}|r|
‘Œ }}
}|r>t        j                  d|j                  › d|› ddj                  d	„ |D «       «      › �«      ‚y c c}}
w )
NrV   r  r  rX   zAttribute "r  z5" is not mapped, and does not accept the argument(s) rn  c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr‡   )Úrepr)r(  Úks     rw   r,  z2UnmappedColumn.declarative_scan.<locals>.<genexpr>  s   è ø€ Ò9¨œT !ŸWÑ9ùs   ‚)rg   r„   rV   r+   r'  r  r  rX   rO  rP  rú   r{  )rr   r|   r}   r~   r   rz   r€   r�   r‚   rƒ   r{   ÚpresentÚ
disallowedrk   s                €rw   r„   zUnmappedColumn.declarative_scanì  sò   ø€ ô 	‰Ñ ØØØØØØØØ'Øô
	
ð$ ˜TŸ]™]´&·-±-Ð?Ð@Ø! 4×#6Ñ#6¸dÐ#BÐCØ% t×'>Ñ'>ÀdÐ'JÐKØ! 4×#6Ñ#6Ð7ð	"÷	
á��gñ ò ð	
ˆ
ñ 	
ñ Ü×&Ñ&Ø˜cŸl™l˜^¨1¨S¨Eð 2.à—9‘9Ñ9¨jÔ9Ó9Ð:ð<óð ð ùó	
s   Á&B8r	  r  )	rú   rû   rü   rý   rþ   r  rŠ   r„   r  r  s   @rw   r=  r=  Û  sŽ   ø„ ñð €Iàòó ðð*à+ð*ð  ð*ð ð	*ð
 *ð*ð ð*ð 6ð*ð 2ð*ð &Cð*ð !ð*ð 
÷*ñ *r…   r=  N)frý   Ú
__future__r   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   ri  r   r   ry  Úbaser   r   r   Údescriptor_propsr   r   r   Ú
interfacesr   r   r   r   r   r   r    r!   Úpath_registryr"   Úrelationshipsr#   r(   r$   rO  r&   r'   Úsqlr)   r*   Úsql.baser+   Ú
sql.schemar,   r-   Úsql.type_apir.   Úutil.typingr/   r0   r1   r2   r3   r4   r5   r6   Ú_typingr7   r8   r9   r:   r;   ra  r<   r­   r=   r½   r>   rŸ   r?   r@   Úsql._typingrA   Úsql.elementsrB   rC   Úsql.operatorsrD   rE   rF   rG   rH   rJ   rK   rL   Ú__all__Úclass_loggerÚ
IdentifiedrM   r  r  r=  rˆ   r…   rw   ú<module>r¦     sª  ðñõ #å Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý Ý å Ý Ý $Ý Ý Ý /Ý 7Ý -Ý )Ý 1Ý 2Ý /Ý $Ý &Ý &Ý +Ý (Ý /Ý )Ý Ý Ý Ý Ý Ý Ý Ý Ý $Ý %Ý 4Ý 'Ý #Ý $Ý #Ý #Ý áÝ!å)Ý&Ý/Ý&ÝÝ3ÝÝ Ý2Ý$Ý'Ý,Ý*Ý,Ý1Ý,Ý3áˆT˜Ô€Ùˆe˜3Ô€ÙˆeÐ-Ô.€ÙˆeÐ.Ô/€ò€ð ×ÑôIAØØ�ÑØ˜ÑØØ‡N�NóIAó ðIAôX˜.¨Ñ,Ð.@ÀÑ.Dô ô$R/ØØØ�ÑØ�rÑô	R/ôj;�\ "Ñ% x°¡|õ ;r…   