
    9it)                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJr  S SK	J
r
JrJr  S SKrS SKrS SKJr  SSKJr  SSKJr  \R*                  " \5      r " S S	\ R0                  5      rS
\R4                  S\
S\
S\\\
4   4S jr\ " S S5      5       r\ " S S5      5       r " S S\5      r S\
S\!\!\
S4   \\\
4   4   S\S\\RD                  RF                  \$\RJ                     /\4   S\4
S jr&g)    N)	dataclass)AnyCallableOptional)PrecompileContext   )convert_frame)Hooksc                       \ rS rSr\\R                  S\S\4S j5       5       r	\\R                  S\S\4S j5       5       r
Srg)	SerializableCallable   fnreturnc                     g N clsr   s     Y/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/torch/_dynamo/aot_compile.pyserialize_compile_artifacts0SerializableCallable.serialize_compile_artifacts        	    datac                     g r   r   )r   r   s     r   deserialize_compile_artifacts2SerializableCallable.deserialize_compile_artifacts   r   r   r   N)__name__
__module____qualname____firstlineno__classmethodabcabstractmethodr   bytesr   r   __static_attributes__r   r   r   r   r      s`    S U     3   r   r   	signatureargskwargsr   c                 ^    U R                   " U0 UD6nUR                  5         UR                  $ r   )bindapply_defaults	arguments)r'   r(   r)   bound_argumentss       r   bind_localsr/   "   s/      nnd5f5O""$$$$r   c                      \ rS rSr% \R
                  \S'   \R                  \S'   \	\
R                  R                  R                     \S'   \\S'   \\\4   \S'   \\S'   \\S'   \R                  \S	'   \	\\S
4      \S'   Srg)CompileArtifacts*   r'   bytecodeguard_managerguards_stateimport_sources
backend_idcompiled_fnoriginal_code.closurer   N)r   r   r    r!   inspect	Signature__annotations__typesCodeTyper   torch_dynamoguardsGuardManagerWrapperr%   dictstrr   tupler   r&   r   r   r   r1   r1   *   so       nnEMM00DDEEcN"O%%>>!eCHo&&r   r1   c                       \ rS rSr% \\S'   S\S\S\4S jrSS jr	S\S\S\4S	 jr
S
\SS4S jr\SS S\4S j5       r\S\SS 4S j5       rSrg)AOTCompiledFunction7   
_artifactsr(   r)   r   c                     [        U R                  R                  /UQ70 UD6nU R                  R                  c   eU R                  R                  R	                  U5      $ r   )r/   rJ   r'   r4   check)selfr(   r)   f_localss       r   guard_checkAOTCompiledFunction.guard_check;   sQ    t88J4J6J,,888,,228<<r   Nc                    U R                   R                  R                  5        VVs0 s H  u  pU[        R                  " U5      _M     nnn0 UEU R                   R
                  U R                   R                  0En[        R                  " U R                   R                  X@R                   R                  S9U l        U R                   R                  c  [        R                  " U R                   R                  5      n[         R"                  R$                  R'                  U R                   R(                  UR*                  UR,                  US9R                  U R                   l        g g s  snnf )Nr:   )shape_code_partsruntime_global_scope)rJ   r6   items	importlibimport_moduler7   r8   r>   FunctionTyper3   r:   r   r4   pickleloadsr5   r@   rA   rB   CheckFunctionManagerr9   output_graphrS   )rM   aliasmodule_namer6   	f_globalsr5   s         r   __post_init__!AOTCompiledFunction.__post_init__@   s+    '+oo&D&D&J&J&L
&L" 9**;77&L 	 


OO&&(C(C
	 $$OO$$i9P9P
 ??((0!<<(D(DEL,1MM,@,@,U,U--))!-!>!>%.	 -V -
 m OO) 1
s   #E.c                 D   U R                   R                  c   eU R                  " U0 UD6(       d_  [        U R                   R                  /UQ70 UD6n[        U R                   R                  R                  U5      5      n[        SU 35      eU R                  " U0 UD6$ )Nz#GuardManager check failed, reason: )	rJ   r4   rO   r/   r'   rE   check_verboseRuntimeErrorr   )rM   r(   r)   rN   reasons        r   __call__AOTCompiledFunction.__call__V   s    ,,88800"4??#<#<NtNvNH66DDXNOF!DVHMNNww'''r   pathc                     [        US5       nUR                  [        U 5      R                  U 5      5        S S S 5        g ! , (       d  f       g = f)Nwb)openwritetype	serialize)rM   rh   fs      r   save_compiled_function*AOTCompiledFunction.save_compiled_function^   s5    $GGDJ((./ s   *A  
Ar   c                 V   SSK Jn  UR                  R                  R	                  5       nS US'   UR                  US   5      US'   US   n[        U5      R                  [        U5      R                  U5      4US'   UR                  US   5      US'   [        R                  " U5      $ )Nr   SerializedCoder4   r3   r8   r9   )torch._dynamo.packagert   rJ   __dict__copyfrom_code_objectrm   r   r   rY   dumps)r   r   rt   stater8   s        r   rn   AOTCompiledFunction.serializeb   s    8&&++-!%o*;;E*<MNjM*;;99+F 
m "0!@!@AW!Xo||E""r   r   c                     SSK Jn  [        R                  " U5      nUR	                  US   5      US'   US   u  pEU" U5      US'   UR	                  US   5      US'   [        S0 UD6nU " U5      $ )Nr   rs   r3   r8   r9   r   )ru   rt   rY   rZ   to_code_objectr1   )r   r   rt   rz   deserializercompiled_fn_state	artifactss          r   deserializeAOTCompiledFunction.deserializeq   s{    8T"*99%
:KLj*/*>'+,=>m!/!>!>u_?U!Vo$-u-	9~r   )r   )r   N)r   r   r    r!   r1   r=   r   boolrO   r`   rf   rE   rp   r"   r%   rn   r   r&   r   r   r   rH   rH   7   s      = = = =
,(c (S (S (03 04 0 #0 #U # # 
u 
)> 
 
r   rH   c                      ^  \ rS rSrSrS\SS4S jrS\S\4U 4S jjr\S	\	SS 4S
 j5       r
\SS S\4S j5       r\S\S\4S j5       rS\S\S\4S jrSrU =r$ )&BundledAOTAutogradSerializableCallable   a4  
Represents a serializable callable generated by compile_fx.
This class wraps around the compiled function generated by AOTAutograd.

TODO: Instead of using PrecompileContext to grab it from AOTAutograd,
this object should be what's *returned* by aot_module_simplified.
We'll do that refactor in a later PR.
artifactr   Nc                 P    UR                  5       U l        UR                  U l        g)z{
Takes in a BundledAOTAutogradCacheArtifact, which is the serialized form
of a compiled function generated by AOTAutograd.
N)after_deserializationr8   contentr   )rM   r   s     r   __init__/BundledAOTAutogradSerializableCallable.__init__   s"     $99;$$	r   attrc                 x   > [        X5      (       a  [        [        5       U5      $ [        U R                  U5      $ r   )hasattrgetattrsuperr8   )rM   r   	__class__s     r   __getattr__2BundledAOTAutogradSerializableCallable.__getattr__   s0    457D))4++T22r   r7   c                 `    [         R                  " U5      nUc  [        SU-   5      eU " U5      $ )z
Takes in a backend_id, and returns a BundledAOTAutogradSerializableCallable
that wraps around the compiled function generated by AOTAutograd.
z"No artifact found for backend_id: )r   serialize_artifact_by_keyrd   )r   r7   r   s      r   from_backend_id6BundledAOTAutogradSerializableCallable.from_backend_id   s5     %>>zJCjPQQ8}r   r   c                     UR                   $ r   )r   r   s     r   r   BBundledAOTAutogradSerializableCallable.serialize_compile_artifacts   s     wwr   r   c                 0    SSK Jn  U" SU5      nU " U5      $ )Nr   )BundledAOTAutogradCacheArtifact )-torch._functorch._aot_autograd.autograd_cacher   )r   r   r   r   s       r   r   DBundledAOTAutogradSerializableCallable.deserialize_compile_artifacts   s    	
 32t<8}r   r(   r)   c                 &    U R                   " U0 UD6$ r   )r8   )rM   r(   r)   s      r   rf   /BundledAOTAutogradSerializableCallable.__call__   s    000r   )r8   r   )r   r   r    r!   __doc__r   r   r   r"   rE   r   r%   r   r   rf   r&   __classcell__)r   s   @r   r   r      s    % % %3 3 3 

	1
 
 9	 
  3  1c 1S 1S 1 1r   r   modelexample_inputs.hooksbackendc                 4	  ^ SSK Jm  SSKJnJn  SSKJnJnJn  Uu  p[        U S5      (       a  U R                  nU R                  4U	-   n	O,[        R                  " U 5      (       a  U nO[        SU  35      e[        R                  " U5      n[!        U/U	Q70 U
D6nUR"                  R$                  (       d  UR&                  (       a  [)        UR&                  5      [)        UR"                  R$                  5      :X  d   eUR+                  [-        UR"                  R$                  UR&                  5       VVs0 s H  u  pXR.                  _M     snn5        U" U" [0        R2                  " 0 5      5      5         U" 5          U" S5         [0        R4                  " [0        R6                  " UR"                  UR8                  U[:        R<                  UR&                  =(       d    SS	95      nUR>                  nUR@                  (       d+  SS
K!J"n  S[F        U   S[F        [H           4U4S jjnUUl         URK                  UR"                  USSS9nURL                  c   e S S S 5        S S S 5        S S S 5        WRN                  nURP                  URR                  l*        WRV                  RX                  nUc   eURZ                  n[\        R^                  Ra                  U" URb                  5      5         [\        Rd                  Rf                  Ri                  SS5         U" URR                  URj                  5      nS S S 5        S S S 5        [m        U[\        Rn                  5      (       a  [p        Rs                  URP                  5      n[m        W[t        5      (       d?  [        US5      (       a  URv                  nOUn[        S[y        U5       S3SU S3-   5      e[{        UUR|                  WR~                  URL                  UURP                  UUR"                  UR&                  S9	n[        US9nU$ s  snnf ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN== f! , (       d  f       GNG= f)Nr   )r[   )dynamo_timedget_metrics_context)compile_contextCompileContextTracingContext__self__zUnsupported model code type fullgraph_capturer   rR   )GuardFilterEntryguard_entriesr   c                    > U  Vs/ s H4  nUR                   =(       d    UR                  TR                  ;   (       + PM6     sn$ s  snf r   )	is_global
guard_type%UNSUPPORTED_SERIALIZATION_GUARD_TYPES)r   gr[   s     r   new_guard_filter_fn2aot_compile_fullgraph.<locals>.new_guard_filter_fn   sS     +	 + KK Z ||3YY Z +	 	 	s   ;AT)r   savestrict_errorbundled_autograd_cachecompiler_fnzCompiled function type z (produced zfrom backend z*) does not implement SerializableCallable.)	r'   r3   r4   r5   r6   r7   r8   r9   r:   )rJ   )Atorch._dynamo.guardsr[   torch._dynamo.utilsr   r   torch._guardsr   r   r   r   __func__r   r;   
isfunctionrd   r'   r/   __code__co_freevars__closure__lenupdatezipcell_contentsr	   get_compile_idr   	FrameInfo__globals__builtinsrv   dynamo_outputguard_filter_fntorch._dynamo.typesr   listr   build_guardsr5   backend_inputr7   graph_module_backend_idtracer_outputr\   r6   r@   _guardstracing	fake_mode
_functorchconfigpatchr   
isinstance_TorchCompileInductorWrapperr   r   r   r   rm   r1   r3   r4   rH   )r   r   r   r   r   r   r   r   r   r(   r)   r   r'   rN   namecellcapture_outputr   r   r   check_fnr   r\   r6   r8   r   r   aot_compiled_fnr[   s                               @r   aot_compile_fullgraphr      s    :EMM!LDuj!!^^ 4'			E	"	"9%ABB!!"%I96t6v6H	{{"..2>>"c"++*A*A&BBBB #&bkk&=&=r~~"N"NJD ((("N	
 	}'C'CB'GHI()&88##!!,"
 '44$$<#$45d %8E! --KKu4d . 
 $$000I 	* 	 	JP #00M-:-E-EM* ..;;L###!00Nn]-D-DEF%%&>Em88-:V:VW 	F 	G '5==>><LL$$
 k#7887M**!--K!K%d;&7%8Dk]*TUV
 	

 !'',,**% ++kk
I *Y?Oo 	*) 	 	JI^ 	FE 	GFsg   9P:
;Q$	QCQ "Q*Q$7+R"Q6 R 
Q
Q
Q!	Q$$
Q36
R	 R
R)'r#   r   rV   r;   loggingrY   r>   dataclassesr   typingr   r   r   r@   torch.fx torch._dynamo.precompile_contextr   r   r	   r   r
   	getLoggerr   logABCr   r<   rD   rE   r/   r1   rH   r   rF   fxGraphModuler   Tensorr   r   r   r   <module>r      sA   
       ! * *   >   !	377 	%  %),%8;%	#s(^% 	' 	' 	' D D DN81-A 81voo%S/4S>9:o o uxx++T%,,-?@BVVW	o
 or   