Ë
    ijõ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    ú_/var/www/html/sergio/sergio-backend/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   s   €  Sr=   c                 ó   — y rP   rH   )rQ   Ú_SupportsKeysAndGetItem__ks     r;   Ú__getitem__z"SupportsKeysAndGetItem.__getitem__w   s   € ¨sr=   N)ÚreturnzIterable[_KT])rT   r.   rV   r4   )rC   rD   rE   rR   rU   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)rX   N)Úde_stringify_annotation)Ú.0Úelemr[   ÚclsrZ   r^   Úoriginating_modulerY   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)	rd   Ú
annotationre   r^   rY   rZ   r[   Úoriginal_annotationÚelementss	   ` `````  r;   ra   ra   ~   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))rj   r   Údictrl   ÚlistÚcollections_abcÚ
MutableSetÚMutableMappingÚMutableSequencer   ÚSequenceÚreÚmatchÚreprÚ__class_getitem__rn   r   r8   rh   r   )Útype_rc   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   )rp   rr   s     r;   ro   ro   î   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Ú	NameErrorrt   Ú
setdefaultrC   ÚupdateÚevalÚ	Exception)	Ú
expressionÚmodule_namer^   r_   Úbase_globalsÚkeÚcls_namespacerp   Úerrs	            r;   ri   ri   ù   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 )ri   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   rv   r
   rh   Ú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;   rk   rk   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;   rj   rj   ^  s   € Ü�5˜*Ó%ÒF¬'°%¸Ó*FÐFr=   c                óv   — t        | «      rt        | j                  «      S t        | t        j
                  «      S rP   )rj   Ú	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   )rm   r­   Ú	__value__Úis_unionrA   )Ú
inner_typeÚvalueÚtÚ_seenÚrecursive_values      €€r;   rº   z&pep695_values.<locals>.recursive_value|  se   ø€ Ø˜Ñð ÐØ�	‰	�*ÔÜ˜Ô$ØÐØ×$Ñ$ˆÜ˜ŒØˆLØ,1¯NªNÓ;©N q‘ Õ"¨NÑ;Ð;ùÒ;s   ÁAN)	rl   r8   ru   r   ÚpopleftÚextendrm   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)rg   )rb   ÚargrÃ   s     €r;   rf   zis_fwd_ref.<locals>.<genexpr>¢  s/   øè ø€ ð 
ñ &�ô Ø�TÐ2H÷ð ñ &ùs   ƒF)r8   rh   r®   r   rj   ÚanyrA   )r   Úcheck_genericrÃ   s     `r;   rg   rg   ˜  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)rg   Ú#_de_optionalize_fwd_ref_union_typesrµ   Úincludes_noner   Úpy39rl   rA   r   r»   Úappendrm   Údiscardr5   r<   Úmake_union_type)r   r:   Ústack_of_unionsÚu_typrc   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ä Ð$Ð$ð ˆùò 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   )rb   Úps     r;   rf   z6_de_optionalize_fwd_ref_union_types.<locals>.<genexpr>  s   è ø€ ÐB¡{ !°a¸6³kœA¡{ùs   ‚
�)r9   r{   r|   ÚgroupÚsplitr   rÐ   ÚjoinÚstripÚclearÚlenrÒ   r*   )r   r×   rp   ÚmmÚg1rr   ÚcurrentÚignore_commaÚcharrc   Ú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 Õ%°(ˆ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Î   ©rb   r¸   s     r;   rf   z includes_none.<locals>.<genexpr>9  s   è ø€ Ð=©_¨”= ×#©_ùó   ‚r   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrP   rõ   rö   s     r;   rf   z includes_none.<locals>.<genexpr>=  s   è ø€ ÐBÑ-A¨”= ×#Ñ-Aùr÷   NF)rg   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__  s   € ¸Cr=   c                 ó   — y rP   rH   ©rQ   r  r·   s      r;   Ú__set__zDescriptorProto.__set__�  s   € ¸#r=   c                 ó   — y rP   rH   ©rQ   r  s     r;   Ú
__delete__zDescriptorProto.__delete__ƒ  s   € °r=   N)r  Úobjectr  r   rV   r   )r  r   r·   r   rV   r7   ©r  r   rV   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__–  ó   € À#r=   c                 ó   — y rP   rH   r  s      r;   r  zDescriptorReference.__set__˜  ó   € Àr=   c                 ó   — y rP   rH   r  s     r;   r  zDescriptorReference.__delete__š  ó   € °Sr=   N)r  r  r  r   rV   r   )r  r   r·   r   rV   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__ª  s   € ÀSr=   c                 ó   — y rP   rH   r  s      r;   r  zRODescriptorReference.__set__¬  r$  r=   c                 ó   — y rP   rH   r  s     r;   r  z RODescriptorReference.__delete__®  s   € ¸r=   N)r  r  r  r   rV   r*  )r  r   r·   r   rV   r   )r  r   rV   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__¿  r&  r=   c                 ó   — y rP   rH   r  s      r;   r  zCallableReference.__set__Á  s   € ¸cr=   c                 ó   — y rP   rH   r  s     r;   r  zCallableReference.__delete__Ã  r(  r=   N)r  r  r  r   rV   r0  )r  r   r·   r0  rV   r7   r  r)  rH   r=   r;   r2  r2  ´  s   „ ññ ãCãAä8ð r=   r2  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   )rn   rœ   rû   rü   ÚAttributeErrorrˆ   )rQ   Úkeyr¸   r¾   s       r;   Ú__getattr__z_TypingInstances.__getattr__Ç  sw   € Üô œF C¨Ó.ÜÔ-¨s°DÓ9ñóñ�Að �=ò ðñó	
ˆñ Ü  Ó%Ð%Ø"ˆ�‰�cÑØˆùòs   ªAN)r:  rh   rV   ztuple[type, ...])rC   rD   rE   r;  rH   r=   r;   r7  r7  Æ  s   „ ôr=   r7  )r:   r   rV   Úbool)rd   ú	Type[Any]rp   Ú_AnnotationScanTypere   rh   r^   zMapping[str, Any]rY   z#Optional[Callable[[str, str], str]]rZ   r<  r[   zOptional[Set[Any]]rV   r=  )r   r>  rV   r>  )rp   zGenericProtocol[_T]rr   r@   rV   rK   )
r�   rh   r�   rh   r^   úOptional[Mapping[str, Any]]r_   zOptional[Type[Any]]rV   r   )r™   rh   r�   rh   r^   r?  rV   r   )r™   rh   r�   rh   rV   rh   )r   zOptional[Any]rV   r<  )r�   r   rV   zTypeGuard[Iterable[Any]])r   r   rV   r<  )r   zOptional[_AnnotationScanType]rV   zTypeGuard[NewType])r   r>  rV   zTypeGuard[GenericProtocol[Any]])r   r>  rV   zTypeGuard[TypeAliasType])r   r   rV   r=  )r   r>  rV   zSet[Any])FF)r   r>  rÆ   r<  rÃ   r<  rV   zTypeGuard[ForwardRef])r   rh   rV   rh   )r   r=  rV   r=  )r   r   r×   zLiteral[True]rV   r<  )r   r   r×   zLiteral[False]rV   r>  )r   r   r×   r<  rV   z Union[_AnnotationScanType, bool])r¾   r>  rV   r=  )r   r   rV   zTypeGuard[ArgsTypeProtocol])r   r   r  z'Union[Tuple[Type[Any], ...], Type[Any]]rV   r<  )r   r   r  rh   r  zOptional[str]rV   r<  )r   r=  rV   rh   )fÚ
__future__r   r˜   Úcollectionsr   Úcollections.abcÚabcrv   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<   rh   r>  r?   rJ   rN   Ú_LiteralStarra   r€   ro   ri   rš   rž   r¢   r¥   rk   rª   rj   r­   r±   rÀ   rg   rÈ   rÍ   rÒ   rÎ   rÿ   rµ   r  r  r
  r  r   r"  r*  r,  r0  r2  r7  r    r®   ÚLITERAL_TYPESrH   r=   r;   Ú<module>rF     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=   