
    i                        S SK Jr  S SKrS SKJrJr  S SKJrJr  S SK	r	S SK
rS SKJr  S SKJr  \ " S S5      5       r\ " S	 S
5      5       r\ " S S5      5       r\ " S S5      5       r " S S5      rg)    )annotationsN)asdict	dataclass)AnyOptional)ArmCompileSpec)
NodeSourcec                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg)	TosaDebugSchema   str	node_nameoperator_nameintoperator_id N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r       c/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/executorch/backends/arm/debug/schema.pyr   r      s    Nr   r   c                  >    \ rS rSr% S\S'   S\S'   \SS j5       rSrg)	ATenDebugSchema   r   r   r   c                    [        U R                  5      (       a  U R                  R                  nOU R                  n[        U R                  US9$ )N)r   r   )callabletargetr   r   name)noder   s     r   	from_nodeATenDebugSchema.from_node!   s<     DKK   KK00M KKM-PPr   r   N)r"   torch.fx.Nodereturnr   )r   r   r   r   r   staticmethodr#   r   r   r   r   r   r      s!    NQ Qr   r   c                  f    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   \SS
 j5       r\SS j5       rSrg)TorchDebugSchema,   z	list[str]stack_tracezlist[dict[str, Any]] | str
node_tracezdict[str, Any] | strnn_module_stackztuple[str, str] | strtorch_fnc           	        / n/ nU  H  nUR                  US45        M     [        U5      S:  a  UR                  5       u  pEUR                  UR                  UR                  UR
                  UR                  UR                  5       US.5        UR                   H  nUR                  X4R
                  45        M!     [        U5      S:  a  M  U$ )z3Flatten the from_node dictionary to remove nesting.r   )r!   r    graph_id	pass_nameactionparent_graph_id)	appendlenpopr!   r    r1   r2   _get_action_stringr#   )r,   	flattened
node_stacknr"   	parent_ids         r   serialize_node_trace%TorchDebugSchema.serialize_node_trace3   s     	
Aq"g&  *o!(nn.OD II"kk $!%"557'0	 ^^!!1mm"45 $ *o!  r   c           	     <   SnSU R                   ;   a"  [        R                  U R                   S   5      n[        U R                   R                  SS5      R	                  S5      UU R                   R                  SS5      U R                   R                  SS	5      S
9$ )NzNo node trace available.r#   r+   zNo stack trace available
r-   zNo module stack trace availabler.   zNo torch_fn available)r+   r,   r-   r.   )metar)   r=   getsplit)r"   r,   s     r   r#   TorchDebugSchema.from_nodeN   s    1K
$))#)>>tyy?UVJ		m5OPVV " IIMM!#D YY]]:/FG	
 		
r   r   N)r,   zlist[NodeSource]r&   zlist[dict[str, Any]])r"   r%   r&   r)   )	r   r   r   r   r   r'   r=   r#   r   r   r   r   r)   r)   ,   s@    **))## 4 
 
r   r)   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   SS
 jrSrg)DebugSchemab   r   event_idr   	aten_infozOptional[TosaDebugSchema]	tosa_infor)   
torch_infoc                X    [        U 5      nU R                  c  UR                  S5        U$ )NrJ   )r   rJ   r7   )selfoutputs     r   to_dictDebugSchema.to_dicti   s&    >>!JJ{#r   r   N)r&   zdict[str, Any])r   r   r   r   r   rO   r   r   r   r   rF   rF   b   s    M((  r   rF   c                  2    \ rS rSrSS jrSS jrS	S jrSrg)
	DebugHookr   c                    / U l         Xl        g )N_debug_eventsmode)rM   
debug_modes     r   __init__DebugHook.__init__s   s    02	r   c                n   S nU R                   [        R                  R                  :w  a&  [	        [        U5      [        U5      [        U5      S9n[        R                  U5      n[        R                  U5      n[        [        U R                  5      UUUS9nU R                  R                  U5        U$ )N)r   r   r   )rH   rI   rJ   rK   )rW   r   	DebugModeTOSAr   r   r   r   r#   r)   rF   r6   rV   r5   )rM   r"   tosa_op
tosa_op_idtosa_debug_infoaten_debug_infotorch_debug_info
debug_infos           r   addDebugHook.addw   s     9900555-g,!*o
OO *33D9+55d; ++,%%'	

 	!!*-r   c                    [         R                  " U R                   Vs/ s H  oR                  5       PM     snSS9$ s  snf )N   )indent)jsondumpsrV   rO   )rM   events     r   	serializeDebugHook.serialize   s2    zz8J8JK8Ju==?8JKTUVVKs   >rU   N)rX   zArmCompileSpec.DebugModer&   None)r"   r%   r^   r   r_   zts.Opr&   rF   )r&   r   )r   r   r   r   rY   rd   rl   r   r   r   r   rR   rR   r   s    2Wr   rR   )
__future__r   ri   dataclassesr   r   typingr   r   torchtosa_serializerts/executorch.backends.arm.common.arm_compile_specr   torch.fx.tracebackr	   r   r   r)   rF   rR   r   r   r   <module>rw      s    #  )     J )    Q Q Q 2
 2
 2
j   W Wr   