
    ȅ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                 N    [        U 5      n[        US5      (       a   eXl        U$ )Nr   )r   hasattrr   )tclstags      S/home/james-whalen/.local/lib/python3.13/site-packages/torch/_export/serde/union.pycreate_UnionTag.create   s(    l3''''
    returnc                     [        U[        5      (       d   e[        U5      nU[        U R                  5      ;   d,   U SU R                   S[        U R                  5       35       e[        U 5      U:H  $ )Nz is not a valid tag for z. Available tags: )
isinstancestr_get_field_namesr   )selfcmpothers      r   __eq___UnionTag.__eq__   sv    #s####C(33 	
g-dii[8JK[\`\e\eKfJgh	
3 4yE!!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     "3K(KqFFK(((s   &F)
eq_defaultr   c                 n    [        U [        5      (       d   U  S[         S35       e[        SSS9" U 5      $ )Nz must inheirt from .F)repreq)
issubclassr	   r   )r   s    r   _union_dataclassr;   .   s:    c6""Hse+>vha$HH"%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	   4   _typec           
         [        U5      S:X  d   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   r(   )	lenr   r3   r   r   nextiterkeysr>   )r   kwargsr4   objs       r   r   _Union.create7   ss    6{aFEfSk:kk:EfEF$$T$v{{}*=%>D	
 ;s   A?c                 H    [        S [        U 5       5       5      (       a   eg )Nc              3   @   #    U  H  nUR                   S ;   v   M     g7f))typer>   r   valueN)r3   ).0r4   s     r   	<genexpr>'_Union.__post_init__.<locals>.<genexpr>?   s!      
! FF::!s   )anyr   r%   s    r   __post_init___Union.__post_init__>   s/     
D\
 
 
 	
 
 
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RuntimeErrorrJ   r)   )r   es     r   rJ   _Union.typeD   sI    	:: 	d4j1122XY	s    
A #;A c                 ,    [        X R                  5      $ r#   )getattrrJ   r%   s    r   rK   _Union.valueM   s    tYY''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   rJ   rS   )r   r3   attr	__class__s      r   r\   _Union.__getattribute__Q   sJ    w'-<D$4T$Z$@@TYYEV 6$|!<==r   r   c                     [        U[        5      (       d  gU R                  UR                  :H  =(       a    U R                  UR                  :H  $ )NF)r   r	   rJ   rK   )r   r   s     r   r    _Union.__eq__W   s7    %((yyEJJ&D4::+DDr   c                 "    U R                  5       $ r#   )__repr__r%   s    r   __str___Union.__str__\   s    }}r   c                 x    [        U 5      R                   SU R                    S[        X R                   5       S3$ )N(=))rJ   r)   rX   r%   s    r   rc   _Union.__repr___   s4    t*%%&a		{!GD))4L3MQOOr   r(   )r)   r*   r+   r,   r   r.   classmethodr   rP   propertyr   rJ   rK   r\   objectr0   r    rd   rc   r1   __classcell__)r^   s   @r   r	   r	   4   s{     
 c   ( (EF Et E
P Pr   )	functoolscollections.abcr   dataclassesr   r   typingr   typing_extensionsr   r   r   r   cachesetr   rJ   r;   r	   r(   r   r   <module>rv      s     $ )  1 Cx  . )SX ) ) &0$q' 0d1g 0 '0
,P ,Pr   