§
    WøÁizr  ã            	      ó0  — 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)l0m1Z1 d!d*l0m2Z2 d!d+l3m4Z4 d!d,l5m6Z6 d!d-l5m7Z7 d!d.l5m8Z8 d!d/l5m9Z9 d!d0l5m:Z: d!d1l5m;Z; d!d2l5m<Z< d!d3l5m=Z= er`dd4l>m?Z? dd5l>m@Z@ dd6l>mAZA dd7l>mBZB dd8lmCZC dd9lDmEZE dd:lFmGZG dd;lHmIZI dd<lJmKZK dd=lJmLZL d!d>lMmNZN d!d?lOmPZP d!d@lOmQZQ d!dAlRmSZS d!dBl5mTZT d!dCl5mUZU  edDe¬E¦  «        ZV edFe¬E¦  «        ZW edGdH¬E¦  «        ZXg dI¢ZYe*jZ         G dJ„ dKeeV         e!eV         ee*j[        ¦  «        ¦   «         Z\ G dL„ dMe\eV         eeV         ¦  «        Z] G dN„ dOeeeV         eeV         ¦  «        Z^dPS )Qz|MapperProperty implementations.

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

é    )Úannotations)ÚAny)Úcast)ÚDict)ÚList)ÚOptional)ÚSequence)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú
attributes)Ústrategy_options)Ú_DeclarativeMapped)Úclass_mapper)ÚCompositeProperty)ÚConcreteInheritedProperty)ÚSynonymProperty)Ú_AttributeOptions)Ú_DEFAULT_ATTRIBUTE_OPTIONS)Ú_IntrospectsAnnotations)Ú_MapsColumns)ÚMapperProperty)ÚPropComparator)ÚStrategizedProperty)ÚRelationshipProperty)Úde_stringify_annotation)Úde_stringify_union_elementsé   )Úexc)Ú
ForeignKey)Úlog)Úutil)Ú	coercions)Úroles)Ú_NoArg)ÚColumn)ÚSchemaConst)Ú
TypeEngine)Úde_optionalize_union_types)Ú
is_fwd_ref)Úis_optional_union)Ú	is_pep593)Ú	is_pep695)Úis_union)ÚSelf)Útyping_get_args)Ú_IdentityKeyType)Ú_InstanceDict)Ú_ORMColumnExprArgument)Ú_RegistryType)ÚMapped)Ú_ClassScanMapperConfig)ÚMapper)ÚSession)Ú_InstallLoaderCallableProto)ÚInstanceState)Ú	_InfoType)ÚColumnElement)ÚNamedColumn)ÚOperatorType)Ú_AnnotationScanType)ÚRODescriptorReferenceÚ_T)ÚboundÚ_PTÚ_NCzNamedColumn[Any])ÚColumnPropertyr   r   r   r   c                  ó°  ‡ — e Zd ZU dZej        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œdWˆ fd „ZdXd2„ZedYd4„¦   «         ZedZd6„¦   «         Zd[d7„Z ej        d8d9¦  «        d\d;„¦   «         Z ej        d8d9¦  «        d\d<„¦   «         Zd]d>„Zed]d?„¦   «         Zd^dB„Zd_ˆ fdC„Zd`dE„ZdadS„Z G dT„ dUej        ee         ¦  «        ZdbdV„Zˆ xZ S )crI   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)rK   ÚgroupÚdeferredÚ
instrumentrP   Úactive_historyÚexpire_on_flushÚ_creation_orderrM   rO   Ú_deferred_column_loaderÚ_raise_column_loaderÚ_renders_in_subqueriesÚ	raiseloadN)Úattribute_optionsrQ   rR   rZ   rP   rT   rU   ÚinfoÚdocÚ_instrumentÚ_assume_readonly_dc_attributesÚcolumnú_ORMColumnExprArgument[_T]Úadditional_columnsú_ORMColumnExprArgument[Any]r[   úOptional[_AttributeOptions]rQ   rR   rZ   ú"Optional[Type[PropComparator[_T]]]rT   rU   r\   úOptional[_InfoType]r]   r^   r_   c               óB  •— t          ¦   «                              ||¬¦  «         |f|z   }d„ |D ¦   «         | _        || _        || _        || _        || _        |�|n| j        j        | _	        || _
        || _        |	�| j                             |	¦  «         |
�|
| _        n:t          | j        ¦  «        D ]}t!          |dd ¦  «        }
|
�	|
| _         nŒd | _        t#          j        | ¦  «         d| j        fd| j        ff| _        | j        r| xj        dz  c_        d S d S )N)r[   r_   c                óL   — g | ]!}t          j        t          j        |¦  «        ‘Œ"S © )r'   Úexpectr(   ÚLabeledColumnExprRole©Ú.0Úcs     úc/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/sqlalchemy/orm/properties.pyú
<listcomp>z+ColumnProperty.__init__.<locals>.<listcomp>£   s5   € ð 
ð 
ð 
ØAB�IÔ�UÔ8¸!Ñ<Ô<ð
ð 
ð 
ó    r]   rR   rS   ))rZ   T)ÚsuperÚ__init__rK   rQ   rR   rZ   rS   Ú	__class__Ú
ComparatorrP   rT   rU   r\   Úupdater]   ÚreversedÚgetattrr&   Úset_creation_orderÚstrategy_key)Úselfr`   r[   rQ   rR   rZ   rP   rT   rU   r\   r]   r^   r_   rb   rK   Úcolrt   s                   €ro   rs   zColumnProperty.__init__Ž   s€  ø€ õ  	‰Œ×ÒØ/Ø+Ið 	ñ 	
ô 	
ð 	
ð �)Ð0Ñ0ˆð
ð 
ØFMð
ñ 
ô 
ˆŒð ˆŒ
Ø ˆŒØ"ˆŒØ%ˆŒð "Ð-ð Ðà”Ô*ð 	Ôð
 -ˆÔØ.ˆÔàÐØŒI×Ò˜TÑ"Ô"Ð"àˆ?ØˆDŒHˆHå ¤Ñ-Ô-ð  ð  �Ý˜c 5¨$Ñ/Ô/�Ø�?Ø"�D”HØ�Eð #ð  �”åÔ Ñ%Ô%Ð%ð ˜œÐ'Ø˜4œ?Ð+ð
ˆÔð Œ>ð 	8ØÐÔÐ!7Ñ7ÐÔÐÐð	8ð 	8rq   Ú	decl_scanr:   Úregistryr8   Úclsú	Type[Any]Úoriginating_moduleÚkeyÚstrÚmapped_containerúOptional[Type[Mapped[Any]]]Ú
annotationúOptional[_AnnotationScanType]Úextracted_mapped_annotationÚis_dataclass_fieldÚreturnÚNonec
                ó\   — | j         d         }
|
j        €||
_        |
j        €	||
_        d S d S ©Nr   )rK   r‚   Úname)r{   r}   r~   r   r�   r‚   r„   r†   rˆ   r‰   r`   s              ro   Údeclarative_scanzColumnProperty.declarative_scanÉ   s9   € ð ”˜a”ˆØŒ:ÐØˆFŒJØŒ;ÐØˆFŒKˆKˆKð Ðrq   úOptional[MapperProperty[_T]]c                ó   — | S ©Nri   ©r{   s    ro   Úmapper_property_to_assignz(ColumnProperty.mapper_property_to_assignÛ   s   € àˆrq   úList[Tuple[Column[Any], int]]c                ó$   — d„ | j         D ¦   «         S )Nc                óN   — g | ]"}t          |t          ¦  «        r|j        ­|df‘Œ#S r�   )Ú
isinstancer*   Útablerl   s     ro   rp   z4ColumnProperty.columns_to_assign.<locals>.<listcomp>â   s?   € ð 
ð 
ð 
àÝ˜!�VÑ$Ô$ð
ð *+¬¨ð �ˆFà)8¨¨rq   ©rK   r“   s    ro   Úcolumns_to_assignz ColumnProperty.columns_to_assignß   s%   € ð
ð 
à”\ð
ñ 
ô 
ð 	
rq   c                óZ   — d| j         v r| j        j        S d| j         vp| | j        j        vS )N)Úquery_expressionT)rR   T)rz   ÚstrategyÚ_have_default_expressionÚparentÚ_readonly_propsr“   s    ro   Ú%_memoized_attr__renders_in_subqueriesz4ColumnProperty._memoized_attr__renders_in_subqueriesè   s=   € Ø%¨Ô):Ð:Ð:Ø”=Ô9Ð9à!¨Ô):Ð:ð 
Ø˜œÔ3Ð3ð	
rq   zsqlalchemy.orm.statezsqlalchemy.orm.strategiesú _InstallLoaderCallableProto[Any]c                óÌ   — t           j        j        }t           j        j        }|j                             | j        j        |                     | j	        ¦  «        | j	        ¦  «        S r’   ©
r&   Ú	preloadedÚ	orm_stateÚorm_strategiesr>   Ú"_instance_level_callable_processorr    Úclass_managerÚLoadDeferredColumnsr‚   ©r{   ÚstateÚ
strategiess      ro   Ú&_memoized_attr__deferred_column_loaderz5ColumnProperty._memoized_attr__deferred_column_loaderð   sS   € õ ”Ô(ˆÝ”^Ô2ˆ
ØÔ"×EÒEØŒKÔ%Ø×*Ò*¨4¬8Ñ4Ô4ØŒHñ
ô 
ð 	
rq   c                óÎ   — t           j        j        }t           j        j        }|j                             | j        j        |                     | j	        d¦  «        | j	        ¦  «        S )NTr¥   r¬   s      ro   Ú#_memoized_attr__raise_column_loaderz2ColumnProperty._memoized_attr__raise_column_loaderü   sU   € õ ”Ô(ˆÝ”^Ô2ˆ
ØÔ"×EÒEØŒKÔ%Ø×*Ò*¨4¬8°TÑ:Ô:ØŒHñ
ô 
ð 	
rq   úroles.ColumnsClauseRolec                ó   — | j         S )zsAllow the ColumnProperty to work in expression before it is turned
        into an instrumented attribute.
        )Ú
expressionr“   s    ro   Ú__clause_element__z!ColumnProperty.__clause_element__  s   € ð
 ŒÐrq   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   rš   r“   s    ro   r´   zColumnProperty.expression  s   € ð( Œ|˜AŒÐrq   ÚmapperúMapper[Any]c                ó�   — | j         sd S t          j        |j        | j        |                      | |¦  «        || j        ¬¦  «         d S )N)Ú
comparatorÚparententityr]   )rS   r   Úregister_descriptorÚclass_r‚   rP   r]   )r{   r·   s     ro   Úinstrument_classzColumnProperty.instrument_class%  sZ   € ØŒð 	ØˆFåÔ&ØŒMØŒHØ×.Ò.¨t°VÑ<Ô<ØØ”ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
rq   c                ód  •— t          ¦   «                              ¦   «          t          | j        ¦  «        dk    rtt	          | j        j        ¦  «                             | j        ¦  «        rEt          j	        d| j        ›d| j        d         ›d| j        d         ›d| j
        ›d�	¦  «         d S d S d S )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.)rr   Údo_initÚlenrK   Úsetr    Úprimary_keyÚ
issupersetr&   Úwarnr‚   )r{   rt   s    €ro   rÀ   zColumnProperty.do_init1  s´   ø€ Ý‰Œ�ŠÑÔÐåˆtŒ|ÑÔ˜qÒ Ð ¥S¨¬Ô)@Ñ%AÔ%A×%LÒ%LØŒLñ&
ô &
Ð õ ŒIˆIð ”;�;�; ¤¨Q¤  °´¸a´°°À$Ä(À(À(ðLñô ð ð ð ð !Ð Ð Ð rq   úColumnProperty[_T]c                óF   — t          | j        | j        | j        | j        dœŽS )N)rR   rQ   rT   )rI   rK   rR   rQ   rT   r“   s    ro   ÚcopyzColumnProperty.copyA  s.   € ÝØŒ\Ø”]Ø”*ØÔ.ð	
ð 
ð 
ð 	
rq   Úsessionr<   Úsource_stateúInstanceState[Any]Úsource_dictr6   Ú
dest_stateÚ	dest_dictÚloadÚ
_recursiveúDict[Any, object]Ú_resolve_conflict_mapú#Dict[_IdentityKeyType[Any], object]c	                ó,  — | j         sd S | j        |v rO|| j                 }	|s|	|| j        <   d S |                     | j        ¦  «        }
|
                     |||	d ¦  «         d S |j        r)| j        |vr"|                     || j        gd¬¦  «         d S d S d S )NT)Ú	no_loader)rS   r‚   Úget_implrÂ   Úhas_identityÚ_expire_attributes)r{   rÉ   rÊ   rÌ   rÍ   rÎ   rÏ   rÐ   rÒ   ÚvalueÚimpls              ro   ÚmergezColumnProperty.mergeI  sÒ   € ð Œð 	ØˆFØŒX˜Ð$Ð$Ø ¤Ô)ˆEàð =Ø&+�	˜$œ(Ñ#Ð#Ð#à!×*Ò*¨4¬8Ñ4Ô4�Ø—’˜ Y°°tÑ<Ô<Ð<Ð<Ð<ØÔ$ð 	¨¬¸Ð)BÐ)BØ×)Ò)Ø˜DœH˜:°ð *ñ ô ð ð ð ð	ð 	Ð)BÐ)Brq   c                  óv   — 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dS )#ú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µ   r\   Úexpressionsz*RODescriptorReference[ColumnProperty[_PT]]ÚpropúSequence[NamedColumn[Any]]rÞ   r`   rH   rŠ   c                óð   — | j         }|||| j        j        dœ}|}| j        j        r&|}| j        j                             |¦  «        }||d<   |                     |¦  «                             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ß   r‚   Ú_parentmapperÚ_polymorphic_adapterÚtraverseÚ	_annotateÚ_set_propagate_attrs)r{   r`   Úper   r|   Úmapper_local_cols         ro   Ú_orm_annotate_columnz.ColumnProperty.Comparator._orm_annotate_column‡  s™   € ð Ô#ˆBà$&Ø "Ø "Ø!œYœ]ð	+ð +ˆKð ˆCð Ô!Ô6ð ?Ø#&Ð ØÔ(Ô=×FÒFÀsÑKÔK�ð
 /?�˜NÑ+à—=’= Ñ-Ô-×BÒBØ).À"ÐEÐEñô ð rq   úNamedColumn[_PT]c                ó   — d S r’   ri   r“   s    ro   rµ   z,ColumnProperty.Comparator.__clause_element__±  s   € € € rq   c                óº   — | j         r0|                       | j        j        d         | j        j        ¦  «        S |                      | j        j        d         ¦  «        S r�   )Úadapterrß   rK   r‚   rñ   r“   s    ro   Ú#_memoized_method___clause_element__z=ColumnProperty.Comparator._memoized_method___clause_element__³  sO   € ð Œ|ð GØ—|’| D¤IÔ$5°aÔ$8¸$¼)¼-ÑHÔHÐHà×0Ò0°´Ô1BÀ1Ô1EÑFÔFÐFrq   r?   c                ór   — |                       ¦   «         }	 |j        S # t          $ r | j        j        cY S w xY w)z(The .info dictionary for this attribute.)rµ   r\   ÚAttributeErrorrß   )r{   Úces     ro   Ú_memoized_attr_infoz-ColumnProperty.Comparator._memoized_attr_info»  sL   € ð ×(Ò(Ñ*Ô*ˆBð&Ø”w�øÝ!ð &ð &ð &Ø”y”~Ð%Ð%Ð%ð&øøøs   – �6µ6c                ór   ‡ — ‰ j         rˆ fd„‰ j        j        D ¦   «         S ˆ fd„‰ j        j        D ¦   «         S )z¡The full sequence of columns referenced by this
            attribute, adjusted for any aliasing in progress.

            .. versionadded:: 1.3.17

            c                óP   •— g | ]"}‰                      |‰j        j        ¦  «        ‘Œ#S ri   )rõ   rß   r‚   ©rm   r|   r{   s     €ro   rp   zHColumnProperty.Comparator._memoized_attr_expressions.<locals>.<listcomp>Ì  s;   ø€ ð ð ð àð —L’L  d¤i¤mÑ4Ô4ðð ð rq   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS ri   )rñ   rý   s     €ro   rp   zHColumnProperty.Comparator._memoized_attr_expressions.<locals>.<listcomp>Ñ  s4   ø€ ð ð ð Ø7:�D×-Ò-¨cÑ2Ô2ðð ð rq   )rõ   rß   rK   r“   s   `ro   Ú_memoized_attr_expressionsz4ColumnProperty.Comparator._memoized_attr_expressionsÄ  so   ø€ ð Œ|ð ðð ð ð à#œyÔ0ðñ ô ð ð
ð ð ð Ø>B¼iÔ>Oðñ ô ð rq   r‚   rƒ   r   c                óF   — t          |                      ¦   «         |¦  «        S )z‡proxy attribute access down to the mapped column.

            this allows user-defined comparison methods to be accessed.
            )rx   rµ   )r{   r‚   s     ro   Ú_fallback_getattrz+ColumnProperty.Comparator._fallback_getattrÕ  s    € õ
 ˜4×2Ò2Ñ4Ô4°cÑ:Ô:Ð:rq   ÚoprB   ÚotherÚkwargsúColumnElement[Any]c                ó>   —  ||                       ¦   «         g|¢R i |¤ŽS r’   ©rµ   ©r{   r  r  r  s       ro   Úoperatez!ColumnProperty.Comparator.operateÜ  s0   € ð �2�d×-Ò-Ñ/Ô/ÐB°%ÐBÐBÐB¸6ÐBÐBÐBrq   c                óf   — |                       ¦   «         } ||                     ||¦  «        |fi |¤ŽS r’   ©rµ   Ú_bind_param©r{   r  r  r  r|   s        ro   Úreverse_operatez)ColumnProperty.Comparator.reverse_operateá  s=   € ð ×)Ò)Ñ+Ô+ˆCØ�2�c—o’o b¨%Ñ0Ô0°#Ð@Ð@¸Ð@Ð@Ð@rq   N)r`   rH   rŠ   rH   )rŠ   rò   )rŠ   r?   )rŠ   rà   )r‚   rƒ   rŠ   r   ©r  rB   r  r   r  r   rŠ   r  )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú	__slots__Ú__annotations__rñ   rµ   rö   rú   rÿ   r  r	  r  ri   rq   ro   ru   rÝ   c  sÿ   € € € € € € ð	ð 	ð$ ð 	DàCˆIà8Ð8Ð8Ñ8à/Ð/Ð/Ñ/ð	ð&	ð &	ð &	ð &	ðP ð 	BàAÐAÐAÐAð	Gð 	Gð 	Gð 	Gð	&ð 	&ð 	&ð 	&ð	ð 	ð 	ð 	ð"	;ð 	;ð 	;ð 	;ð	Cð 	Cð 	Cð 	Cð
	Að 	Að 	Að 	Að 	Að 	Arq   ru   c                ó¤   — | j         r| j        st                               | ¦  «        S t	          | j         j        j        ¦  «        dz   | j        z   S )Nú.)r    r‚   ÚobjectÚ__repr__rƒ   r½   r  r“   s    ro   Ú__str__zColumnProperty.__str__ç  sI   € ØŒ{ð 	) $¤(ð 	)Ý—?’? 4Ñ(Ô(Ð(Ý�4”;Ô%Ô.Ñ/Ô/°#Ñ5¸¼Ñ@Ð@rq   )r`   ra   rb   rc   r[   rd   rQ   rN   rR   rL   rZ   rL   rP   re   rT   rL   rU   rL   r\   rf   r]   rN   r^   rL   r_   rL   ©r}   r:   r~   r8   r   r€   r�   rN   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‡   r‰   rL   rŠ   r‹   ©rŠ   r�   ©rŠ   r•   )rŠ   rL   )rŠ   r£   )rŠ   r²   )r·   r¸   rŠ   r‹   )rŠ   r‹   )rŠ   rÆ   )rÉ   r<   rÊ   rË   rÌ   r6   rÍ   rË   rÎ   r6   rÏ   rL   rÐ   rÑ   rÒ   rÓ   rŠ   r‹   ©rŠ   rƒ   )!r  r  r  r  r   Ú_COLUMN_TOKENÚstrategy_wildcard_keyÚinherit_cacheÚ_links_to_entityr  r  rs   r�   Úpropertyr”   r›   r¢   r&   Úpreload_moduler¯   r±   rµ   r´   r¾   rÀ   rÈ   rÛ   ÚMemoizedSlotsr   rG   ru   r  Ú__classcell__)rt   s   @ro   rI   rI   a   s„  ø€ € € € € € ðð ð -Ô:ÐØ€MØàÐà#Ð#Ð#Ñ#à'Ð'Ð'Ñ'à%Ð%Ð%Ñ%à0Ð0Ð0Ñ0ð€Ið* :>Ø#ØØØAEØ$Ø $Ø$(Ø!Ø Ø/4ð98ð 98ð 98ð 98ð 98ð 98ð 98ð 98ðvð ð ð ð$ ðð ð ñ „Xðð ð
ð 
ð 
ñ „Xð
ð
ð 
ð 
ð 
ð €TÔÐ/Ð1LÑMÔMð	
ð 	
ð 	
ñ NÔMð	
ð €TÔÐ/Ð1LÑMÔMð	
ð 	
ð 	
ñ NÔMð	
ðð ð ð ð ðð ð ñ „Xðð*

ð 

ð 

ð 

ðð ð ð ð ð ð 
ð 
ð 
ð 
ðð ð ð ð4BAð BAð BAð BAð BA�TÔ'¨¸Ô)<ñ BAô BAð BAðHAð Að Að Að Að Að Að Arq   rI   c                  ó   — e Zd ZdZdZdS )Ú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!  ri   rq   ro   r(  r(  í  s!   € € € € € ðð ð €MØÐrq   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ed?d„¦   «         Z	ed@d„¦   «         Z
edAd„¦   «         ZdBd„ZdCd"„ZdCd#„ZdDd$„ZdEd4„Z ej        d5¦  «        dFd9„¦   «         ZdGd;„Zd<S )HÚ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


    )r`   rV   Ú_sort_orderÚforeign_keysÚ_has_nullableÚ_has_insert_defaultrR   Údeferred_groupÚdeferred_raiseloadrT   Ú_attribute_optionsÚ_has_dataclass_argumentsÚ_use_existing_columnzUnion[_NoArg, bool]rR   rL   r0  rN   r/  ú
Column[_T]r`   zOptional[Set[ForeignKey]]r,  r   r1  Úargr   Úkwc                óÔ  ‡— |                      dt          ¦  «        x| _        Š|                      dd¦  «        | _        ‰d uo7‰t          k    o,t	          ˆfd„t          ‰j        ¦  «        D ¦   «         ¦  «        | _        |                      dt          j	        ¦  «        }|t          j	        u| _
        | j
        r||d<   n‰j        t          j	        ur
‰j        |d<   |                      dd ¦  «        | _        |                      dd ¦  «        | _        |                      d	t          j	        ¦  «        | _        |                      d
d¦  «        | _        |                      dt          j	        ¦  «        | _        t#          dt%          |i |¤Ž¦  «        | _        | j        j        | _        d|v o"|                     d¦  «        d t,          j        fv| _        t3          j        | ¦  «         d S )Nr[   Úuse_existing_columnFc              3  óR   •K  — | ]!\  }}|d k    ¯‰|         t           j        uV — Œ"dS )Údataclasses_defaultN)r)   ÚNO_ARG)rm   ÚiÚattrÚ	attr_optss      €ro   ú	<genexpr>z(MappedColumn.__init__.<locals>.<genexpr>4  sJ   øè è € ð ð á�A�tØÐ0Ò0Ð0ð ˜!”¥F¤MÐ1à0Ð0Ð0Ð0ðð rq   Úinsert_defaultÚdefaultr/  r0  rR   rT   Ú
sort_orderr4  Únullable)Úpopr   r1  r3  ÚanyÚ	enumerateÚ_fieldsr2  r)   r;  r.  r:  r/  r0  rR   rT   r+  r   r*   r`   r,  Úgetr+   ÚNULL_UNSPECIFIEDr-  r&   ry   )r{   r5  r6  r@  r>  s       @ro   rs   zMappedColumn.__init__*  sç  ø€ Ø.0¯fªfØÕ!;ñ/
ô /
ð 	
ˆÔ )ð %'§F¢FÐ+@À%Ñ$HÔ$HˆÔ!ð ˜TÐ!ð ØÕ7Ò7ðåð ð ð ð å(¨Ô):Ñ;Ô;ðñ ô ñ ô ð 	Ô%ð ŸšÐ 0µ&´-Ñ@Ô@ˆØ#1½¼Ð#FˆÔ àÔ#ð 	:Ø*ˆBˆy‰MˆMØÔ*µ&´-Ð?Ð?Ø%Ô9ˆBˆy‰Mà ŸfšfÐ%5°tÑ<Ô<ˆÔØ"$§&¢&Ð)=¸tÑ"DÔ"DˆÔØŸš˜z­6¬=Ñ9Ô9ˆŒØ ŸfšfÐ%5°uÑ=Ô=ˆÔàŸ6š6 ,µ´Ñ>Ô>ˆÔÝ˜<­°Ð);¸Ð);Ð);Ñ<Ô<ˆŒØ œKÔ4ˆÔØ'¨2Ð-ð 
°"·&²&¸Ñ2DÔ2DØÝÔ(ðM
ð 3
ˆÔõ 	Ô Ñ%Ô%Ð%Ð%Ð%rq   rŠ   r3   c                ó¬  — | j                              | j         ¦  «        } | j        j        di |¤Ž|_        | j        |_        | j        |_        | j        |_        |j        j        |_        | j        |_        | j	        |_	        | j
        |_
        | j        |_        | j        |_        | j        |_        | j        |_        t          j        |¦  «         |S )Nri   )rt   Ú__new__r`   Ú_copyrR   r/  r0  r,  rT   r-  r1  r.  r2  r3  r+  r&   ry   )r{   r6  Únews      ro   rL  zMappedColumn._copyQ  sÃ   € ØŒn×$Ò$ T¤^Ñ4Ô4ˆØ&�T”[Ô&Ð,Ð,¨Ð,Ð,ˆŒ
Ø”}ˆŒØ!Ô0ˆÔØ!%Ô!8ˆÔØœ:Ô2ˆÔØ!Ô0ˆÔØ Ô.ˆÔØ!%Ô!8ˆÔØ"&Ô":ˆÔØ'+Ô'DˆÔ$Ø#'Ô#<ˆÔ ØÔ*ˆŒÝÔ Ñ$Ô$Ð$Øˆ
rq   rƒ   c                ó   — | j         j        S r’   )r`   rŽ   r“   s    ro   rŽ   zMappedColumn.nameb  s   € àŒ{ÔÐrq   r�   c                óÔ   — | j         }|t          j        u rt          | j        p| j        ¦  «        }|s| j        r.t          | j        || j        | j        | j	        | j        ¬¦  «        S d S )N)rR   rQ   rZ   r[   rT   )
rR   r)   r;  rL   r/  r0  rT   rI   r`   r1  )r{   Úeffective_deferreds     ro   r”   z&MappedColumn.mapper_property_to_assignf  s‡   € à!œ]ÐØ¥¤Ð.Ð.Ý!%ØÔ#Ð> tÔ'>ñ"ô "Ðð ð 
	 Ô!4ð 
	Ý!Ø”Ø+ØÔ)ØÔ1Ø"&Ô"9Ø#Ô2ðñ ô ð ð �4rq   r•   c                óJ   — | j         | j        t          j        ur| j        ndfgS r�   )r`   r+  r)   r;  r“   s    ro   r›   zMappedColumn.columns_to_assignz  s8   € ð ”ð Ô'­v¬}Ð<Ð<ð Ô$Ð$àðð	
ð 		
rq   c                ó   — | j         S r’   )r`   r“   s    ro   rµ   zMappedColumn.__clause_element__‡  s
   € ØŒ{Ðrq   r  rB   r  r  r  c                ó>   —  ||                       ¦   «         g|¢R i |¤ŽS r’   r  r  s       ro   r	  zMappedColumn.operateŠ  s0   € ð ˆr�$×)Ò)Ñ+Ô+Ð>¨eÐ>Ð>Ð>°vÐ>Ð>Ð>rq   c                óf   — |                       ¦   «         } ||                     ||¦  «        |fi |¤ŽS r’   r  r  s        ro   r  zMappedColumn.reverse_operate�  s=   € ð ×%Ò%Ñ'Ô'ˆØˆr�#—/’/ " eÑ,Ô,¨cÐ<Ð<°VÐ<Ð<Ð<rq   c                ó   — t          ¦   «         S r’   )r*  r“   s    ro   Úfound_in_pep593_annotatedz&MappedColumn.found_in_pep593_annotated•  s   € õ ‰~Œ~Ðrq   r}   r:   r~   r8   r   r€   r�   r‚   r„   r…   r†   r‡   rˆ   r‰   r‹   c
                óÞ  — | j         }
| j        ru|j        rn|j        rg|j        rt          j        d¦  «        ‚t          |j        d¦  «        }|
j        �|
j        n|}|j	        j
                             ||
¦  «        x}
| _         |
j        €||
_        |
j        €||
_        |
j        }|€,|j        r#| j         j        s|                      ||¦  «         nd S |                      ||||¦  «         d S )Nz3Can't use use_existing_column with deferred mappersF)r`   r3  ÚinheritsÚsingleÚis_deferredÚsa_excÚArgumentErrorr   rŽ   Úlocal_tablern   rH  r‚   ÚtypeÚ_isnullr,  Ú_raise_for_requiredÚ_init_column_for_annotation)r{   r}   r~   r   r�   r‚   r„   r†   rˆ   r‰   r`   Úsupercls_mapperÚcolnameÚsqltypes                 ro   r�   zMappedColumn.declarative_scanš  s3  € ð ”ˆð Ô%ð	àÔ"ð	ð Ô ð	ð
 Ô$ð ÝÔ*ØIñô ð õ +¨9Ô+=¸uÑEÔEˆOà%+¤[Ð%<�f”k�kÀ#ˆGØ#2Ô#>Ô#@×#DÒ#DØ˜ñ$ô $ð ˆF�T”[ð Œ:ÐØˆFŒJØŒ;ÐØˆFŒKà”+ˆà&Ð.ØŒð  t¤{Ô'?ð Ø×(Ò(¨¨cÑ2Ô2Ð2Ð2à�à×(Ò(ØØØ'Øñ		
ô 	
ð 	
ð 	
ð 	
rq   zsqlalchemy.orm.decl_baseÚ
param_nameÚparam_annotationrC   c                óŽ   — t           j        j        }|                     || j        ¦  «         |                      ||||¦  «         d S r’   )r&   r¦   Úorm_decl_baseÚ_undefer_column_namer`   ra  )r{   r~   r   r�   r‚   re  rf  Ú	decl_bases           ro   Údeclarative_scan_for_compositez+MappedColumn.declarative_scan_for_compositeÌ  sS   € õ ”NÔ0ˆ	Ø×&Ò& z°4´;Ñ?Ô?Ð?Ø×(Ò(Ø�Ð+Ð-?ñ	
ô 	
ð 	
ð 	
ð 	
rq   Úargumentc                ó‚  — | j         j        }t          |t          ¦  «        st	          |d¬¦  «        r|€J ‚t          |||d¬¦  «        }t          |¦  «        r|€J ‚t          |||¦  «        }t          |¦  «        }| j	        s|| j         _
        t          |¦  «        }d }|}	t          |¦  «        r|j        }t          |¦  «        rsd}
t          |¦  «        }|d         }t          |¦  «        r$t          |¦  «        }d}| j	        s|| j         _
        |dd …         D ]}t          |t           ¦  «        r|} nŒnd}
d }|��™| j        s|j         j        �d | j         _        |j                              | j         ¦  «         | j         j        }|j        t*          j        ur| j        t*          j        u r|j        | _        |j        �| j        €|j        | _        |j        �| j        €|j        | _        |j        r| j        sd| _        |j        r|j        | _        |j        �| j        t*          j        u r|j        | _        |j         j        €|j         j        �t=          j        dd¦  «         |j         rgtC          |j"        j#        ¦  «        D ]M\  }}|j"        |         t*          j        ur/| $                    d	d
¦  «        }t=          j        d|› d�d¦  «         ŒN|j%        rÛ| j         j&        sÑd }|
r|	|g}n|	g}|D ]}| '                    |¦  «        }|� nŠŒt          |tP          ¦  «        s*t          |t          ¦  «        r:tS          |tP          ¦  «        r%tU          j+        d| j         j        ›d|› d�¦  «        ‚tU          j+        d|› d| j         j        ›d�¦  «        ‚| j          ,                    |¦  «         d S d S d S )NT)Úcheck_generic)Úinclude_genericr   r   Fz_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 objectzThe type provided inside the z4 attribute Mapped annotation is the SQLAlchemy type z . Expected a Python type insteadz6Could not locate SQLAlchemy Core type for Python type z inside the z attribute Mapped annotation)-r`   r^  r˜   rƒ   r.   r    r2   r!   r/   r-  rC  r-   r1   Ú	__value__r0   r4   r*  r.  rA  Ú_mergerR   r)   r;  r/  r0  r3  rT   r+  r‚   rŽ   r&   Úwarn_deprecatedr2  rF  r1  rG  Úreplacer_  r,  Ú_resolve_typer,   Ú
issubclassr[  r\  Ú	_set_type)r{   r   r~   rl  r�   rd  rC  Úour_typeÚuse_args_fromÚour_original_typeÚour_type_is_pep593Úpep_593_componentsÚraw_pep_593_typeÚelemÚidxr5  Únew_sqltypeÚchecksÚ
check_types                      ro   ra  z(MappedColumn._init_column_for_annotationÜ  sÝ  € ð ”+Ô"ˆå�h¥Ñ$Ô$ð 	­
Ø Dð)
ñ )
ô )
ð 	ð &Ð1Ð1Ð1Ý.Ø�XÐ1À4ðñ ô ˆHõ �HÑÔð 	Ø%Ð1Ð1Ð1Ý2Ø�XÐ1ñô ˆHõ % XÑ.Ô.ˆàÔ!ð 	,Ø#+ˆDŒKÔ å-¨hÑ7Ô7ˆàˆà$Ðå�XÑÔð 	*ØÔ)ˆHå�XÑÔð 	$Ø!%Ðå!0°Ñ!:Ô!:ÐØ1°!Ô4ÐÝ Ð!1Ñ2Ô2ð 4Ý#=Ð>NÑ#OÔ#OÐ à�ØÔ)ð 4Ø+3�D”KÔ(Ø*¨1¨2¨2Ô.ð ð �Ý˜d¥LÑ1Ô1ð Ø$(�MØ�Eðøð "'ÐØ#ÐàÑ$àÔ,ð+à!Ô(Ô0Ð<à&*�”Ô#àÔ ×'Ò'¨¬Ñ4Ô4Ð4Ø”kÔ&ˆGð Ô&­f¬mÐ;Ð;Ø”M¥V¤]Ð2Ð2à -Ô 6�”ð Ô,Ð8ØÔ'Ð/à&3Ô&B�Ô#ð Ô0Ð<ØÔ+Ð3à*7Ô*J�Ô'ð Ô2ð1àÔ1ð1ð -1�Ô)àÔ+ð CØ&3Ô&B�Ô#ð Ô)Ð5ØÔ$­¬Ð5Ð5à#0Ô#<�Ô ð Ô$Ô(Ð4Ø Ô'Ô,Ð8åÔ$ðKàñô ð ð Ô5ð Ý )Ø!Ô4Ô<ñ!ô !ð ð ‘H�C˜ð &Ô8¸Ô=Ý%œ}ð-ð -ð "Ÿkšk¨.¸"Ñ=Ô=˜ÝÔ,ðD¨ð Dð Dð Dð %ñ	ô ð øð Œ?ð 	/ 4¤;Ô#;ð 	/ØˆKà!ð -Ø+Ð-=Ð>��à+Ð,�à$ð ð �
Ø&×4Ò4°ZÑ@Ô@�ØÐ*Ø�Eð +õ ˜h­
Ñ3Ô3ð Ý˜x­Ñ.Ô.ðå" 8­ZÑ8Ô8ðõ !Ô.ðF¸¼¼ð Fð Fà#ðFð Fð Fñô ð õ !Ô.ð6Ø (ð6ð 6Ø6:´k´oð6ð 6ð 6ñô ð ð ŒK×!Ò! +Ñ.Ô.Ð.Ð.Ð.ð;	/ð 	/ð 	/ð 	/rq   N)r5  r   r6  r   )r6  r   rŠ   r3   r  r  r  )rŠ   r4  r  )rŠ   r   r  )r~   r8   r   r€   r�   rN   r‚   rƒ   re  rƒ   rf  rC   rŠ   r‹   )
r   r€   r~   r8   rl  rC   r�   rN   rŠ   r‹   )r  r  r  r  r  r  rs   rL  r#  rŽ   r”   r›   rµ   r	  r  rV  r�   r&   r$  rk  ra  ri   rq   ro   r*  r*  ÿ  s¨  € € € € € € ð
ð ð€Ið  "Ð!Ð!Ñ!ØÐÐÑØ!Ð!Ð!Ñ!àÐÐÑØ+Ð+Ð+Ñ+Ø)Ð)Ð)Ñ)ð%&ð %&ð %&ð %&ðNð ð ð ð" ð ð  ð  ñ „Xð ð ðð ð ñ „Xðð& ð

ð 

ð 

ñ „Xð

ðð ð ð ð?ð ?ð ?ð ?ð
=ð =ð =ð =ðð ð ð ð
0
ð 0
ð 0
ð 0
ðd €TÔÐ3Ñ4Ô4ð
ð 
ð 
ñ 5Ô4ð
ðZ/ð Z/ð Z/ð Z/ð Z/ð Z/rq   r*  N)_r  Ú
__future__r   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   rq  r   r   Úbaser   r   Údescriptor_propsr   r   r   Ú
interfacesr   r   r   r   r   r   r   Úrelationshipsr   r&   r    r!   r#   r[  r$   r%   Úsqlr'   r(   Úsql.baser)   Ú
sql.schemar*   r+   Úsql.type_apir,   Úutil.typingr-   r.   r/   r0   r1   r2   r3   r4   Ú_typingr5   r6   r7   r8   r9   rj  r:   r·   r;   rÉ   r<   r­   r=   r>   Úsql._typingr?   Úsql.elementsr@   rA   Úsql.operatorsrB   rC   rD   rE   rG   rH   Ú__all__Úclass_loggerÚ
IdentifiedrI   r(  r*  ri   rq   ro   ú<module>r–     sÎ  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø -Ð -Ð -Ð -Ð -Ð -Ø )Ð )Ð )Ð )Ð )Ð )Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø /Ð /Ð /Ð /Ð /Ð /Ø $Ð $Ð $Ð $Ð $Ð $Ø &Ð &Ð &Ð &Ð &Ð &Ø &Ð &Ð &Ð &Ð &Ð &Ø +Ð +Ð +Ð +Ð +Ð +Ø /Ð /Ð /Ð /Ð /Ð /Ø )Ð )Ð )Ð )Ð )Ð )Ø -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø %Ð %Ð %Ð %Ð %Ð %Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø $Ð $Ð $Ð $Ð $Ð $Ø +Ð +Ð +Ð +Ð +Ð +Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )àð 4Ø)Ð)Ð)Ð)Ð)Ð)Ø&Ð&Ð&Ð&Ð&Ð&Ø/Ð/Ð/Ð/Ð/Ð/Ø&Ð&Ð&Ð&Ð&Ð&ØÐÐÐÐÐØ1Ð1Ð1Ð1Ð1Ð1ØÐÐÐÐÐØ Ð Ð Ð Ð Ð Ø2Ð2Ð2Ð2Ð2Ð2Ø$Ð$Ð$Ð$Ð$Ð$Ø'Ð'Ð'Ð'Ð'Ð'Ø,Ð,Ð,Ð,Ð,Ð,Ø*Ð*Ð*Ð*Ð*Ð*Ø,Ð,Ð,Ð,Ð,Ð,Ø1Ð1Ð1Ð1Ð1Ð1Ø3Ð3Ð3Ð3Ð3Ð3à€WˆT˜ÐÑÔ€Ø€gˆe˜3ÐÑÔ€Ø€gˆeÐ-Ð.Ñ.Ô.€ðð ð €ð ÔðHAð HAð HAð HAð HAØ�ÔØ˜ÔØØ„Nñ	HAô HAñ ÔðHAðVð ð ð ð ˜.¨Ô,Ð.@ÀÔ.Dñ ô ð ð$w/ð w/ð w/ð w/ð w/ØØ�ÔØ�rÔñw/ô w/ð w/ð w/ð w/rq   