Ë
    ùÿæiã  ã                  óÌ   — d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZmZm Z  dd„Z!dd„Z"dd„Z#dd	„Z$dd
„Z%dd„Z&y)é    )Úannotations)Úassert_never)Úcpp)ÚArgNameÚArrayRefCTypeÚ	BaseCTypeÚBindingÚConstRefCTypeÚdimnameListTÚintArrayRefTÚiOptTensorListRefTÚiTensorListRefTÚ
NamedCTypeÚOptionalCTypeÚoptionalIntArrayRefTÚoptionalScalarRefTÚoptionalTensorRefTÚscalarTÚtensorT)	ÚArgumentÚBaseTyÚBaseTypeÚListTypeÚNativeFunctionsGroupÚOptionalTypeÚSelfArgumentÚTensorOptionsArgumentsÚTypec               óL  — t        j                  | d||¬«      }|�|S t        | t        «      rŒ| j                  t
        j                  k(  r"t        |t        t        t        «      «      «      S | j                  t
        j                  k(  r"t        |t        t        t        «      «      «      S t        d| › �«      ‚t        | t        «      �r
| j                  t        t
        j                  «      k(  rt        |t        t         «      «      S | j                  t        t
        j                  «      k(  rt        |t        t"        «      «      S t        | j                  t$        «      r;t'        | j                  j                  «      dk(  rt        |t        t(        «      «      S t+        | j                  ||¬«      }t        |t-        |j.                  «      «      S t        | t$        «      �r)| j                  t        t
        j                  «      k(  r"t        |t        t        t0        «      «      «      S | j                  t        t        t
        j                  «      «      k(  rt        |t        t2        «      «      S t'        | j                  «      dk(  rt        |t        t4        «      «      S t'        | j                  «      dk(  rt        |t        t6        «      «      S t+        | j                  ||¬«      }t        |t9        |j.                  «      «      S t        dt;        | «      › �«      ‚)NF)ÚsymintÚbindsÚmutablez&base type should have been value type Úint©r"   r!   ÚDimnamezunrecognized type )r   Úvaluetype_typeÚ
isinstancer   Únamer   ÚTensorr   r
   r   r   ÚScalarr   ÚAssertionErrorr   Úelemr   r   r   Ústrr   Úargumenttype_typer   Útyper   r   r   r   r   Úrepr)Útr"   r!   Úrr,   s        úl/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/torchgen/api/structured.pyr.   r.   -   s.  € ô 	×Ñ˜1 U°%ÀÔI€AØ€}Øˆä�!”XÔØ�6‰6”V—]‘]Ò"Ü˜e¤]´9¼WÓ3EÓ%FÓGÐGØ�V‰V”v—}‘}Ò$Ü˜e¤]´9¼WÓ3EÓ%FÓGÐGä Ð#IÈ!ÈÐ!MÓNÐNÜ	�A”|Õ	$Ø�6‰6”XœfŸm™mÓ,Ò,Ü˜e¤YÔ/AÓ%BÓCÐCØ�V‰V”x¤§¡Ó.Ò.Ü˜e¤YÔ/AÓ%BÓCÐCÜ˜Ÿ™¤Ô)¬c°!·&±&·+±+Ó.>À%Ò.GÜ˜e¤YÔ/CÓ%DÓEÐEÜ  §¡°ÀÔFˆÜ˜%¤¨t¯y©yÓ!9Ó:Ð:Ü	�A”xÕ	 Ø�6‰6”XœfŸm™mÓ,Ò,Ü˜e¤]´9¼_Ó3MÓ%NÓOÐOØ�V‰V”|¤H¬V¯]©]Ó$;Ó<Ò<Ü˜e¤YÔ/AÓ%BÓCÐCô �—‘‹[˜EÒ!Ü˜e¤Y¬|Ó%<Ó=Ð=Ü�—‘‹[˜IÒ%Ü˜e¤Y¬|Ó%<Ó=Ð=Ü  §¡°ÀÔFˆÜ˜%¤¨t¯y©yÓ!9Ó:Ð:äÐ1´$°q³'°Ð;Ó<Ð<ó    c               óF   — t        | j                  | j                  |¬«      S )Nr$   )r.   r/   Úis_write)Úar!   s     r3   Úargument_typer8   Z   s   € Ü˜QŸV™V¨Q¯Z©Z¸uÔEÐEr4   c                ó  — t        | t        «      r/t        t        | | j                  ¬«      | j                  d | ¬«      gS t        | t
        «      rt        | j                  «      S t        | t        «      rt        d«      ‚t        | «       y )N)r!   )Únctyper(   ÚdefaultÚargumentz2structured kernels don't support TensorOptions yet)
r'   r   r	   r8   r(   r   r<   r   r+   r   )r7   s    r3   r<   r<   e   sr   € Ü�!”XÔäÜ$ Q¨a¯f©fÔ5Ø—V‘VØØô	ð
ð 	
ô 
�A”|Ô	$Ü˜Ÿ
™
Ó#Ð#Ü	�AÔ-Ô	.ÜÐQÓRÐRä�Q�r4   c                ó^  — g }| j                   j                  rüg }| j                   j                  j                  j                  D ]Œ  }t        |t        «      ri|j                  | j                   j                  j                  v r=|j                  | j                   j                  j                  |j                     «       Œ||j                  |«       ŒŽ |j                  |«       |j                  | j                   j                  j                  «       n9|j                  | j                   j                  j                  j                  «       |j                  | j                   j                  j                  j                   «       |D ��cg c]  }t        |«      D ]  }|‘Œ Œ c}}S c c}}w ©N)ÚoutÚprecomputedÚfuncÚ	argumentsÚnon_outr'   r   r(   ÚreplaceÚextendÚappendÚaddr<   )ÚgÚargsÚnon_out_args_replacedr7   Úargr2   s         r3   Úimpl_argumentsrL   w   s-  € ØCE€Dà‡u�u×Òð ð 	ð —‘—‘×%Ñ%×-Ô-ˆAÜ˜!œXÔ&¨1¯6©6°Q·U±U×5FÑ5F×5NÑ5NÑ+Nð &×,Ñ,¨Q¯U©U×->Ñ->×-FÑ-FÀqÇvÁvÑ-NÕOð &×,Ñ,¨QÕ/ð .ð 	�‰Ð)Ô*ð 	�‰�A—E‘E×%Ñ%×)Ñ)Õ*à�‰�A—E‘E—J‘J×(Ñ(×0Ñ0Ô1à‡K�K�—‘—
‘
×$Ñ$×(Ñ(Ô)ÙÔ5™�#¤x°¦} !ŠA }ˆA˜Ò5Ð5ùÓ5s   ÆF)c                óÈ   — g }|j                  | j                  j                  j                  j                  «       |D ��cg c]  }t        |«      D ]  }|‘Œ Œ c}}S c c}}w r>   )rE   Ú
functionalrA   rB   rC   r<   ©rH   rI   rK   r2   s       r3   Úmeta_argumentsrP   •   sM   € ØCE€DØ‡K�K�—‘×!Ñ!×+Ñ+×3Ñ3Ô4ÙÔ5™�#¤x°¦} !ŠA }ˆA˜Ò5Ð5ùÓ5ó   ÁAc                óÈ   — g }|j                  | j                  j                  j                  j                  «       |D ��cg c]  }t	        |«      D ]  }|‘Œ Œ c}}S c c}}w r>   )rE   r?   rA   rB   r<   rO   s       r3   Úout_argumentsrS   ›   sK   € ØCE€DØ‡K�K�—‘—
‘
×$Ñ$×(Ñ(Ô)ÙÔ5™�#¤x°¦} !ŠA }ˆA˜Ò5Ð5ùÓ5rQ   N)r1   r   r"   Úboolr!   r   Úreturnr   )r7   r   r!   r   rU   r   )r7   z0Argument | SelfArgument | TensorOptionsArgumentsrU   úlist[Binding])rH   r   rU   rV   )'Ú
__future__r   Útyping_extensionsr   Útorchgen.apir   Útorchgen.api.typesr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Útorchgen.modelr   r   r   r   r   r   r   r   r   r.   r8   r<   rL   rP   rS   © r4   r3   Ú<module>r]      sV   ðÝ "å *å ÷÷ ÷ ÷ ó ÷$
÷ 
õ 
ó**=óZFóó$6ó<6ô6r4   