
    BVh                     H    d Z ddlmZ  G d de      Zdad Z G d d      Zy)	z)Cancellation support for eager execution.    )
pywrap_tfec                   8    e Zd ZdZdgZd Zed        Zd Zd Z	y)CancellationManagerz0A mechanism for cancelling blocking computation._implc                 6    t        j                         | _        y N)r   TFE_NewCancellationManagerr   selfs    T/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/eager/cancellation.py__init__zCancellationManager.__init__   s    668DJ    c                 @    t        j                  | j                        S )zEReturns `True` if `CancellationManager.start_cancel` has been called.)r   "TFE_CancellationManagerIsCancelledr   r
   s    r   is_cancelledz CancellationManager.is_cancelled   s     88DDr   c                 B    t        j                  | j                         y)zGCancels blocking operations that have been registered with this object.N)r   "TFE_CancellationManagerStartCancelr   r
   s    r   start_cancelz CancellationManager.start_cancel!   s    11$**=r   c                       fd}|S )Nc                  V    t              5   | i |cd d d        S # 1 sw Y   y xY wr   )CancellationManagerContext)argskwargsconcrete_functionr   s     r   cancellablez@CancellationManager.get_cancelable_function.<locals>.cancellable&   s-    %d+ 2 $1&12 2 2s   ( )r   r   r   s   `` r   get_cancelable_functionz+CancellationManager.get_cancelable_function%   s    2 r   N)
__name__
__module____qualname____doc__	__slots__r   propertyr   r   r   r   r   r   r   r      s1    8i)9 E E>r   r   Nc                      t         S r   _active_contextr   r   r   contextr'   .   s    	r   c                   "    e Zd ZdZd Zd Zd Zy)r   z=A Python context for wrapping a cancellable ConcreteFunction.c                     || _         y r   )_cancellation_manager)r   cancellation_managers     r   r   z#CancellationManagerContext.__init__5   s
    !5Dr   c                     | j                   ay r   )r*   r&   r
   s    r   	__enter__z$CancellationManagerContext.__enter__8   s    00Or   c                     d a y r   r%   )r   exc_type	exc_valueexc_tbs       r   __exit__z#CancellationManagerContext.__exit__<   s    Or   N)r   r   r    r!   r   r-   r2   r   r   r   r   r   2   s    E61r   r   )r!   tensorflow.pythonr   objectr   r&   r'   r   r   r   r   <module>r5      s/    0 (& .  r   