
    IЦi                         S SK Jr  S SKJrJr  S SKJrJrJrJ	r	  \ " S S5      5       r
\
" 5       rS\/ S4   S\/ S4   4S	 jrS\/ S4   S\/ S4   4S
 jrg)    )contextmanager)	dataclassfield)AnyCallable	GeneratorListc                   (   \ rS rSr% \" \S9r\\/ S4      \	S'   \" \S9r
\\/ S4      \	S'   S\/ S4   S\/ S4   4S jrS\/ S4   S\/ S4   4S	 jrS\/ S4   SS4S
 jrS\/ S4   SS4S jrSS jrSS jr\S\S\\4   4S j5       rSS jrSrg)CompilationCallbackHandler   )default_factoryNstart_callbacksend_callbackscallbackreturnc                 <    U R                   R                  U5        U$ )z
Register a callback function to be called when the compilation starts.

Args:
- callback (Callable): The callback function to register.
)r   appendselfr   s     U/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/_dynamo/callback.pyregister_start_callback2CompilationCallbackHandler.register_start_callback   s     	##H-    c                 <    U R                   R                  U5        U$ )z
Register a callback function to be called when the compilation ends.

Args:
- callback (Callable): The callback function to register.
)r   r   r   s     r   register_end_callback0CompilationCallbackHandler.register_end_callback   s     	!!(+r   c                 :    U R                   R                  U5        g)zm
Remove a registered start callback function.

Args:
- callback (Callable): The callback function to remove.
N)r   remover   s     r   remove_start_callback0CompilationCallbackHandler.remove_start_callback!   s     	##H-r   c                 :    U R                   R                  U5        g)zk
Remove a registered end callback function.

Args:
- callback (Callable): The callback function to remove.
N)r   r   r   s     r   remove_end_callback.CompilationCallbackHandler.remove_end_callback*   s     	!!(+r   c                 8    U R                    H
  nU" 5         M     g)z)
Execute all registered start callbacks.
N)r   r   s     r   run_start_callbacks.CompilationCallbackHandler.run_start_callbacks3   s     ,,HJ -r   c                 8    U R                    H
  nU" 5         M     g)z'
Execute all registered end callbacks.
N)r   r   s     r   run_end_callbacks,CompilationCallbackHandler.run_end_callbacks:   s     **HJ +r   c              #      #     U R                  5         Sv   U R                  5         g! U R                  5         f = f7f)zS
Context manager to install the callbacks and run them when the context is exited.
N)r%   r(   r   s    r   install_callbacks,CompilationCallbackHandler.install_callbacksA   s1     
	%$$&""$D""$s   >) >;>c                 l    U R                   R                  5         U R                  R                  5         g)z!
Clear all registered callbacks.
N)r   clearr   r+   s    r   r/    CompilationCallbackHandler.clearL   s(     	""$  "r    )r   N)__name__
__module____qualname____firstlineno__r   listr   r	   r   __annotations__r   r   r   r   r"   r%   r(   r   r   r   r,   r/   __static_attributes__r1   r   r   r   r      s    05d0KOT(2t8,-K.3D.IM4T*+I
 T*
	"d(	
hr4x.@ XbRVhEW .hr4x.@ .T .,HRX,> ,4 , %9T3^#< % %#r   r   r   Nr   c                 0    [         R                  U 5        U $ )zM
Decorator to register a callback function for the start of the compilation.
)callback_handlerr   r   s    r   on_compile_startr<   W   s     ,,X6Or   c                 0    [         R                  U 5        U $ )zK
Decorator to register a callback function for the end of the compilation.
)r:   r   r;   s    r   on_compile_endr>   _   s     **84Or   )
contextlibr   dataclassesr   r   typingr   r   r   r	   r   r:   r<   r>   r1   r   r   <module>rB      s    % ( 1 1 J# J# J#Z ./ xD1 hr4x6H Xb$h/ HRX4F r   