ó
    Eñi  ã                   óÚ   • S SK r S SKJr  S SKJrJr  S SKJr  S SKJ	r	  \" SSS9r
 " S	 S
\5      r\ R                  S\\   4S j5       r\	" SS9S\\
   S\\
   4S j5       r " S S5      rg)é    N)ÚHashable)Ú	dataclassÚfields)ÚTypeVar)Údataclass_transformÚTÚ_Union)Úboundc                   óH   • \ rS rSr% Sr\\S'   \S 5       rS\	4S jr
S rSrg	)
Ú	_UnionTagé   )Ú_clsr   c                 ó`   • [        U 5      n[        US5      (       a  [        S5      eXl        U$ )Nr   ztag already has _cls attribute)r   ÚhasattrÚAssertionErrorr   )ÚtÚclsÚtags      ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_export/serde/union.pyÚcreateÚ_UnionTag.create   s.   € ä˜‹lˆÜ�3˜×ÑÜ Ð!AÓBÐBØŒØˆ
ó    Úreturnc           	      ó  • [        U[        5      (       d  [        S[        U5       35      e[        U5      nU[	        U R
                  5      ;  a0  [        U SU R
                   S[	        U R
                  5       35      e[        U 5      U:H  $ )Nzexpected str, got z is not a valid tag for z. Available tags: )Ú
isinstanceÚstrr   ÚtypeÚ_get_field_namesr   )ÚselfÚcmpÚothers      r   Ú__eq__Ú_UnionTag.__eq__   s‡   € Ü˜#œs×#Ñ#Ü Ð#5´d¸3³i°[Ð!AÓBÐBÜ�C“ˆØÔ(¨¯©Ó3Ó3Ü Ø�'Ð1°$·)±)°Ð<NÔO_Ð`d×`iÑ`iÓOjÐNkÐlóð ô �4‹y˜EÑ!Ð!r   c                 ó*   • [        [        U 5      5      $ ©N)Úhashr   ©r   s    r   Ú__hash__Ú_UnionTag.__hash__"   s   € Ü”C˜“I‹Ðr   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__r   Ú__annotations__Ústaticmethodr   Úboolr"   r(   Ú__static_attributes__r*   r   r   r   r      s/   ‡ Ø€IØ
ƒNàñó ðð"˜Tô "õr   r   r   c                 óV   • [        U 5       Vs1 s H  oR                  iM     sn$ s  snf r%   )r   Úname)r   Úfs     r   r   r   &   s    € ä" 3œKÓ(šK�q�FŒF™KÑ(Ð(ùÒ(s   Ž&F)Ú
eq_defaultr   c                 óv   • [        U [        5      (       d  [        U  S[         S35      e[        SSS9" U 5      $ )Nz must inherit from Ú.F)ÚreprÚeq)Ú
issubclassr	   r   r   )r   s    r   Ú_union_dataclassr=   1   s:   € ä�cœ6×"Ñ"Ü ˜uÐ$7¼°x¸qÐAÓBÐBÜ˜% EÒ*¨3Ó/Ð/r   c                   ó�   ^ • \ rS rSr% \\S'   \S 5       rS r\	S\
4S j5       r\	S 5       rU 4S jrS	\S\4S
 jrS rS rSrU =r$ )r	   é8   Ú_typec           
      ó2  • [        U5      S:w  a  [        S[        U5       35      eU " S0 0 [        U 5       Vs0 s H  o"R                  S _M     snEUED6n[        R                  [        [        UR                  5       5      5      U 5      Ul	        U$ s  snf )Né   zexpected exactly 1 kwarg, got r*   )
Úlenr   r   r5   r   r   ÚnextÚiterÚkeysr@   )r   Úkwargsr6   Úobjs       r   r   Ú_Union.create;   s„   € äˆv‹;˜!ÓÜ Ð#AÄ#ÀfÃ+ÀÐ!OÓPÐPÙÑFÐE¬f°S¬kÓ:ªk¨Ÿ™ š©kÑ:ÐE¸fÐEÑFˆÜ×$Ñ$¤T¬$¨v¯{©{«}Ó*=Ó%>ÀÓDˆŒ	Øˆ
ùò ;s   ¹Bc                 óZ   • [        S [        U 5       5       5      (       a  [        S5      eg )Nc              3   ó@   #   • U  H  nUR                   S ;   v •  M     g7f))r   r@   r   ÚvalueN)r5   )Ú.0r6   s     r   Ú	<genexpr>Ú'_Union.__post_init__.<locals>.<genexpr>D   s!   é € ð 
â!�ð �F‰FÐ:Ö:Ú!ùs   ‚z;field names 'type', '_type', 'create', 'value' are reserved)Úanyr   r   r'   s    r   Ú__post_init__Ú_Union.__post_init__C   s7   € Üñ 
ä˜D”\ó
÷ 
ñ 
ô !ØMóð ð	
r   r   c                 ó†   •  U R                   $ ! [         a(  n[        S[        U 5      R                   S35      UeS nAff = f)NzPlease use z&.create to instantiate the union type.)r@   ÚAttributeErrorÚRuntimeErrorr   r+   )r   Úes     r   r   Ú_Union.typeL   sI   € ð	Ø—:‘:ÐøÜó 	ÜØœd 4›j×1Ñ1Ð2Ð2XÐYóàðûð	ús   ‚ Ž
A ˜#;»A c                 ó,   • [        X R                  5      $ r%   )Úgetattrr   r'   s    r   rL   Ú_Union.valueU   s   € ä�tŸY™YÓ'Ð'r   c                 ó˜   >• [         TU ]  U5      nUc6  U[        [        U 5      5      ;   a  XR                  :w  a  [	        SU S35      eU$ )NzField z is not set.)ÚsuperÚ__getattribute__r   r   rT   )r   r5   ÚattrÚ	__class__s      €r   r]   Ú_Union.__getattribute__Y   sJ   ø€ Ü‰wÑ'¨Ó-ˆØ‰<˜DÔ$4´T¸$³ZÓ$@Ó@ÀTÏYÉYÓEVÜ  6¨$¨¨|Ð!<Ó=Ð=Øˆr   r!   c                 ó    • [        U[        5      (       d  gU R                  UR                  :H  =(       a    U R                  UR                  :H  $ )NF)r   r	   r   rL   )r   r!   s     r   r"   Ú_Union.__eq___   s7   € Ü˜%¤×(Ñ(ØØ�y‰y˜EŸJ™JÑ&×D¨4¯:©:¸¿¹Ñ+DÐDr   c                 ó"   • U R                  5       $ r%   )Ú__repr__r'   s    r   Ú__str__Ú_Union.__str__d   s   € Ø�}‰}‹Ðr   c                 óx   • [        U 5      R                   SU R                    S[        X R                   5       S3$ )NÚ(Ú=Ú))r   r+   rY   r'   s    r   rd   Ú_Union.__repr__g   s4   € Ü�t“*×%Ñ%Ð& a¨¯	©	 {°!´G¸DÇ)Á)Ó4LÐ3MÈQÐOÐOr   r*   )r+   r,   r-   r.   r   r0   Úclassmethodr   rQ   Úpropertyr   r   rL   r]   Úobjectr2   r"   re   rd   r3   Ú__classcell__)r_   s   @r   r	   r	   8   s{   ø‡ ØÓàñó ðòð ð�có ó ðð ñ(ó ð(õðE˜Fð E tô Eò
÷Pð Pr   )Ú	functoolsÚcollections.abcr   Údataclassesr   r   Útypingr   Útyping_extensionsr   r   r   r   ÚcacheÚsetr   r   r=   r	   r*   r   r   Ú<module>rw      sŒ   ðã Ý $ß )Ý Ý 1ñ ˆC�xÑ €ô�ô ð4 ‡�ð)˜S ™Xó )ó ð)ñ  Ñ&ð0˜$˜q™'ð 0 d¨1¡gó 0ó 'ð0÷0Pò 0Pr   