
    pi}                         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y)    N)Hashable)	dataclassfields)TypeVar)dataclass_transformT_Union)boundc                   >    e Zd ZU dZeed<   ed        ZdefdZ	d Z
y)	_UnionTag)_clsr   c                 F    t        |       }t        |d      rJ ||_        |S )Nr   )r   hasattrr   )tclstags      [/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/torch/_export/serde/union.pycreatez_UnionTag.create   s'    l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__   ss    #s###C(33 	
g-dii[8JK[\`\e\eKfJgh	
3 4yE!!r   c                 *    t        t        |             S N)hashr   r   s    r   __hash__z_UnionTag.__hash__   s    CIr   N)__name__
__module____qualname__	__slots__r   __annotations__staticmethodr   boolr   r#    r   r   r   r      s/    I
N "T "r   r   r   c                 R    t        |       D ch c]  }|j                   c}S c c}w r    )r   name)r   fs     r   r   r   #   s    "3K(qAFF(((s   $F)
eq_defaultr   c                 j    t        | t              sJ |  dt         d        t        dd      |       S )Nz must inheirt from .F)repreq)
issubclassr	   r   )r   s    r   _union_dataclassr5   .   s9    c6"Hse+>vha$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 t        |       D ci c]  }|j                  d  c}|}t        j	                  t        t        |j                                     |       |_        |S c c}w )N   r+   )	lenr   r-   r   r   nextiterkeysr7   )r   kwargsr.   objs       r   r   z_Union.create7   sq    6{aFEfSk::EfEF$$T$v{{}*=%>D	
 ;s   A<c                 >    t        d t        |       D              rJ y )Nc              3   8   K   | ]  }|j                   d v   yw))typer7   r   valueN)r-   ).0r.   s     r   	<genexpr>z'_Union.__post_init__.<locals>.<genexpr>?   s"      
 FF::
s   )anyr   r"   s    r   __post_init__z_Union.__post_init__>   s*     
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.)r7   AttributeErrorRuntimeErrorrB   r$   )r   es     r   rB   z_Union.typeD   sI    	:: 	d4j1122XY	s    	?#:?c                 .    t        | | j                        S r    )getattrrB   r"   s    r   rC   z_Union.valueM   s    tTYY''r   c                     t         |   |      }|4|t        t        |             v r|| j                  k7  rt	        d| d      |S )NzField z is not set.)super__getattribute__r   rB   rI   )r   r-   attr	__class__s      r   rP   z_Union.__getattribute__Q   sL    w'-<D$4T$Z$@@TTYYEV 6$|!<==r   r   c                     t        |t              sy| j                  |j                  k(  xr | j                  |j                  k(  S )NF)r   r	   rB   rC   )r   r   s     r   r   z_Union.__eq__W   s4    %(yyEJJ&D4::+DDr   c                 "    | j                         S r    )__repr__r"   s    r   __str__z_Union.__str__\   s    }}r   c                 z    t        |       j                   d| j                    dt        | | j                          dS )N(=))rB   r$   rM   r"   s    r   rU   z_Union.__repr___   s6    t*%%&a		{!GD$))4L3MQOOr   )r$   r%   r&   r   r(   classmethodr   rG   propertyr   rB   rC   rP   objectr*   r   rV   rU   __classcell__)rR   s   @r   r	   r	   4   su     
 c   ( (EF Et E
Pr   )	functoolscollections.abcr   dataclassesr   r   typingr   typing_extensionsr   r   r   r   cachesetr   rB   r5   r	   r+   r   r   <module>rf      s     $ )  1 Cx  . )SX ) ) &0$q' 0d1g 0 '0
,P ,Pr   