§
    
 @g_G  ã                  óv  — U d 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 erddlmZ ddlmZ e	e ef         Z!ej"        Z#de$d<    G d„ d e¦  «        Z% G d!„ d"e%¦  «        Z& G d#„ d$e&¦  «        Z' G d%„ d&e%¦  «        Z(i Z)d'e$d(<    ed)d ¬*¦  «        Z*dKd/„Z+	 dLd0d0dd1œdMd:„Z,e	 dLdNd>„¦   «         Z-e	 dLdOd?„¦   «         Z-	 dLdPdA„Z-dQdB„Z.dRdG„Z/dSdJ„Z0dS )Ta*  The :class:`.Annotated` class and related routines; creates hash-equivalent
copies of SQL constructs which contain context-specific markers and
associations.

Note that the :class:`.Annotated` concept as implemented in this module is not
related in any way to the pep-593 concept of "Annotated".


é    )ÚannotationsN)ÚAny)ÚCallable)Úcast)ÚDict)Ú	FrozenSet)ÚMapping)ÚOptional)Úoverload)ÚSequence)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVaré   )Ú	operators)ÚHasCacheKey)Úanon_map)ÚExternallyTraversible)ÚInternalTraversalé   )Úutil)ÚLiteral)ÚSelf)Ú_EntityNamespace)Ú_TraverseInternalsTypeúutil.immutabledict[str, Any]ÚEMPTY_ANNOTATIONSc                  ó²   — e Zd ZU dZeZded<   ded<   ded<   dd„Ze	 	 ddd„¦   «         Z	e	 	 ddd„¦   «         Z		 	 dd d„Z	e
j        d!d„¦   «         Zd"d„ZdS )#ÚSupportsAnnotations© r   Ú_annotationsz*util.generic_fn_descriptor[FrozenSet[Any]]Ú	proxy_setÚboolÚ_is_immutableÚvaluesÚ_AnnotationDictÚreturnr   c                ó   — t          ¦   «         ‚©N©ÚNotImplementedError©Úselfr&   s     úM/var/www/piapp/venv/lib/python3.11/site-packages/sqlalchemy/sql/annotation.pyÚ	_annotatezSupportsAnnotations._annotate>   s   € Ý!Ñ#Ô#Ð#ó    .úLiteral[None]Úclonec                ó   — d S r*   r!   ©r.   r&   r3   s      r/   Ú_deannotatezSupportsAnnotations._deannotateA   ó	   € ð 	ˆr1   úSequence[str]c                ó   — d S r*   r!   r5   s      r/   r6   zSupportsAnnotations._deannotateI   r7   r1   NFúOptional[Sequence[str]]c                ó   — t          ¦   «         ‚r*   r+   r5   s      r/   r6   zSupportsAnnotations._deannotateQ   s   € õ
 "Ñ#Ô#Ð#r1   úTuple[Any, ...]c                óH   — t          ¦   «         }|                      |¦  «        S r*   )r   Ú_gen_annotations_cache_key)r.   Ú	anon_map_s     r/   Ú_annotations_cache_keyz*SupportsAnnotations._annotations_cache_keyX   s   € å‘J”Jˆ	à×.Ò.¨yÑ9Ô9Ð9r1   r   c                ó|   ‡ ‡— dt          ˆfd„ˆ fd„t          ‰ j        ¦  «        D ¦   «         D ¦   «         ¦  «        fS )Nr"   c              3  ó|   •K  — | ]6\  }}|t          |t          ¦  «        r|                     ‰g ¦  «        n|fV — Œ7d S r*   )Ú
isinstancer   Ú_gen_cache_key)Ú.0ÚkeyÚvaluer   s      €r/   ú	<genexpr>zASupportsAnnotations._gen_annotations_cache_key.<locals>.<genexpr>c   sl   øè è € ð ð ñ �C˜ð å! %­Ñ5Ô5ð�E×(Ò(¨°2Ñ6Ô6Ð6àð	ðð ð ð ð ð r1   c                ó.   •— g | ]}|‰j         |         f‘ŒS r!   )r"   )rE   rF   r.   s     €r/   ú
<listcomp>zBSupportsAnnotations._gen_annotations_cache_key.<locals>.<listcomp>j   s6   ø€ ð #ð #ð #àð ˜$Ô+¨CÔ0Ð1ð#ð #ð #r1   )ÚtupleÚsortedr"   )r.   r   s   ``r/   r>   z.SupportsAnnotations._gen_annotations_cache_key^   st   øø€ ð Ýð ð ð ð ð#ð #ð #ð #å% dÔ&7Ñ8Ô8ð#ñ #ô #ðñ ô ñ ô ð
ð 	
r1   ©r&   r'   r(   r   ©..©r&   r2   r3   r$   r(   r   ©r&   r8   r3   r$   r(   r    ©NF©r&   r:   r3   r$   r(   r    )r(   r<   )r   r   r(   r<   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r"   Ú__annotations__r0   r   r6   r   Úmemoized_propertyr@   r>   r!   r1   r/   r    r    5   s  € € € € € € Ø€Ià1B€LÐBÐBÐBÑBà9Ð9Ð9Ñ9àÐÐÑð$ð $ð $ð $ð ð !$Øðð ð ð ñ „Xðð ð !$Øðð ð ð ñ „Xðð +/Øð$ð $ð $ð $ð $ð 
Ôð:ð :ð :ñ Ôð:ð

ð 
ð 
ð 
ð 
ð 
r1   r    c                  óž   — e Zd ZU dZded<   erej        dd„¦   «         Zdd
„Z	dd„Z
e	 	 ddd„¦   «         Ze	 	 ddd„¦   «         Z	 	 ddd„ZdS )ÚSupportsWrappingAnnotationsr!   z*Callable[..., SupportsWrappingAnnotations]Ú_constructorr(   r   c                ó   — d S r*   r!   ©r.   s    r/   Úentity_namespacez,SupportsWrappingAnnotations.entity_namespacey   s   € àˆCr1   r&   r'   r   c                ó8   — t                                | |¦  «        S )úgreturn a copy of this ClauseElement with annotations
        updated by the given dictionary.

        ©Ú	AnnotatedÚ_as_annotated_instancer-   s     r/   r0   z%SupportsWrappingAnnotations._annotate}   ó   € õ
 ×/Ò/°°fÑ=Ô=Ð=r1   c                ó8   — t                                | |¦  «        S )úhreturn a copy of this ClauseElement with annotations
        replaced by the given dictionary.

        ra   r-   s     r/   Ú_with_annotationsz-SupportsWrappingAnnotations._with_annotations„   rd   r1   .r2   r3   r$   c                ó   — d S r*   r!   r5   s      r/   r6   z'SupportsWrappingAnnotations._deannotate‹   r7   r1   r8   r    c                ó   — d S r*   r!   r5   s      r/   r6   z'SupportsWrappingAnnotations._deannotate“   r7   r1   NFr:   c                ó6   — |r|                       ¦   «         }|S | S )ú¼return a copy of this :class:`_expression.ClauseElement`
        with annotations
        removed.

        :param values: optional tuple of individual values
         to remove.

        )Ú_clone)r.   r&   r3   Úss       r/   r6   z'SupportsWrappingAnnotations._deannotate›   s#   € ð ð 	Ø—’‘”ˆAØˆHàˆKr1   ©r(   r   rM   rN   rO   rP   rQ   rR   )rS   rT   rU   rV   rW   r   r   Úro_non_memoized_propertyr^   r0   rg   r   r6   r!   r1   r/   rZ   rZ   r   sô   € € € € € € Ø€Ià<Ð<Ð<Ñ<àð à	Ô	&ð	ð 	ð 	ñ 
'Ô	&ð	ð>ð >ð >ð >ð>ð >ð >ð >ð ð !$Øðð ð ð ñ „Xðð ð !$Øðð ð ð ñ „Xðð +/Øðð ð ð ð ð ð r1   rZ   c                  óš   — e Zd ZU ej        sdZdej        fgZde	d<   dd	„Z
dd
„Ze	 	 ddd„¦   «         Ze	 	 ddd„¦   «         Z	 	 ddd„ZdS )ÚSupportsCloneAnnotationsr!   r"   r   Ú%_clone_annotations_traverse_internalsr&   r'   r(   r   c                óØ   — |                       ¦   «         }|j                             |¦  «        |_        |j                             dd¦  «         |j                             dd¦  «         |S )r`   r@   NÚ_generate_cache_key)rl   r"   ÚunionÚ__dict__Úpop©r.   r&   Únews      r/   r0   z"SupportsCloneAnnotations._annotate¾   sa   € ð
 �kŠk‰mŒmˆØÔ+×1Ò1°&Ñ9Ô9ˆÔØŒ×ÒÐ1°4Ñ8Ô8Ð8ØŒ×ÒÐ.°Ñ5Ô5Ð5Øˆ
r1   c                óÌ   — |                       ¦   «         }t          j        |¦  «        |_        |j                             dd¦  «         |j                             dd¦  «         |S )rf   r@   Nrt   )rl   r   Úimmutabledictr"   rv   rw   rx   s      r/   rg   z*SupportsCloneAnnotations._with_annotationsÉ   s[   € ð
 �kŠk‰mŒmˆÝÔ-¨fÑ5Ô5ˆÔØŒ×ÒÐ1°4Ñ8Ô8Ð8ØŒ×ÒÐ.°Ñ5Ô5Ð5Øˆ
r1   .r2   r3   r$   c                ó   — d S r*   r!   r5   s      r/   r6   z$SupportsCloneAnnotations._deannotateÔ   r7   r1   r8   r    c                ó   — d S r*   r!   r5   s      r/   r6   z$SupportsCloneAnnotations._deannotateÜ   r7   r1   NFr:   c                óª   — |s| j         rI|                      ¦   «         }t          j        ¦   «         |_         |j                             dd¦  «         |S | S )rk   r@   N)r"   rl   r   r{   rv   rw   )r.   r&   r3   ry   s       r/   r6   z$SupportsCloneAnnotations._deannotateä   sY   € ð ð 	�DÔ%ð 	ð —+’+‘-”-ˆCÝ#Ô1Ñ3Ô3ˆCÔØŒL×ÒÐ5°tÑ<Ô<Ð<ØˆJàˆKr1   rM   rN   rO   rP   rQ   rR   )rS   rT   rU   Útypingr   rV   r   Údp_annotations_keyrr   rW   r0   rg   r   r6   r!   r1   r/   rq   rq   ¯   sö   € € € € € € ð Ôð Øˆ	ð 
Ð*Ô=Ð>ðEÐ)ð ð ð ñ ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð ð !$Øðð ð ð ñ „Xðð ð !$Øðð ð ð ñ „Xðð +/Øðð ð ð ð ð ð r1   rq   c                  ó&  — e Zd ZU dZdZed/d„¦   «         Zd	ed
<   ded<   ded<   d0d„Zd1d„Z	d2d„Z
d2d„Ze	 	 d3d4d„¦   «         Ze	 	 d3d5d„¦   «         Z	 	 d6d7d"„Zej        sd8d%„Zed&„ ¦   «         Zd9d'„Zd:d)„Zd;d*„Zd<d,„Zej        d=d.„¦   «         ZdS )>rb   aJ  clones a SupportsAnnotations and applies an 'annotations' dictionary.

    Unlike regular clones, this clone also mimics __hash__() and
    __eq__() of the original element so that it takes its place
    in hashed collections.

    A reference to the original element is maintained, for the important
    reason of keeping its hash value current.  When GC'ed, the
    hash value may be reused, causing conflicts.

    .. note::  The rationale for Annotated producing a brand new class,
       rather than placing the functionality directly within ClauseElement,
       is **performance**.  The __hash__() method is absent on plain
       ClauseElement which leads to significantly reduced function call
       overhead, as the use of sets and dictionaries against ClauseElement
       objects is prevalent, but most are not "annotated".

    FÚelementrZ   r&   r'   r(   c                óŒ   — 	 t           |j                 } n%# t          $ r t          |j        | ¦  «        } Y nw xY w | ||¦  «        S r*   )Úannotated_classesÚ	__class__ÚKeyErrorÚ_new_annotation_type)Úclsr‚   r&   s      r/   rc   z Annotated._as_annotated_instance  sY   € ð	?Ý# GÔ$5Ô6ˆCˆCøÝð 	?ð 	?ð 	?Ý& wÔ'8¸#Ñ>Ô>ˆCˆCˆCð	?øøøàˆs�7˜FÑ#Ô#Ð#s   ‚ •7¶7r   r"   Ú_Annotated__elementÚintÚ_hashrˆ   ú
Type[Self]Úargsr   r   c                ó6   — t                                | ¦  «        S r*   )ÚobjectÚ__new__)rˆ   r�   s     r/   r�   zAnnotated.__new__   s   € Ý�~Š~˜cÑ"Ô"Ð"r1   c                ó  — |j                              ¦   «         | _         | j                              dd ¦  «         | j                              dd ¦  «         || _        t	          j        |¦  «        | _        t          |¦  «        | _        d S ©Nr@   rt   )	rv   Úcopyrw   r‰   r   r{   r"   Úhashr‹   )r.   r‚   r&   s      r/   Ú__init__zAnnotated.__init__#  sw   € ð  Ô(×-Ò-Ñ/Ô/ˆŒØŒ×ÒÐ2°DÑ9Ô9Ð9ØŒ×ÒÐ/°Ñ6Ô6Ð6Ø ˆŒÝ Ô.¨vÑ6Ô6ˆÔÝ˜'‘]”]ˆŒ
ˆ
ˆ
r1   c                ód   — | j                              |¦  «        }|                      |¦  «        }|S r*   )r"   ru   rg   )r.   r&   Ú_valuesry   s       r/   r0   zAnnotated._annotate-  s0   € ØÔ#×)Ò)¨&Ñ1Ô1ˆØ×$Ò$ WÑ-Ô-ˆØˆ
r1   c                ó  — | j                              | j         ¦  «        }| j                             ¦   «         |_        |j                             dd ¦  «         |j                             dd ¦  «         t          j        |¦  «        |_        |S r’   )r…   r�   rv   r“   rw   r   r{   r"   r5   s      r/   rg   zAnnotated._with_annotations2  sx   € Ø”×&Ò& t¤~Ñ6Ô6ˆØœ×+Ò+Ñ-Ô-ˆŒØŒ×ÒÐ3°TÑ:Ô:Ð:ØŒ×ÒÐ0°$Ñ7Ô7Ð7Ý!Ô/°Ñ7Ô7ˆÔØˆr1   .r2   r3   r$   c                ó   — d S r*   r!   r5   s      r/   r6   zAnnotated._deannotate:  r7   r1   r8   c                ó   — d S r*   r!   r5   s      r/   r6   zAnnotated._deannotateB  r7   r1   NTr:   r    c                óª   ‡— ‰€| j         S |                      t          j        ˆfd„| j                             ¦   «         D ¦   «         ¦  «        ¦  «        S )Nc                ó$   •— i | ]\  }}|‰v¯	||“ŒS r!   r!   )rE   rF   rG   r&   s      €r/   ú
<dictcomp>z)Annotated._deannotate.<locals>.<dictcomp>T  s4   ø€ ð ð ð á&˜C Ø fÐ,Ð,ð ˜Uà,Ð,Ð,r1   )r‰   rg   r   r{   r"   Úitemsr5   s    ` r/   r6   zAnnotated._deannotateJ  so   ø€ ð
 ˆ>Ø”>Ð!à×)Ò)ÝÔ"ðð ð ð à*.Ô*;×*AÒ*AÑ*CÔ*Cðñ ô ñô ñô ð r1   ÚvisitorÚkwc                ó4   —  | j         j        j        | |fi |¤ŽS r*   )r‰   r…   Ú_compiler_dispatch)r.   rŸ   r    s      r/   r¢   zAnnotated._compiler_dispatch^  s0   € Ø>�4”>Ô+Ô>Ø�gðð Ø!#ðð ð r1   c                ó   — | j         j        S r*   )r‰   r[   r]   s    r/   r[   zAnnotated._constructorc  s   € à”>Ô.Ð.r1   c                ó°   —  | j         j        di |¤Ž}|| j         u r| S |j                             | j        ¦  «         |                      || j        ¦  «        S )Nr!   )r‰   rl   rv   Úupdater…   r"   )r.   r    r3   s      r/   rl   zAnnotated._cloneg  s_   € Ø%�”Ô%Ð+Ð+¨Ð+Ð+ˆØ�D”NÐ"Ð"àˆKð ŒN×!Ò! $¤-Ñ0Ô0Ð0Ø—>’> %¨Ô):Ñ;Ô;Ð;r1   ú'Tuple[Type[Annotated], Tuple[Any, ...]]c                ó,   — | j         | j        | j        ffS r*   )r…   r‰   r"   r]   s    r/   Ú
__reduce__zAnnotated.__reduce__r  s   € ØŒ~ ¤°Ô0AÐBÐBÐBr1   c                ó   — | j         S r*   )r‹   r]   s    r/   Ú__hash__zAnnotated.__hash__u  s
   € ØŒzÐr1   Úotherc                ó�   — | j         r | j        j                             | |¦  «        S t	          |¦  «        t	          | ¦  «        k    S r*   )Ú_is_column_operatorsr‰   r…   Ú__eq__r”   )r.   r«   s     r/   r®   zAnnotated.__eq__x  s?   € ØÔ$ð 	-Ø”>Ô+×2Ò2°4¸Ñ?Ô?Ð?å˜‘;”;¥$ t¡*¤*Ò,Ð,r1   r   c                óv   — d| j         v r%t          t          | j         d         ¦  «        j        S | j        j        S )Nr^   )r"   r   rZ   r^   r‰   r]   s    r/   r^   zAnnotated.entity_namespace~  sC   € à Ô!2Ð2Ð2ÝÝ+ØÔ!Ð"4Ô5ñô ô ðð
 ”>Ô2Ð2r1   )r‚   rZ   r&   r'   r(   rb   )rˆ   rŒ   r�   r   r(   r   )r‚   rZ   r&   r'   rM   rN   rO   )r&   r8   r3   r$   r(   rb   )NTrR   )rŸ   r   r    r   r(   r   )r    r   r(   r   )r(   r¦   )r(   rŠ   )r«   r   r(   r$   rn   )rS   rT   rU   Ú__doc__r­   Úclassmethodrc   rW   r�   r•   r0   rg   r   r6   r   r   r¢   Úpropertyr[   rl   r¨   rª   r®   r   ro   r^   r!   r1   r/   rb   rb   ü   sè  € € € € € € ðð ð& !Ðàð$ð $ð $ñ „[ð$ð /Ð.Ð.Ñ.Ø*Ð*Ð*Ñ*Ø€J€J�Jð#ð #ð #ð #ð#ð #ð #ð #ðð ð ð ð
ð ð ð ð ð !$Øðð ð ð ñ „Xðð ð !$Øðð ð ð ñ „Xðð +/Øðð ð ð ð ð$ Ôð 	/ð	ð 	ð 	ð 	ð
 
ð	/ð 	/ñ 
Œð	/ð	<ð 	<ð 	<ð 	<ðCð Cð Cð Cðð ð ð ð-ð -ð -ð -ð 
Ô"ð3ð 3ð 3ñ #Ô"ð3ð 3ð 3r1   rb   z8Dict[Type[SupportsWrappingAnnotations], Type[Annotated]]r„   Ú_SA)ÚboundÚto_annotater   r'   r(   c                óL   — 	 | j         } ||¦  «        S # t          $ r | cY S w xY wr*   )r0   ÚAttributeError)rµ   r   r0   s      r/   Ú_safe_annotater¸   •  sL   € ð&ØÔ)ˆ	ð ˆy˜Ñ%Ô%Ð%øõ ð ð ð ð ÐÐÐð	øøøs   ‚ ”#¢#F)Údetect_subquery_colsÚind_cols_on_fromclauseÚannotate_callabler‚   Úexcludeú'Optional[Sequence[SupportsAnnotations]]r¹   r$   rº   r»   úOOptional[Callable[[SupportsAnnotations, _AnnotationDict], SupportsAnnotations]]c               ót   ‡‡‡‡‡‡‡— i Šdˆˆˆˆˆˆˆfd„Š| �t          t           ‰| ¦  «        ¦  «        } dŠ| S )	z¹Deep copy the given ClauseElement, annotating each element
    with the given annotations dictionary.

    Elements within the exclude collection will be cloned but not annotated.

    Úelemr    r    r   r(   c                óˆ  •— ‰	|d<   t          | ¦  «        }|‰v r‰|         S ‰
r:t          | d¦  «        r*| j                             ‰
¦  «        r | j        dd‰i|¤Ž}nH‰| j        k    r;‰	r| j        r | j        dd‰i|¤Ž}n| }‰r ‰|‰¦  «        }nt          |‰¦  «        }n| }|                     ‰‰¬¦  «         |‰|<   |S )Nr¹   r#   r3   )r3   rº   r!   )	ÚidÚhasattrr#   Úintersectionrl   r"   r%   r¸   Ú_copy_internals)rÀ   r    Úid_Únewelemrµ   r»   r   r3   Ú
cloned_idsr¹   r¼   rº   s        €€€€€€€r/   r3   z_deep_annotate.<locals>.clone¸  s/  ø€ ð &:ˆÐ!Ñ"Ý�‰hŒhˆà�*ÐÐØ˜c”?Ð"ð ð	å˜˜kÑ*Ô*ð	ð ”×+Ò+¨GÑ4Ô4ð	ð
 "�d”kÐ4Ð4¨Ð4°Ð4Ð4ˆGˆGØ˜DÔ-Ò-Ð-Ø#ð #¨Ô(:ð #Ø)˜dœkÐ<Ð<°Ð<¸Ð<Ð<��à"�Ø ð CØ+Ð+¨K¸ÑEÔE��å(¨°kÑBÔB��àˆGà×ÒØÐ0Fð 	 ñ 	
ô 	
ð 	
ð "ˆ
�3‰Øˆr1   N©rÀ   r    r    r   r(   r    ©r   r³   )r‚   r   r¼   r¹   rº   r»   r3   rÈ   s    `````@@r/   Ú_deep_annotaterË   ¡  sv   øøøøøøø€ ð* 24€Jð'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ðR ÐÝ•s˜E˜E '™NœNÑ+Ô+ˆØ€EØ€Nr1   r2   r&   r:   c                ó   — d S r*   r!   ©r‚   r&   s     r/   Ú_deep_deannotaterÎ   ç  ó	   € ð €Cr1   c                ó   — d S r*   r!   rÍ   s     r/   rÎ   rÎ   î  rÏ   r1   úOptional[_SA]c                ód   ‡‡‡— i Šdˆˆˆfd„Š| �t          t           ‰| ¦  «        ¦  «        } dŠ| S )	z2Deep copy the given element, removing annotations.rÀ   r    r    r   r(   c                ó¬   •— ‰rt          | ¦  «        }n| }|‰vr4|                      ‰d¬¦  «        }|                     ‰¬¦  «         |‰|<   |S ‰|         S )NT)r&   r3   )r3   )rÂ   r6   rÅ   )rÀ   r    rF   rÇ   r3   Úclonedr&   s       €€€r/   r3   z_deep_deannotate.<locals>.cloneü  so   ø€ àð 	Ý�T‘(”(ˆCˆCàˆCà�fÐÐØ×&Ò&¨f¸DÐ&ÑAÔAˆGØ×#Ò#¨%Ð#Ñ0Ô0Ð0Ø!ˆF�3‰KØˆNà˜#”;Ðr1   NrÉ   rÊ   )r‚   r&   r3   rÔ   s    `@@r/   rÎ   rÎ   õ  s]   øøø€ ð
 .0€Fðð ð ð ð ð ð ð ð ÐÝ•s˜E˜E '™NœNÑ+Ô+ˆØ€EØ€Nr1   c                óX   — |                       |¦  «        } |                      ¦   «          | S )a  Annotate the given ClauseElement and copy its internals so that
    internal objects refer to the new annotated object.

    Basically used to apply a "don't traverse" annotation to a
    selectable, without digging throughout the whole
    structure wasting time.
    )r0   rÅ   )r‚   r   s     r/   Ú_shallow_annotaterÖ     s.   € ð ×Ò Ñ,Ô,€GØ×ÒÑÔÐØ€Nr1   rˆ   ú!Type[SupportsWrappingAnnotations]Úbase_clsúType[Annotated]c                ó  — t          | t          ¦  «        r| S | t          v rt          |          S | j        D ]}|t          v rt          |         } nŒt	          t
          t                   t          d| j        z  || fi ¦  «        ¦  «        xt          | <   }|t          ¦   «         d| j        z  <   d| j	        v r*t          | j        ¦  «        dt          j        fgz   |_        nD| j	                             dd¦  «        r)t          | j        ¦  «        dt          j        fgz   |_        | j	                             dd¦  «        rd|_        nd| j	        v r| j	        d         |_        t          | t           j        ¦  «        |_        |S )z[Generates a new class that subclasses Annotated and proxies a given
    element type.

    zAnnotated%sÚ_traverse_internalsr"   Úinherit_cacheFT)Ú
issubclassrb   r„   Ú__mro__r   r   ÚtyperS   Úglobalsrv   ÚlistrÛ   r   r€   ÚgetrÜ   r   ÚColumnOperatorsr­   )rˆ   rØ   Úsuper_Úanno_clss       r/   r‡   r‡     s˜  € õ �#•yÑ!Ô!ð &Øˆ
Ø	Õ!Ð	!Ð	!Ý  Ô%Ð%à”+ð ð ˆð Õ&Ð&Ð&Ý(¨Ô0ˆHØˆEð 'õ )-Ý�YŒÝˆ]˜Sœ\Ñ)¨H°c¨?¸BÑ?Ô?ñ)ô )ð Õ�cÑ˜Xð /7…G�I„Iˆm˜cœlÑ*Ñ+à ¤Ð,Ð,Ý'+¨CÔ,CÑ'DÔ'DØÕ.ÔAÐBðH
ñ (
ˆÔ$Ð$ð 
Œ×	Ò	˜/¨5Ñ	1Ô	1ð 
Ý'+¨CÔ,CÑ'DÔ'DØÕ.ÔAÐBðH
ñ (
ˆÔ$ð „|×Ò˜¨Ñ/Ô/ð ?Ø!%ˆÔÐØ	˜CœLÐ	(Ð	(Ø!$¤¨oÔ!>ˆÔå$.¨sµIÔ4MÑ$NÔ$N€HÔ!à€Or1   Útarget_hierarchyÚNonec                óT   — t          j        | ¦  «        D ]}t          ||¦  «         Œd S r*   )r   Úwalk_subclassesr‡   )ræ   rØ   rˆ   s      r/   Ú_prepare_annotationsrê   M  s<   € õ Ô#Ð$4Ñ5Ô5ð ,ð ,ˆÝ˜S (Ñ+Ô+Ð+Ð+ð,ð ,r1   )rµ   r³   r   r'   r(   r³   r*   )r‚   r³   r   r'   r¼   r½   r¹   r$   rº   r$   r»   r¾   r(   r³   )r‚   r2   r&   r:   r(   r2   )r‚   r³   r&   r:   r(   r³   )r‚   rÑ   r&   r:   r(   rÑ   )r‚   r³   r   r'   r(   r³   )rˆ   r×   rØ   rÙ   r(   rÙ   )ræ   r×   rØ   rÙ   r(   rç   )1r°   Ú
__future__r   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   Ú r   Ú	cache_keyr   Úvisitorsr   r   r   r   Úutil.typingr   r   Úbaser   r   Ústrr'   Ú
EMPTY_DICTr   rW   r    rZ   rq   rb   r„   r³   r¸   rË   rÎ   rÖ   r‡   rê   r!   r1   r/   ú<module>ró      sõ  ððð ð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð àð 1Ø&Ð&Ð&Ð&Ð&Ð&Ø0Ð0Ð0Ð0Ð0Ð0à˜#˜s˜(Ô#€à26´/Ð Ð AÐ AÐ AÑ Að:
ð :
ð :
ð :
ð :
Ð/ñ :
ô :
ð :
ðz:ð :ð :ð :ð :Ð"5ñ :ô :ð :ðzJð Jð Jð Jð JÐ:ñ Jô Jð JðZJ3ð J3ð J3ð J3ð J3Ð#ñ J3ô J3ð J3ðh ð ð ð ð ñ ð €gˆeÐ0Ð1Ñ1Ô1€ð	&ð 	&ð 	&ð 	&ð 8<ðCð
 "'Ø#(ð 	ðCð Cð Cð Cð Cð CðL 
à>Bðð ð ð ñ 
„ðð 
à48ðð ð ð ñ 
„ðð ?Cðð ð ð ð ð8
ð 
ð 
ð 
ð,ð ,ð ,ð ,ð^,ð ,ð ,ð ,ð ,ð ,r1   