
    JThc                        S SK Jr  S SKJs  Jr  S SKJs  Jr  S SKJr  S SK	J
r
  S SKJrJrJr  S SKJr  SS jr\
SS j5       r\
SS	 j5       r\
      SS
 j5       rg)    )annotationsN)kernel_signature)with_native_function_and_index)BackendIndexNativeFunctionNativeFunctionsGroup)mapMaybec                    U R                   (       a  gSS0nUR                  U R                  R                  S5      S-   $ )N XPUTORCH_XPU_API	TORCH_API )externalgetdispatch_keyname)bankend_index!device_torch_api_key_word_mappings     V/var/www/auris/envauris/lib/python3.13/site-packages/torchgen/dest/native_functions.pytorch_api_key_word_prefixr      sM     	)%
 	*--&&++[	
 	    c                    [        X5      nUR                  U 5      nUc  g SUR                  ;   a  g UR                  (       a  SOSnU SUR	                  UR                  S9 S3$ )Nzlegacy::staticr   r   )r   ;)r   
get_kernelkernelr   decl)fbackend_indexsigmetadataprefixs        r   gen_unstructuredr$       sf    
1
,C''*HX__$*3338889:!<<r   c                    [         R                  " U 5      n[        R                  " U 5      nUR	                  U 5      nUc  / $ [        U5      nSU SUR                   SU SSR                  S U 5       5       S3	/$ )Nzstruct structured_z : public at::meta::structured_z {
void impl(z, c              3  @   #    U  H  oR                  5       v   M     g 7fN)r   ).0as     r   	<genexpr>!gen_structured.<locals>.<genexpr>8   s     0x!VVXXxs   z);
};
)metar   
structuredimpl_argumentsr   r   r   join)gr    	meta_nameout_argsr"   r#   s         r   gen_structuredr4   -   s    		!I((+H''*H	&}5Fx{8??++J9+ V990x00
1 2	 r   c                >  ^ TR                  U 5      n[        U [        5      (       ac  Ub9  UR                  (       a(  TR                  (       a  [        S5      e[        U T5      $ [        [        U4S jU R                  5       5      5      $ [        U T5      nUc  / $ U/$ )Nz>Structured external backend functions are not implemented yet.c                   > [        U T5      $ r(   )r$   )r   r    s    r   <lambda>5compute_native_function_declaration.<locals>.<lambda>P   s    #3A}#Er   )r   
isinstancer   r.   r   AssertionErrorr4   listr	   	functionsr$   )r1   r    r"   xs    `  r   #compute_native_function_declarationr>   @   s     ''*H!)**H$7$7%%$T  &a77Eq{{}U  Q.Yr'QC'r   )r   r   returnstr)r   r   r    r   r?   z
str | None)r1   r   r    r   r?   	list[str])r1   z%NativeFunctionsGroup | NativeFunctionr    r   r?   rA   )
__future__r   torchgen.api.metaapir-   torchgen.api.structuredr.   torchgen.api.typesr   torchgen.contextr   torchgen.modelr   r   r   torchgen.utilsr	   r   r$   r4   r>    r   r   <module>rK      s|    "     , , / ; M M #*  	=  	=    $  (,(=I((  (r   