o
    2hS	                     @   st   d Z ddlZddlZG dd dejZe Zejdd Zdd ZG d	d
 d
ejZ	e	 Z
ejdd Zdd ZdS )zContext for saving checkpoint.    Nc                       8   e Zd ZdZ fddZdd Zdd Zdd	 Z  ZS )
PreemptionSaveContextz0A context for saving checkpoint upon preemption.c                       t    d| _d S NF)super__init___in_preemption_save_contextself	__class__ j/var/www/html/chatgem/venv/lib/python3.10/site-packages/tensorflow/python/checkpoint/checkpoint_context.pyr         

zPreemptionSaveContext.__init__c                 C   
   d| _ d S NTr   r	   r   r   r   enter_preemption_save_context      
z3PreemptionSaveContext.enter_preemption_save_contextc                 C   r   r   r   r	   r   r   r   exit_preemption_save_context   r   z2PreemptionSaveContext.exit_preemption_save_contextc                 C      | j S Nr   r	   r   r   r   in_preemption_save_context"      z0PreemptionSaveContext.in_preemption_save_context)	__name__
__module____qualname____doc__r   r   r   r   __classcell__r   r   r   r   r      s    r   c                   c   *    t   z
d V  W t   d S t   w r   )_preemption_save_contextr   r   r   r   r   r   preemption_save_context)   
   r!   c                   C      t  S r   )r    r   r   r   r   r   r   2      r   c                       r   )
AsyncMetricsContextzMA context for controlling metrics recording when async checkpoint is used.
  c                    r   r   )r   r   _in_async_metrics_contextr	   r   r   r   r   :   r   zAsyncMetricsContext.__init__c                 C   r   r   r&   r	   r   r   r   enter_async_metrics_context>   r   z/AsyncMetricsContext.enter_async_metrics_contextc                 C   r   r   r'   r	   r   r   r   exit_async_metrics_contextA   r   z.AsyncMetricsContext.exit_async_metrics_contextc                 C   r   r   r'   r	   r   r   r   in_async_metrics_contextD   r   z,AsyncMetricsContext.in_async_metrics_context)	r   r   r   r   r   r(   r)   r*   r   r   r   r   r   r%   6   s    r%   c                   c   r   r   )_async_metrics_contextr(   r)   r   r   r   r   async_metrics_contextK   r"   r,   c                   C   r#   r   )r+   r*   r   r   r   r   r*   T   r$   r*   )r   
contextlib	threadinglocalr   r    contextmanagerr!   r   r%   r+   r,   r*   r   r   r   r   <module>   s   

