ó
    Ñ]jõW  ã                  óP  • S SK Jr  S SKrS SKJr  S SKJr  S SKrS SK	r	S SK
r
S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S S	K
Jr  S S
K
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SK
Jr  S SKrSSKJr   S SKJr  S SKJ r   S SKJ!r!  S SKJ"r"  S SKJ#r#  S SKJ$r$  S SKJ%r%  S SKJ&r&  S S KJ'r'  S S!KJ(r(  S S"KJ)r)  S S#KJ*r*  S S$KJ+r+  S S%KJ,r,  S S&KJ-r-  S S'KJ.r.  S S(KJ/r/  S S)KJ0r0  S S*KJ1r1  \" S+\S,9r2\" S-5      r3\" S.SS/9r4\" S0SS19r5\" S25      r6\" S3SS/9r7\Rp                  (       a  S S4K9J:r:  O\;" S5      r:SoS5 jr<\\\   \=\\\/S64   r> " S7 S8\)5      r? " S9 S:\)\2   5      r@ " S; S<\)\3\74   5      rA\&S=   rBSS>SS?.               SpS@ jjrC    SqSA jrD      SrSB jrESSSC.         SsSD jjrFSSE.       StSF jjrGSuSG jrHSvSH jrISwSI jrJSxSJ jrKSySK jrLSzSL jrMS{SM jrNS|SN jrOS}SO jrP  S~       SSP jjrQ\S€SQ j5       rR\S�SR j5       rR\    SqSS j5       rR    SqST jrR\      S‚SU j5       rS\      SƒSV j5       rS      S„SW jrSS…SX jrTSxSY jrUSxSZ jrVS†S[ jrW      S‡S\ jrXSS].       SˆS^ jjrYS‰S_ jrZ " S` Sa\)5      r[\" Sb\[S,9r\ " Sc Sd\\\   5      r]\" Se\[SSf9r^ " Sg Sh\\^   5      r_\" Si\\Sj\4      S,9r` " Sk Sl\\`   5      ra " Sm Sn5      rb\b" 5       rc\(       a  \rdO\crd\cRL                  reg)Šé    )Ú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                óN   • [        U [        5      =(       a    U R                  S:H  $ )NÚNone)Ú
isinstancer   Ú__forward_arg__)Útyps    ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sqlalchemy/util/typing.pyÚis_fwd_noner<   M   s   € Ü�cœ:Ó&×H¨3×+>Ñ+>À&Ñ+HÐHó    zGenericProtocol[Any]c                  ó$   • \ rS rSr% SrS\S'   Srg)ÚArgsTypeProtocoléV   zWprotocol for types that have ``__args__``

there's no public interface for this AFAIK

úTuple[_AnnotationScanType, ...]Ú__args__© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Ú__static_attributes__rC   r=   r;   r?   r?   V   s   ‡ ñð .Ö-r=   r?   c                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)	ÚGenericProtocolé`   zPprotocol for generic types.

this since Python.typing _GenericAlias is private

rA   rB   úType[_T]Ú
__origin__rC   NrD   rC   r=   r;   rM   rM   `   s   ‡ ñð .Ó-ØÖr=   rM   c                  ó(   • \ rS rSrSS jrSS jrSrg)ÚSupportsKeysAndGetItemét   c                ó   • g ©NrC   )Úselfs    r;   ÚkeysÚSupportsKeysAndGetItem.keysu   s   €  Sr=   c                ó   • g rU   rC   )rV   Ú_SupportsKeysAndGetItem__ks     r;   Ú__getitem__Ú"SupportsKeysAndGetItem.__getitem__w   s   € ¨sr=   rC   N)ÚreturnzIterable[_KT])rZ   r.   r]   r4   )rE   rF   rG   rH   rW   r[   rK   rC   r=   r;   rR   rR   t   s   † Ü(ç2r=   rR   Ú*F©Ústr_cleanup_fnÚinclude_genericÚ_already_seenc               ó¨  ^ ^^^^^• Un[        U5      (       a  UR                  n[        U[        5      (       a  T(       a	  T" UT5      n[	        UTTT S9nT(       au  [        U5      (       ae  [        U5      (       dU  Tc
  [        5       mUT;   a  U$ TR                  U5        [        UU UUUU4S jUR                   5       5      n[        X5      $ U$ )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   >#   • U  H  n[        TUTTTTTS 9v •  M     g7f)r_   N)Úde_stringify_annotation)Ú.0Úelemrb   Úclsra   re   Úoriginating_moduler`   s     €€€€€€r;   Ú	<genexpr>Ú*de_stringify_annotation.<locals>.<genexpr>³   s6   øé € ð 
ò ,�ô $ØØØ"ØØ-Ø /Ø+öò ,ùs   ƒ)Ú
is_fwd_refr9   r8   ÚstrÚeval_expressionÚ
is_genericÚ
is_literalÚsetÚaddÚtuplerB   Ú_copy_generic_annotation_with)	rk   Ú
annotationrl   re   r`   ra   rb   Úoriginal_annotationÚelementss	   ` `````  r;   rh   rh   ~   sÏ   ý€ ð. %Ðä�*×ÑØ×/Ñ/ˆ
ä�*œc×"Ñ"ÞÙ'¨
Ð4FÓGˆJä$ØÐ*°GÀcñ
ˆ
ö
 	Ü�z×"Ñ"Ü˜:×&Ñ&àÑ Ü›EˆMà˜Ó&ð
 'Ð&à×Ñ˜jÔ)ä÷ 
ñ 
ð #×+Ò+ó
ó 
ˆô -¨ZÓBÐBàÐr=   c                ó  • [        U 5      (       aë  [        U 5      [        [        [        [
        R                  [
        R                  [
        R                  [
        R                  [
        R                  4;   a‚  [        R                  " S[        U 5      5      (       d]  [        U 5      R                  [        [!        U 5       Vs/ s H%  n[#        U[$        5      (       a  ['        U5      OUPM'     sn5      5      $ U $ s  snf )z^Correct dict['x', 'y'] into dict[ForwardRef('x'), ForwardRef('y')]
and similar for list, set

z3typing.(?:Dict|List|Set|.*Mapping|.*Sequence|.*Set))rr   r   Údictrt   ÚlistÚcollections_abcÚ
MutableSetÚMutableMappingÚMutableSequencer   ÚSequenceÚreÚmatchÚreprÚ__class_getitem__rv   r   r8   rp   r   )Útype_rj   s     r;   Úfixup_container_fwd_refsrˆ   Å   sØ   € ô 	�5×ÑÜ�uÓäÜÜÜ×&Ñ&Ü×*Ñ*Ü×+Ñ+Ü×#Ñ#Ü×$Ñ$ð	
ó

ô —’ØAÄ4ÈÃ;÷
ñ 
ô
 ˜%Ó ×2Ñ2Üô !)¨¤óâ /˜ô )3°4¼×(=Ñ(=”J˜tÔ$À4ÒGÙ /ñóó
ð 	
ð €Lùòs   Ã,C>c                ód   • [        U S5      (       a  U R                  U5      $ U R                  U   $ )NÚ	copy_with)ÚhasattrrŠ   rP   )rx   rz   s     r;   rw   rw   î   s5   € ô ˆz˜;×'Ñ'à×#Ñ# HÓ-Ð-ð ×$Ñ$ XÑ.Ð.r=   rd   c               ó�  •  [         R                  U   R                  n UbP  [        UR                  5      nUR                  UR                  U5        UR                  U5        [        XU5      nU$ [        XU5      n U$ ! [         a  n[	        SU SU  35      UeS nAff = f! [         a  n[	        SU < 35      UeS nAff = f)NúModule z9 isn't present in sys.modules; can't evaluate expression z"Could not de-stringify annotation )ÚsysÚmodulesÚ__dict__ÚKeyErrorÚ	NameErrorr|   Ú
setdefaultrE   ÚupdateÚevalÚ	Exception)	Ú
expressionÚmodule_namere   rf   Úbase_globalsÚkeÚcls_namespacerx   Úerrs	            r;   rq   rq   ù   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Â0C Ã C©re   c               óJ  • SU ;   a
  [        XUS9$  [        R                  U   R                  n X0   $ ! [         a  n[        SU SU  35      UeS nAff = f! [         a@  n [        R                  U    s S nA$ ! [         a     Of = f[        SU  SU 35      UeS nAff = f)NÚ.r�   r�   z2 isn't present in sys.modules; can't resolve name zCould not locate name z in module )rq   rŽ   r�   r�   r‘   r’   Úbuiltins)Únamer˜   re   r™   rš   s        r;   Úeval_name_onlyr¢     sÔ   € ð ˆdƒ{Ü˜t¸'ÑBÐBðÜ'*§{¡{°;Ñ'?×'HÑ'HˆðØÑ!Ð!øô ó ÜØ�k�]ð #Ø ˜6ð#ó
ð ð	ûðûô ó 	ð	Ü×$Ñ$ TÑ*Õ*øÜó 	Ùð	úô Ø$ T F¨+°k°]ÐCó
àð	ûð	úsI   ’4 °A ´
A¾AÁAÁ
B"Á#A;Á5B"Á;
BÂBÂBÂBÂB"c                óX   •  [        X5      n[        USU 5      $ ! [         a    U s $ f = f)NrE   )r¢   Úgetattrr’   )r¡   r˜   Úobjs      r;   Úresolve_name_to_real_class_namer¦   ?  s8   € ð.Ü˜TÓ/ˆô �s˜J¨Ó-Ð-øô ó ØŠðús   ‚ š)¨)c                óP   • U S L=(       a    [        U 5      [        R                  ;   $ rU   )r   Ú_type_tuplesr   ©r‡   s    r;   Ú	is_pep593rª   H  s"   € Ø˜Ð×L¤¨EÓ!2´l×6LÑ6LÑ!LÐLr=   c                óz   • [        U [        R                  5      =(       a    [        U [        [        45      (       + $ rU   )r8   r~   r
   rp   Úbytes)r¥   s    r;   Úis_non_string_iterabler­   L  s1   € Ü�cœ?×3Ñ3Ó4÷ ¼ZØŒc”5ˆ\ó>ô :ð r=   c                ó:   • [        U 5      [        R                  ;   $ rU   )r   r¨   r    r©   s    r;   rs   rs   R  s   € Ü�eÓ¤× 4Ñ 4Ñ4Ð4r=   c                ó   • [        U S5      $ )NÚ__supertype__©r‹   r©   s    r;   Ú
is_newtyper²   V  s   € Ü�5˜/Ó*Ð*r=   c                ó@   • [        U S5      =(       a    [        U S5      $ )NrB   rP   r±   r©   s    r;   rr   rr   ^  s   € Ü�5˜*Ó%×F¬'°%¸Ó*FÐFr=   c                ó€   • [        U 5      (       a  [        U R                  5      $ [        U [        R
                  5      $ rU   )rr   Ú	is_pep695rP   r8   Ú_type_instancesr)   r©   s    r;   rµ   rµ   b  s3   € ô
 �%×ÑÜ˜×)Ñ)Ó*Ð*Ü�eœ_×:Ñ:Ó;Ð;r=   c                óz   • U R                   n[        U5      (       a  UR                   n[        U5      (       a  M  U$ rU   )r°   r²   )r‡   Ú
super_types     r;   Úflatten_newtyper¹   l  s6   € Ø×$Ñ$€JÜ
�Z×
 Ñ
 Ø×-Ñ-ˆ
ô �Z×
 Ó
 àÐr=   c                ó|  ^^• [        5       mUU4S jmT" U 5      n[        U[        5      (       aŠ  [        5       n[        U5      nU(       al  UR	                  5       n[        U[        5      (       a  UR                  U5        O,UR                  U[        L d  [        U5      (       a  SOU5        U(       a  Ml  U$ U1$ )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                óæ   >• U T;   a  U $ TR                  U 5        [        U 5      (       d  U $ U R                  n[        U5      (       d  U$ UR                   Vs/ s H  nT" U5      PM     sn$ s  snf rU   )ru   rµ   Ú	__value__Úis_unionrB   )Ú
inner_typeÚvalueÚtÚ_seenÚrecursive_values      €€r;   rÂ   Ú&pep695_values.<locals>.recursive_value|  sj   ø€ Ø˜Óð ÐØ�	‰	�*ÔÜ˜×$Ñ$ØÐØ×$Ñ$ˆÜ˜�‰ØˆLØ,1¯NªNÓ;ªN q‘ Ö"©NÑ;Ð;ùÒ;s   ÁA.N)	rt   r8   r}   r   ÚpopleftÚextendru   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÷ ˆeð ˆàˆuˆr=   c                óì   ^• T(       a  [        U [        5      (       a  g[        U [        R                  5      (       a  gU(       a/  [	        U 5      (       a  [        U4S jU R                   5       5      $ g)NTc              3  ó:   >#   • U  H  n[        US TS9v •  M     g7f)T)Úcheck_for_plain_stringN)ro   )ri   ÚargrÌ   s     €r;   rm   Úis_fwd_ref.<locals>.<genexpr>¢  s)   øé € ð 
ò &�ô Ø�TÐ2Höò &ùs   ƒF)r8   rp   r¶   r   rr   ÚanyrB   )r‡   Úcheck_genericrÌ   s     `r;   ro   ro   ˜  s_   ø€ ö
 ¤*¨U´C×"8Ñ"8ØÜ	�Eœ?×5Ñ5×	6Ñ	6ØÞ	œ: e×,Ñ,Üô 
ð —~’~ó	
ó 
ð 	
ð r=   c                ó   • g rU   rC   r©   s    r;   Úde_optionalize_union_typesrÒ   ¬  s   € Ø36r=   c                ó   • g rU   rC   r©   s    r;   rÒ   rÒ   °  s   € Ø?Br=   c                ó   • g rU   rC   r©   s    r;   rÒ   rÒ   ´  ó   € ð r=   c                óf  • [        U 5      (       a  [        U S5      $ [        U 5      (       aÿ  [        U 5      (       aï  [        R
                  (       a  [        U R                  5      nOŽ[        U /5      n[        5       nU(       a`  UR                  5       nUR                   H7  n[        U5      (       a  UR                  U5        M&  UR                  U5        M9     U(       a  M`  UR                  S5        U Vs1 s H!  oU[        Ld  M  [        U5      (       a  M  UiM#     nn[        U6 $ U $ s  snf )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)ro   Ú#_de_optionalize_fwd_ref_union_typesr½   Úincludes_noner   Úpy39rt   rB   r   rÄ   Úappendru   Údiscardr5   r<   Úmake_union_type)r‡   r:   Ústack_of_unionsÚu_typrj   rÀ   s         r;   rÒ   rÒ   º  sç   € ô �%×ÑÜ2°5¸%Ó@Ð@ä	�%�‰œ]¨5×1Ñ1Ü�;�;Ü�e—n‘nÓ%‰Cô $ U G›nˆOÜ“%ˆCÞ!Ø'×/Ñ/Ó1�Ø!ŸNœN�DÜ —~‘~Ø'×.Ñ.¨tÖ4àŸ™ žñ	 +÷ "�/ð �K‰K˜ÔáÓJš#�Q¬(Ð!2‹q¼;Àq¿>�q™#ˆÐJä Ð$Ð$ð ˆùò Ks   Ã:D.Ä
D.ÄD.c                ó   • g rU   rC   ©r‡   Úreturn_has_nones     r;   r×   r×   â  s   € ð r=   c                ó   • g rU   rC   rà   s     r;   r×   r×   è  rÕ   r=   c                ó"  • U R                   n[        R                  " SU5      nU(       Ga‚  UR                  S5      R	                  S5      S   nUS:X  a#  U(       a  S$ [        UR                  S5      5      $ US:X  Ga$  S	UR                  S5      ;   a”  / n/ nS
nUR                  S5       Hx  nUS	:X  a  US-  nOXUS:X  a  US-  nOLUS
:X  aF  US:X  a@  UR                  SR                  U5      R                  5       5        UR                  5         Mg  UR                  U5        Mz     O&[        R                  " SUR                  S5      5      nU V	s/ s H  o™S:w  d  M
  [        U	5      PM     n
n	U(       a  [        U5      [        U
5      :g  $ U
(       a  [        U
6 $ [        $ U(       a  S$ U $ [        R                  " SU5      nSU;   nU(       a  U$ U(       a0  SR                  S U 5       5      nU(       a  [        U5      $ [        $ U $ s  sn	f )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  ó4   #   • U  H  oS :w  d  M
  Uv •  M     g7f)r7   NrC   )ri   Úps     r;   rm   Ú6_de_optionalize_fwd_ref_union_types.<locals>.<genexpr>  s   é € ÐB¢{ !¸6±kŸA™A¢{ùs   ‚	�	)r9   rƒ   r„   ÚgroupÚsplitr   rÚ   ÚjoinÚstripÚclearÚlenrÜ   r*   )r‡   rá   rx   ÚmmÚg1rz   ÚcurrentÚignore_commaÚcharrj   Ú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²(¨$Àf¹nÓ%”Z Ö%±(ˆ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   Å	HÅHc                 ó   • [         U    $ )zMake a Union type.r   )rÇ   s    r;   rÜ   rÜ   $  s   € ô �‰<Ðr=   c                óÚ  • [        U 5      (       a  [        U S5      $ [        U 5      (       a  [        S [	        U 5       5       5      $ [        U 5      (       a  [        [	        U 5      S   5      $ [        U 5      (       a  [        S [        U 5       5       5      $ [        U 5      (       a  [        U R                  5      $  U [        S4;   =(       d    [        U 5      $ ! [         a     gf = f)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  ó8   #   • U  H  n[        U5      v •  M     g 7frU   ©rØ   ©ri   rÀ   s     r;   rm   Ú includes_none.<locals>.<genexpr>9  s   é € Ð=ª_¨”= ×#Ð#ª_ùó   ‚r   c              3  ó8   #   • U  H  n[        U5      v •  M     g 7frU   r   r  s     r;   rm   r  =  s   é € ÐBÒ-A¨”= ×#Ð#Ò-Aùr  NF)ro   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   Ã C Ã
C*Ã)C*c                óÐ   • [        U [        5      =(       dP    [        U 5      S L=(       d<    [        U SS 5      S;   =(       d%    [        U 5      R                  S   R
                  S;   $ )NrF   )ÚtypingÚtyping_extensionsr   )r8   Útyper   r¤   Ú__mro__rF   r©   s    r;   Ú	is_a_typer  I  sd   € ä�5œ$Ó÷ 	PÜ�eÓ DÐ(÷	Pä�5˜,¨Ó-Ø*ñ+÷	Pô �‹;×Ñ˜qÑ!×,Ñ,Ð0OÑOðr=   c                ó   • [        U SS5      $ )Nr   Ú	UnionType)Úis_origin_ofr©   s    r;   r½   r½   S  s   € Ü˜˜w¨Ó4Ð4r=   c                ód   • [        U 5      nUc  g[        U[        5      =(       a    [        X!5      $ )zWreturn 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Ó(EÐEr=   )Úmodulec               ó–   • [        U 5      nUc  g[        U5      U;   =(       a&    USL =(       d    UR                  R                  U5      $ )zXreturn True if the given type has an __origin__ with the given name
and optional module.NF)r   Ú_get_type_namerF   Ú
startswith)r‡   r  Únamesr  s       r;   r  r  d  sJ   € ô ˜Ó€FØ�~Øä˜&Ó! UÑ*÷ Ø�$ˆ×>˜&×+Ñ+×6Ñ6°vÓ>ðr=   c                ó‚   • [         R                  (       a  U R                  $ [        U SS 5      nUc  [        U SS 5      nU$ )NrE   Ú_name)r   Úpy310rE   r¤   )r‡   Útyp_names     r;   r  r  s  s:   € Ü‡|‡|Ø�~‰~Ðä˜5 *¨dÓ3ˆØÑÜ˜u g¨tÓ4ˆHàˆr=   c                  ó2   • \ rS rSrSS jrSS jrS	S jrSrg)
ÚDescriptorProtoi~  c                ó   • g rU   rC   ©rV   ÚinstanceÚowners      r;   Ú__get__ÚDescriptorProto.__get__  s   € ¸Cr=   c                ó   • g rU   rC   ©rV   r!  r¿   s      r;   Ú__set__ÚDescriptorProto.__set__�  s   € ¸#r=   c                ó   • g rU   rC   ©rV   r!  s     r;   Ú
__delete__ÚDescriptorProto.__delete__ƒ  s   € °r=   rC   N)r!  Úobjectr"  r   r]   r   )r!  r   r¿   r   r]   r7   ©r!  r   r]   r7   )rE   rF   rG   rH   r#  r'  r+  rK   rC   r=   r;   r  r  ~  s   † Ü?ä=ç4r=   r  Ú_DESCc                  óJ   • \ rS rSrSr\(       a  SS jrS	S jrS
S jrSr	gSr	g)ÚDescriptorReferencei‰  ar  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                ó   • g rU   rC   r   s      r;   r#  ÚDescriptorReference.__get__–  ó   € À#r=   c                ó   • g rU   rC   r&  s      r;   r'  ÚDescriptorReference.__set__˜  ó   € Àr=   c                ó   • g rU   rC   r*  s     r;   r+  ÚDescriptorReference.__delete__š  ó   € °Sr=   rC   N)r!  r-  r"  r   r]   r/  )r!  r   r¿   r/  r]   r7   r.  ©
rE   rF   rG   rH   rI   r   r#  r'  r+  rK   rC   r=   r;   r1  r1  ‰  s   † ñö äEäCç8ò r=   r1  Ú_DESC_co)r-   r0   c                  óJ   • \ rS rSrSr\(       a  SS jrS	S jrS
S jrSr	gSr	g)ÚRODescriptorReferencei   z±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                ó   • g rU   rC   r   s      r;   r#  ÚRODescriptorReference.__get__ª  s   € ÀSr=   c                ó   • g rU   rC   r&  s      r;   r'  ÚRODescriptorReference.__set__¬  r4  r=   c                ó   • g rU   rC   r*  s     r;   r+  Ú RODescriptorReference.__delete__®  s   € ¸r=   rC   N)r!  r-  r"  r   r]   r<  )r!  r   r¿   r   r]   r   )r!  r   r]   r   r;  rC   r=   r;   r>  r>     s   † ñö äHäEç<ò r=   r>  Ú_FN.c                  óJ   • \ rS rSrSr\(       a  SS jrS	S jrS
S jrSr	gSr	g)ÚCallableReferencei´  zƒa descriptor that refers to a callable.

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


c                ó   • g rU   rC   r   s      r;   r#  ÚCallableReference.__get__¿  r7  r=   c                ó   • g rU   rC   r&  s      r;   r'  ÚCallableReference.__set__Á  s   € ¸cr=   c                ó   • g rU   rC   r*  s     r;   r+  ÚCallableReference.__delete__Ã  r:  r=   rC   N)r!  r-  r"  r   r]   rE  )r!  r   r¿   rE  r]   r7   r.  r;  rC   r=   r;   rG  rG  ´  s   † ñö äCäAç8ò r=   rG  c                  ó   • \ rS rSrSS jrSrg)Ú_TypingInstancesiÆ  c                óÒ   • [        [        [        US 5      [        [        US 5      4 Vs1 s H
  nUc  M  UiM     sn5      nU(       d  [	        U5      eX0R
                  U'   U$ s  snf rU   )rv   r¤   r  r  ÚAttributeErrorr�   )rV   ÚkeyrÀ   rÇ   s       r;   Ú__getattr__Ú_TypingInstances.__getattr__Ç  ss   € Üô œF C¨Ó.ÜÔ-¨s°DÓ9ñóò�Að ÷ ññó	
ˆö Ü  Ó%Ð%Ø"�‰�cÑØˆùòs
   ªA$µA$rC   N)rR  rp   r]   ztuple[type, ...])rE   rF   rG   rH   rS  rK   rC   r=   r;   rO  rO  Æ  s   † ÷r=   rO  )r:   r   r]   Úbool)rk   ú	Type[Any]rx   Ú_AnnotationScanTyperl   rp   re   zMapping[str, Any]r`   z#Optional[Callable[[str, str], str]]ra   rU  rb   zOptional[Set[Any]]r]   rV  )r‡   rW  r]   rW  )rx   zGenericProtocol[_T]rz   rA   r]   rO   )
r—   rp   r˜   rp   re   úOptional[Mapping[str, Any]]rf   zOptional[Type[Any]]r]   r   )r¡   rp   r˜   rp   re   rX  r]   r   )r¡   rp   r˜   rp   r]   rp   )r‡   zOptional[Any]r]   rU  )r¥   r   r]   zTypeGuard[Iterable[Any]])r‡   r   r]   rU  )r‡   zOptional[_AnnotationScanType]r]   zTypeGuard[NewType])r‡   rW  r]   zTypeGuard[GenericProtocol[Any]])r‡   rW  r]   zTypeGuard[TypeAliasType])r‡   r   r]   rV  )r‡   rW  r]   zSet[Any])FF)r‡   rW  rÐ   rU  rÌ   rU  r]   zTypeGuard[ForwardRef])r‡   rp   r]   rp   )r‡   rV  r]   rV  )r‡   r   rá   zLiteral[True]r]   rU  )r‡   r   rá   zLiteral[False]r]   rW  )r‡   r   rá   rU  r]   z Union[_AnnotationScanType, bool])rÇ   rW  r]   rV  )r‡   r   r]   zTypeGuard[ArgsTypeProtocol])r‡   r   r  z'Union[Tuple[Type[Any], ...], Type[Any]]r]   rU  )r‡   r   r  rp   r  zOptional[str]r]   rU  )r‡   rV  r]   rp   )fÚ
__future__r   r    Úcollectionsr   Úcollections.abcÚabcr~   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<   rp   rW  r?   rM   rR   Ú_LiteralStarrh   rˆ   rw   rq   r¢   r¦   rª   r­   rs   r²   rr   rµ   r¹   rÉ   ro   rÒ   r×   rÜ   rØ   r  r½   r  r  r  r  r/  r1  r<  r>  rE  rG  rO  r¨   r¶   ÚLITERAL_TYPESrC   r=   r;   Ú<module>r_     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=   