Ë
    ¦û’g‰q  ã            	      óÜ  — 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/m0Z0 d d)l/m1Z1 d d*l2m3Z3 d d+l4m5Z5 d d,l4m6Z6 d d-l4m7Z7 d d.l4m8Z8 d d/l4m9Z9 d d0l4m:Z: d d1l4m;Z; er`dd2l<m=Z= dd3l<m>Z> dd4l<m?Z? dd5l<m@Z@ dd6lmAZA dd7lBmCZC dd8lDmEZE dd9lFmGZG dd:lHmIZI dd;lHmJZJ d d<lKmLZL d d=lMmNZN d d>lMmOZO d d?lPmQZQ d d@l4mRZR d dAl4mSZS  edBe¬C«      ZT edDe¬C«      ZU edEdF¬C«      ZVg dG¢ZWe)j°                   G dH„ dIeeT   e!eT   ee)j²                  «      «       ZZ G dJ„ dKeZeT   eeT   «      Z[ G dL„ dMeeeT   eeT   «      Z\yN)Oz|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é   )Úexc)Ú
ForeignKey)Úlog)Úutil)Ú	coercions)Úroles)Ú_NoArg)ÚColumn)ÚSchemaConst)Ú
TypeEngine)Úde_optionalize_union_types)Úget_args)Úincludes_none)Ú
is_fwd_ref)Ú	is_pep593)Ú	is_pep695)ÚSelf)Ú_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œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 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j6                  ee   «      Zd,d „Zˆ xZ S )-rG   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)rI   ÚgroupÚdeferredÚ
instrumentrN   Úactive_historyÚexpire_on_flushÚ_creation_orderrK   rM   Ú_deferred_column_loaderÚ_raise_column_loaderÚ_renders_in_subqueriesÚ	raiseloadN)Úattribute_optionsrO   rP   rX   rN   rR   rS   Ú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j.                  dz  c_        y y c c}w )N)rY   r]   r[   rP   rQ   ))rX   T)ÚsuperÚ__init__r&   Úexpectr'   ÚLabeledColumnExprRolerI   rO   rP   rX   rQ   Ú	__class__Ú
ComparatorrN   rR   rS   rZ   Úupdater[   ÚreversedÚgetattrr%   Úset_creation_orderÚstrategy_key)ÚselfÚcolumnrY   rO   rP   rX   rN   rR   rS   rZ   r[   r\   r]   Úadditional_columnsrI   ÚcÚcolrc   s                    €úX/var/www/html/AdoubleTech/venv/lib/python3.12/site-packages/sqlalchemy/orm/properties.pyr`   zColumnProperty.__init__Œ   sb  ø€ ô  	‰ÑØ/Ø+Ið 	ô 	
ð �)Ð0Ñ0ˆàFMö
ØABŒI×ÑœU×8Ñ8¸!Õ<ò
ˆŒð ˆŒ
Ø ˆŒØ"ˆŒØ%ˆŒð "Ð-ñ à—‘×*Ñ*ð 	Ôð
 -ˆÔØ.ˆÔàÐØ�I‰I×Ñ˜TÔ"àˆ?ØˆD�Hä §¡Ó-ò  �Ü˜c 5¨$Ó/�Ø‘?Ø"�D”HÙð	 ð  �”ä×Ñ Ô%ð ˜Ÿ™Ð'Ø˜4Ÿ?™?Ð+ð
ˆÔð �>Š>Ø×ÒÐ!7Ñ7Öð ùòG
s   �+Ec
                óp   — | j                   d   }
|
j                  €||
_        |
j                  €||
_        y y ©Nr   )rI   ÚkeyÚname)rj   Ú	decl_scanÚregistryÚclsÚoriginating_modulerr   Úmapped_containerÚ
annotationÚextracted_mapped_annotationÚis_dataclass_fieldrk   s              ro   Údeclarative_scanzColumnProperty.declarative_scanÇ   s8   € ð —‘˜a‘ˆØ�:‰:ÐØˆFŒJØ�;‰;ÐØˆF�Kð ó    c                ó   — | S ©N© ©rj   s    ro   Ú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 rq   )rI   Ú
isinstancer)   Útable)rj   rm   s     ro   Ú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)rP   T)ri   ÚstrategyÚ_have_default_expressionÚparentÚ_readonly_propsr�   s    ro   Ú%_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ÚLoadDeferredColumnsrr   ©rj   ÚstateÚ
strategiess      ro   Ú&_memoized_attr__deferred_column_loaderz5ColumnProperty._memoized_attr__deferred_column_loaderî   sa   € ô —‘×(Ñ(ˆÜ—^‘^×2Ñ2ˆ
Ø×"Ñ"×EÑEØ�K‰K×%Ñ%Ø×*Ñ*¨4¯8©8Ó4Ø�H‰Hó
ð 	
r}   c                ó  — t         j                  j                  }t         j                  j                  }|j                  j                  | j                  j                  |j                  | j                  d«      | j                  «      S )NTr�   r–   s      ro   Ú#_memoized_attr__raise_column_loaderz2ColumnProperty._memoized_attr__raise_column_loaderú   sc   € ô —‘×(Ñ(ˆÜ—^‘^×2Ñ2ˆ
Ø×"Ñ"×EÑEØ�K‰K×%Ñ%Ø×*Ñ*¨4¯8©8°TÓ:Ø�H‰Hó
ð 	
r}   c                ó   — | 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   € ð
 �‰Ð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   )rI   r�   s    ro   r�   zColumnProperty.expression  s   € ð( �|‰|˜A‰Ðr}   c                ó®   — | j                   sy t        j                  |j                  | j                  | j                  | |«      || j                  ¬«       y )N)Ú
comparatorÚparententityr[   )rQ   r   Úregister_descriptorÚclass_rr   rN   r[   )rj   Úmappers     ro   Ú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.)r_   Údo_initÚlenrI   Úsetr‹   Úprimary_keyÚ
issupersetr%   Úwarnrr   )rj   rc   s    €ro   r¨   zColumnProperty.do_init/  s€   ø€ Ü‰‰Ôäˆt�|‰|Ó˜qÒ ¤S¨¯©×)@Ñ)@Ó%A×%LÑ%LØ�L‰Lô&
ô �IŠIð —;“; §¡¨Q£°·±¸a³À$Ç(Ã(ðLõð&
Ð r}   c                ól   — t        | j                  | j                  | j                  | j                  dœŽS )N)rP   rO   rR   )rG   rI   rP   rO   rR   r�   s    ro   ÚcopyzColumnProperty.copy?  s-   € ÜØ�\‰\Ø—]‘]Ø—*‘*Ø×.Ñ.ò	
ð 	
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)rQ   rr   Úget_implrª   Úhas_identityÚ_expire_attributes)rj   ÚsessionÚsource_stateÚsource_dictÚ
dest_stateÚ	dest_dictÚloadÚ
_recursiveÚ_resolve_conflict_mapÚvalueÚimpls              ro   ÚmergezColumnProperty.mergeG  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ž   rZ   Ú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Ã   rr   Ú_parentmapperÚ_polymorphic_adapterÚtraverseÚ	_annotateÚ_set_propagate_attrs)rj   rk   Úper   rn   Úmapper_local_cols         ro   Ú_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    ro   rž   z,ColumnProperty.Comparator.__clause_element__¯  s   � r}   c                óä   — | j                   r=| j                  | j                  j                  d   | j                  j                  «      S | j	                  | j                  j                  d   «      S rq   ©ÚadapterrÃ   rI   rr   rÕ   r�   s    ro   Ú#_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ž   rZ   ÚAttributeErrorrÃ   )rj   Úces     ro   Ú_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.

            .. versionadded:: 1.3.17

            rØ   )rj   rn   s     ro   Ú_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.
            )rg   rž   )rj   rr   s     ro   Ú_fallback_getattrz+ColumnProperty.Comparator._fallback_getattrÓ  s   € ô
 ˜4×2Ñ2Ó4°cÓ:Ð:r}   c                ó6   —  || j                  «       g|¢­i |¤ŽS r   ©rž   ©rj   ÚopÚotherÚkwargss       ro   Úoperatez!ColumnProperty.Comparator.operateÚ  s"   € ñ �d×-Ñ-Ó/ÐB°%ÒB¸6ÑBÐBr}   c                óV   — | j                  «       } ||j                  ||«      |fi |¤ŽS r   ©rž   Ú_bind_param©rj   ræ   rç   rè   rn   s        ro   Úreverse_operatez)ColumnProperty.Comparator.reverse_operateß  s/   € ð ×)Ñ)Ó+ˆCÙ�c—o‘o b¨%Ó0°#Ñ@¸Ñ@Ð@r}   N)rk   rF   ÚreturnrF   )rï   zNamedColumn[_PT])rï   r=   )rï   rÄ   )rr   Ústrrï   r   ©ræ   r@   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}   ro   rd   rÁ   a  s¢   … ñ	ñ$ àCˆIà8Ó8à/Ó/ð	ó&	ñP ãAð	Gàó	Gó	&ó	ó"	;ð	CØ"ð	CØ,/ð	CØ;>ð	Càó	Cð
	AØ"ð	AØ+.ð	AØ:=ð	Aàô	Ar}   rd   c                óÎ   — | j                   r| j                  st        j                  | «      S t	        | j                   j
                  j                  «      dz   | j                  z   S )Nú.)r‹   rr   ÚobjectÚ__repr__rð   r¤   rò   r�   s    ro   Ú__str__zColumnProperty.__str__å  sG   € Ø�{Š{ $§(¢(Ü—?‘? 4Ó(Ð(Ü�4—;‘;×%Ñ%×.Ñ.Ó/°#Ñ5¸¿¹Ñ@Ð@r}   )rk   z_ORMColumnExprArgument[_T]rl   z_ORMColumnExprArgument[Any]rY   zOptional[_AttributeOptions]rO   rL   rP   rJ   rX   rJ   rN   z"Optional[Type[PropComparator[_T]]]rR   rJ   rS   rJ   rZ   zOptional[_InfoType]r[   rL   r\   rJ   r]   rJ   ©rt   r8   ru   r6   rv   ú	Type[Any]rw   rL   rr   rð   rx   zOptional[Type[Mapped[Any]]]ry   úOptional[_AnnotationScanType]rz   rÿ   r{   rJ   rï   ÚNone©rï   zOptional[MapperProperty[_T]]©rï   zList[Tuple[Column[Any], int]])rï   rJ   )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·   r4   r¸   r  r¹   r4   rº   rJ   r»   zDict[Any, object]r¼   z#Dict[_IdentityKeyType[Any], object]rï   r   ©rï   rð   )!rò   ró   rô   rõ   r   Ú_COLUMN_TOKENÚstrategy_wildcard_keyÚinherit_cacheÚ_links_to_entityr÷   rö   r`   r|   Úpropertyr‚   r†   r�   r%   Úpreload_moduler™   r›   rž   r�   r¦   r¨   r¯   r¿   ÚMemoizedSlotsr   rE   rd   rü   Ú__classcell__)rc   s   @ro   rG   rG   _   s‡  ø… ñð -×:Ñ:ÐØ€MØàÐà#Ó#à#'Ó'à%Ó%à0Ó0ð€Ið* :>Ø#ØØØAEØ$Ø $Ø$(Ø!Ø Ø/4ñ98à*ð98ð 9ð98ð 7ð	98ð
 ð98ð ð98ð ð98ð ?ð98ð ð98ð ð98ð "ð98ð ð98ð ð98ð )-õ98ðvà)ðð  ðð ð	ð
 *ðð ðð 6ðð 2ðð &Cðð !ðð 
óð$ òó ðð ò
ó ð
ó
ð €T×ÑÐ/Ð1LÓMð	
à	)ò	
ó Nð	
ð €T×ÑÐ/Ð1LÓMð	
à	)ò	
ó Nð	
óð òó ðó*

õó 
ðàðð )ðð #ð	ð
 'ðð !ðð ðð &ðð  Cðð 
óô4BA�T×'Ñ'¨¸Ñ)<ô BA÷HAr}   rG   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}   ro   r  r  ë  s   „ ñð €MØr}   r  c                  ór  — 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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


    )rk   rT   Ú_sort_orderÚforeign_keysÚ_has_nullableÚ_has_insert_defaultrP   Údeferred_groupÚdeferred_raiseloadrR   Ú_attribute_optionsÚ_has_dataclass_argumentsÚ_use_existing_columnzUnion[_NoArg, bool]rP   rJ   r  rL   r  ú
Column[_T]rk   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| _
        | j                  r||d<   n+‰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,        j.                  fv| _        t3        j4                  | «       y )NrY   Úuse_existing_columnFc              3  óX   •K  — | ]!  \  }}|d k7  r‰|   t         j                  u–— Œ# y­w)Údataclasses_defaultN)r(   ÚNO_ARG)Ú.0ÚiÚattrÚ	attr_optss      €ro   ú	<genexpr>z(MappedColumn.__init__.<locals>.<genexpr>2  s3   øè ø€ ò á�A�tØÐ0Ò0ð ˜!‘¤F§M¡MÔ1ñùs   ƒ'*Úinsert_defaultÚdefaultr  r  rP   rR   Ú
sort_orderr  Únullable)Úpopr   r  r  ÚanyÚ	enumerateÚ_fieldsr  r(   r  r  r  r  r  rP   rR   r  r   r)   rk   r  Úgetr*   ÚNULL_UNSPECIFIEDr  r%   rh   )rj   ÚargÚkwr%  r#  s       @ro   r`   zMappedColumn.__init__(  s®  ø€ Ø.0¯f©fØÔ!;ó/
ð 	
ˆÔ )ð %'§F¡FÐ+@À%Ó$HˆÔ!ð ˜TÐ!ò ØÔ7Ñ7òäó ä(¨×):Ñ):Ó;ôó ð 	Ô%ð Ÿ™Ð 0´&·-±-Ó@ˆØ#1¼¿¹Ð#FˆÔ à×#Ò#Ø*ˆBˆyŠMØ×*Ñ*´&·-±-Ñ?Ø%×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                óF  — | j                   j                  | j                   «      } | j                  j                  di |¤Ž|_        | j                  |_        | j
                  |_        | j                  |_        |j                  j                  |_        | j                  |_        | j                  |_	        | j                  |_
        | j                  |_        | j                  |_        | j                  |_        | j                  |_        t        j                   |«       |S )Nr€   )rc   Ú__new__rk   Ú_copyrP   r  r  r  rR   r  r  r  r  r  r  r%   rh   )rj   r0  Únews      ro   r3  zMappedColumn._copyO  sâ   € Ø�n‰n×$Ñ$ T§^¡^Ó4ˆØ&�T—[‘[×&Ñ&Ñ,¨Ñ,ˆŒ
Ø—}‘}ˆŒØ!×0Ñ0ˆÔØ!%×!8Ñ!8ˆÔØŸ:™:×2Ñ2ˆÔØ!×0Ñ0ˆÔØ ×.Ñ.ˆÔØ!%×!8Ñ!8ˆÔØ"&×":Ñ":ˆÔØ'+×'DÑ'DˆÔ$Ø#'×#<Ñ#<ˆÔ Ø×*Ñ*ˆŒÜ×Ñ Ô$Øˆ
r}   c                ó.   — | j                   j                  S r   )rk   rs   r�   s    ro   rs   zMappedColumn.name`  s   € à�{‰{×ÑÐr}   c                ó(  — | j                   }|t        j                  u r#t        | j                  xs | j
                  «      }|s| j                  rCt        | j                  || j                  | j
                  | j                  | j                  ¬«      S y )N)rP   rO   rX   rY   rR   )
rP   r(   r  rJ   r  r  rR   rG   rk   r  )rj   Úeffective_deferreds     ro   r‚   z&MappedColumn.mapper_property_to_assignd  s„   € à!Ÿ]™]ÐØ¤§¡Ñ.Ü!%Ø×#Ñ#Ò> t×'>Ñ'>ó"Ðñ  ×!4Ò!4Ü!Ø—‘Ø+Ø×)Ñ)Ø×1Ñ1Ø"&×"9Ñ"9Ø#×2Ñ2ôð ð r}   c                ót   — | j                   | j                  t        j                  ur| j                  fgS dfgS rq   )rk   r  r(   r  r�   s    ro   r†   zMappedColumn.columns_to_assignx  sM   € ð —‘ð ×'Ñ'¬v¯}©}Ñ<ð ×$Ñ$ðð	
ð 		
ð ðð	
ð 		
r}   c                ó   — | j                   S r   )rk   r�   s    ro   rž   zMappedColumn.__clause_element__…  s   € Ø�{‰{Ðr}   c                ó6   —  || j                  «       g|¢­i |¤ŽS r   rä   rå   s       ro   ré   zMappedColumn.operateˆ  s"   € ñ �$×)Ñ)Ó+Ð>¨eÒ>°vÑ>Ð>r}   c                óV   — | j                  «       } ||j                  ||«      |fi |¤ŽS r   rë   rí   s        ro   rî   zMappedColumn.reverse_operate�  s/   € ð ×%Ñ%Ó'ˆÙ�#—/‘/ " eÓ,¨cÑ<°VÑ<Ð<r}   c                ó   — t        «       S r   )r  r�   s    ro   Úfound_in_pep593_annotatedz&MappedColumn.found_in_pep593_annotated“  s   € ô ‹~Ðr}   c
                ó\  — | j                   }
| j                  r–|j                  rŠ|j                  r~|j                  rt        j                  d«      ‚t        |j                  d«      }|
j                  �|
j                  n|}|j                  j                  j                  ||
«      x}
| _         |
j                  €||
_        |
j                  €||
_        |
j                  }|€6|j                  r)| j                   j                  s| j!                  ||«       ny | j#                  ||||«       y )Nz3Can't use use_existing_column with deferred mappersF)rk   r  ÚinheritsÚsingleÚis_deferredÚsa_excÚArgumentErrorr   rs   Úlocal_tablerm   r-  rr   ÚtypeÚ_isnullr  Ú_raise_for_requiredÚ_init_column_for_annotation)rj   rt   ru   rv   rw   rr   rx   ry   rz   r{   rk   Úsupercls_mapperÚcolnameÚsqltypes                 ro   r|   zMappedColumn.declarative_scan˜  s  € ð —‘ˆð ×%Ò%Ø×"Ò"Ø× Ò à×$Ò$Ü×*Ñ*ØIóð ô +¨9×+=Ñ+=¸uÓEˆOà%+§[¡[Ð%<�f—k’kÀ#ˆGØ#2×#>Ñ#>×#@Ñ#@×#DÑ#DØ˜ó$ð ˆF�T”[ð �:‰:ÐØˆ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_namerk   rH  )rj   ru   rv   rw   rr   Ú
param_nameÚparam_annotationÚ	decl_bases           ro   Údeclarative_scan_for_compositez+MappedColumn.declarative_scan_for_compositeÊ  s@   € ô —N‘N×0Ñ0ˆ	Ø×&Ñ& z°4·;±;Ô?Ø×(Ñ(Ø�Ð+Ð-?õ	
r}   c                ó`  — | j                   j                  }t        |dd¬«      r|€J ‚t        |||d¬«      }t	        |«      }| j
                  s|| j                   _        t        |«      }d}d}	d }
t        |«      r%d}	t        |«      }|d   }
|rt        |
«      }
|dd  }n8t        |«      r-t        |j                  «      rt        |j                  «      dd  }|D ]  }t        |t        «      sŒ|} n d }|��?| j                  s'|j                   j                  �d | j                   _        |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.                  | _        |j0                  �-| j0                  t$        j&                  u r|j0                  | _        |j                   j2                  €|j                   j4                  �t7        j8                  dd	«       |j:                  rst=        |j>                  j@                  «      D ]Q  \  }}|j>                  |   t$        j&                  usŒ&|jC                  d
d«      }t7        j8                  d|› d�d	«       ŒS |jD                  rë| j                   jF                  sÔd }|	r||
g}n|g}|D ]  }|jI                  |«      }|€Œ n‘ t        |tJ        «      s t        |t        «      r@tM        |tJ        «      r0tO        jP                  d| j                   j2                  ›d|› d�«      ‚tO        jP                  d|› d| j                   j2                  ›d�«      ‚| j                   jS                  |«       y y y )NT)Úcheck_genericÚcheck_for_plain_string)Úinclude_genericr€   Fr   r   z_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)*rk   rE  r/   r    r.   r  r(  r,   r0   r-   r1   Ú	__value__r„   r  r  r&  Ú_mergerP   r(   r  r  r  r  rR   r  rr   rs   r%   Úwarn_deprecatedr  r+  r  r,  ÚreplacerF  r  Ú_resolve_typer+   Ú
issubclassrB  rC  Ú	_set_type)rj   rv   ru   Úargumentrw   rK  r(  Úour_typeÚfind_mapped_inÚour_type_is_pep593Úraw_pep_593_typeÚpep_593_componentsÚelemÚuse_args_fromÚidxr/  Únew_sqltypeÚchecksÚ
check_types                      ro   rH  z(MappedColumn._init_column_for_annotationÚ  s  € ð —+‘+×"Ñ"ˆäØ DÀõ
ð &Ð1Ð1Ð1Ü.Ø�XÐ1À4ôˆHô ! Ó*ˆà×!Ò!Ø#+ˆD�K‰KÔ ä-¨hÓ7ˆà*,ˆØ"ÐØÐä�XÔØ!%Ðä!)¨(Ó!3ÐØ1°!Ñ4ÐÙÜ#=Ð>NÓ#OÐ Ø/°°Ð3‰NÜ�xÔ ¤Y¨x×/AÑ/AÔ%Bä% h×&8Ñ&8Ó9¸!¸"Ð=ˆNð #ò 	!ˆDÜ˜$¤Õ-Ø $�Ùð	!ð
 !ˆMàÑ$à×,Ò,Ø!×(Ñ(×0Ñ0Ð<à&*�—‘Ô#à× Ñ ×'Ñ'¨¯©Ô4Ø—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§;¡;×#;Ò#;ØˆKñ "Ø"Ð$4Ð5‘à"˜�à$ò �
Ø&×4Ñ4°ZÓ@�ØÑ*Ùðô
 ˜h¬
Ô3Ü˜x¬Ô.Ü" 8¬ZÔ8ä ×.Ñ.Ø7¸¿¹¿¹Ð7Jð KNà#˜*Ð$DðFóð ô !×.Ñ.ð Ø (˜z¨°d·k±k·o±oÐ5Hð I6ð6óð ð �K‰K×!Ñ! +Õ.ð= $<ˆ?r}   N)r/  r   r0  r   )r0  r   rï   r2   r  r  r  )rï   r  rñ   )rï   r   rý   )ru   r6   rv   rþ   rw   rL   rr   rð   rO  rð   rP  rA   rï   r   )
rv   rþ   ru   r6   r`  rA   rw   rL   rï   r   )rò   ró   rô   rõ   rö   r÷   r`   r3  r	  rs   r‚   r†   rž   ré   rî   r=  r|   r%   r
  rR  rH  r€   r}   ro   r  r  ý  sÙ  … ñ
ð€Ið  "Ó!ØÓØ!Ó!àÓØ+Ó+Ø)Ó)ó%&óNð" ò ó ð ð òó ðð& ò

ó ð

óð?Øð?Ø(+ð?Ø7:ð?à	ó?ð
=Øð=Ø'*ð=Ø69ð=à	ó=óð
0
à)ð0
ð  ð0
ð ð	0
ð
 *ð0
ð ð0
ð 6ð0
ð 2ð0
ð &Cð0
ð !ð0
ð 
ó0
ðd €T×ÑÐ3Ó4ð
àð
ð ð
ð *ð	
ð
 ð
ð ð
ð .ð
ð 
ò
ó 5ð
ðS/àðS/ð  ðS/ð &ð	S/ð
 *ðS/ð 
ôS/r}   r  N)]rõ   Ú
__future__r   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   rX  r   r   Úbaser   r   Údescriptor_propsr   r   r   Ú
interfacesr   r   r   r   r   r   r   Úrelationshipsr   r%   r    r"   rB  r#   r$   Úsqlr&   r'   Úsql.baser(   Ú
sql.schemar)   r*   Úsql.type_apir+   Úutil.typingr,   r-   r.   r/   r0   r1   r2   Ú_typingr3   r4   r5   r6   r7   rQ  r8   r¥   r9   rµ   r:   r—   r;   r<   Úsql._typingr=   Úsql.elementsr>   r?   Úsql.operatorsr@   rA   rB   rC   rE   rF   Ú__all__Úclass_loggerÚ
IdentifiedrG   r  r  r€   r}   ro   ú<module>r~     sm  ðñõ #å Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý Ý å Ý Ý $Ý Ý /Ý 7Ý -Ý )Ý 2Ý /Ý $Ý &Ý &Ý +Ý /Ý )Ý Ý Ý Ý Ý Ý Ý Ý Ý $Ý %Ý 4Ý "Ý 'Ý $Ý #Ý #Ý áÝ)Ý&Ý/Ý&ÝÝ1ÝÝ Ý2Ý$Ý'Ý,Ý*Ý,Ý1Ý3áˆT˜Ô€Ùˆe˜3Ô€ÙˆeÐ-Ô.€ò€ð ×ÑôHAØ�ÑØ˜ÑØØ‡N�Nó	HAó ðHAôV˜.¨Ñ,Ð.@ÀÑ.Dô ô$p/ØØ�ÑØ�rÑõp/r}   