
    N j                         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      j/root/GenerationalWealth/GenerationalWealth/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## #5d3i[!ABBC(33 '1$))<NO_`d`i`iOjNkl  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                 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:    c6""u$7xq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EfSk:kk:Ef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!      
! FF::!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    	:: 	d4j1122XY	s    
A #;A c                 ,    [        X R                  5      $ r%   )getattrr   r'   s    r   rL   _Union.valueU   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   r   rT   )r   r5   attr	__class__s      r   r]   _Union.__getattribute__Y   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	   r   rL   )r   r!   s     r   r"   _Union.__eq___   s7    %((yyEJJ&D4::+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		{!GD))4L3MQ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 Cx  4 )SX ) ) &0$q' 0d1g 0 '00P 0Pr   