§
    eŠtj£“  ã                  óâ  — 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)Úget_args)Ú
is_fwd_ref)Ú	is_pep593)Ú_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                  óZ   — e Zd ZU dZdZded<   dZdZded<   dd
„Z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Úreturnú!Sequence[QueryableAttribute[Any]]c                ó    — t          d¦  «        ‚)Nz?This MapperProperty does not implement column loader strategies©ÚNotImplementedError©Úselfs    ú]/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/orm/descriptor_props.pyÚ_column_strategy_attrsz)DescriptorProperty._column_strategy_attrsf   s   € Ý!ØMñ
ô 
ð 	
ó    ÚstateúInstanceState[Any]Údict_r,   Úpassiver   r.   c                ó   — t          ¦   «         ‚©NrO   )rR   rV   rX   rY   s       rS   Úget_historyzDescriptorProperty.get_historyk   s   € õ "Ñ#Ô#Ð#rU   Ú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>._ProxyImplFTrL   Úboolc                ó   •— ‰j         S r[   )Úuses_objects)rR   Úprops    €rS   re   zDDescriptorProperty.instrument_class.<locals>._ProxyImpl.uses_objects{   s   ø€ àÔ(Ð(rU   ÚkeyÚstrc                ó   — || _         d S r[   ©rg   )rR   rg   s     rS   Ú__init__z@DescriptorProperty.instrument_class.<locals>._ProxyImpl.__init__   s   € Ø�”��rU   rV   rW   rX   r,   rY   r   r.   c                ó2   •— ‰                      |||¦  «        S r[   )r\   )rR   rV   rX   rY   rf   s       €rS   r\   zCDescriptorProperty.instrument_class.<locals>._ProxyImpl.get_history‚   s   ø€ ð ×'Ò'¨¨u°gÑ>Ô>Ð>rU   N©rL   rc   )rg   rh   ©rV   rW   rX   r,   rY   r   rL   r.   )Ú__name__Ú
__module__Ú__qualname__Úaccepts_scalar_loaderÚload_on_unexpireÚ
collectionÚpropertyre   rk   r   ÚPASSIVE_OFFr\   )rf   s   €rS   Ú
_ProxyImplrb   v   s�   ø€ € € € € Ø$)Ð!Ø#ÐØˆJàð)ð )ð )ð )ð )ñ ŒXð)ðð ð ð ð (3Ô'>ð	?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?rU   rw   Úobjr   ÚvaluerL   r_   c                ó4   •— t          | ‰j        |¦  «         d S r[   )ÚsetattrÚname)rx   ry   rR   s     €rS   Úfsetz1DescriptorProperty.instrument_class.<locals>.fset‘   s   ø€ Ý˜˜TœY¨Ñ.Ô.Ð.Ð.Ð.rU   c                ó2   •— t          | ‰j        ¦  «         d S r[   )Údelattrr|   ©rx   rR   s    €rS   Úfdelz1DescriptorProperty.instrument_class.<locals>.fdel”   s   ø€ Ý˜˜TœYÑ'Ô'Ð'Ð'Ð'rU   c                ó.   •— t          | ‰j        ¦  «        S r[   )Úgetattrr|   r€   s    €rS   Úfgetz1DescriptorProperty.instrument_class.<locals>.fget—   s   ø€ Ý˜s D¤IÑ.Ô.Ð.rU   )r„   r}   r�   c                 ó.   •— ‰                      ‰ ¦  «        S r[   )Ú_comparator_factory)r]   rR   s   €€rS   ú<lambda>z5DescriptorProperty.instrument_class.<locals>.<lambda>    s   ø€ �D×,Ò,¨VÑ4Ô4€ rU   )rJ   Úoriginal_property)rx   r   ry   r   rL   r_   )rx   r   rL   r_   )rx   r   rL   r   )r   ÚAttributeImplrK   rƒ   Úclass_rg   Ú_is_userland_descriptorru   Úcreate_proxied_attributeÚparentrJ   ÚimplÚclass_managerÚinstrument_attribute)	rR   r]   rw   Údescr}   r�   r„   Ú
proxy_attrrf   s	   ``      @rS   Úinstrument_classz#DescriptorProperty.instrument_classs   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ÐGrU   ©rL   rM   rn   ©r]   r^   rL   r_   )ro   rp   rq   Ú__doc__rJ   Ú__annotations__re   Ú_links_to_entityrT   r   rv   r\   r“   © rU   rS   rH   rH   [   s™   € € € € € € ð ð  ð €CÐÐÐÑà€LØÐà(Ð(Ð(Ñ(ð
ð 
ð 
ð 
ð  +Ô6ð	$ð $ð $ð $ð $ð2Hð 2Hð 2Hð 2Hð 2Hð 2HrU   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dad&„Z e	¦   «         Z
dad'„Z ej        d(¦  «        dbd8„¦   «         Zdad9„Z ej        d(¦  «         ej        d:¦  «        dcd;„¦   «         ¦   «         Zej        ddd=„¦   «         Zej         ej        d>¦  «        ded@„¦   «         ¦   «         ZdddA„Zej         ej        d>¦  «        dfdC„¦   «         ¦   «         ZedgdE„¦   «         ZedhdG„¦   «         Z ej        d>¦  «        dadH„¦   «         ZdadI„Zej        didK„¦   «         ZdjdM„Zej        fdkdU„Z dldW„Z! G dX„ dYe"j#        e$         ¦  «        Z% G dZ„ d[e&e'         ¦  «        Z(dmd\„Z)ˆ xZ*S )nÚ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£   rc   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¢   )Úsuperrk   Ú
isinstancer   rh   r$   r<   rŸ   rž   r£   r¤   r¥   Ú	__class__Ú
Comparatorr¡   r    r¦   Úupdater   Úset_creation_orderÚ_create_descriptorÚ_init_accessor)rR   r§   r¢   r£   r¤   r¥   r¡   r¦   rŸ   r­   r²   s             €rS   rk   zCompositeProperty.__init__Ñ   sý   ø€ õ 	‰Œ×ÒÐ+<ÐÑ=Ô=Ð=å�n¥v­sµCÔ4EÐ&FÑGÔGð 	Ø(Ð*¨UÑ2ˆDŒJà#'ˆDÔ Ð à#1ˆDÔ ØˆDŒJà,ˆÔØ ˆŒØˆŒ
ð "Ð-ð Ðà”Ô*ð 	Ôð
 .2ˆÔ*ØÐØŒI×Ò˜TÑ"Ô"Ð"åÔ Ñ%Ô%Ð%Ø×ÒÑ!Ô!Ð!Ø×ÒÑÔÐÐÐrU   r]   r^   rL   r_   c                ór   •— t          ¦   «                              |¦  «         |                      ¦   «          d S r[   )r°   r“   Ú_setup_event_handlers)rR   r]   r²   s     €rS   r“   z"CompositeProperty.instrument_classù   s3   ø€ Ý‰Œ× Ò  Ñ(Ô(Ð(Ø×"Ò"Ñ$Ô$Ð$Ð$Ð$rU   ry   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ž   ro   )rR   ry   ÚaccessorÚaes       rS   Ú_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_columnsrQ   s    rS   Údo_initzCompositeProperty.do_init  s   € ð
 	×(Ò(Ñ*Ô*Ð*Ð*Ð*rU   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   rL   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ƒ   )Ú.0rg   rÇ   s     €rS   ú
<listcomp>zFCompositeProperty._create_descriptor.<locals>.fget.<locals>.<listcomp>#  s0   ø€ ð ð ð Ø/2•G˜H cÑ*Ô*ðð ð rU   )r   Úinstance_dictÚinstance_staterg   Ú_attribute_keysr   Ú
issupersetrž   ÚmanagerÚdispatchÚrefreshÚ_COMPOSITE_FGETÚget)rÇ   rX   rV   ÚvaluesrR   s   `   €rS   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Ñ,Ô,Ð,rU   ry   r_   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 r[   )r   rÌ   rÍ   rÐ   rg   rÑ   Ú_active_historyrÔ   r   ÚNO_VALUEÚsetrŽ   rÎ   r{   ÚziprÂ   )
rÇ   ry   rX   rV   ÚattrÚpreviousÚfnrg   r„   rR   s
           €€rS   r}   z2CompositeProperty._create_descriptor.<locals>.fset6  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ð 2rU   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 r[   )r   rÍ   rÌ   rÐ   rg   rÑ   r×   Úpopr   rØ   ÚremoverŽ   rÎ   r{   )rÇ   rV   rX   rÛ   rÜ   rg   r„   rR   s         €€rS   r�   z2CompositeProperty._create_descriptor.<locals>.fdelM  sÙ   ø€ ÝÔ-¨hÑ7Ô7ˆEÝÔ,¨XÑ6Ô6ˆEØ”= ¤Ô*ˆDàŒ}Ô,ð NØ˜4 ™>œ>�Ø—	’	˜$œ( DÑ)Ô)Ð)Ð)à Ÿ9š9 T¤XÕ/CÔ/LÑMÔM�à”= ¤Ô*ˆDØŒM× Ò  ¨°$´)Ñ<Ô<Ð<ØÔ+ð -ð -�Ý˜ # tÑ,Ô,Ð,Ð,ð-ð -rU   N)rÇ   r   rL   r   )rÇ   r   ry   r   rL   r_   )rÇ   r   rL   r_   )ru   rK   )rR   r}   r�   r„   s   `  @rS   r¶   z$CompositeProperty._create_descriptor  s�   øø€ ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð6	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð.	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-õ  # 4¨¨tÑ4Ô4ˆŒˆˆrU   úsqlalchemy.orm.propertiesÚ	decl_scanr2   Úregistryr-   Úclsú	Type[Any]Úoriginating_modulerg   rh   Ú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±   rh   r*   Úhasattrrï   r¾   ÚArgumentErrorr   r   Ú_setup_for_dataclassrŸ   r#   r>   r|   r·   )rR   râ   rã   rä   ræ   rg   rç   ré   rë   rì   r5   ÚargumentÚstr_argrÛ   s                 rS   Údeclarative_scanz"CompositeProperty.declarative_scan_  sÜ  € õ ”~Ô4ÔAˆàÔ Ð(Ø+Ð3à×$Ò$ S¨#Ñ.Ô.Ð.Ø.ˆå�XÑÔð 	-Ý Ñ)Ô)¨!Ô,ˆHàð 	,˜Ô,Ð4Ý˜(¥CÑ(Ô(ð ­JØ¨ð-ñ -ô -ð ð &Ð-õ # 8Ð->Ñ?Ô?ð+˜Ô0Ð0å  ™]œ]ð õ
 !Ô.ðP°ð Pð PØELðPð Pð Pñô ð õ 3Ø˜Ð#5Àtðñ ô �ð $,ˆDÔ å˜Ô,Ñ-Ô-ð 	Ø×%Ò%Ø˜8 SÐ*<¸cñô ð ð ð œ
ð ð �å˜t lµF´MÐ%BÑCÔCðàœ	Ð)å Ô.ð5ñô ð øð 	×ÒÑÔÐÐÐrU   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™   )r|   )rÊ   Úps     rS   rË   z4CompositeProperty._init_accessor.<locals>.<listcomp>¡  s   € Ð;Ð;Ð;˜Q�!”&Ð;Ð;Ð;rU   r   c                ó   •—  ‰| ¦  «        fS r[   r™   )rx   Úgetters    €rS   r‡   z2CompositeProperty._init_accessor.<locals>.<lambda>¤  s   ø€ À&À&ÈÁ+Ä+À€ rU   c                ó*   — |                       ¦   «         S r[   ©r¼   )rx   s    rS   r‡   z2CompositeProperty._init_accessor.<locals>.<lambda>³  s   €  × 8Ò 8Ñ :Ô :€ rU   )r   rž   rõ   ÚinspectÚ	signatureÚoperatorÚ
attrgetterÚ
parametersrÕ   Úlenr    r±   Útyper›   )rR   Úinsprÿ   s     @rS   r·   z CompositeProperty._init_accessor›  sD  ø€ Ý˜Ô,Ñ-Ô-ð 
	<µ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õ # 4Ô#7Ñ8Ð8Ð8õ ˜Ô-Ð/EÑFÔFð à:Ð:õ # 4Ô#7Ñ8Ð8Ð8ð -Ð,Ð,Ð,à>Ð>ðð rU   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  ro   r±   Údeclarative_scan_for_compositer|   ré   r#   r>   Ú_undefer_column_name)rR   râ   rã   rä   ræ   rg   r5   Ú	decl_baser	  ÚparamrÛ   s              rS   r÷   z&CompositeProperty._setup_for_dataclass¶  sz  € õ ”~Ô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Ñ@Ô@Ð@øð5	Að 	ArU   rM   c                ó*   ‡ — ˆ fd„‰ j         D ¦   «         S )Nc                óN   •— g | ]!}t          ‰j        j        |j        ¦  «        ‘Œ"S r™   )rƒ   r�   rŠ   rg   ©rÊ   rf   rR   s     €rS   rË   z:CompositeProperty._comparable_elements.<locals>.<listcomp>ã  s*   ø€ ÐMÐMÐM¸$•˜œÔ*¨D¬HÑ5Ô5ÐMÐMÐMrU   ©ÚpropsrQ   s   `rS   Ú_comparable_elementsz&CompositeProperty._comparable_elementsá  s   ø€ àMÐMÐMÐMÀ$Ä*ÐMÑMÔMÐMrU   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±   rh   r�   Úget_propertyr#   r>   Ú_columntopropertyÚcolumnr   r/   ru   r   r¾   rö   Úappend)rR   r  r5   rÛ   rf   s        rS   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˜ÑÔÐÐØˆrU   c                ó   — | j         S r[   )r  rQ   s    rS   rT   z(CompositeProperty._column_strategy_attrs   s   € ØÔ(Ð(rU   ú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     €rS   rË   z-CompositeProperty.columns.<locals>.<listcomp>  sU   ø€ ð 
ð 
ð 
àÝ˜!�fœm¨\Ð:Ñ;Ô;ð
Ý" 1 lÑ3Ô3Ð:ˆAŒHˆH¸ð
ð 
ð 
rU   )r   rò   ró   r5   rŸ   )rR   r5   s    @rS   ÚcolumnszCompositeProperty.columns  s?   ø€ õ ”~Ô4ÔAˆð
ð 
ð 
ð 
à”Zð
ñ 
ô 
ð 	
rU   úOptional[MapperProperty[_CC]]c                ó   — | S r[   r™   rQ   s    rS   Úmapper_property_to_assignz+CompositeProperty.mapper_property_to_assign  s   € àˆrU   ú$List[Tuple[schema.Column[Any], int]]c                ó$   — d„ | j         D ¦   «         S )Nc                ó$   — g | ]}|j         ­	|df‘ŒS )Nr   )Útable)rÊ   Úcs     rS   rË   z7CompositeProperty.columns_to_assign.<locals>.<listcomp>  s   € Ð@Ð@Ð@˜1°´°��A�°°°rU   )r%  rQ   s    rS   Úcolumns_to_assignz#CompositeProperty.columns_to_assign  s   € à@Ð@ ¤Ð@Ñ@Ô@Ð@rU   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¥   )rR   r4   rf   Úcprops       rS   rÄ   z-CompositeProperty._setup_arguments_on_columns  sx   € õ œÔ6ÔEˆà”Jð 
	%ð 
	%ˆDÝ˜d NÑ3Ô3ð Øà�à#'Ô#6ˆEÔ ØŒ}ð PØ!%¤�”Ø%O�Ô"Øœ*ˆEŒKˆKð
	%ð 
	%rU   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.rV   rW   Úcontextr1   rL   r_   c                ó&   •—  ‰| |d d¬¦  «         d S )NF©Ú
is_refreshr™   )rV   r4  Ú_load_refresh_handlers     €rS   Úload_handlerz=CompositeProperty._setup_event_handlers.<locals>.load_handler,  s%   ø€ ð "Ð! %¨°$À5ÐIÑIÔIÐIÐIÐIrU   Úto_loadúOptional[Sequence[str]]c                ó”   •— |r3‰j         h                     ‰j        ¦  «                             |¦  «        r ‰| ||d¬¦  «         d S d S )NTr6  )rg   ÚunionrÎ   Úintersection)rV   r4  r:  r8  rR   s      €€rS   Úrefresh_handlerz@CompositeProperty._setup_event_handlers.<locals>.refresh_handler1  sg   ø€ ð ð PØ”�
× Ò  Ô!5Ñ6Ô6ßŠl˜7Ñ#Ô#ðPð &Ð% e¨W°gÈ$ÐOÑOÔOÐOÐOÐOðPð PrU   r7  rc   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Ê   rg   rV   s     €rS   rË   zZCompositeProperty._setup_event_handlers.<locals>._load_refresh_handler.<locals>.<listcomp>[  s   ø€ ÐBÐBÐB c�%”*˜S”/ÐBÐBÐBrU   )rB  rÓ   rg   rÎ   rž   )rV   r4  r:  r7  rX   ÚkrR   s   `     €rS   r8  zFCompositeProperty._setup_event_handlers.<locals>._load_refresh_handler=  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ˆOrU   Úkeysc                óž   •— |�'t          ‰j        ¦  «                             |¦  «        r"| j                             ‰j        d ¦  «         d S d S r[   )rÙ   rÎ   r>  rB  rß   rg   )rV   rD  rR   s     €rS   Úexpire_handlerz?CompositeProperty._setup_event_handlers.<locals>.expire_handler^  sL   ø€ ð ˆ|�s 4Ô#7Ñ8Ô8×EÒEÀdÑKÔKˆ|Ø”
—’˜tœx¨Ñ.Ô.Ð.Ð.Ð.ð ˆ|rU   r]   r^   Ú
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)rB  rß   rg   )r]   rG  rV   rR   s      €rS   Úinsert_update_handlerzFCompositeProperty._setup_event_handlers.<locals>.insert_update_handlerd  s#   ø€ ð ŒJ�NŠN˜4œ8 TÑ*Ô*Ð*Ð*Ð*rU   Úafter_insertT)ÚrawÚafter_updateÚload)rK  Ú	propagaterÒ   ÚexpireN)rV   rW   r4  r1   rL   r_   )rV   rW   r4  r1   r:  r;  rL   r_   )
rV   rW   r4  r1   r:  r;  r7  rc   rL   r_   )rV   rW   rD  r;  rL   r_   )r]   r^   rG  r7   rV   rW   rL   r_   )	r!   Úlistenr�   r�   rg   rÑ   rŽ   r£   r×   )rR   r9  r?  rF  rI  r’   r8  s   `     @rS   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Ð0rU   úSequence[str]c                ó$   — d„ | j         D ¦   «         S )Nc                ó   — g | ]	}|j         ‘Œ
S r™   rj   ©rÊ   rf   s     rS   rË   z5CompositeProperty._attribute_keys.<locals>.<listcomp>Š  s   € Ð0Ð0Ð0˜T�”Ð0Ð0Ð0rU   r  rQ   s    rS   rÎ   z!CompositeProperty._attribute_keysˆ  s   € à0Ð0 T¤ZÐ0Ñ0Ô0Ð0rU   ú Callable[[Dict[str, Any]], None]c                ód   ‡ ‡‡— ‰ j         r‰ j         Šndd„Šd„ ‰ j        D ¦   «         Šdˆˆˆ fd
„}|S )NÚvalr   rL   ú
Tuple[Any]c                ó*   — |                       ¦   «         S r[   r  )rW  s    rS   Ú
get_valueszOCompositeProperty._populate_composite_bulk_save_mappings_fn.<locals>.get_values“  s   € Ø×/Ò/Ñ1Ô1Ð1rU   c                ó   — g | ]	}|j         ‘Œ
S r™   rj   rT  s     rS   rË   zOCompositeProperty._populate_composite_bulk_save_mappings_fn.<locals>.<listcomp>–  s   € Ð1Ð1Ð1˜d�”Ð1Ð1Ð1rU   Ú	dest_dictúDict[str, Any]r_   c                ó¤   •— |                       d„ t          ‰ ‰|                      ‰j        ¦  «        ¦  «        ¦  «        D ¦   «         ¦  «         d S )Nc                ó   — i | ]\  }}||“Œ	S r™   r™   )rÊ   rg   rW  s      rS   ú
<dictcomp>zaCompositeProperty._populate_composite_bulk_save_mappings_fn.<locals>.populate.<locals>.<dictcomp>š  s.   € ð ð ð á ˜˜Sð ˜ðð ð rU   )r´   rÚ   rß   rg   )r\  rŸ   rZ  rR   s    €€€rS   ÚpopulatezMCompositeProperty._populate_composite_bulk_save_mappings_fn.<locals>.populate˜  sh   ø€ Ø×Òðð å$'Ø˜z˜z¨)¯-ª-¸¼Ñ*AÔ*AÑBÔBñ%ô %ðñ ô ñô ð ð ð rU   )rW  r   rL   rX  )r\  r]  rL   r_   )r    r  )rR   ra  rŸ   rZ  s   ` @@rS   Ú)_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ˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð ˆrU   rV   rW   rX   r,   rY   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  rg   rÐ   rŽ   r\   Úhas_changesÚnon_deletedÚextendr  Údeletedr   r.   rž   )rR   rV   rX   rY   Úaddedrg  Úhas_historyrf   rg   Úhistre  s              rS   r\   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ÐMrU   úComposite.Comparator[_CC]c                ó.   — |                       | |¦  «        S r[   )r¡   )rR   r]   s     rS   r†   z%CompositeProperty._comparator_factoryÉ  s   € ð ×&Ò& t¨VÑ4Ô4Ð4rU   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 r[   )ru   r°   rk   rg   )rR   ro  rq  r²   s      €rS   rk   z*CompositeProperty.CompositeBundle.__init__Ï  s3   ø€ ð
 &ˆDŒMØ�E‰GŒGÔ˜Yœ]Ð2¨TÐ2Ð2Ð2Ð2Ð2Ð2rU   ÚqueryúSelect[Any]Úprocsú#Sequence[Callable[[Row[Any]], Any]]ÚlabelsrQ  rL   úCallable[[Row[Any]], Any]c                ó   ‡ ‡— dˆˆ fd„}|S )NÚrowúRow[Any]rL   r   c                ó<   •‡ —  ‰j         j        ˆ fd„‰D ¦   «         Ž S )Nc                ó&   •— g | ]} |‰¦  «        ‘ŒS r™   r™   )rÊ   Úprocrz  s     €rS   rË   zXCompositeProperty.CompositeBundle.create_row_processor.<locals>.proc.<locals>.<listcomp>ß  s!   ø€ Ð2Ð2Ð2 D�d�d˜3‘i”iÐ2Ð2Ð2rU   )ru   rž   )rz  ru  rR   s   `€€rS   r~  zDCompositeProperty.CompositeBundle.create_row_processor.<locals>.procÝ  s/   øø€ Ø4�t”}Ô4Ø2Ð2Ð2Ð2¨EÐ2Ñ2Ô2ðð rU   )rz  r{  rL   r   r™   )rR   rs  ru  rw  r~  s   ` `  rS   Úcreate_row_processorz6CompositeProperty.CompositeBundle.create_row_processor×  s.   øø€ ðð ð ð ð ð ð ð
 ˆKrU   )ro  rp  rq  r;   )rs  rt  ru  rv  rw  rQ  rL   rx  )ro   rp   rq   rk   r  Ú__classcell__©r²   s   @rS   ÚCompositeBundlern  Î  sQ   ø€ € € € € ð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	rU   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]]rf   rL   r;   c                ó.   — t          j        | j        ddiŽS )Nr¥   F)r&   r;   r  rQ   s    rS   Úclausesz$CompositeProperty.Comparator.clausesü  s%   € åÔ(Ø"Ô7ðØðð ð rU   ú&CompositeProperty.CompositeBundle[_PT]c                ó   — | j         S r[   r%   rQ   s    rS   Ú__clause_element__z/CompositeProperty.Comparator.__clause_element__  s
   € Ø”?Ð"rU   c                ó¦   — | j                              | j        | j        | j        j        dœ¦  «        }t
                               | j        |¦  «        S )N)ÚparententityÚparentmapperÚ	proxy_key)r†  Ú	_annotateÚ_parententityrf   rg   r�   r‚  )rR   r†  s     rS   r&   z'CompositeProperty.Comparator.expression  sP   € à”l×,Ò,à$(Ô$6Ø$(Ô$6Ø!%¤¤ðð ñô ˆGõ %×4Ò4°T´YÀÑHÔHÐHrU   ry   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 r[   r™   )rÊ   rg   s     rS   rË   zDCompositeProperty.Comparator._bulk_update_tuples.<locals>.<listcomp>  s   € ÐDÐDÐD 3˜$ÐDÐDÐDrU   z!Can't UPDATE composite attribute z to )r±   r(   ry   rf   rÎ   rž   r  rÂ   r¾   rö   ÚlistrÚ   r  )rR   ry   rÕ   s      rS   Ú_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Øñô ��õ Ô*Ð*à”y�y�y % %ð)ñô ð õ
 �˜DÔ5°vÑ>Ô>Ñ?Ô?Ð?rU   rM   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Úentityrg   r  s     €rS   rË   zECompositeProperty.Comparator._comparable_elements.<locals>.<listcomp>+  s;   ø€ ð ð ð àõ ˜DÔ1Ô8¸$¼(ÑCÔCðð ð rU   )r—  rf   r  rQ   s   `rS   r  z1CompositeProperty.Comparator._comparable_elements(  sK   ø€ àÔ$ð 6ðð ð ð à $¤	Ô >ðñ ô ð ð
 ”yÔ5Ð5rU   ÚotherúColumnElement[bool]c                óB   — |                       t          j        |¦  «        S r[   )Ú_comparer'   Úeq©rR   r™  s     rS   Ú__eq__z#CompositeProperty.Comparator.__eq__2  ó   € Ø—=’=¥¤¨uÑ5Ô5Ð5rU   c                óB   — |                       t          j        |¦  «        S r[   )rœ  r'   Únerž  s     rS   Ú__ne__z#CompositeProperty.Comparator.__ne__5  r   rU   c                óB   — |                       t          j        |¦  «        S r[   )rœ  r'   Últrž  s     rS   Ú__lt__z#CompositeProperty.Comparator.__lt__8  r   rU   c                óB   — |                       t          j        |¦  «        S r[   )rœ  r'   Úgtrž  s     rS   Ú__gt__z#CompositeProperty.Comparator.__gt__;  r   rU   c                óB   — |                       t          j        |¦  «        S r[   )rœ  r'   Úlerž  s     rS   Ú__le__z#CompositeProperty.Comparator.__le__>  r   rU   c                óB   — |                       t          j        |¦  «        S r[   )rœ  r'   Úgerž  s     rS   Ú__ge__z#CompositeProperty.Comparator.__ge__A  r   rU   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      €rS   rË   z9CompositeProperty.Comparator._compare.<locals>.<listcomp>S  s7   ø€ ð ð ð á�A�qð �˜˜A‘”ðð ð rU   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r™   )Úadapter)rÊ   ÚxrR   s     €rS   rË   z9CompositeProperty.Comparator._compare.<locals>.<listcomp>Y  s#   ø€ ÐDÐDÐD°1˜tŸ|š|¨A™œÐDÐDÐDrU   )	r  rf   r  rÂ   rÚ   r—  r´  r$   Úand_)rR   r  r™  rÕ   Úcomparisonss   ``   rS   rœ  z%CompositeProperty.Comparator._compareK  s´   øø€ ð ˆ}Ø˜¥# d¤iÔ&DÑ"EÔ"EÑE��àœ×BÒBÀ5ÑIÔI�ðð ð ð å ¤	Ô >ÀÑGÔGðñ ô ˆKð Ô$ð EØ”|Ð/Ð/Ð/ØDÐDÐDÐD¸ÐDÑDÔD�Ý”8˜[Ð)Ð)rU   )rL   r;   )rL   r‡  )ry   r   rL   r�  r”   )r™  r   rL   rš  )r  r=   r™  r   rL   rš  )ro   rp   rq   r–   Ú__hash__r—   r   Úmemoized_propertyr†  r‰  r&   r”  r  rŸ  r£  r¦  r©  r¬  r¯  rœ  r™   rU   rS   r³   r„  ä  sY  € € € € € € ð	ð 	ð& ˆà3Ð3Ð3Ñ3à	Ô	ð	ð 	ð 	ñ 
 Ô	ð	ð
	#ð 	#ð 	#ð 	#ð 
Ô	ð	Ið 	Ið 	Iñ 
 Ô	ð	Ið	@ð 	@ð 	@ð 	@ð0 
Ô	ð	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ð	*ð 	*ð 	*ð 	*ð 	*ð 	*rU   r³   c                óT   — t          | j        j        j        ¦  «        dz   | j        z   S )Nú.)rh   r�   rŠ   ro   rg   rQ   s    rS   Ú__str__zCompositeProperty.__str__\  s$   € Ý�4”;Ô%Ô.Ñ/Ô/°#Ñ5¸¼Ñ@Ð@rU   r[   )r§   r¨   rŸ   r©   r¢   rª   r£   rc   r¤   rc   r¥   rI   r¡   r«   r¦   r¬   r­   r   r•   )ry   rš   rL   rº   ©rL   r_   )râ   r2   rã   r-   rä   rå   ræ   rI   rg   rh   rç   rè   ré   rê   rë   rê   rì   rc   rL   r_   )râ   r2   rã   r-   rä   rå   ræ   rI   rg   rh   rL   r_   r”   )rL   r  )rL   r!  )rL   r&  )rL   r)  )rL   rQ  )rL   rU  rn   )r]   r^   rL   rk  )rL   rh   )+ro   rp   rq   r–   r—   rk   r“   rÂ   rÅ   ÚobjectrÓ   r¶   r   Úpreload_modulerú   r·   r÷   r¹  r  r  rT   Únon_memoized_propertyr%  ru   r(  r.  rÄ   r¹   rÎ   rb  r   rv   r\   r†   Úorm_utilÚBundlerD   r‚  r   rF   r³   r¼  r€  r�  s   @rS   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ð9ð 9ð 9ñ 6Ô5ð9ðvð ð ð ð6 €TÔÐ4Ñ5Ô5Ø€TÔÐ3Ñ4Ô4ð'Að 'Að 'Añ 5Ô4ñ 6Ô5ð'AðR 
Ôð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ð
ð ð ð ð ˜(œ/¨"Ô-ñ ô ð ð,v*ð v*ð v*ð v*ð v*�^ CÔ(ñ v*ô v*ð v*ðpAð Að Að Að Að Að Að ArU   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©ro   rp   rq   r–   Úinherit_cacher™   rU   rS   rÄ  rÄ  `  s!   € € € € € ðð ð €MØÐrU   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.

    r]   r^   rL   úType[PropComparator[_T]]c                ó¶   — d }| j                              ¦   «         D ].}|j        | j                 }t	          |dd ¦  «        �	|j        } nŒ/|€J ‚ |||¦  «        S )Nr¡   )r�   Úiterate_to_rootÚ_propsrg   rƒ   r¡   )rR   r]   Úcomparator_callableÚmrý   s        rS   r†   z-ConcreteInheritedProperty._comparator_factory„  s}   € ð #Ðà”×,Ò,Ñ.Ô.ð 	ð 	ˆAØ”˜œÔ"ˆAÝ�qÐ.°Ñ5Ô5ÐAØ&'Ô&:Ð#Ø�ð Bð #Ð.Ð.Ð.Ø"Ð" 1 fÑ-Ô-Ð-rU   r_   c                ó–   •‡ ‡— t          ¦   «                              ¦   «          dˆ fd„Š G ˆ ˆfd„d¦  «        } |¦   «         ‰ _        d S )NrL   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�   rg   rQ   s   €rS   Úwarnz0ConcreteInheritedProperty.__init__.<locals>.warn”  s7   ø€ Ý �.ð ”;�;�; ¤  ¨$¬+¨+¨+ð7ñô ð rU   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   rx   ry   rL   r	   c                ó   •—  ‰¦   «          d S r[   r™   )rÔ  rx   ry   rÑ  s      €rS   Ú__set__zLConcreteInheritedProperty.__init__.<locals>.NoninheritedConcreteProp.__set__�  ó   ø€ Ø�‘”���rU   c                ó   •—  ‰¦   «          d S r[   r™   )rÔ  rx   rÑ  s     €rS   Ú
__delete__zOConcreteInheritedProperty.__init__.<locals>.NoninheritedConcreteProp.__delete__   r×  rU   Úownerc                ó.   •— |€‰j         S  ‰¦   «          d S r[   )rK   )rÔ  rx   rÚ  rR   rÑ  s      €€rS   Ú__get__zLConcreteInheritedProperty.__init__.<locals>.NoninheritedConcreteProp.__get__£  s   ø€ Ø�;Øœ?Ð*Ø�‘”���rU   N)rÔ  r   rx   r   ry   r   rL   r	   )rÔ  r   rx   r   rL   r	   )rÔ  r   rx   r   rÚ  r   rL   r   )ro   rp   rq   rÖ  rÙ  rÜ  )rR   rÑ  s   €€rS   ÚNoninheritedConcreteProprÓ  œ  st   ø€ € € € € ðð ð ð ð ð ðð ð ð ð ð ðð ð ð ð ð ð ð ð rU   rÝ  )rL   r	   )r°   rk   rK   )rR   rÝ  rÑ  r²   s   ` @€rS   rk   z"ConcreteInheritedProperty.__init__‘  s†   øøø€ Ý‰Œ×ÒÑÔÐð	ð 	ð 	ð 	ð 	ð 	ð
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ñ 
	ô 
	ð 
	ð 3Ð2Ñ4Ô4ˆŒˆˆrU   )r]   r^   rL   rÉ  r½  )ro   rp   rq   r–   r†   rk   r€  r�  s   @rS   rÈ  rÈ  s  s[   ø€ € € € € ðð ð .ð .ð .ð .ð5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5rU   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d/d„Zej        fd0d$„Z e	j        d%¦  «        d1d)„¦   «         Zˆ xZS )2Ú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¡   Nr|   rh   Ú
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°   rk   r|   rá  rK   r¡   rJ   r–   r¦   r´   r   rµ   )	rR   r|   rá  rK   r¡   r¢   r¦   rJ   r²   s	           €rS   rk   zSynonymProperty.__init__»  s©   ø€ õ 	‰Œ×ÒÐ+<ÐÑ=Ô=Ð=àˆŒ	Ø$ˆŒØ$ˆŒØ"4ˆÔØð 	ØˆDŒHˆHØð 	˜JÔ.ð 	Ø!Ô)ˆDŒHˆHàˆDŒHØð 	#ØŒI×Ò˜TÑ"Ô"Ð"åÔ Ñ%Ô%Ð%Ð%Ð%rU   rL   rc   c                óT   — t          | j        j        | j        ¦  «        j        j        S r[   )rƒ   r�   rŠ   r|   rŽ   re   rQ   s    rS   re   zSynonymProperty.uses_objectsØ  s   € å˜4œ;Ô-¨t¬yÑ9Ô9Ô>ÔKÐKrU   ú/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 )Nru   zsynonym() attribute "r»  z+" only supports ORM mapped attributes, got )rƒ   r�   rŠ   r|   rõ   r±   ru   r   r   r0   Ú
comparatorr   r¾   r¿   ro   )rR   rÛ   s     rS   Ú_proxied_objectzSynonymProperty._proxied_objectß  sÂ   € õ �t”{Ô)¨4¬9Ñ5Ô5ˆÝ�t˜ZÑ(Ô(ð 	µ
ØŒM�>ñ1
ô 1
ð 	õ
 ˜$¥
Ô =Ñ>Ô>ð Ø”Ð&Ý˜DÕ"2Ñ3Ô3ð à�åÔ,Ð,ð ”;Ô%Ô.Ð.Ð.°´	°	°	¸4¸4ðAñô ð ð
 Œ}ÐrU   rM   c                óB   — t          | j        j        | j        ¦  «        fS r[   )rƒ   r�   rŠ   r|   rQ   s    rS   rT   z&SynonymProperty._column_strategy_attrsö  s   € Ý˜œÔ*¨D¬IÑ6Ô6Ð8Ð8rU   r]   r^   úSQLORMOperations[_T]c                óª   — | j         }t          |t          ¦  «        r6| j        r|                      ||¦  «        }n|                     ||¦  «        }|S |S r[   )ré  r±   r   r¡   )rR   r]   rf   Úcomps       rS   r†   z#SynonymProperty._comparator_factoryù  s]   € ØÔ#ˆå�d�NÑ+Ô+ð 	ØÔ&ð =Ø×.Ò.¨t°VÑ<Ô<��à×.Ò.¨t°VÑ<Ô<�ØˆKàˆKrU   rV   rW   rX   r,   rY   r   r.   c                óz   — t          | j        j        | j        ¦  «        }|j                             |||¬¦  «        S )N)rY   )rƒ   r�   rŠ   r|   rŽ   r\   )rR   rV   rX   rY   rÛ   s        rS   r\   zSynonymProperty.get_history  s7   € õ )0°´Ô0BÀDÄIÑ(NÔ(NˆØŒy×$Ò$ U¨E¸7Ð$ÑCÔCÐCrU   rá   r�   Úinitr_   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á  rg   Úpersist_selectabler-  r¾   rö   r|   Údescriptionr  r4   Ú_configure_propertyÚ_mapped_by_synonymr�   )rR   r�   rï  Ú
propertiesrý   s        rS   Ú
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Ô àˆŒˆˆrU   )NNNNNN)r|   rh   rá  râ  rK   rã  r¡   rà  r¢   rª   r¦   r¬   rJ   rI   rm   )rL   ræ  r”   )r]   r^   rL   rë  rn   )r�   r^   rï  rc   rL   r_   )ro   rp   rq   r–   r—   rk   r   ru   re   r   r¹  ré  rT   r†   r   rv   r\   r¿  rù  r€  r�  s   @rS   rß  rß  «  s>  ø€ € € € € € ðð ð ;Ð:Ð:Ñ:ð
 &*Ø$(ØAEØ9=Ø$(Ø!ð&ð &ð &ð &ð &ð &ð &ð6 ð Là	ð	Lð 	Lð 	Lñ 
Œð	Lð 
Ôðð ð ñ Ôðð,9ð 9ð 9ð 9ð
ð 
ð 
ð 
ð   +Ô6ð	Dð Dð Dð Dð Dð €TÔÐ4Ñ5Ô5ð#ð #ð #ñ 6Ô5ð#ð #ð #ð #ð #rU   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™   rU   rS   rû  rû  5  s!   € € € € € ðð ð €MØÐrU   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   r4  r1   r  r2   r]   r3   rø  r4   r5   rV   r6   Úengine.baser7   Ú
engine.rowr8   Úsql._typingr9   r:   r;   r<   Úsql.operatorsr=   Ú
sql.schemar>   Úsql.selectabler?   r@   rA   rB   rC   rD   rF   rH   rh   Ú_CompositeAttrTyperš   ÚWeakKeyDictionaryr›   r—   r�   rÄ  rÈ  rß  rû  r™   rU   rS   ú<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ÐÑÔ€ðJHð JHð JHð JHð JH˜¨Ô+ñ JHô JHð JHðZ ØØØØØð	ôÐ ð €gˆe˜3ÐÑÔ€ð
 €GÔÑÔð ð  ð  ð  ñ  ð
d
Að d
Að d
Að d
Að d
AØ�ÔÐ.Ð0BÀ3Ô0Gñd
Aô d
Að d
AðNð ð ð ð Ð! "Ô%Ð'9¸"Ô'=ñ ô ð ð&55ð 55ð 55ð 55ð 55Ð 2°2Ô 6ñ 55ô 55ð 55ðpGð Gð Gð Gð GÐ(¨Ô,ñ Gô Gð GðTð ð ð ð ˆo˜bÔ!Ð#5°bÔ#9ñ ô ð ð ð rU   