§
    
 @g8‘  ã                  óâ  — U d Z ddlmZ ddlmZ ddlZddlZddlZddl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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(l1m2Z2 d d)l1m3Z3 d d*l1m4Z4 ej        r�dd+l5m6Z6 dd,l5m7Z7 dd-lm8Z8 dd.lm9Z9 dd/lm:Z: dd0l;m<Z< dd1l=m>Z> dd2l?m@Z@ dd3lAmBZB dd4lAmCZC dd5lDmEZE d d6lFmGZG d d7lHmIZI d d8lJmKZK d d9lJmLZL d d:l/mMZM d d;l/mNZN d d<lOmPZP d d=lQmRZR d d>lSmTZT d d?l1mUZU d d@l1mVZV d dAl1mWZW d dBl1mXZX  edCe	¬D¦  «        ZY edEe	¬D¦  «        ZZ G dF„ dGe$eY         ¦  «        Z[ee\dHdIdJdKf         Z] edLe	¬D¦  «        Z^ ej_        ¦   «         Z`dMeadN<    G dO„ dPe#e^         e"e[e^         ¦  «        Zb G dQ„ dRebeY         eeY         ¦  «        Zc G dS„ dTe[eY         ¦  «        Zd G dU„ dVe[eY         ¦  «        Ze G dW„ dXeeeY         eeY         ¦  «        ZfdS )YzŸDescriptor properties are more "auxiliary" properties
that exist as configurational elements, but don't participate
as actively in the load/persist ORM loop.

é    )Úannotations)Úis_dataclassN)ÚAny)ÚCallable)ÚDict)ÚList)ÚNoReturn)ÚOptional)ÚSequence)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú
attributes)Úutil)Ú_DeclarativeMapped)ÚLoaderCallableStatus)ÚMapped)ÚPassiveFlag)ÚSQLORMOperations)Ú_AttributeOptions)Ú_IntrospectsAnnotations)Ú_MapsColumns)ÚMapperProperty)ÚPropComparator)Ú	_none_set)Úde_stringify_annotationé   )Úevent)Úexc)Úschema)Úsql©Ú
expression)Ú	operators)ÚBindParameter)Ú
is_fwd_ref)Ú	is_pep593)Útyping_get_args)Ú_InstanceDict)Ú_RegistryType)ÚHistory)ÚInstrumentedAttribute)ÚQueryableAttribute)ÚORMCompileState)Ú_ClassScanMapperConfig)ÚMapper)ÚColumnProperty)ÚMappedColumn)ÚInstanceState)Ú
Connection)ÚRow)Ú_DMLColumnArgument)Ú	_InfoType)Ú
ClauseList)ÚColumnElement)ÚOperatorType)ÚColumn)ÚSelect)Ú_AnnotationScanType)ÚCallableReference)ÚDescriptorReference)ÚRODescriptorReferenceÚ_T)ÚboundÚ_PTc                  óR   — e Zd ZU dZdZded<   dZdZded<   ej	        fdd„Z
dd„ZdS )ÚDescriptorPropertyzO:class:`.MapperProperty` which proxies access to a
    user-defined descriptor.NúOptional[str]ÚdocFzDescriptorReference[Any]Ú
descriptorÚstateúInstanceState[Any]Údict_r,   Úpassiver   Úreturnr.   c                ó   — t          ¦   «         ‚©N)ÚNotImplementedError)ÚselfrL   rN   rO   s       úS/var/www/piapp/venv/lib/python3.11/site-packages/sqlalchemy/orm/descriptor_props.pyÚget_historyzDescriptorProperty.get_historye   s   € õ "Ñ#Ô#Ð#ó    ÚmapperúMapper[Any]ÚNonec                ó   ‡ ‡‡— ‰ Š G ˆfd„dt           j        ¦  «        }‰ j        €=t          ‰j        ‰ j        d ¦  «        }‰                     ‰ j        |¦  «        r|‰ _        ‰ j        €)dˆ fd„}dˆ fd	„}dˆ fd
„}t          |||¬¦  «        ‰ _         t          j        ‰ j        ¦  «        ‰ j	        j        ‰ j        ‰ j        ˆˆ fd„‰ j
        ‰ ¬¦  «        } |‰ j        ¦  «        |_        ‰j                             ‰ j        |¦  «         d S )Nc                  óZ   •— e Zd ZdZdZdZedˆ fd„¦   «         Zdd„Ze	j
        fdˆ fd„ZdS )ú7DescriptorProperty.instrument_class.<locals>._ProxyImplFTrP   Úboolc                ó   •— ‰j         S rR   )Úuses_objects)rT   Úprops    €rU   r`   zDDescriptorProperty.instrument_class.<locals>._ProxyImpl.uses_objectsu   s   ø€ àÔ(Ð(rW   ÚkeyÚstrc                ó   — || _         d S rR   ©rb   )rT   rb   s     rU   Ú__init__z@DescriptorProperty.instrument_class.<locals>._ProxyImpl.__init__y   s   € Ø�”��rW   rL   rM   rN   r,   rO   r   r.   c                ó2   •— ‰                      |||¦  «        S rR   )rV   )rT   rL   rN   rO   ra   s       €rU   rV   zCDescriptorProperty.instrument_class.<locals>._ProxyImpl.get_history|   s   ø€ ð ×'Ò'¨¨u°gÑ>Ô>Ð>rW   N©rP   r^   )rb   rc   ©rL   rM   rN   r,   rO   r   rP   r.   )Ú__name__Ú
__module__Ú__qualname__Úaccepts_scalar_loaderÚload_on_unexpireÚ
collectionÚpropertyr`   rf   r   ÚPASSIVE_OFFrV   )ra   s   €rU   Ú
_ProxyImplr]   p   s�   ø€ € € € € Ø$)Ð!Ø#ÐØˆJàð)ð )ð )ð )ð )ñ ŒXð)ðð ð ð ð (3Ô'>ð	?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?rW   rr   Úobjr   ÚvaluerP   rZ   c                ó4   •— t          | ‰j        |¦  «         d S rR   )ÚsetattrÚname)rs   rt   rT   s     €rU   Úfsetz1DescriptorProperty.instrument_class.<locals>.fset‹   s   ø€ Ý˜˜TœY¨Ñ.Ô.Ð.Ð.Ð.rW   c                ó2   •— t          | ‰j        ¦  «         d S rR   )Údelattrrw   ©rs   rT   s    €rU   Úfdelz1DescriptorProperty.instrument_class.<locals>.fdelŽ   s   ø€ Ý˜˜TœYÑ'Ô'Ð'Ð'Ð'rW   c                ó.   •— t          | ‰j        ¦  «        S rR   )Úgetattrrw   r{   s    €rU   Úfgetz1DescriptorProperty.instrument_class.<locals>.fget‘   s   ø€ Ý˜s D¤IÑ.Ô.Ð.rW   )r   rx   r|   c                 ó.   •— ‰                      ‰ ¦  «        S rR   )Ú_comparator_factory)rX   rT   s   €€rU   ú<lambda>z5DescriptorProperty.instrument_class.<locals>.<lambda>š   s   ø€ �D×,Ò,¨VÑ4Ô4€ rW   )rJ   Úoriginal_property)rs   r   rt   r   rP   rZ   )rs   r   rP   rZ   )rs   r   rP   r   )r   ÚAttributeImplrK   r~   Úclass_rb   Ú_is_userland_descriptorrp   Úcreate_proxied_attributeÚparentrJ   ÚimplÚclass_managerÚinstrument_attribute)	rT   rX   rr   Údescrx   r|   r   Ú
proxy_attrra   s	   ``      @rU   Úinstrument_classz#DescriptorProperty.instrument_classm   s}  øøø€ Øˆð	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?�Ô1ñ 	?ô 	?ð 	?ð( Œ?Ð"Ý˜6œ=¨$¬(°DÑ9Ô9ˆDØ×-Ò-¨d¬h¸Ñ=Ô=ð 'Ø"&�”àŒ?Ð"ð/ð /ð /ð /ð /ð /ð(ð (ð (ð (ð (ð (ð/ð /ð /ð /ð /ð /õ '¨D°tÀ$ÐGÑGÔGˆDŒOàI•ZÔ8¸¼ÑIÔIØŒKÔØŒHØŒOØ4Ð4Ð4Ð4Ð4Ø”Ø"ð
ñ 
ô 
ˆ
ð %˜* T¤XÑ.Ô.ˆ
ŒØÔ×1Ò1°$´(¸JÑGÔGÐGÐGÐGrW   ri   ©rX   rY   rP   rZ   )rj   rk   rl   Ú__doc__rJ   Ú__annotations__r`   Ú_links_to_entityr   rq   rV   rŽ   © rW   rU   rH   rH   Z   s…   € € € € € € ð ð  ð €CÐÐÐÑà€LØÐà(Ð(Ð(Ñ(ð  +Ô6ð	$ð $ð $ð $ð $ð2Hð 2Hð 2Hð 2Hð 2Hð 2HrW   rH   z
Column[_T]zMappedColumn[_T]zInstrumentedAttribute[_T]z
Mapped[_T]Ú_CCzFweakref.WeakKeyDictionary[Type[Any], Callable[[Any], Tuple[Any, ...]]]Ú_composite_gettersc                  ó
  ‡ — e Zd ZU dZded<   ded<   ded<   ded	<   	 d\d
ddd
d
d
dœd]ˆ fd„Zd^ˆ fd!„Zd_d%„Zd`d&„Z e	¦   «         Z
d`d'„Z ej        d(¦  «        dad8„¦   «         Zd`d9„Z ej        d(¦  «         ej        d:¦  «        dbd;„¦   «         ¦   «         Zej        dcd=„¦   «         Zej         ej        d>¦  «        ddd@„¦   «         ¦   «         Zej         ej        d>¦  «        dedB„¦   «         ¦   «         ZedfdD„¦   «         ZedgdF„¦   «         Z ej        d>¦  «        d`dG„¦   «         Zd`dH„Zej        dhdJ„¦   «         ZdidL„Zej        fdjdT„ZdkdV„Z  G dW„ dXe!j"        e#         ¦  «        Z$ G dY„ dZe%e&         ¦  «        Z'dld[„Z(ˆ xZ)S )mÚCompositePropertyzöDefines a "composite" mapped attribute, representing a collection
    of columns as one attribute.

    :class:`.CompositeProperty` is constructed using the :func:`.composite`
    function.

    .. seealso::

        :ref:`mapper_composite`

    z$Union[Type[_CC], Callable[..., _CC]]Úcomposite_classz#Tuple[_CompositeAttrType[Any], ...]Úattrsz=CallableReference[Optional[Callable[[_CC], Tuple[Any, ...]]]]Ú_generated_composite_accessorzType[Comparator[_CC]]Úcomparator_factoryNF)Úattribute_optionsÚactive_historyÚdeferredÚgroupr›   ÚinfoÚ_class_or_attrúCUnion[None, Type[_CC], Callable[..., _CC], _CompositeAttrType[Any]]ú_CompositeAttrType[Any]rœ   úOptional[_AttributeOptions]r�   r^   rž   rŸ   rI   úOptional[Type[Comparator[_CC]]]r    úOptional[_InfoType]Úkwargsr   c               óî  •— t          ¦   «                              |¬¦  «         t          |t          t          t
          j        f¦  «        r|f|z   | _        d | _        n|| _        || _        || _	        || _
        || _        |�|n| j        j        | _        d | _        |�| j                             |¦  «         t%          j        | ¦  «         |                      ¦   «          |                      ¦   «          d S ©N)rœ   )Úsuperrf   Ú
isinstancer   rc   r$   r<   r™   r˜   r�   rž   rŸ   Ú	__class__Ú
Comparatorr›   rš   r    Úupdater   Úset_creation_orderÚ_create_descriptorÚ_init_accessor)rT   r¡   rœ   r�   rž   rŸ   r›   r    r™   r§   r¬   s             €rU   rf   zCompositeProperty.__init__Ë   sý   ø€ õ 	‰Œ×ÒÐ+<ÐÑ=Ô=Ð=å�n¥v­sµCÔ4EÐ&FÑGÔGð 	Ø(Ð*¨UÑ2ˆDŒJà#'ˆDÔ Ð à#1ˆDÔ ØˆDŒJà,ˆÔØ ˆŒØˆŒ
ð "Ð-ð Ðà”Ô*ð 	Ôð
 .2ˆÔ*ØÐØŒI×Ò˜TÑ"Ô"Ð"åÔ Ñ%Ô%Ð%Ø×ÒÑ!Ô!Ð!Ø×ÒÑÔÐÐÐrW   rX   rY   rP   rZ   c                ór   •— t          ¦   «                              |¦  «         |                      ¦   «          d S rR   )rª   rŽ   Ú_setup_event_handlers)rT   rX   r¬   s     €rU   rŽ   z"CompositeProperty.instrument_classó   s3   ø€ Ý‰Œ× Ò  Ñ(Ô(Ð(Ø×"Ò"Ñ$Ô$Ð$Ð$Ð$rW   rt   r”   úTuple[Any, ...]c                óÈ   — | j         r|                       |¦  «        S 	 |j        } |¦   «         S # t          $ r(}t          j        d| j        j        › d�¦  «        |‚d }~ww xY w)NzComposite class zX is not a dataclass and does not define a __composite_values__() method; can't get state)rš   Ú__composite_values__ÚAttributeErrorÚsa_excÚInvalidRequestErrorr˜   rj   )rT   rt   ÚaccessorÚaes       rU   Ú_composite_values_from_instancez1CompositeProperty._composite_values_from_instance÷   s“   € ØÔ-ð 	"Ø×5Ò5°eÑ<Ô<Ð<ð	"Ø Ô5�ð  �x‘z”zÐ!øõ "ð ð ð ÝÔ0ð/ tÔ';Ô'Dð /ð /ð /ñô ð ð	øøøøðøøøs   ž/ ¯
A!¹#AÁA!c                ó.   — |                       ¦   «          dS )zwInitialization which occurs after the :class:`.Composite`
        has been associated with its parent mapper.

        N)Ú_setup_arguments_on_columns©rT   s    rU   Údo_initzCompositeProperty.do_init  s   € ð
 	×(Ò(Ñ*Ô*Ð*Ð*Ð*rW   c                ó^   ‡ ‡— d
ˆ fd„Šdˆˆ fd„}dˆˆ fd„}t          ‰||¦  «        ‰ _        d	S )ztCreate the Python descriptor that will serve as
        the access point on instances of the mapped class.

        Úinstancer   rP   c                óˆ  •‡ — t          j        ‰ ¦  «        }t          j        ‰ ¦  «        }‰j        |vruˆ fd„‰j        D ¦   «         }‰j        |vrY|j        €t          j        |¦  «        s> ‰j        |Ž |‰j        <   |j        j	         
                    |‰j        ‰j        g¦  «         |                     ‰j        d ¦  «        S )Nc                ó0   •— g | ]}t          ‰|¦  «        ‘ŒS r“   )r~   )Ú.0rb   rÂ   s     €rU   ú
<listcomp>zFCompositeProperty._create_descriptor.<locals>.fget.<locals>.<listcomp>  s0   ø€ ð ð ð Ø/2•G˜H cÑ*Ô*ðð ð rW   )r   Úinstance_dictÚinstance_staterb   Ú_attribute_keysr   Ú
issupersetr˜   ÚmanagerÚdispatchÚrefreshÚ_COMPOSITE_FGETÚget)rÂ   rN   rL   ÚvaluesrT   s   `   €rU   r   z2CompositeProperty._create_descriptor.<locals>.fget  sÛ   øø€ ÝÔ,¨XÑ6Ô6ˆEÝÔ-¨hÑ7Ô7ˆEàŒx˜uÐ$Ð$ðð ð ð Ø6:Ô6Jðñ ô �ð ”8 5Ð(Ð(Ø”IÐ)µÔ1EÀfÑ1MÔ1MÐ)à&: dÔ&:¸FÐ&C�E˜$œ(‘OØ”MÔ*×2Ò2Ø˜tÔ3°d´h°Zñô ð ð —9’9˜TœX tÑ,Ô,Ð,rW   rt   rZ   c                ó
  •— t          j        | ¦  «        }t          j        | ¦  «        }|j        ‰	j                 }|j        j        r ‰| ¦  «        }n%|                     ‰	j        t          j	        ¦  «        }|j        j
        D ]} |||||j        ¦  «        }Œ||‰	j        <   |€‰	j        D ]}t          | |d ¦  «         Œd S t          ‰	j        ‰	                     |¦  «        ¦  «        D ]\  }}t          | ||¦  «         Œd S rR   )r   rÇ   rÈ   rË   rb   rÌ   Ú_active_historyrÏ   r   ÚNO_VALUEÚsetr‰   rÉ   rv   Úzipr¼   )
rÂ   rt   rN   rL   ÚattrÚpreviousÚfnrb   r   rT   s
           €€rU   rx   z2CompositeProperty._create_descriptor.<locals>.fset0  s,  ø€ ÝÔ,¨XÑ6Ô6ˆEÝÔ-¨hÑ7Ô7ˆEØ”= ¤Ô*ˆDàŒ}Ô,ð NØ˜4 ™>œ>��à Ÿ9š9 T¤XÕ/CÔ/LÑMÔM�à”mÔ'ð >ð >�Ø˜˜5 %¨°4´9Ñ=Ô=��Ø#ˆE�$”(‰OØˆ}ØÔ/ð 1ð 1�CÝ˜H c¨4Ñ0Ô0Ð0Ð0ð1ð 1õ #&ØÔ(Ø×8Ò8¸Ñ?Ô?ñ#ô #ð 2ð 2‘J�C˜õ ˜H c¨5Ñ1Ô1Ð1Ð1ð	2ð 2rW   c                óÈ  •— t          j        | ¦  «        }t          j        | ¦  «        }|j        ‰j                 }|j        j        r' ‰| ¦  «        }|                     ‰j        d ¦  «         n%|                     ‰j        t          j	        ¦  «        }|j        ‰j                 }|j         
                    |||j        ¦  «         ‰j        D ]}t          | |d ¦  «         Œd S rR   )r   rÈ   rÇ   rË   rb   rÌ   rÒ   Úpopr   rÓ   Úremover‰   rÉ   rv   )rÂ   rL   rN   rÖ   r×   rb   r   rT   s         €€rU   r|   z2CompositeProperty._create_descriptor.<locals>.fdelG  sÙ   ø€ ÝÔ-¨hÑ7Ô7ˆEÝÔ,¨XÑ6Ô6ˆEØ”= ¤Ô*ˆDàŒ}Ô,ð NØ˜4 ™>œ>�Ø—	’	˜$œ( DÑ)Ô)Ð)Ð)à Ÿ9š9 T¤XÕ/CÔ/LÑMÔM�à”= ¤Ô*ˆDØŒM× Ò  ¨°$´)Ñ<Ô<Ð<ØÔ+ð -ð -�Ý˜ # tÑ,Ô,Ð,Ð,ð-ð -rW   N)rÂ   r   rP   r   )rÂ   r   rt   r   rP   rZ   )rÂ   r   rP   rZ   )rp   rK   )rT   rx   r|   r   s   `  @rU   r°   z$CompositeProperty._create_descriptor  s�   øø€ ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð6	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð.	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-õ  # 4¨¨tÑ4Ô4ˆŒˆˆrW   úsqlalchemy.orm.propertiesÚ	decl_scanr2   Úregistryr-   Úclsú	Type[Any]Úoriginating_modulerb   rc   Úmapped_containerúOptional[Type[Mapped[Any]]]Ú
annotationúOptional[_AnnotationScanType]Úextracted_mapped_annotationÚis_dataclass_fieldc
                óØ  — t           j        j        j        }
| j        €|€|                      ||¦  «         |}t          |¦  «        rt          |¦  «        d         }|rŠ| j        €ƒt          |t          ¦  «        st          |d¬¦  «        rV|€At          |d¦  «        r|j        nt          |¦  «        }t          j        d|› d|› d�¦  «        ‚t          |||d¬¦  «        }|| _        t!          | j        ¦  «        r|                      ||||¦  «         nA| j        D ]9}t          ||
t&          j        f¦  «        r|j        €t          j        d	¦  «        ‚Œ:|                      ¦   «          d S )
Nr   T)Úcheck_genericÚ__forward_arg__zCan't use forward ref z9 for composite class argument; set up the type as Mapped[ú])Úinclude_genericzIComposite class column arguments must be named unless a dataclass is used)r   Ú	preloadedÚorm_propertiesr5   r˜   Ú_raise_for_requiredr*   r+   r«   rc   r)   Úhasattrrê   r¸   ÚArgumentErrorr   r   Ú_setup_for_dataclassr™   r#   r>   rw   r±   )rT   rÝ   rÞ   rß   rá   rb   râ   rä   ræ   rç   r5   ÚargumentÚstr_argrÖ   s                 rU   Údeclarative_scanz"CompositeProperty.declarative_scanY  sÏ  € õ ”~Ô4ÔAˆàÔ Ð(Ø+Ð3à×$Ò$ S¨#Ñ.Ô.Ð.Ø.ˆå�XÑÔð 	4Ý& xÑ0Ô0°Ô3ˆHàð 	,˜Ô,Ð4Ý˜(¥CÑ(Ô(ð ­JØ¨ð-ñ -ô -ð ð &Ð-õ # 8Ð->Ñ?Ô?ð+˜Ô0Ð0å  ™]œ]ð õ
 !Ô.ðP°ð Pð PØELðPð Pð Pñô ð õ 3Ø˜Ð#5Àtðñ ô �ð $,ˆDÔ å˜Ô,Ñ-Ô-ð 	Ø×%Ò% h°Ð5GÈÑMÔMÐMÐMàœ
ð ð �å˜t lµF´MÐ%BÑCÔCðàœ	Ð)å Ô.ð5ñô ð øð 	×ÒÑÔÐÐÐrW   c                ó0  ‡— t          | j        ¦  «        r‡t          | j        d¦  «        srt          j        | j        ¦  «        }t          j        d„ |j                             ¦   «         D ¦   «         Ž Št          |j        ¦  «        dk    rˆfd„| _
        n‰| _
        | j        �lt          | j        t          ¦  «        rT| j        t          vrH| j
        �| j
        t          | j        <   d S t          | j        d¦  «        rd„ t          | j        <   d S d S d S d S d S )Nr¶   c                ó   — g | ]	}|j         ‘Œ
S r“   )rw   )rÅ   Úps     rU   rÆ   z4CompositeProperty._init_accessor.<locals>.<listcomp>™  s   € Ð;Ð;Ð;˜Q�!”&Ð;Ð;Ð;rW   r   c                ó   •—  ‰| ¦  «        fS rR   r“   )rs   Úgetters    €rU   r‚   z2CompositeProperty._init_accessor.<locals>.<lambda>œ  s   ø€ À&À&ÈÁ+Ä+À€ rW   c                ó*   — |                       ¦   «         S rR   ©r¶   )rs   s    rU   r‚   z2CompositeProperty._init_accessor.<locals>.<lambda>¬  s   €  × 8Ò 8Ñ :Ô :€ rW   )r   r˜   rð   ÚinspectÚ	signatureÚoperatorÚ
attrgetterÚ
parametersrÐ   Úlenrš   r«   Útyper•   )rT   Úinsprú   s     @rU   r±   z CompositeProperty._init_accessor“  sV  ø€ Ý˜Ô,Ñ-Ô-ð 
	<µgØÔ Ð"8ñ7
ô 7
ð 
	<õ Ô$ TÔ%9Ñ:Ô:ˆDÝÔ(Ø;Ð; $¤/×"8Ò"8Ñ":Ô":Ð;Ñ;Ô;ðˆFõ �4”?Ñ#Ô# qÒ(Ð(Ø5OÐ5OÐ5OÐ5O�Ô2Ð2à5;�Ô2ð Ô Ð,Ý˜4Ô/µÑ6Ô6ð -àÔ$Õ,>Ð>Ð>àÔ1Ð=ð Ô6õ #ØÔ(ñð ð õ ˜Ô-Ð/EÑFÔFð ;ð ;Ð:õ #ØÔ(ñð ð ð -Ð,Ð,Ð,à>Ð>ð;ð ;rW   zsqlalchemy.orm.decl_basec                óœ  — t           j        j        j        }t           j        j        }t          j        | j        ¦  «        }t          j	        |j
                             ¦   «         | j        ¦  «        D ]Ù\  }}	|€Kt          j        dt          | j        ¦  «        › d| j        j        › dt          |j
        ¦  «        › �¦  «        ‚|	€ |¦   «         }	| xj        |	fz  c_        t#          |	|¦  «        r%|	                     |||||j        |j        ¦  «         Œ¤t#          |	t*          j        ¦  «        r|                     |j        |	¦  «         ŒÚd S )Nznumber of composite attributes z3 exceeds that of the number of attributes in class ú )r   rí   rî   r5   Úorm_decl_baserý   rþ   r˜   Ú	itertoolsÚzip_longestr  rÐ   r™   r¸   rñ   r  rj   r«   Údeclarative_scan_for_compositerw   rä   r#   r>   Ú_undefer_column_name)
rT   rÞ   rß   rá   rb   r5   Ú	decl_baser  ÚparamrÖ   s
             rU   rò   z&CompositeProperty._setup_for_dataclass®  sw  € õ ”~Ô4ÔAˆå”NÔ0ˆ	åÔ  Ô!5Ñ6Ô6ˆÝ$Ô0ØŒO×"Ò"Ñ$Ô$ d¤jñ
ô 
ð 	Að 	A‰KˆE�4ð ˆ}ÝÔ*ðNÝ˜4œ:‘”ðNð Nð Ô+Ô4ðNð Nõ 8;¸4¼?Ñ7KÔ7KðNð Nñô ð ð ˆ|à#�|‘~”~�Ø�
”
˜t˜gÑ%�
”
å˜$ Ñ-Ô-ð 
AØ×3Ò3ØØØ&ØØ”JØÔ$ñô ð ð õ ˜D¥&¤-Ñ0Ô0ð AØ×.Ò.¨u¬z¸4Ñ@Ô@Ð@øð3	Að 	ArW   ú!Sequence[QueryableAttribute[Any]]c                ó*   ‡ — ˆ fd„‰ j         D ¦   «         S )Nc                óN   •— g | ]!}t          ‰j        j        |j        ¦  «        ‘Œ"S r“   )r~   rˆ   r…   rb   ©rÅ   ra   rT   s     €rU   rÆ   z:CompositeProperty._comparable_elements.<locals>.<listcomp>Ù  s*   ø€ ÐMÐMÐM¸$•˜œÔ*¨D¬HÑ5Ô5ÐMÐMÐMrW   ©Úpropsr¿   s   `rU   Ú_comparable_elementsz&CompositeProperty._comparable_elements×  s   ø€ àMÐMÐMÐMÀ$Ä*ÐMÑMÔMÐMrW   zorm.propertiesúSequence[MapperProperty[Any]]c                ó"  — g }t           j        j        j        }| j        D ]î}t          |t          ¦  «        r| j                             |d¬¦  «        }nyt          |t          j
        ¦  «        r| j        j        |         }nLt          ||¦  «        r| j        j        |j                 }n$t          |t          j        ¦  «        r|j        }nd }t          |t           ¦  «        st#          j        d|›�¦  «        ‚|                     |¦  «         Œï|S )NF)Ú_configure_mapperszYComposite expects Column objects or mapped attributes/attribute names as arguments, got: )r   rí   rî   r5   r™   r«   rc   rˆ   Úget_propertyr#   r>   Ú_columntopropertyÚcolumnr   r/   rp   r   r¸   rñ   Úappend)rT   r  r5   rÖ   ra   s        rU   r  zCompositeProperty.propsÛ  s  € ð ˆÝ”~Ô4ÔAˆà”Jð 	ð 	ˆDÝ˜$¥Ñ$Ô$ð 	Ø”{×/Ò/°ÈÐ/ÑOÔO��Ý˜D¥&¤-Ñ0Ô0ð Ø”{Ô4°TÔ:��Ý˜D ,Ñ/Ô/ð Ø”{Ô4°T´[ÔA��Ý˜D¥*Ô"BÑCÔCð Ø”}��à�å˜d¥NÑ3Ô3ð ÝÔ*ðNØEIðNð Nñô ð ð
 �LŠL˜ÑÔÐÐØˆrW   úSequence[Column[Any]]c                óV   ‡— t           j        j        j        Šˆfd„| j        D ¦   «         S )Nc                óz   •— g | ]7}t          |t          j        ‰f¦  «        ¯t          |‰¦  «        r|j        n|‘Œ8S r“   )r«   r#   r>   r  )rÅ   Úar5   s     €rU   rÆ   z-CompositeProperty.columns.<locals>.<listcomp>ú  sU   ø€ ð 
ð 
ð 
àÝ˜!�fœm¨\Ð:Ñ;Ô;ð
Ý" 1 lÑ3Ô3Ð:ˆAŒHˆH¸ð
ð 
ð 
rW   )r   rí   rî   r5   r™   )rT   r5   s    @rU   ÚcolumnszCompositeProperty.columnsö  s?   ø€ õ ”~Ô4ÔAˆð
ð 
ð 
ð 
à”Zð
ñ 
ô 
ð 	
rW   úOptional[MapperProperty[_CC]]c                ó   — | S rR   r“   r¿   s    rU   Úmapper_property_to_assignz+CompositeProperty.mapper_property_to_assign   s   € àˆrW   ú$List[Tuple[schema.Column[Any], int]]c                ó$   — d„ | j         D ¦   «         S )Nc                ó$   — g | ]}|j         ­	|df‘ŒS )Nr   )Útable)rÅ   Úcs     rU   rÆ   z7CompositeProperty.columns_to_assign.<locals>.<listcomp>  s   € Ð@Ð@Ð@˜1°´°��A�°°°rW   )r   r¿   s    rU   Úcolumns_to_assignz#CompositeProperty.columns_to_assign  s   € à@Ð@ ¤Ð@Ñ@Ô@Ð@rW   c                óÐ   — t           j        j        j        }| j        D ]G}t          ||¦  «        sŒ|}| j        |_        | j        r| j        |_        d|_        | j	        |_	        ŒHdS )zwPropagate configuration arguments made on this composite
        to the target columns, for those that apply.

        ))rž   T)Ú
instrumentTN)
r   rí   rî   r4   r  r«   r�   rž   Ústrategy_keyrŸ   )rT   r4   ra   Úcprops       rU   r¾   z-CompositeProperty._setup_arguments_on_columns  sx   € õ œÔ6ÔEˆà”Jð 
	%ð 
	%ˆDÝ˜d NÑ3Ô3ð Øà�à#'Ô#6ˆEÔ ØŒ}ð PØ!%¤�”Ø%O�Ô"Øœ*ˆEŒKˆKð
	%ð 
	%rW   c                óì  ‡ ‡— dˆfd„}dˆˆ fd
„}d ˆ fd„Šd!ˆ fd„}d"ˆ fd„}t          j        ‰ j        d|d¬¦  «         t          j        ‰ j        d|d¬¦  «         t          j        ‰ j        d|dd¬¦  «         t          j        ‰ j        d|dd¬¦  «         t          j        ‰ j        d|dd¬¦  «         ‰ j        j        ‰ j                 }|j        |j        _        ‰ j        |j        j        _        dS )#z>Establish events that populate/expire the composite attribute.rL   rM   Úcontextr1   rP   rZ   c                ó&   •—  ‰| |d d¬¦  «         d S )NF©Ú
is_refreshr“   )rL   r/  Ú_load_refresh_handlers     €rU   Úload_handlerz=CompositeProperty._setup_event_handlers.<locals>.load_handler  s%   ø€ ð "Ð! %¨°$À5ÐIÑIÔIÐIÐIÐIrW   Úto_loadúOptional[Sequence[str]]c                ó”   •— |r3‰j         h                     ‰j        ¦  «                             |¦  «        r ‰| ||d¬¦  «         d S d S )NTr1  )rb   ÚunionrÉ   Úintersection)rL   r/  r5  r3  rT   s      €€rU   Úrefresh_handlerz@CompositeProperty._setup_event_handlers.<locals>.refresh_handler$  sg   ø€ ð ð PØ”�
× Ò  Ô!5Ñ6Ô6ßŠl˜7Ñ#Ô#ðPð &Ð% e¨W°gÈ$ÐOÑOÔOÐOÐOÐOðPð PrW   r2  r^   c                ó¬   •‡ — ‰ j         }|r	|‰j        u r‰j        |v rd S ‰j        D ]	}||vr d S Œ
 ‰j        ˆ fd„‰j        D ¦   «         Ž |‰j        <   d S )Nc                ó*   •— g | ]}‰j         |         ‘ŒS r“   )Údict)rÅ   rb   rL   s     €rU   rÆ   zZCompositeProperty._setup_event_handlers.<locals>._load_refresh_handler.<locals>.<listcomp>N  s   ø€ ÐBÐBÐB c�%”*˜S”/ÐBÐBÐBrW   )r=  rÎ   rb   rÉ   r˜   )rL   r/  r5  r2  rN   ÚkrT   s   `     €rU   r3  zFCompositeProperty._setup_event_handlers.<locals>._load_refresh_handler0  s•   øø€ ð ”JˆEð ðØ")¨TÔ-AÐ"AÐ"AØ”(˜eÐ#Ð#Ø�ð
 Ô)ð ð �Ø˜E�>�>Ø�F�Fð "ð 3˜dÔ2ØBÐBÐBÐB¨TÔ-AÐBÑBÔBðˆE�$”(‰OˆOˆOrW   Úkeysc                óž   •— |�'t          ‰j        ¦  «                             |¦  «        r"| j                             ‰j        d ¦  «         d S d S rR   )rÔ   rÉ   r9  r=  rÚ   rb   )rL   r?  rT   s     €rU   Úexpire_handlerz?CompositeProperty._setup_event_handlers.<locals>.expire_handlerQ  sL   ø€ ð ˆ|�s 4Ô#7Ñ8Ô8×EÒEÀdÑKÔKˆ|Ø”
—’˜tœx¨Ñ.Ô.Ð.Ð.Ð.ð ˆ|rW   rX   rY   Ú
connectionr7   c                óH   •— |j                              ‰j        d¦  «         dS )zêAfter an insert or update, some columns may be expired due
            to server side defaults, or re-populated due to client side
            defaults.  Pop out the composite value here so that it
            recreates.

            N)r=  rÚ   rb   )rX   rB  rL   rT   s      €rU   Úinsert_update_handlerzFCompositeProperty._setup_event_handlers.<locals>.insert_update_handlerW  s#   ø€ ð ŒJ�NŠN˜4œ8 TÑ*Ô*Ð*Ð*Ð*rW   Úafter_insertT)ÚrawÚafter_updateÚload)rF  Ú	propagaterÍ   ÚexpireN)rL   rM   r/  r1   rP   rZ   )rL   rM   r/  r1   r5  r6  rP   rZ   )
rL   rM   r/  r1   r5  r6  r2  r^   rP   rZ   )rL   rM   r?  r6  rP   rZ   )rX   rY   rB  r7   rL   rM   rP   rZ   )	r!   Úlistenrˆ   rŠ   rb   rÌ   r‰   r�   rÒ   )rT   r4  r:  rA  rD  r�   r3  s   `     @rU   r³   z'CompositeProperty._setup_event_handlers  s©  øø€ ð	Jð 	Jð 	Jð 	Jð 	Jð 	Jð

	Pð 
	Pð 
	Pð 
	Pð 
	Pð 
	Pð 
	Pð	ð 	ð 	ð 	ð 	ð 	ðB	/ð 	/ð 	/ð 	/ð 	/ð 	/ð	+ð 	+ð 	+ð 	+ð 	+ð 	+õ 	ŒØŒK˜Ð)>ÀDð	
ñ 	
ô 	
ð 	
õ 	ŒØŒK˜Ð)>ÀDð	
ñ 	
ô 	
ð 	
õ 	ŒØŒK˜ °4À4ð	
ñ 	
ô 	
ð 	
õ 	ŒØŒK˜ O¸Èð	
ñ 	
ô 	
ð 	
õ 	ŒØŒK˜ >°tÀtð	
ñ 	
ô 	
ð 	
ð ”[Ô.¨t¬xÔ8ˆ
Ø#-Ô#6ˆ
ŒÔ Ø37Ô3Fˆ
ŒÔ Ô0Ð0Ð0rW   úSequence[str]c                ó$   — d„ | j         D ¦   «         S )Nc                ó   — g | ]	}|j         ‘Œ
S r“   re   ©rÅ   ra   s     rU   rÆ   z5CompositeProperty._attribute_keys.<locals>.<listcomp>}  s   € Ð0Ð0Ð0˜T�”Ð0Ð0Ð0rW   r  r¿   s    rU   rÉ   z!CompositeProperty._attribute_keys{  s   € à0Ð0 T¤ZÐ0Ñ0Ô0Ð0rW   ú Callable[[Dict[str, Any]], None]c                ód   ‡ ‡‡— ‰ j         r‰ j         Šndd„Šd„ ‰ j        D ¦   «         Šdˆˆˆ fd
„}|S )NÚvalr   rP   ú
Tuple[Any]c                ó*   — |                       ¦   «         S rR   rü   )rR  s    rU   Ú
get_valueszOCompositeProperty._populate_composite_bulk_save_mappings_fn.<locals>.get_values†  s   € Ø×/Ò/Ñ1Ô1Ð1rW   c                ó   — g | ]	}|j         ‘Œ
S r“   re   rO  s     rU   rÆ   zOCompositeProperty._populate_composite_bulk_save_mappings_fn.<locals>.<listcomp>‰  s   € Ð1Ð1Ð1˜d�”Ð1Ð1Ð1rW   Ú	dest_dictúDict[str, Any]rZ   c                ó¤   •— |                       d„ t          ‰ ‰|                      ‰j        ¦  «        ¦  «        ¦  «        D ¦   «         ¦  «         d S )Nc                ó   — i | ]\  }}||“Œ	S r“   r“   )rÅ   rb   rR  s      rU   ú
<dictcomp>zaCompositeProperty._populate_composite_bulk_save_mappings_fn.<locals>.populate.<locals>.<dictcomp>�  s.   € ð ð ð á ˜˜Sð ˜ðð ð rW   )r®   rÕ   rÚ   rb   )rW  r™   rU  rT   s    €€€rU   ÚpopulatezMCompositeProperty._populate_composite_bulk_save_mappings_fn.<locals>.populate‹  sh   ø€ Ø×Òðð å$'Ø˜z˜z¨)¯-ª-¸¼Ñ*AÔ*AÑBÔBñ%ô %ðñ ô ñô ð ð ð rW   )rR  r   rP   rS  )rW  rX  rP   rZ   )rš   r  )rT   r\  r™   rU  s   ` @@rU   Ú)_populate_composite_bulk_save_mappings_fnz;CompositeProperty._populate_composite_bulk_save_mappings_fn  sv   øøø€ ð Ô-ð 	2ØÔ;ˆJˆJð2ð 2ð 2ð 2ð 2Ð1 d¤jÐ1Ñ1Ô1ˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð ˆrW   rL   rM   rN   r,   rO   r   r.   c                ó*  — g }g }d}| j         D ]½}|j        }|j        |         j                             ||¦  «        }	|	                     ¦   «         rd}|	                     ¦   «         }
|
r|                     |
¦  «         n|                     d¦  «         |	j	        r|                     |	j	        ¦  «         Œ¨|                     d¦  «         Œ¾|r(t          j         | j        |Ž gd | j        |Ž g¦  «        S t          j        d | j        |Ž gd¦  «        S )z>Provided for userland code that uses attributes.get_history().FTNr“   )r  rb   rË   r‰   rV   Úhas_changesÚnon_deletedÚextendr  Údeletedr   r.   r˜   )rT   rL   rN   rO   Úaddedrb  Úhas_historyra   rb   Úhistr`  s              rU   rV   zCompositeProperty.get_history—  s?  € ð ˆØˆàˆØ”Jð 	%ð 	%ˆDØ”(ˆCØ”= Ô%Ô*×6Ò6°u¸eÑDÔDˆDØ×ÒÑ!Ô!ð #Ø"�à×*Ò*Ñ,Ô,ˆKØð #Ø—’˜[Ñ)Ô)Ð)Ð)à—’˜TÑ"Ô"Ð"ØŒ|ð %Ø—’˜tœ|Ñ,Ô,Ð,Ð,à—’˜tÑ$Ô$Ð$Ð$àð 	NÝÔ%Ø%�Ô% uÐ-Ð.ØØ%�Ô% wÐ/Ð0ñô ð õ Ô% bÐ+?¨4Ô+?ÀÐ+GÐ*HÈ"ÑMÔMÐMrW   úComposite.Comparator[_CC]c                ó.   — |                       | |¦  «        S rR   )r›   )rT   rX   s     rU   r�   z%CompositeProperty._comparator_factory¼  s   € ð ×&Ò& t¨VÑ4Ô4Ð4rW   c                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )ú!CompositeProperty.CompositeBundleÚ	property_úComposite[_T]Úexprr;   c                óT   •— || _          t          ¦   «         j        |j        g|¢R Ž  d S rR   )rp   rª   rf   rb   )rT   rj  rl  r¬   s      €rU   rf   z*CompositeProperty.CompositeBundle.__init__Â  s3   ø€ ð
 &ˆDŒMØ�E‰GŒGÔ˜Yœ]Ð2¨TÐ2Ð2Ð2Ð2Ð2Ð2rW   ÚqueryúSelect[Any]Úprocsú#Sequence[Callable[[Row[Any]], Any]]ÚlabelsrL  rP   úCallable[[Row[Any]], Any]c                ó   ‡ ‡— dˆˆ fd„}|S )NÚrowúRow[Any]rP   r   c                ó<   •‡ —  ‰j         j        ˆ fd„‰D ¦   «         Ž S )Nc                ó&   •— g | ]} |‰¦  «        ‘ŒS r“   r“   )rÅ   Úprocru  s     €rU   rÆ   zXCompositeProperty.CompositeBundle.create_row_processor.<locals>.proc.<locals>.<listcomp>Ò  s!   ø€ Ð2Ð2Ð2 D�d�d˜3‘i”iÐ2Ð2Ð2rW   )rp   r˜   )ru  rp  rT   s   `€€rU   ry  zDCompositeProperty.CompositeBundle.create_row_processor.<locals>.procÐ  s/   øø€ Ø4�t”}Ô4Ø2Ð2Ð2Ð2¨EÐ2Ñ2Ô2ðð rW   )ru  rv  rP   r   r“   )rT   rn  rp  rr  ry  s   ` `  rU   Úcreate_row_processorz6CompositeProperty.CompositeBundle.create_row_processorÊ  s.   øø€ ðð ð ð ð ð ð ð
 ˆKrW   )rj  rk  rl  r;   )rn  ro  rp  rq  rr  rL  rP   rs  )rj   rk   rl   rf   rz  Ú__classcell__©r¬   s   @rU   ÚCompositeBundleri  Á  sQ   ø€ € € € € ð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	rW   r}  c                  óÐ   — e Zd ZU dZdZded<   ej        dd„¦   «         Zdd	„Z	ej        dd
„¦   «         Z
dd„Zej        dd„¦   «         Zd d„Zd d„Zd d„Zd d„Zd d„Zd d„Zd!d„ZdS )"úCompositeProperty.Comparatora·  Produce boolean, comparison, and other operators for
        :class:`.Composite` attributes.

        See the example in :ref:`composite_operations` for an overview
        of usage , as well as the documentation for :class:`.PropComparator`.

        .. seealso::

            :class:`.PropComparator`

            :class:`.ColumnOperators`

            :ref:`types_operators`

            :attr:`.TypeEngine.comparator_factory`

        Nz%RODescriptorReference[Composite[_PT]]ra   rP   r;   c                ó.   — t          j        | j        ddiŽS )NrŸ   F)r&   r;   r  r¿   s    rU   Úclausesz$CompositeProperty.Comparator.clausesï  s%   € åÔ(Ø"Ô7ðØðð ð rW   ú&CompositeProperty.CompositeBundle[_PT]c                ó   — | j         S rR   r%   r¿   s    rU   Ú__clause_element__z/CompositeProperty.Comparator.__clause_element__õ  s
   € Ø”?Ð"rW   c                ó¦   — | j                              | j        | j        | j        j        dœ¦  «        }t
                               | j        |¦  «        S )N)ÚparententityÚparentmapperÚ	proxy_key)r�  Ú	_annotateÚ_parententityra   rb   r—   r}  )rT   r�  s     rU   r&   z'CompositeProperty.Comparator.expressionø  sP   € à”l×,Ò,à$(Ô$6Ø$(Ô$6Ø!%¤¤ðð ñô ˆGõ %×4Ò4°T´YÀÑHÔHÐHrW   rt   r   ú(Sequence[Tuple[_DMLColumnArgument, Any]]c                ó–  — t          |t          ¦  «        r|j        }|€d„ | j        j        D ¦   «         }nst          | j        j        t          ¦  «        r5t          || j        j        ¦  «        r| j                             |¦  «        }nt          j	        d| j        ›d|›�¦  «        ‚t          t          | j        |¦  «        ¦  «        S )Nc                ó   — g | ]}d ‘ŒS rR   r“   )rÅ   rb   s     rU   rÆ   zDCompositeProperty.Comparator._bulk_update_tuples.<locals>.<listcomp>  s   € ÐDÐDÐD 3˜$ÐDÐDÐDrW   z!Can't UPDATE composite attribute z to )r«   r(   rt   ra   rÉ   r˜   r  r¼   r¸   rñ   ÚlistrÕ   r  )rT   rt   rÐ   s      rU   Ú_bulk_update_tuplesz0CompositeProperty.Comparator._bulk_update_tuples  sÒ   € õ ˜%¥Ñ/Ô/ð $Øœ�ð ˆ}ØDÐD¨$¬)Ô*CÐDÑDÔD��Ý˜DœIÔ5µtÑ<Ô<ð ÅØ�t”yÔ0ñBô Bð ð œ×BÒBÀ5ÑIÔI��åÔ*Ð*à”y�y�y % %ð)ñô ð õ
 �˜DÔ5°vÑ>Ô>Ñ?Ô?Ð?rW   r  c                óZ   ‡ — ‰ j         rˆ fd„‰ j        j        D ¦   «         S ‰ j        j        S )Nc                óN   •— g | ]!}t          ‰j        j        |j        ¦  «        ‘Œ"S r“   )r~   Ú_adapt_to_entityÚentityrb   r  s     €rU   rÆ   zECompositeProperty.Comparator._comparable_elements.<locals>.<listcomp>  s;   ø€ ð ð ð àõ ˜DÔ1Ô8¸$¼(ÑCÔCðð ð rW   )r’  ra   r  r¿   s   `rU   r  z1CompositeProperty.Comparator._comparable_elements  sK   ø€ àÔ$ð 6ðð ð ð à $¤	Ô >ðñ ô ð ð
 ”yÔ5Ð5rW   ÚotherúColumnElement[bool]c                óB   — |                       t          j        |¦  «        S rR   )Ú_comparer'   Úeq©rT   r”  s     rU   Ú__eq__z#CompositeProperty.Comparator.__eq__#  ó   € Ø—=’=¥¤¨uÑ5Ô5Ð5rW   c                óB   — |                       t          j        |¦  «        S rR   )r—  r'   Úner™  s     rU   Ú__ne__z#CompositeProperty.Comparator.__ne__&  r›  rW   c                óB   — |                       t          j        |¦  «        S rR   )r—  r'   Últr™  s     rU   Ú__lt__z#CompositeProperty.Comparator.__lt__)  r›  rW   c                óB   — |                       t          j        |¦  «        S rR   )r—  r'   Úgtr™  s     rU   Ú__gt__z#CompositeProperty.Comparator.__gt__,  r›  rW   c                óB   — |                       t          j        |¦  «        S rR   )r—  r'   Úler™  s     rU   Ú__le__z#CompositeProperty.Comparator.__le__/  r›  rW   c                óB   — |                       t          j        |¦  «        S rR   )r—  r'   Úger™  s     rU   Ú__ge__z#CompositeProperty.Comparator.__ge__2  r›  rW   rÿ   r=   c                ó  ‡ ‡— |€d gt          ‰ j        j        ¦  «        z  }n‰ j                             |¦  «        }ˆfd„t	          ‰ j        j        |¦  «        D ¦   «         }‰ j        r‰ j        €J ‚ˆ fd„|D ¦   «         }t          j        |Ž S )Nc                ó.   •— g | ]\  }} ‰||¦  «        ‘ŒS r“   r“   )rÅ   r  Úbrÿ   s      €rU   rÆ   z9CompositeProperty.Comparator._compare.<locals>.<listcomp>D  s7   ø€ ð ð ð á�A�qð �˜˜A‘”ðð ð rW   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r“   )Úadapter)rÅ   ÚxrT   s     €rU   rÆ   z9CompositeProperty.Comparator._compare.<locals>.<listcomp>J  s#   ø€ ÐDÐDÐD°1˜tŸ|š|¨A™œÐDÐDÐDrW   )	r  ra   r  r¼   rÕ   r’  r¯  r$   Úand_)rT   rÿ   r”  rÐ   Úcomparisonss   ``   rU   r—  z%CompositeProperty.Comparator._compare<  s´   øø€ ð ˆ}Ø˜¥# d¤iÔ&DÑ"EÔ"EÑE��àœ×BÒBÀ5ÑIÔI�ðð ð ð å ¤	Ô >ÀÑGÔGðñ ô ˆKð Ô$ð EØ”|Ð/Ð/Ð/ØDÐDÐDÐD¸ÐDÑDÔD�Ý”8˜[Ð)Ð)rW   )rP   r;   )rP   r‚  )rt   r   rP   r‹  ©rP   r  )r”  r   rP   r•  )rÿ   r=   r”  r   rP   r•  )rj   rk   rl   r�   Ú__hash__r‘   r   Úmemoized_propertyr�  r„  r&   r�  r  rš  rž  r¡  r¤  r§  rª  r—  r“   rW   rU   r­   r  ×  sY  € € € € € € ð	ð 	ð& ˆà3Ð3Ð3Ñ3à	Ô	ð	ð 	ð 	ñ 
 Ô	ð	ð
	#ð 	#ð 	#ð 	#ð 
Ô	ð	Ið 	Ið 	Iñ 
 Ô	ð	Ið	@ð 	@ð 	@ð 	@ð, 
Ô	ð	6ð 	6ð 	6ñ 
 Ô	ð	6ð	6ð 	6ð 	6ð 	6ð	6ð 	6ð 	6ð 	6ð	6ð 	6ð 	6ð 	6ð	6ð 	6ð 	6ð 	6ð	6ð 	6ð 	6ð 	6ð	6ð 	6ð 	6ð 	6ð	*ð 	*ð 	*ð 	*ð 	*ð 	*rW   r­   c                óT   — t          | j        j        j        ¦  «        dz   | j        z   S )Nú.)rc   rˆ   r…   rj   rb   r¿   s    rU   Ú__str__zCompositeProperty.__str__M  s$   € Ý�4”;Ô%Ô.Ñ/Ô/°#Ñ5¸¼Ñ@Ð@rW   rR   )r¡   r¢   r™   r£   rœ   r¤   r�   r^   rž   r^   rŸ   rI   r›   r¥   r    r¦   r§   r   r�   )rt   r”   rP   r´   ©rP   rZ   )rÝ   r2   rÞ   r-   rß   rà   rá   rI   rb   rc   râ   rã   rä   rå   ræ   rå   rç   r^   rP   rZ   )
rÞ   r-   rß   rà   rá   rI   rb   rc   rP   rZ   r³  )rP   r  )rP   r  )rP   r!  )rP   r$  )rP   rL  )rP   rP  ri   )rX   rY   rP   rf  )rP   rc   )*rj   rk   rl   r�   r‘   rf   rŽ   r¼   rÀ   ÚobjectrÎ   r°   r   Úpreload_modulerõ   r±   rò   rµ  r  r  Únon_memoized_propertyr   rp   r#  r)  r¾   r³   rÉ   r]  r   rq   rV   r�   Úorm_utilÚBundlerD   r}  r   rF   r­   r¸  r{  r|  s   @rU   r—   r—   ³   sÕ  ø€ € € € € € ð
ð 
ð :Ð9Ð9Ñ9Ø.Ð.Ð.Ñ.ðð ð ñ ð .Ð-Ð-Ñ-ð ð	&ð :>Ø$ØØ#Ø>BØ$(ð&ð &ð &ð &ð &ð &ð &ð &ðP%ð %ð %ð %ð %ð %ð"ð "ð "ð "ð+ð +ð +ð +ð �f‘h”h€OðH5ð H5ð H5ð H5ðT €TÔÐ4Ñ5Ô5ð7ð 7ð 7ñ 6Ô5ð7ðr;ð ;ð ;ð ;ð6 €TÔÐ4Ñ5Ô5Ø€TÔÐ3Ñ4Ô4ð%Að %Að %Añ 5Ô4ñ 6Ô5ð%AðN 
ÔðNð Nð Nñ ÔðNð 
ÔØ€TÔÐ)Ñ*Ô*ðð ð ñ +Ô*ñ Ôðð2 
ÔØ€TÔÐ)Ñ*Ô*ð
ð 
ð 
ñ +Ô*ñ  Ôð
ð ðð ð ñ „Xðð ðAð Að Añ „XðAð €TÔÐ)Ñ*Ô*ð%ð %ð %ñ +Ô*ð%ð&[Gð [Gð [Gð [Gð~ 
Ôð1ð 1ð 1ñ Ôð1ðð ð ð ð8  +Ô6ð	#Nð #Nð #Nð #Nð #NðJ5ð 5ð 5ð 5ð
ð ð ð ð ˜(œ/¨"Ô-ñ ô ð ð,t*ð t*ð t*ð t*ð t*�^ CÔ(ñ t*ô t*ð t*ðlAð Að Að Að Að Að Að ArW   r—   c                  ó   — e Zd ZdZdZdS )Ú	CompositeaS  Declarative-compatible front-end for the :class:`.CompositeProperty`
    class.

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

    .. versionchanged:: 2.0 Added :class:`_orm.Composite` as a Declarative
       compatible subclass of :class:`_orm.CompositeProperty`.

    .. seealso::

        :ref:`mapper_composite`

    TN©rj   rk   rl   r�   Úinherit_cacher“   rW   rU   rÀ  rÀ  Q  s!   € € € € € ðð ð €MØÐrW   rÀ  c                  ó,   ‡ — e Zd ZdZd	d„Zd
ˆ fd„Zˆ xZS )ÚConcreteInheritedPropertya4  A 'do nothing' :class:`.MapperProperty` that disables
    an attribute on a concrete subclass that is only present
    on the inherited mapper, not the concrete classes' mapper.

    Cases where this occurs include:

    * When the superclass mapper is mapped against a
      "polymorphic union", which includes all attributes from
      all subclasses.
    * When a relationship() is configured on an inherited mapper,
      but not on the subclass mapper.  Concrete mappers require
      that relationship() is configured explicitly on each
      subclass.

    rX   rY   rP   úType[PropComparator[_T]]c                ó¶   — d }| j                              ¦   «         D ].}|j        | j                 }t	          |dd ¦  «        �	|j        } nŒ/|€J ‚ |||¦  «        S )Nr›   )rˆ   Úiterate_to_rootÚ_propsrb   r~   r›   )rT   rX   Úcomparator_callableÚmrø   s        rU   r�   z-ConcreteInheritedProperty._comparator_factoryu  s}   € ð #Ðà”×,Ò,Ñ.Ô.ð 	ð 	ˆAØ”˜œÔ"ˆAÝ�qÐ.°Ñ5Ô5ÐAØ&'Ô&:Ð#Ø�ð Bð #Ð.Ð.Ð.Ø"Ð" 1 fÑ-Ô-Ð-rW   rZ   c                ó–   •‡ ‡— t          ¦   «                              ¦   «          dˆ fd„Š G ˆ ˆfd„d¦  «        } |¦   «         ‰ _        d S )NrP   r	   c            	     óT   •— t          d‰ j        ›d‰ j        ›d‰ j        ›d�¦  «        ‚)Nz	Concrete z does not implement attribute z9 at the instance level.  Add this property explicitly to r·  )r·   rˆ   rb   r¿   s   €rU   Úwarnz0ConcreteInheritedProperty.__init__.<locals>.warn…  s7   ø€ Ý �.ð ”;�;�; ¤  ¨$¬+¨+¨+ð7ñô ð rW   c                  ó6   •— e Zd Zdˆfd„Zdˆfd„Zdˆ ˆfd
„ZdS )úDConcreteInheritedProperty.__init__.<locals>.NoninheritedConcretePropÚsr   rs   rt   rP   r	   c                ó   •—  ‰¦   «          d S rR   r“   )rÐ  rs   rt   rÍ  s      €rU   Ú__set__zLConcreteInheritedProperty.__init__.<locals>.NoninheritedConcreteProp.__set__Ž  ó   ø€ Ø�‘”���rW   c                ó   •—  ‰¦   «          d S rR   r“   )rÐ  rs   rÍ  s     €rU   Ú
__delete__zOConcreteInheritedProperty.__init__.<locals>.NoninheritedConcreteProp.__delete__‘  rÓ  rW   Úownerc                ó.   •— |€‰j         S  ‰¦   «          d S rR   )rK   )rÐ  rs   rÖ  rT   rÍ  s      €€rU   Ú__get__zLConcreteInheritedProperty.__init__.<locals>.NoninheritedConcreteProp.__get__”  s   ø€ Ø�;Øœ?Ð*Ø�‘”���rW   N)rÐ  r   rs   r   rt   r   rP   r	   )rÐ  r   rs   r   rP   r	   )rÐ  r   rs   r   rÖ  r   rP   r   )rj   rk   rl   rÒ  rÕ  rØ  )rT   rÍ  s   €€rU   ÚNoninheritedConcreteProprÏ  �  st   ø€ € € € € ðð ð ð ð ð ðð ð ð ð ð ðð ð ð ð ð ð ð ð rW   rÙ  )rP   r	   )rª   rf   rK   )rT   rÙ  rÍ  r¬   s   ` @€rU   rf   z"ConcreteInheritedProperty.__init__‚  s†   øøø€ Ý‰Œ×ÒÑÔÐð	ð 	ð 	ð 	ð 	ð 	ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ñ 
	ô 
	ð 
	ð 3Ð2Ñ4Ô4ˆŒˆˆrW   )rX   rY   rP   rÅ  r¹  )rj   rk   rl   r�   r�   rf   r{  r|  s   @rU   rÄ  rÄ  d  s[   ø€ € € € € ðð ð .ð .ð .ð .ð5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5rW   rÄ  c                  óÎ   ‡ — e Zd ZU dZded<   	 	 	 	 	 	 d(d)ˆ fd„Zesed*d„¦   «         Ze	j
        d+d„¦   «         Zd,d„Zej        fd-d"„Z e	j        d#¦  «        d.d'„¦   «         Zˆ xZS )/ÚSynonymPropertya8  Denote an attribute name as a synonym to a mapped property,
    in that the attribute will mirror the value and expression behavior
    of another attribute.

    :class:`.Synonym` is constructed using the :func:`_orm.synonym`
    function.

    .. seealso::

        :ref:`synonyms` - Overview of synonyms

    ú"Optional[Type[PropComparator[_T]]]r›   Nrw   rc   Ú
map_columnúOptional[bool]rK   úOptional[Any]rœ   r¤   r    r¦   rJ   rI   c                ó2  •— t          ¦   «                              |¬¦  «         || _        || _        || _        || _        |r|| _        n|r|j        r|j        | _        nd | _        |r| j         	                    |¦  «         t          j        | ¦  «         d S r©   )rª   rf   rw   rÝ  rK   r›   rJ   r�   r    r®   r   r¯   )	rT   rw   rÝ  rK   r›   rœ   r    rJ   r¬   s	           €rU   rf   zSynonymProperty.__init__¬  s©   ø€ õ 	‰Œ×ÒÐ+<ÐÑ=Ô=Ð=àˆŒ	Ø$ˆŒØ$ˆŒØ"4ˆÔØð 	ØˆDŒHˆHØð 	˜JÔ.ð 	Ø!Ô)ˆDŒHˆHàˆDŒHØð 	#ØŒI×Ò˜TÑ"Ô"Ð"åÔ Ñ%Ô%Ð%Ð%Ð%rW   rP   r^   c                óT   — t          | j        j        | j        ¦  «        j        j        S rR   )r~   rˆ   r…   rw   r‰   r`   r¿   s    rU   r`   zSynonymProperty.uses_objectsÉ  s   € å˜4œ;Ô-¨t¬yÑ9Ô9Ô>ÔKÐKrW   ú/Union[MapperProperty[_T], SQLORMOperations[_T]]c                ót  — t          | j        j        | j        ¦  «        }t	          |d¦  «        rt          |j        t          ¦  «        sit          |t          j	        ¦  «        r|j
        S t          |t          ¦  «        r|S t          j        d| j        j        j        ›d| j        ›d|›�¦  «        ‚|j        S )Nrp   zsynonym() attribute "r·  z+" only supports ORM mapped attributes, got )r~   rˆ   r…   rw   rð   r«   rp   r   r   r0   Ú
comparatorr   r¸   r¹   rj   )rT   rÖ   s     rU   Ú_proxied_objectzSynonymProperty._proxied_objectÐ  sÂ   € õ �t”{Ô)¨4¬9Ñ5Ô5ˆÝ�t˜ZÑ(Ô(ð 	µ
ØŒM�>ñ1
ô 1
ð 	õ
 ˜$¥
Ô =Ñ>Ô>ð Ø”Ð&Ý˜DÕ"2Ñ3Ô3ð à�åÔ,Ð,ð ”;Ô%Ô.Ð.Ð.°´	°	°	¸4¸4ðAñô ð ð
 Œ}ÐrW   rX   rY   úSQLORMOperations[_T]c                óª   — | j         }t          |t          ¦  «        r6| j        r|                      ||¦  «        }n|                     ||¦  «        }|S |S rR   )rå  r«   r   r›   )rT   rX   ra   Úcomps       rU   r�   z#SynonymProperty._comparator_factoryç  s]   € ØÔ#ˆå�d�NÑ+Ô+ð 	ØÔ&ð =Ø×.Ò.¨t°VÑ<Ô<��à×.Ò.¨t°VÑ<Ô<�ØˆKàˆKrW   rL   rM   rN   r,   rO   r   r.   c                óz   — t          | j        j        | j        ¦  «        }|j                             |||¬¦  «        S )N)rO   )r~   rˆ   r…   rw   r‰   rV   )rT   rL   rN   rO   rÖ   s        rU   rV   zSynonymProperty.get_historyó  s7   € õ )0°´Ô0BÀDÄIÑ(NÔ(NˆØŒy×$Ò$ U¨E¸7Ð$ÑCÔCÐCrW   rÜ   rˆ   ÚinitrZ   c           
     ó|  — t           j        j        }| j        �r| j        |j        j        vr2t          j        d| j	        ›d|j        j
        ›d| j        ›d�¦  «        ‚|j        j        | j                 |j        v rd|j        |j        j        | j                          j        | j	        k    r4t          j        d| j        ›d| j	        ›d| j	        ›d| j        ›�¦  «        ‚|                     |j        j        | j                 ¦  «        }|                     | j	        ||d	¬
¦  «         | j        |_        || _        d S )NzCan't compile synonym 'z': no column on table 'z	' named 'ú'z'Can't call map_column=True for synonym ú=z4, a ColumnProperty already exists keyed to the name z for column T)rê  Ú	setparent)r   rí   rî   rÝ  rb   Úpersist_selectabler(  r¸   rñ   rw   Údescriptionr  r4   Ú_configure_propertyÚ_mapped_by_synonymrˆ   )rT   rˆ   rê  Ú
propertiesrø   s        rU   Ú
set_parentzSynonymProperty.set_parentü  sV  € å”^Ô2ˆ
àŒ?ñ 	,àŒx˜vÔ8Ô:Ð:Ð:ÝÔ*Ð*ð œ	˜	˜	ØÔ1Ô=Ð=Ð=Øœ˜˜ðñô ð ð Ô)Ô+¨D¬HÔ5ØÔ+ð,ð ,àÔ,ØÔ-Ô/°´Ô9ôäØ”9òð õ
 Ô*Ð*ð ”x�x�x ¤  ¨D¬I¨I¨I°t´x°xðAñô ð ð &0×%>Ò%>ØÔ)Ô+¨D¬HÔ5ñ&ô &ˆAð ×&Ò& t¤y°!¸$È$Ð&ÑOÔOÐOØ#'¤8ˆAÔ àˆŒˆˆrW   )NNNNNN)rw   rc   rÝ  rÞ  rK   rß  r›   rÜ  rœ   r¤   r    r¦   rJ   rI   rh   )rP   râ  )rX   rY   rP   ræ  ri   )rˆ   rY   rê  r^   rP   rZ   )rj   rk   rl   r�   r‘   rf   r   rp   r`   r   rµ  rå  r�   r   rq   rV   r»  rô  r{  r|  s   @rU   rÛ  rÛ  œ  s*  ø€ € € € € € ðð ð ;Ð:Ð:Ñ:ð
 &*Ø$(ØAEØ9=Ø$(Ø!ð&ð &ð &ð &ð &ð &ð &ð6 ð Là	ð	Lð 	Lð 	Lñ 
Œð	Lð 
Ôðð ð ñ Ôðð,
ð 
ð 
ð 
ð   +Ô6ð	Dð Dð Dð Dð Dð €TÔÐ4Ñ5Ô5ð#ð #ð #ñ 6Ô5ð#ð #ð #ð #ð #rW   rÛ  c                  ó   — e Zd ZdZdZdS )ÚSynonymaK  Declarative front-end for the :class:`.SynonymProperty` class.

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

    .. versionchanged:: 2.0 Added :class:`_orm.Synonym` as a Declarative
       compatible subclass for :class:`_orm.SynonymProperty`

    .. seealso::

        :ref:`synonyms` - Overview of synonyms

    TNrÁ  r“   rW   rU   rö  rö  #  s!   € € € € € ðð ð €MØÐrW   rö  )gr�   Ú
__future__r   Údataclassesr   rý   r  rÿ   Útypingr   r   r   r   r	   r
   r   r   r   r   r   r   ÚweakrefÚ r   r   r½  Úbaser   r   r   r   r   Ú
interfacesr   r   r   r   r   r   r   r!   r"   r¸   r#   r$   r&   r'   Úsql.elementsr(   Úutil.typingr)   r*   r+   Ú_typingr,   r-   r.   r/   r0   r/  r1   r  r2   rX   r3   ró  r4   r5   rL   r6   Úengine.baser7   Ú
engine.rowr8   Úsql._typingr9   r:   r;   r<   Úsql.operatorsr=   Ú
sql.schemar>   Úsql.selectabler?   r@   rA   rB   rC   rD   rF   rH   rc   Ú_CompositeAttrTyper”   ÚWeakKeyDictionaryr•   r‘   r—   rÀ  rÄ  rÛ  rö  r“   rW   rU   ú<module>r	     s¶  ððð ð ð
 #Ð "Ð "Ð "Ð "Ð "à $Ð $Ð $Ð $Ð $Ð $Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø )Ð )Ð )Ð )Ð )Ð )Ø /Ð /Ð /Ð /Ð /Ð /Ø $Ð $Ð $Ð $Ð $Ð $Ø &Ð &Ð &Ð &Ð &Ð &Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø $Ð $Ð $Ð $Ð $Ð $Ø #Ð #Ð #Ð #Ð #Ð #Ø )Ð )Ð )Ð )Ð )Ð )à	Ôð 4Ø&Ð&Ð&Ð&Ð&Ð&Ø&Ð&Ð&Ð&Ð&Ð&Ø#Ð#Ð#Ð#Ð#Ð#Ø1Ð1Ð1Ð1Ð1Ð1Ø.Ð.Ð.Ð.Ð.Ð.Ø(Ð(Ð(Ð(Ð(Ð(Ø1Ð1Ð1Ð1Ð1Ð1ØÐÐÐÐÐØ*Ð*Ð*Ð*Ð*Ð*Ø(Ð(Ð(Ð(Ð(Ð(Ø$Ð$Ð$Ð$Ð$Ð$Ø(Ð(Ð(Ð(Ð(Ð(Ø Ð Ð Ð Ð Ð Ø0Ð0Ð0Ð0Ð0Ð0Ø'Ð'Ð'Ð'Ð'Ð'Ø)Ð)Ð)Ð)Ð)Ð)Ø,Ð,Ð,Ð,Ð,Ð,Ø,Ð,Ð,Ð,Ð,Ð,Ø#Ð#Ð#Ð#Ð#Ð#Ø'Ð'Ð'Ð'Ð'Ð'Ø1Ð1Ð1Ð1Ð1Ð1Ø/Ð/Ð/Ð/Ð/Ð/Ø1Ð1Ð1Ð1Ð1Ð1Ø3Ð3Ð3Ð3Ð3Ð3à€WˆT˜ÐÑÔ€Ø€gˆe˜3ÐÑÔ€ðEHð EHð EHð EHð EH˜¨Ô+ñ EHô EHð EHðP ØØØØØð	ôÐ ð €gˆe˜3ÐÑÔ€ð
 €GÔÑÔð ð  ð  ð  ñ  ð
[
Að [
Að [
Að [
Að [
AØ�ÔÐ.Ð0BÀ3Ô0Gñ[
Aô [
Að [
Að|ð ð ð ð Ð! "Ô%Ð'9¸"Ô'=ñ ô ð ð&55ð 55ð 55ð 55ð 55Ð 2°2Ô 6ñ 55ô 55ð 55ðpDð Dð Dð Dð DÐ(¨Ô,ñ Dô Dð DðNð ð ð ð ˆo˜bÔ!Ð#5°bÔ#9ñ ô ð ð ð rW   