§
    �Štj	  ã                  óþ   — 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¦   «          dS dS )%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_derivativesFÚnative_functions_pathÚstrÚ	tags_pathÚoutÚautograd_dirÚoperator_selectorr   Údisable_autogradÚboolÚreturnÚNonec                ó  — t          t          j                             |d¦  «        | |¦  «        \  }}t          j                             |d¦  «        }t	          | |¦  «        j        }	t          t          |j        |	¦  «        d„ ¬¦  «        }
t          |
|¦  «        }|s8t          || ||||¦  «         t          || |||¦  «         t          ||	|¦  «         t          |||¦  «         t          || ||¦  «         t          |||¦  «         d S )Núderivatives.yamlÚ	templatesc                ó4   — t          j        | j        ¦  «        S )N)r   ÚnameÚfunc)Úfs    úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torchgen/packaged/autograd/gen_autograd.pyú<lambda>zgen_autograd.<locals>.<lambda>G   s   € •c”h˜qœvÑ&Ô&€ ó    )Úkey)r   ÚosÚpathÚjoinr   Únative_functionsÚsortedÚfilterÚ(is_native_function_selected_for_trainingr   r   r   r   r   r   r   )r   r   r   r   r   r   Údifferentiability_infosÚused_dispatch_keysÚtemplate_pathÚnative_funcsÚfnsÚfns_with_diff_infoss               r$   Úgen_autogradr5   3   sL  € õ 3CÝ
Œ�Š�\Ð#5Ñ6Ô6Ð8MÈyñ3ô 3Ñ/ÐÐ/õ ”G—L’L ¨{Ñ;Ô;€Må$Ð%:¸IÑFÔFÔW€LÝ
ÝØÔFÈñ	
ô 	
ð 'Ð&ð	ñ ô €Cõ 	% SÐ*AÑBÔBð ð
 ð 9ÝØØ!ØØØØñ	
ô 	
ð 	
õ 	!ØÐ&¨	Ð3FÈñ	
ô 	
ð 	
õ
 	�s˜L¨-Ñ8Ô8Ð8å˜sÐ$;¸]ÑKÔKÐKõ ˜3Ð 5°yÀ-ÑPÔPÐPõ �3Ð+¨]Ñ;Ô;Ð;Ð;Ð;r&   c                ó<  — t          t          j                             |d¦  «        | |¦  «        \  }}t          j                             |d¦  «        }t	          |||¦  «         t          j                             |d¦  «        }t          j        || |||¦  «         d S )Nr   r   zdeprecated.yaml)r   r(   r)   r*   r   r
   Úgen)r   r   r   r   r/   Ú_r1   Údeprecated_paths           r$   Úgen_autograd_pythonr:   h   s¡   € õ "2Ý
Œ�Š�\Ð#5Ñ6Ô6Ð8MÈyñ"ô "ÑÐ˜Qõ ”G—L’L ¨{Ñ;Ô;€Mõ " #Ð'>ÀÑNÔNÐNõ ”g—l’l <Ð1BÑCÔC€OÝÔØÐ" I¨Àñô ð ð ð r&   c                 óˆ  — t          j        d¬¦  «        } |                      ddd¬¦  «         |                      ddd¬¦  «         |                      d	d
d¬¦  «         |                      ddd¬¦  «         |                      ¦   «         }t	          |j        |j        |j        |j        t          j
        ¦   «         ¦  «         d S )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_argsr5   r+   r@   r   rB   r   Úget_nop_selector)ÚparserÚargss     r$   ÚmainrK   ~   sê   € ÝÔ$Ð1UÐVÑVÔV€FØ
×ÒØ HÐ3Rð ñ ô ð ð ×Ò˜¨Ð7JÐÑKÔKÐKØ
×Ò˜ uÐ3MÐÑNÔNÐNØ
×ÒØ˜JÐ-Ið ñ ô ð ð ×ÒÑÔ€DÝØÔØŒ	ØŒØŒÝÔ)Ñ+Ô+ñô ð ð ð r&   Ú__main__)F)r   r   r   r   r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r   )Ú__doc__Ú
__future__r   rD   r(   Útorchgen.apir   Útorchgen.api.autogradr   r   Útorchgen.genr   Ú!torchgen.selective_build.selectorr   Ú r
   Úgen_autograd_functionsr   r   r   r   r   r   r   r   r5   r:   rK   Ú__name__© r&   r$   ú<module>rW      s¨  ððð ð0 #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	à Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ø >Ð >Ð >Ð >Ð >Ð >à "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >Ø *Ð *Ð *Ð *Ð *Ð *Ø :Ð :Ð :Ð :Ð :Ð :Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø *Ð *Ð *Ð *Ð *Ð *Ø .Ð .Ð .Ð .Ð .Ð .ð #ð2<ð 2<ð 2<ð 2<ð 2<ðjð ð ð ð,ð ð ð ð( ˆzÒÐØ€D�F„F€F€F€Fð Ðr&   