
    sg                        U d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	 d dl
mZmZ d dlmZmZ d Zdede	e   d	ed
efdZd
efdZd
efdZd
efdZdeded
efdZdededed
efdZdededede	e   d
ef
dZeee eedd       eedd       eeddd       eed dd!       eed"d#d       eed$d#d!      d%	Zeeef   ed&<   y)'    N)partial)CallableDictList)FAKE_FILENAME_PREFIXis_optional)	ParsedDefSourceContextc                 `    t         j                  j                  t        | j                  |      S N)ospathjoinr   __name__)clsmethod_names     M/var/www/html/venv/lib/python3.12/site-packages/torch/jit/_dataclass_impls.py_get_fake_filenamer      s    77<<,cllKHH    name
body_lines	signaturereturnc           	          dj                  d |D              }d| | d| }	 t        j                  |      }t        | |      }t        |t        ||dd	      ||d
      S # t        $ r"}t	        d| d| j
                   d      |d }~ww xY w)N
c              3   &   K   | ]	  }d |   yw)  N ).0bs     r   	<genexpr>zcompose_fn.<locals>.<genexpr>   s     2!r!X2s   zdef z:
z3TorchScript failed to synthesize dataclass method 'z' for class 'zJ'. Please file a bug report at <https://github.com/pytorch/pytorch/issues>r   )sourcefilenamefile_linenoleading_whitespace_len)ctxr"   r#   r$   )	r   astparseSyntaxErrorRuntimeErrorr   r   r	   r
   )	r   r   r   r   bodydeclpy_astefake_filenames	            r   
compose_fnr0      s    992z22D$	{#dV,D4 'sD1M-QWX
     A$}UXUaUaTb cV V
 	s   A" "	B+BBc                 L   t        d t        j                  |       D              rt        d      t	        j
                  | j                        }g }g }|j                  j                         D ]y  \  }}|j                  }t        |t        j                        r=|j                  |       |j                  |j                  |j                               i|j                  |       { |j                  |      }t        j                  |       D cg c]8  }|j                  r*|j                   |vrd|j                    d|j                    : }}t#        | d      r&|j                  dd	j%                  |      z   d
z          t'        | d|xs dgt)        |            S c c}w )Nc              3   T   K   | ]   }|j                   t        j                  u " y wr   )default_factorydataclassesMISSING)r   fields     r   r!   z%synthesize__init__.<locals>.<genexpr>0   s)       	[%8%88s   &(zIDefault factory initializers are not supported in TorchScript dataclasses)
annotation)
parameterszself.z = __post_init__zself.__post_init__(, )__init__passr   )anyr4   fieldsNotImplementedErrorinspectr   r<   r8   itemsr7   
isinstanceInitVarappendreplacetypeinitr   hasattrr   r0   str)	r   r   	init_varsparamsr   paramannr6   r+   s	            r   synthesize__init__rP   -   s      '',  "W
 	
 !!#,,/I IF ++113 !ec;../T"MM%--388-<=MM% ! !!V!4I
 !'', ::%**I5 

|3uzzl+D  sO$)DIIi,@@3FGc:t'7x3y>RRs   =F!c                     t        | dd| j                   ddj                  t        j                  |       D cg c])  }|j
                  r|j                   d|j                   + c}      z   dz   gd      S c c}w )	N__repr__zreturn '(r:   z=self.z)'z(self) -> strr>   )r0   r   r   r4   r@   reprr   )r   r6   s     r   synthesize__repr__rU   Z   s    s||nA&ii "-!3!3C!8zz zzl&5 
	
 " s   .A:c                 "    t        | ddgd      S )N__hash__zUraise NotImplementedError('__hash__ is not supported for dataclasses in TorchScript')z(self) -> intr>   )r0   )r   s    r   synthesize__hash__rX   m   s%     d	

 "	 	r   conversec           	      ,    t        | |ddd| dg      S )NTFif val1 z val2: return False)allow_eqraise_on_noneinnersynthesize_comparison)r   r   rY   s      r   synthesize_equalityra   {   s+     (#678 r   opr\   c           
      6    t        | ||dd| dd| dg      S )NTr[   z val2: return Truez
elif val2 z val1: return False)r]   r^   r_   )r   r   rb   r\   s       r   synthesize_inequalityrd      s:     rd,-/0
	 	r   r]   r^   c           	         g }t        j                  |       D ]  }|j                  s|j                  d|j                   d|j                   g       |j                  t        |j                        s|n+dg|D cg c]  }d|z   	 c}d|rd| j                   dnd        |j                  d	|        t        | ||d
| j                   d      S c c}w )Nzval1 = self.zval2 = other.z)if val1 is not None and val2 is not None:r   z&elif (val1 is None) != (val2 is None):z"  raise TypeError('Cannot compare z with None')z  return Falsezreturn z(self, other: z	) -> boolr>   )
r4   r@   compareextendr   r   rH   r   rF   r0   )r   r   r\   r]   r^   r+   r6   lines           r   r`   r`      s    D##C( 
}}uzzl+

|,	
 	uzz*  < +00$$+0 9	 ! 5S\\N,O%	

0 	KK'($%T4^CLL>#K  1s   =C__eq__z!=)r   rY   __ne__z==__lt__<F)r   rb   r\   __le__T__gt__>__ge__)	r<   rR   rW   ri   rj   rk   rm   rn   rp   DATACLASS_MAGIC_METHODS)r'   r4   rB   r   	functoolsr   typingr   r   r   torch._jit_internalr   r   torch._sourcesr	   r
   r   rK   r0   rP   rU   rX   ra   boolrd   r`   rq   __annotations__r   r   r   <module>rx      sZ      	  ' ' A 3I# 49   6)Sy )SZy &
y 
3 # ) 
S 
c 
T 
i 
"37@DS	F #"")4H)4H+(sUS+(sTR+(sUS+(sTR
0 c8m, 
r   