Ë
    Z^(h	  ã                  ó   — d Z ddlmZ ddlZ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 dd	lmZ dd
lmZmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zedk(  r e«        yy)a~  
To run this file by hand from the root of the PyTorch
repository, run:

python -m tools.autograd.gen_autograd        aten/src/ATen/native/native_functions.yaml        aten/src/ATen/native/tags.yaml        $OUTPUT_DIR        tools/autograd

Where $OUTPUT_DIR is where you would like the files to be
generated.  In the full build system, OUTPUT_DIR is
torch/csrc/autograd/generated/
é    )ÚannotationsN)Úcpp)Úmatch_differentiability_infoÚ'NativeFunctionWithDifferentiabilityInfo)Úparse_native_yaml)ÚSelectiveBuilderé   )Úgen_python_functions)Úgen_autograd_functions_libÚgen_autograd_functions_python)Úgen_inplace_or_view_type)Úgen_trace_type)Úgen_variable_factories)Úgen_variable_type)Úgen_view_funcs)Úload_derivativesc                óÔ  — t        t        j                  j                  |d«      | |«      \  }}t        j                  j                  |d«      }t	        | |«      j
                  }	t        t        |j                  |	«      d„ ¬«      }
t        |
|«      }|s,t        || ||||«       t        || |||«       t        ||	|«       t        |||«       t        || ||«       t        |||«       y )Núderivatives.yamlÚ	templatesc                ó@   — t        j                  | j                  «      S )N)r   ÚnameÚfunc)Úfs    úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torchgen/packaged/autograd/gen_autograd.pyú<lambda>zgen_autograd.<locals>.<lambda>G   s   € ”c—h‘h˜qŸv™vÓ&€ ó    )Úkey)r   ÚosÚpathÚjoinr   Únative_functionsÚsortedÚfilterÚ(is_native_function_selected_for_trainingr   r   r   r   r   r   r   )Únative_functions_pathÚ	tags_pathÚoutÚautograd_dirÚoperator_selectorÚdisable_autogradÚdifferentiability_infosÚused_dispatch_keysÚtemplate_pathÚnative_funcsÚfnsÚfns_with_diff_infoss               r   Úgen_autogradr1   3   sü   € ô 3CÜ
�‰�‰�\Ð#5Ó6Ð8MÈyó3Ñ/ÐÐ/ô —G‘G—L‘L ¨{Ó;€Mä$Ð%:¸IÓF×WÑW€LÜ
ÜØ×FÑFÈó	
ñ 'ô	€Cô 	% SÐ*AÓBð ñ
 ÜØØ!ØØØØô	
ô 	!ØÐ&¨	Ð3FÈô	
ô
 	�s˜L¨-Ô8ä˜sÐ$;¸]ÔKô ˜3Ð 5°yÀ-ÔPô �3Ð+¨]Õ;r   c                ó,  — t        t        j                  j                  |d«      | |«      \  }}t        j                  j                  |d«      }t	        |||«       t        j                  j                  |d«      }t        j                  || |||«       y )Nr   r   zdeprecated.yaml)r   r   r   r    r   r
   Úgen)r%   r&   r'   r(   r+   Ú_r-   Údeprecated_paths           r   Úgen_autograd_pythonr6   h   s‚   € ô "2Ü
�‰�‰�\Ð#5Ó6Ð8MÈyó"ÑÐ˜Qô —G‘G—L‘L ¨{Ó;€Mô " #Ð'>ÀÔNô —g‘g—l‘l <Ð1BÓC€OÜ×ÑØÐ" I¨Àõr   c                 ó‚  — t        j                  d¬«      } | j                  ddd¬«       | j                  ddd¬«       | j                  d	d
d¬«       | j                  ddd¬«       | j                  «       }t	        |j
                  |j                  |j                  |j                  t        j                  «       «       y )Nz"Generate autograd C++ files script)Údescriptionr!   ÚNATIVEzpath to native_functions.yaml)ÚmetavarÚhelpÚtagszpath to tags.yamlr'   ÚOUTzpath to output directoryÚautogradÚAUTOGRADzpath to autograd directory)ÚargparseÚArgumentParserÚadd_argumentÚ
parse_argsr1   r!   r<   r'   r>   r   Úget_nop_selector)ÚparserÚargss     r   ÚmainrG   ~   s¹   € Ü×$Ñ$Ð1UÔV€FØ
×ÑØ HÐ3Rð ô ð ×Ñ˜¨Ð7JÐÔKØ
×Ñ˜ uÐ3MÐÔNØ
×ÑØ˜JÐ-Ið ô ð ×ÑÓ€DÜØ×ÑØ�	‰	Ø�‰Ø�‰Ü×)Ñ)Ó+õr   Ú__main__)F)r%   Ústrr&   rI   r'   rI   r(   rI   r)   r   r*   ÚboolÚreturnÚNone)
r%   rI   r&   rI   r'   rI   r(   rI   rK   rL   )rK   rL   )Ú__doc__Ú
__future__r   r@   r   Útorchgen.apir   Útorchgen.api.autogradr   r   Útorchgen.genr   Ú!torchgen.selective_build.selectorr   Ú r
   Úgen_autograd_functionsr   r   r   r   r   r   r   r   r1   r6   rG   Ú__name__© r   r   ú<module>rW      sÚ   ðñõ0 #ã Û 	å ÷õ +Ý >å "÷õ ?Ý *Ý :Ý 0Ý *Ý .ð #ð2<Øð2<àð2<ð 
ð2<ð ð	2<ð
 (ð2<ð ð2<ð 
ó2<ðjØðàðð 
ðð ð	ð
 
óó,ð( ˆzÒÙ…Fð r   