
    `i}                        d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	  edd          Z
 G d	 d
e          Ze j        dee         fd            Z e	d          dee
         dee
         fd            Z G d d          ZdS )    N)Hashable)	dataclassfields)TypeVar)dataclass_transformT_Union)boundc                   F    e Zd ZU dZeed<   ed             ZdefdZ	d Z
dS )	_UnionTag)_clsr   c                 V    t          |           }t          |d          rJ ||_        |S )Nr   )r   hasattrr   )tclstags      m/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/torch/_export/serde/union.pycreatez_UnionTag.create   s/    ll3'''''
    returnc                     t          |t                    sJ t          |          }|t          | j                  v s)J | d| j         dt          | j                               t          |           |k    S )Nz is not a valid tag for z. Available tags: )
isinstancestr_get_field_namesr   )selfcmpothers      r   __eq__z_UnionTag.__eq__   s    #s#####C(33333hhdihhK[\`\eKfKfhh 433 4yyE!!r   c                 :    t          t          |                     S N)hashr   r   s    r   __hash__z_UnionTag.__hash__   s    CIIr   N)__name__
__module____qualname__	__slots__r   __annotations__staticmethodr   boolr   r#    r   r   r   r      sg         I
NNN  \"T " " " "    r   r   r   c                 4    d t          |           D             S )Nc                     h | ]	}|j         
S r+   name.0fs     r   	<setcomp>z#_get_field_names.<locals>.<setcomp>%   s    (((qAF(((r   )r   r   s    r   r   r   #   s    ((F3KK((((r   F)
eq_defaultr   c                     t          | t                    sJ |  dt           d             t          dd          |           S )Nz must inheirt from .F)repreq)
issubclassr	   r   r4   s    r   _union_dataclassr;   .   sN    c6""HHs$H$Hv$H$H$HHH"*9%E***3///r   c                        e Zd ZU eed<   ed             Zd Zede	fd            Z
ed             Z fdZdedefd	Zd
 Zd Z xZS )r	   _typec           	         t          |          dk    sJ  | di i d t          |           D             |}t                              t	          t          |                                                    |           |_        |S )N   c                     i | ]
}|j         d S r    r.   r0   s     r   
<dictcomp>z!_Union.create.<locals>.<dictcomp>:   s    ::::::r   r+   )lenr   r   r   nextiterkeysr=   )r   kwargsobjs      r   r   z_Union.create7   s    6{{acFFE::fSkk:::EfEFF$$T$v{{}}*=*=%>%>DD	
r   c                 V    t          d t          |           D                       rJ d S )Nc              3   (   K   | ]}|j         d v V  dS ))typer=   r   valueNr.   r0   s     r   	<genexpr>z'_Union.__post_init__.<locals>.<genexpr>?   s>       
 
 F::
 
 
 
 
 
r   )anyr   r"   s    r   __post_init__z_Union.__post_init__>   sJ     
 
D\\
 
 
 
 
 	
 	
 
 	
 	
r   r   c                     	 | j         S # t          $ r+}t          dt          |           j         d          |d }~ww xY w)NzPlease use z&.create to instantiate the union type.)r=   AttributeErrorRuntimeErrorrJ   r$   )r   es     r   rJ   z_Union.typeD   sZ    	: 	 	 	Yd4jj1YYY 	s   	 
>&9>c                 ,    t          | | j                  S r    )getattrrJ   r"   s    r   rK   z_Union.valueM   s    tTY'''r   c                     t                                          |          }|<|t          t          |                     v r|| j        k    rt	          d| d          |S )NzField z is not set.)super__getattribute__r   rJ   rP   )r   r/   attr	__class__s      r   rW   z_Union.__getattribute__Q   sc    ww''--<D$4T$ZZ$@$@@@TTYEVEV !<$!<!<!<===r   r   c                 p    t          |t                    sdS | j        |j        k    o| j        |j        k    S )NF)r   r	   rJ   rK   )r   r   s     r   r   z_Union.__eq__W   s6    %(( 	5yEJ&D4:+DDr   c                 *    |                                  S r    )__repr__r"   s    r   __str__z_Union.__str__\   s    }}r   c                 l    t          |           j         d| j          dt          | | j                    dS )N(=))rJ   r$   rT   r"   s    r   r\   z_Union.__repr___   s8    t**%OO	OOGD$)4L4LOOOOr   )r$   r%   r&   r   r(   classmethodr   rN   propertyr   rJ   rK   rW   objectr*   r   r]   r\   __classcell__)rY   s   @r   r	   r	   4   s           [
 
 
 c    X ( ( X(    EF Et E E E E
  P P P P P P Pr   )	functoolscollections.abcr   dataclassesr   r   typingr   typing_extensionsr   r   r   r   cachesetr   rJ   r;   r	   r+   r   r   <module>rm      sM       $ $ $ $ $ $ ) ) ) ) ) ) ) )       1 1 1 1 1 1 GCx          . )SX ) ) ) ) &&&0$q' 0d1g 0 0 0 '&0
,P ,P ,P ,P ,P ,P ,P ,P ,P ,Pr   