Ë
    ðmxiÝW  ã                  ó8  — d dl mZ d dl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
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ZddlmZ 	 d dlmZ d dlm Z  d dlm!Z! d dlm"Z" d dlm#Z# d dlm$Z$ d dlm%Z% d dlm&Z& d d lm'Z' d d!lm(Z( d d"lm)Z) d d#lm*Z* d d$lm+Z+ d d%lm,Z, d d&lm-Z- d d'lm.Z. d d(lm/Z/ d d)lm0Z0 d d*lm1Z1  ed+e¬,«      Z2 ed-«      Z3 ed.d¬/«      Z4 ed0d¬1«      Z5 ed2«      Z6 ed3d¬/«      Z7ejp                  rd d4l9m:Z: n e;d«      Z:dod5„Z<eee   e=eee/d6f   Z> G d7„ d8e)«      Z? G d9„ d:e)e2   «      Z@ G d;„ d<e)e3e7f   «      ZAe&d=   ZBdd>dd?œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dpd@„ZC	 	 	 	 dqdA„ZD	 	 	 	 	 	 drdB„ZEdddCœ	 	 	 	 	 	 	 	 	 dsdD„ZFddEœ	 	 	 	 	 	 	 dtdF„ZGdudG„ZHdvdH„ZIdwdI„ZJdxdJ„ZKdydK„ZLdzdL„ZMd{dM„ZNd|dN„ZOd}dO„ZP	 	 d~	 	 	 	 	 	 	 ddP„ZQed€dQ„«       ZRed�dR„«       ZRe	 	 	 	 dqdS„«       ZR	 	 	 	 dqdT„ZRe	 	 	 	 	 	 d‚dU„«       ZSe	 	 	 	 	 	 dƒdV„«       ZS	 	 	 	 	 	 d„dW„ZSd…dX„ZTdxdY„ZUdxdZ„ZVd†d[„ZW	 	 	 	 	 	 d‡d\„ZXdd]œ	 	 	 	 	 	 	 dˆd^„ZYd‰d_„ZZ G d`„ dae)«      Z[ edbe[¬,«      Z\ G dc„ ddee\   «      Z] edee[d¬f«      Z^ G dg„ dhee^   «      Z_ edieedjef      ¬,«      Z` G dk„ dlee`   «      Za G dm„ dn«      Zb eb«       ZcereZdecjL                  ZeyecZdecjL                  Zey)Šé    )ÚannotationsN)Údeque)ÚAny)ÚCallable)ÚDict)Ú
ForwardRef)ÚGeneric)ÚIterable)ÚMapping)ÚNewType)ÚNoReturn)ÚOptional)Úoverload)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar©ÚUnioné   )ÚcompatT)Ú	Annotated)ÚConcatenate)Údataclass_transform)ÚFinal)Úfinal)Úget_args)Ú
get_origin)ÚLiteral)ÚNotRequired)Ú	ParamSpec)ÚProtocol)ÚSupportsIndex)Ú	TypeAlias)Ú	TypedDict)Ú	TypeGuard)ÚSelf)ÚTypeAliasType)ÚNever)ÚLiteralStringÚ_T)ÚboundÚ_KTÚ_KT_co)Ú	covariantÚ
_KT_contra)ÚcontravariantÚ_VTÚ_VT_co)ÚNoneTypec                óD   — t        | t        «      xr | j                  dk(  S )NÚNone)Ú
isinstancer   Ú__forward_arg__)Útyps    úM/home/htdocs/ttos/venv/lib/python3.12/site-packages/sqlalchemy/util/typing.pyÚis_fwd_noner<   M   s   € Ü�cœ:Ó&ÒH¨3×+>Ñ+>À&Ñ+HÐHó    zGenericProtocol[Any]c                  ó   — e Zd ZU dZded<   y)ÚArgsTypeProtocolz_protocol for types that have ``__args__``

    there's no public interface for this AFAIK

    úTuple[_AnnotationScanType, ...]Ú__args__N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__© r=   r;   r?   r?   V   s   … ñð .Ô-r=   r?   c                  ó&   — e Zd ZU dZded<   ded<   y)ÚGenericProtocolzXprotocol for generic types.

    this since Python.typing _GenericAlias is private

    r@   rA   úType[_T]Ú
__origin__NrB   rH   r=   r;   rJ   rJ   `   s   … ñð .Ó-ØÔr=   rJ   c                  ó   — e Zd Zdd„Zdd„Zy)ÚSupportsKeysAndGetItemc                 ó   — y ©NrH   )Úselfs    r;   ÚkeyszSupportsKeysAndGetItem.keysu   ó   � r=   c                 ó   — y rP   rH   )rQ   Ú_SupportsKeysAndGetItem__ks     r;   Ú__getitem__z"SupportsKeysAndGetItem.__getitem__w   rS   r=   N)ÚreturnzIterable[_KT])rU   r.   rW   r4   )rC   rD   rE   rR   rV   rH   r=   r;   rN   rN   t   s   „ Û(ä2r=   rN   Ú*F©Ústr_cleanup_fnÚinclude_genericÚ_already_seenc               ól  ‡ ‡‡‡‡‡— |}t        |«      r|j                  }t        |t        «      r‰r	 ‰|‰«      }t	        |‰‰‰ ¬«      }‰rht        |«      r]t        |«      sR‰€
t        «       Š|‰v r|S ‰j                  |«       t        ˆˆ ˆˆˆˆfd„|j                  D «       «      }t        ||«      S |S )a;  Resolve annotations that may be string based into real objects.

    This is particularly important if a module defines "from __future__ import
    annotations", as everything inside of __annotations__ is a string. We want
    to at least have generic containers like ``Mapped``, ``Union``, ``List``,
    etc.

    ©Úlocals_Úin_classc           
   3  óB   •K  — | ]  }t        ‰|‰‰‰‰‰¬ «      –— Œ y­w)rY   N)Úde_stringify_annotation)Ú.0Úelemr\   Úclsr[   r_   Úoriginating_modulerZ   s     €€€€€€r;   ú	<genexpr>z*de_stringify_annotation.<locals>.<genexpr>³   s:   øè ø€ ò 
ð ô $ØØØ"ØØ-Ø /Ø+÷ð ñ
ùs   ƒ)Ú
is_fwd_refr9   r8   ÚstrÚeval_expressionÚ
is_genericÚ
is_literalÚsetÚaddÚtuplerA   Ú_copy_generic_annotation_with)	re   Ú
annotationrf   r_   rZ   r[   r\   Úoriginal_annotationÚelementss	   ` `````  r;   rb   rb   ~   sÅ   ý€ ð. %Ðä�*ÔØ×/Ñ/ˆ
ä�*œcÔ"ÙÙ'¨
Ð4FÓGˆJä$ØÐ*°GÀcô
ˆ
ñ
 	Ü�zÔ"Ü˜:Ô&àÐ Ü›EˆMà˜Ñ&ð
 'Ð&à×Ñ˜jÔ)ä÷ 
ð 
ð #×+Ñ+ô
ó 
ˆô -¨Z¸ÓBÐBàÐr=   c                óÜ  — t        | «      rÛt        | «      t        t        t        t
        j                  t
        j                  t
        j                  t
        j                  t
        j                  fv rtt        j                  dt        | «      «      sUt        | «      j                  t        t!        | «      D �cg c]  }t#        |t$        «      rt'        |«      n|‘Œ! c}«      «      S | S c c}w )zfCorrect dict['x', 'y'] into dict[ForwardRef('x'), ForwardRef('y')]
    and similar for list, set

    z3typing.(?:Dict|List|Set|.*Mapping|.*Sequence|.*Set))rk   r   Údictrm   ÚlistÚcollections_abcÚ
MutableSetÚMutableMappingÚMutableSequencer   ÚSequenceÚreÚmatchÚreprÚ__class_getitem__ro   r   r8   ri   r   )Útype_rd   s     r;   Úfixup_container_fwd_refsr�   Å   sÈ   € ô 	�5ÔÜ�uÓäÜÜÜ×&Ñ&Ü×*Ñ*Ü×+Ñ+Ü×#Ñ#Ü×$Ñ$ð	
ñ

ô —‘ØAÄ4ÈÃ;ô
ô
 ˜%Ó ×2Ñ2Üô !)¨£öàô )3°4¼Ô(=”J˜tÔ$À4ÑGòóó
ð 	
ð €Lùòs   Â8$C)c                óZ   — t        | d«      r| j                  |«      S | j                  |   S )NÚ	copy_with)Úhasattrrƒ   rL   )rq   rs   s     r;   rp   rp   î   s2   € ô ˆz˜;Ô'à×#Ñ# HÓ-Ð-ð ×$Ñ$ XÑ.Ð.r=   r^   c               óŒ  — 	 t         j                  |   j                  }	 |�Qt        |j                  «      }|j                  |j                  |«       |j                  |«       t        | ||«      }|S t        | ||«      }	 |S # t        $ r}t	        d|› d| › �«      |‚d }~ww xY w# t        $ r}t	        d| ›�«      |‚d }~ww xY w)NúModule z9 isn't present in sys.modules; can't evaluate expression z"Could not de-stringify annotation )ÚsysÚmodulesÚ__dict__ÚKeyErrorÚ	NameErrorru   Ú
setdefaultrC   ÚupdateÚevalÚ	Exception)	Ú
expressionÚmodule_namer_   r`   Úbase_globalsÚkeÚcls_namespacerq   Úerrs	            r;   rj   rj   ù   sï   € ðÜ'*§{¡{°;Ñ'?×'HÑ'HˆðØÐÜ  ×!2Ñ!2Ó3ˆMØ×$Ñ$ X×%6Ñ%6¸ÔAð
 × Ñ  Ô.ä˜j¨-¸ÓAˆJð Ðô ˜j¨,¸Ó@‰Jð Ðøô1 ò ÜØ�k�]ð ##Ø#- ,ð0ó
ð ð	ûðûô& ò ÜØ0°°Ð?ó
àð	ûðús5   ‚B  AB& Á3B& Â	B#ÂBÂB#Â&	CÂ/B>Â>C©r_   c               óJ  — d| v rt        | ||¬«      S 	 t        j                  |   j                  }	 ||    S # t        $ r}t        d|› d| › �«      |‚d }~ww xY w# t        $ r?}	 t        j                  |    cY d }~S # t        $ r Y nw xY wt        d| › d|› �«      |‚d }~ww xY w)Nú.r–   r†   z2 isn't present in sys.modules; can't resolve name zCould not locate name z in module )rj   r‡   rˆ   r‰   rŠ   r‹   Úbuiltins)Únamer‘   r_   r’   r“   s        r;   Úeval_name_onlyr›     sØ   € ð ˆd�{Ü˜t [¸'ÔBÐBðÜ'*§{¡{°;Ñ'?×'HÑ'HˆðØ˜DÑ!Ð!øô ò ÜØ�k�]ð #Ø ˜6ð#ó
ð ð	ûðûô ò 	ð	Ü×$Ñ$ TÑ*Õ*øÜò 	Ùð	úô Ø$ T F¨+°k°]ÐCó
àð	ûð	úsJ   ”7 ²A ·	AÁ AÁAÁ	B"Á$A<Á6B"Á<	BÂBÂBÂBÂB"c                óX   — 	 t        | |«      }t        |d| «      S # t        $ r | cY S w xY w)NrC   )r›   Úgetattrr‹   )rš   r‘   Úobjs      r;   Úresolve_name_to_real_class_namerŸ   ?  s:   € ð.Ü˜T ;Ó/ˆô �s˜J¨Ó-Ð-øô ò ØŠðús   ‚ ›)¨)c                óD   — | d uxr t        | «      t        j                  v S rP   )r   Ú_type_tuplesr   ©r€   s    r;   Ú	is_pep593r£   H  s"   € Ø˜ÐÒL¤¨EÓ!2´l×6LÑ6LÐ!LÐLr=   c                óh   — t        | t        j                  «      xr t        | t        t        f«       S rP   )r8   rw   r
   ri   Úbytes)rž   s    r;   Úis_non_string_iterabler¦   L  s1   € Ü�cœ?×3Ñ3Ó4ò ¼ZØŒc”5ˆ\ó>ð :ð r=   c                ó8   — t        | «      t        j                  v S rP   )r   r¡   r    r¢   s    r;   rl   rl   R  s   € Ü�eÓ¤× 4Ñ 4Ð4Ð4r=   c                ó   — t        | d«      S )NÚ__supertype__©r„   r¢   s    r;   Ú
is_newtyper«   V  s   € Ü�5˜/Ó*Ð*r=   c                ó6   — t        | d«      xr t        | d«      S )NrA   rL   rª   r¢   s    r;   rk   rk   ^  s   € Ü�5˜*Ó%ÒF¬'°%¸Ó*FÐFr=   c                óv   — t        | «      rt        | j                  «      S t        | t        j
                  «      S rP   )rk   Ú	is_pep695rL   r8   Ú_type_instancesr)   r¢   s    r;   r®   r®   b  s0   € ô
 �%ÔÜ˜×)Ñ)Ó*Ð*Ü�eœ_×:Ñ:Ó;Ð;r=   c                ód   — | j                   }t        |«      r|j                   }t        |«      rŒ|S rP   )r©   r«   )r€   Ú
super_types     r;   Úflatten_newtyper²   l  s0   € Ø×$Ñ$€JÜ
�ZÔ
 Ø×-Ñ-ˆ
ô �ZÕ
 àÐr=   c                óD  ‡‡— t        «       Šˆˆfd„Š ‰| «      }t        |t        «      rtt        «       }t        |«      }|r[|j	                  «       }t        |t        «      r|j                  |«       n&|j                  |t        u st        |«      rdn|«       |rŒ[|S |hS )zçExtracts the value from a TypeAliasType, recursively exploring unions
    and inner TypeAliasType to flatten them into a single set.

    Forward references are not evaluated, so no recursive exploration happens
    into them.
    c                óÈ   •— | ‰v r| S ‰j                  | «       t        | «      s| S | j                  }t        |«      s|S |j                  D �cg c]
  } ‰|«      ‘Œ c}S c c}w rP   )rn   r®   Ú	__value__Úis_unionrA   )Ú
inner_typeÚvalueÚtÚ_seenÚrecursive_values      €€r;   r»   z&pep695_values.<locals>.recursive_value|  sa   ø€ Ø˜Ñð ÐØ�	‰	�*ÔÜ˜Ô$ØÐØ×$Ñ$ˆÜ˜ŒØˆLØ,1¯N©NÖ; q‘ Õ"Ò;Ð;ùÒ;s   ÁAN)	rm   r8   rv   r   ÚpopleftÚextendrn   r5   r<   )r€   ÚresÚtypesÚstackr¹   rº   r»   s        @@r;   Úpep695_valuesrÁ   s  s‡   ù€ ô ‹E€Eõ<ñ ˜%Ó
 €CÜ�#”tÔÜ“ˆÜ�c“
ˆÙØ—‘“ˆAÜ˜!œTÔ"Ø—‘˜Q•à—	‘	 !¤x¡-´;¸q´>™$ÀqÔIò ð ˆàˆuˆr=   c                ó¸   ‡— ‰rt        | t        «      ryt        | t        j                  «      ry|r)t	        | «      rt        ˆfd„| j                  D «       «      S y)NTc              3  ó:   •K  — | ]  }t        |d ‰¬«      –— Œ y­w)T)Úcheck_for_plain_stringN)rh   )rc   ÚargrÄ   s     €r;   rg   zis_fwd_ref.<locals>.<genexpr>¢  s-   øè ø€ ò 
ð ô Ø�TÐ2H÷ð ñ
ùs   ƒF)r8   ri   r¯   r   rk   ÚanyrA   )r€   Úcheck_genericrÄ   s     `r;   rh   rh   ˜  sV   ø€ ñ
 ¤*¨U´CÔ"8ØÜ	�Eœ?×5Ñ5Ô	6ØÙ	œ: eÔ,Üó 
ð —~‘~ô	
ó 
ð 	
ð r=   c                 ó   — y rP   rH   r¢   s    r;   Úde_optionalize_union_typesrÉ   ¬  s   € Ø36r=   c                 ó   — y rP   rH   r¢   s    r;   rÉ   rÉ   °  s   € Ø?Br=   c                 ó   — y rP   rH   r¢   s    r;   rÉ   rÉ   ´  ó   € ð r=   c                ó  — t        | «      rt        | d«      S t        | «      rØt        | «      rÍt        j
                  rt        | j                  «      }n{t        | g«      }t        «       }|rR|j                  «       }|j                  D ]0  }t        |«      r|j                  |«       Œ |j                  |«       Œ2 |rŒR|j                  d«       |D �ch c]  }|t        usŒt        |«      rŒ|’Œ }}t        |Ž S | S c c}w )zÜGiven a type, filter out ``Union`` types that include ``NoneType``
    to not include the ``NoneType``.

    Contains extra logic to work on non-flattened unions, unions that contain
    ``None`` (seen in py38, 37)

    FN)rh   Ú#_de_optionalize_fwd_ref_union_typesr¶   Úincludes_noner   Úpy39rm   rA   r   r¼   Úappendrn   Údiscardr5   r<   Úmake_union_type)r€   r:   Ústack_of_unionsÚu_typrd   r¹   s         r;   rÉ   rÉ   º  sß   € ô �%ÔÜ2°5¸%Ó@Ð@ä	�%Œœ]¨5Ô1Ü�;Š;Ü�e—n‘nÓ%‰Cô $ U G›nˆOÜ“%ˆCÙ!Ø'×/Ñ/Ó1�Ø!ŸN™Nò &�DÜ ”~Ø'×.Ñ.¨tÕ4àŸ™ �ð	&ò "ð �K‰K˜ÔàÖJ�Q ¬(Ò!2¼;Àq½>ŠqÐJˆÐJä Ð$Ð$ð ˆùò Ks   ÃC=Ã!C=Ã-C=c                 ó   — y rP   rH   ©r€   Úreturn_has_nones     r;   rÎ   rÎ   â  s   € ð r=   c                 ó   — y rP   rH   r×   s     r;   rÎ   rÎ   è  rÌ   r=   c                ó¬  — | j                   }t        j                  d|«      }|�r^|j                  d«      j	                  d«      d   }|dk(  r|rdS t        |j                  d«      «      S |dk(  �rd	|j                  d«      v r�g }g }d
}|j                  d«      D ]r  }|d	k(  r|dz  }nT|dk(  r|dz  }nI|d
k(  rD|dk(  r?|j                  dj                  |«      j                  «       «       |j                  «        Œb|j                  |«       Œt n%t        j                  d|j                  d«      «      }|D �	cg c]  }	|	dk7  sŒ	t        |	«      ‘Œ }
}	|rt        |«      t        |
«      k7  S |
rt        |
Ž S t        S |rdS | S t        j                  d|«      }d|v }|r|S |r+dj                  d„ |D «       «      }|rt        |«      S t        S | S c c}	w )zÁreturn the non-optional type for Optional[], Union[None, ...], x|None,
    etc. without de-stringifying forward refs.

    unfortunately this seems to require lots of hardcoded heuristics

    z^(.+?)\[(.+)\]$r   r˜   éÿÿÿÿr   Té   r   ú[r   ú]ú,Ú z,\s*r7   Fz\s*\|\s*ú|c              3  ó,   K  — | ]  }|d k7  sŒ	|–— Œ y­w)r7   NrH   )rc   Úps     r;   rg   z6_de_optionalize_fwd_ref_union_types.<locals>.<genexpr>  s   è ø€ ÒB !°a¸6³kœAÑBùs   ‚
�)r9   r|   r}   ÚgroupÚsplitr   rÑ   ÚjoinÚstripÚclearÚlenrÓ   r*   )r€   rØ   rq   ÚmmÚg1rs   ÚcurrentÚignore_commaÚcharrd   ÚpartsÚpipe_tokensÚhas_noneÚanno_strs                 r;   rÎ   rÎ   î  sÈ  € ð ×&Ñ&€Jä	�‰Ð$ jÓ	1€BÚ	Ø�X‰X�a‹[×Ñ˜sÓ# BÑ'ˆØ�ÒÙ*�4ÐG´
¸2¿8¹8ÀA»;Ó0GÐGØ�7‹]Ø�b—h‘h˜q“kÑ!à&(�Ø%'�Ø �ØŸH™H Q›Kò 	)�DØ˜s’{Ø$¨Ñ)™Ø šØ$¨Ñ)™Ø%¨Ò*¨t°sª{Ø Ÿ™¨¯©°Ó(8×(>Ñ(>Ó(@ÔAØŸ™œØ Ø—N‘N 4Õ(ñ	)ô Ÿ8™8 G¨R¯X©X°a«[Ó9�Ø2:ÖM¨$¸dÀf»n”Z Õ%ÐMˆEÐMÙÜ˜8“}¬¨E«
Ñ2Ð2á27”¨Ð.ÐB¼UÐBá+�5Ð6°Ð6ä—(‘(˜;¨
Ó3€KØ˜Ð$€HÙØˆÙØ—8‘8ÑB {ÔBÓBˆÙ'/Œz˜(Ó#Ð:´UÐ:à€Lùò! Ns   Ä;
GÅGc                 ó   — t         |    S )zMake a Union type.r   )r¿   s    r;   rÓ   rÓ   $  s   € ô �‰<Ðr=   c                óš  — t        | «      rt        | d«      S t        | «      rt        d„ t	        | «      D «       «      S t        | «      rt        t	        | «      d   «      S t        | «      rt        d„ t        | «      D «       «      S t        | «      rt        | j                  «      S 	 | t        dfv xs t        | «      S # t        $ r Y yw xY w)a.  Returns if the type annotation ``type_`` allows ``None``.

    This function supports:
    * forward refs
    * unions
    * pep593 - Annotated
    * pep695 - TypeAliasType (does not support looking into
    fw reference of other pep695)
    * NewType
    * plain types like ``int``, ``None``, etc
    Tc              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrP   ©rÏ   ©rc   r¹   s     r;   rg   z includes_none.<locals>.<genexpr>9  s   è ø€ Ò=¨”= ×#Ñ=ùó   ‚r   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrP   rö   r÷   s     r;   rg   z includes_none.<locals>.<genexpr>=  s   è ø€ ÒB¨”= ×#ÑBùrø   NF)rh   rÎ   r¶   rÆ   r   r£   rÏ   r®   rÁ   r«   r©   r5   r<   Ú	TypeErrorr¢   s    r;   rÏ   rÏ   *  s»   € ô �%ÔÜ2°5¸$Ó?Ð?Ü�„ÜÑ=¬X°e«_Ô=Ó=Ð=Ü�ÔÜœX e›_¨QÑ/Ó0Ð0Ü�ÔÜÑB¬]¸5Ó-AÔBÓBÐBÜ�%ÔÜ˜U×0Ñ0Ó1Ð1ðØœ 4Ð(Ð(Ò>¬K¸Ó,>Ð>øÜò ñ ð	ús   Â'B> Â>	C
Ã	C
c                ó®   — t        | t        «      xsD t        | «      d uxs5 t        | dd «      dv xs$ t        | «      j                  d   j
                  dv S )NrD   )ÚtypingÚtyping_extensionsr   )r8   Útyper   r�   Ú__mro__rD   r¢   s    r;   Ú	is_a_typer   I  sd   € ä�5œ$Óò 	PÜ�eÓ DÐ(ò	Pä�5˜,¨Ó-Ø*ð+ò	Pô �‹;×Ñ˜qÑ!×,Ñ,Ð0OÐOðr=   c                ó   — t        | dd«      S )Nr   Ú	UnionType)Úis_origin_ofr¢   s    r;   r¶   r¶   S  s   € Ü˜˜w¨Ó4Ð4r=   c                óZ   — t        | «      }|€yt        |t        «      xr t        ||«      S )z[return True if the given type has an __origin__ that shares a base
    with the given classF)r   r8   rþ   Ú
issubclass)r€   Ú	class_objÚorigins      r;   Úis_origin_of_clsr  W  s/   € ô ˜Ó€FØ€~Øä�fœdÓ#ÒE¬
°6¸9Ó(EÐEr=   )Úmodulec               ó~   — t        | «      }|€yt        |«      |v xr! |du xs |j                  j                  |«      S )z\return True if the given type has an __origin__ with the given name
    and optional module.NF)r   Ú_get_type_namerD   Ú
startswith)r€   r	  Únamesr  s       r;   r  r  d  sJ   € ô ˜Ó€FØ€~Øä˜&Ó! UÐ*ò Ø�$ˆÒ>˜&×+Ñ+×6Ñ6°vÓ>ðr=   c                óv   — t         j                  r| j                  S t        | dd «      }|€t        | dd «      }|S )NrC   Ú_name)r   Úpy310rC   r�   )r€   Útyp_names     r;   r  r  s  s:   € Ü‡|‚|Ø�~‰~Ðä˜5 *¨dÓ3ˆØÐÜ˜u g¨tÓ4ˆHàˆr=   c                  ó$   — e Zd Zdd„Zdd„Zdd„Zy)ÚDescriptorProtoc                 ó   — y rP   rH   ©rQ   ÚinstanceÚowners      r;   Ú__get__zDescriptorProto.__get__  rS   r=   c                 ó   — y rP   rH   ©rQ   r  r¸   s      r;   Ú__set__zDescriptorProto.__set__�  rS   r=   c                 ó   — y rP   rH   ©rQ   r  s     r;   Ú
__delete__zDescriptorProto.__delete__ƒ  rS   r=   N)r  Úobjectr  r   rW   r   )r  r   r¸   r   rW   r7   ©r  r   rW   r7   )rC   rD   rE   r  r  r  rH   r=   r;   r  r  ~  s   „ Û?ã=ä4r=   r  Ú_DESCc                  ó.   — e Zd ZdZerdd„Zdd„Zdd„Zyy)	ÚDescriptorReferenceaŠ  a descriptor that refers to a descriptor.

    used for cases where we need to have an instance variable referring to an
    object that is itself a descriptor, which typically confuses typing tools
    as they don't know when they should use ``__get__`` or not when referring
    to the descriptor assignment as an instance variable. See
    sqlalchemy.orm.interfaces.PropComparator.prop

    c                 ó   — y rP   rH   r  s      r;   r  zDescriptorReference.__get__–  rS   r=   c                 ó   — y rP   rH   r  s      r;   r  zDescriptorReference.__set__˜  rS   r=   c                 ó   — y rP   rH   r  s     r;   r  zDescriptorReference.__delete__š  rS   r=   N)r  r  r  r   rW   r!  )r  r   r¸   r!  rW   r7   r   ©rC   rD   rE   rF   r   r  r  r  rH   r=   r;   r#  r#  ‰  s   „ ññ ãEãCä8ð r=   r#  Ú_DESC_co)r-   r0   c                  ó.   — e Zd ZdZerdd„Zdd„Zdd„Zyy)	ÚRODescriptorReferencez½a descriptor that refers to a descriptor.

    same as :class:`.DescriptorReference` but is read-only, so that subclasses
    can define a subtype as the generically contained element

    c                 ó   — y rP   rH   r  s      r;   r  zRODescriptorReference.__get__ª  rS   r=   c                 ó   — y rP   rH   r  s      r;   r  zRODescriptorReference.__set__¬  rS   r=   c                 ó   — y rP   rH   r  s     r;   r  z RODescriptorReference.__delete__®  rS   r=   N)r  r  r  r   rW   r(  )r  r   r¸   r   rW   r   )r  r   rW   r   r'  rH   r=   r;   r*  r*     s   „ ññ ãHãEä<ð r=   r*  Ú_FN.c                  ó.   — e Zd ZdZerdd„Zdd„Zdd„Zyy)	ÚCallableReferencez�a descriptor that refers to a callable.

    works around mypy's limitation of not allowing callables assigned
    as instance variables


    c                 ó   — y rP   rH   r  s      r;   r  zCallableReference.__get__¿  rS   r=   c                 ó   — y rP   rH   r  s      r;   r  zCallableReference.__set__Á  rS   r=   c                 ó   — y rP   rH   r  s     r;   r  zCallableReference.__delete__Ã  rS   r=   N)r  r  r  r   rW   r.  )r  r   r¸   r.  rW   r7   r   r'  rH   r=   r;   r0  r0  ´  s   „ ññ ãCãAä8ð r=   r0  c                  ó   — e Zd Zdd„Zy)Ú_TypingInstancesc                ó¾   — t        t        t        |d «      t        t        |d «      fD �ch c]  }|�|’Œ c}«      }|st	        |«      ‚|| j
                  |<   |S c c}w rP   )ro   r�   rü   rý   ÚAttributeErrorr‰   )rQ   Úkeyr¹   r¿   s       r;   Ú__getattr__z_TypingInstances.__getattr__Ç  sn   € Üô œF C¨Ó.ÜÔ-¨s°DÓ9ðöàð �=ò òó	
ˆñ Ü  Ó%Ð%Ø"ˆ�‰�cÑØˆùòs   ªAN)r8  ri   rW   ztuple[type, ...])rC   rD   rE   r9  rH   r=   r;   r5  r5  Æ  s   „ ôr=   r5  )r:   r   rW   Úbool)re   ú	Type[Any]rq   Ú_AnnotationScanTyperf   ri   r_   zMapping[str, Any]rZ   z#Optional[Callable[[str, str], str]]r[   r:  r\   zOptional[Set[Any]]rW   r;  )r€   r<  rW   r<  )rq   zGenericProtocol[_T]rs   r@   rW   rK   )
r�   ri   r‘   ri   r_   úOptional[Mapping[str, Any]]r`   zOptional[Type[Any]]rW   r   )rš   ri   r‘   ri   r_   r=  rW   r   )rš   ri   r‘   ri   rW   ri   )r€   zOptional[Any]rW   r:  )rž   r   rW   zTypeGuard[Iterable[Any]])r€   r   rW   r:  )r€   zOptional[_AnnotationScanType]rW   zTypeGuard[NewType])r€   r<  rW   zTypeGuard[GenericProtocol[Any]])r€   r<  rW   zTypeGuard[TypeAliasType])r€   r   rW   r;  )r€   r<  rW   zSet[Any])FF)r€   r<  rÇ   r:  rÄ   r:  rW   zTypeGuard[ForwardRef])r€   ri   rW   ri   )r€   r;  rW   r;  )r€   r   rØ   zLiteral[True]rW   r:  )r€   r   rØ   zLiteral[False]rW   r<  )r€   r   rØ   r:  rW   z Union[_AnnotationScanType, bool])r¿   r<  rW   r;  )r€   r   rW   zTypeGuard[ArgsTypeProtocol])r€   r   r  z'Union[Tuple[Type[Any], ...], Type[Any]]rW   r:  )r€   r   r  ri   r	  zOptional[str]rW   r:  )r€   r;  rW   ri   )fÚ
__future__r   r™   Úcollectionsr   Úcollections.abcÚabcrw   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   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r.   r/   r1   r3   r4   r  r¿   r5   rþ   r<   ri   r<  r?   rJ   rN   Ú_LiteralStarrb   r�   rp   rj   r›   rŸ   r£   r¦   rl   r«   rk   r®   r²   rÁ   rh   rÉ   rÎ   rÓ   rÏ   r   r¶   r  r  r  r  r!  r#  r(  r*  r.  r0  r5  r¡   r¯   ÚLITERAL_TYPESrH   r=   r;   ú<module>rD     s›  ðõ #ã Ý Ý )Û 	Û 
Û Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý Ý ã å àÝ8Ý<õõ 1Ý0Ý6Ý:Ý4Ý<Ý8Ý6Ý@Ý8Ý8Ý8Ý.Ý@Ý0Ý@áˆT˜Ô€Ùˆeƒn€Ù	� TÔ	*€Ù�\°Ô6€
Ùˆeƒn€Ù	� TÔ	*€à	‡<‚<ö +á�D‹z€HóIð Øˆ�Iˆs�J ¨Ð8NÐNñÐ ô
.�xô .ô�h˜r‘lô ô(3˜X c¨6 kÑ2ô 3ð �s‰|€ð ;?Ø!Ø(,ñDØ	ðDà#ðDð ðDð ð	Dð 8ðDð ðDð &ðDð óDðN&Øð&àó&ðR/Ø#ð/Ø/Nð/àó/ð ,0Ø$(ñ!Øð!àð!ð )ð	!ð
 "ð!ð 	ó!ðP ,0ñ	Ø
ðàðð )ð	ð
 	óóD.óMóó5ó+óGó<óó"ðN  Ø#(ðØðàðð !ðð ó	ð( 
Ú 6ó 
Ø 6ð 
Ú Bó 
Ø Bð 
ðØðàòó 
ðð
%Øð%àó%ðP 
ðØðØ(5ðà	òó 
ðð
 
ðØðØ(6ðàòó 
ðð
3Øð3Ø(,ð3à%ó3ólóó>ó5ð
FØð
FØBð
Fà	ó
Fð 6:ñØðØðØ%2ðà	óóô5�hô 5ñ 	�˜Ô/€ô9˜' %™.ô 9ñ( �: _ÀÔE€ô=˜G HÑ-ô =ñ" ˆe˜8 H¨S°#¨XÑ$6Ñ7Ô8€ô9˜ ™ô 9÷$ñ ñ$  Ó!€ÙØ'€Oð ×$Ñ$�ð #€Oà×$Ñ$�r=   