
    )                         d Z ddlmZ ddlmZ ddlmZ ddlZddlZ G d d ej                  ej                  e	            Z
 G d d	e
      Zy)
z@This module contains utilities for monitoring client side calls.    )absolute_import)division)print_functionNc                   |    e Zd ZdZej
                  d        Zej
                  d        Zej
                  d        Zy)ContextzInterface for implementations of client monitoring context manager.

  All client operations are executed inside this context.
  c                      y N )self	operations     4lib/third_party/containerregistry/client/monitor_.py__init__zContext.__init__   s        c                     | S r	   r
   r   s    r   	__enter__zContext.__enter__#   s    Kr   c                      y r	   r
   r   exc_type	exc_value	tracebacks       r   __exit__zContext.__exit__'   s    
 	r   N)	__name__
__module____qualname____doc__abcabstractmethodr   r   r   r
   r   r   r   r      sU    
 	 	   	 	r   r   c                   .     e Zd ZdZ fdZd Zd Z xZS )Nopz4Default implementation of Context that does nothing.c                 ,    t         t        |   |       y r	   )superr    r   )r   r   	__class__s     r   r   zNop.__init__3   s    	#ti(r   c                     | S r	   r
   r   s    r   r   zNop.__enter__6   s    Kr   c                      y r	   r
   r   s       r   r   zNop.__exit__9   s     	r   )r   r   r   r   r   r   r   __classcell__)r#   s   @r   r    r    /   s    <)	r   r    )r   
__future__r   r   r   r   sixwith_metaclassABCMetaobjectr   r    r
   r   r   <module>r,      sF    G &  % 
 
	 c  f5 	,	' 	r   