
    0j                         d Z ddlmZmZ ddlmZmZmZmZm	Z	m
Z
  e
d          Z G d dee         e          Z G d d	ee         e          Zd
S )zResources module.    )ABCMetaabstractmethod)AnyClassVarGenericOptionalTupleTypeVarTc                       e Zd ZU dZeeedf                  ed<   ee	         ed<   de
de
ddfd	Zede
de
dee	         fd
            Zdee	         ddfdZdee	         fdZde
ddfdZdS )Resourceargskwargsobj.	__slots__r   r   r   returnNc                 0    || _         || _        d | _        d S Nr   selfr   r   s      e/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/dependency_injector/resources.py__init__zResource.__init__       	    c                     d S r    r   s      r   initzResource.init   s    >Acr   resourcec                     d S r   r   r   r   s     r   shutdownzResource.shutdown   s      r   c                 B     | j         | j        i | j        x| _        }|S r   r   r   r   r   r   r   s     r   	__enter__zResource.__enter__   s(    "DI====3
r   exc_infoc                 H    |                      | j                   d | _        d S r   r"   r   r   r'   s     r   __exit__zResource.__exit__   s!    dhr   )__name__
__module____qualname__r   r   r	   str__annotations__r   r   r   r   r   r   r"   r&   r+   r   r   r   r   r   	   s         +DIxc3h(DDD	!c S T    
 A#AA!AAA ^A:!:::::8A;    # $      r   r   )	metaclassc                       e Zd ZU dZeeedf                  ed<   ee	         ed<   de
de
ddfd	Zede
de
dee	         fd
            Zdee	         ddfdZdee	         fdZde
ddfdZdS )AsyncResourcer   .r   r   r   r   r   Nc                 0    || _         || _        d | _        d S r   r   r   s      r   r   zAsyncResource.__init__&   r   r   c                 
   K   d S r   r   r   s      r   r   zAsyncResource.init+   s      DGCr   r   c                 
   K   d S r   r   r!   s     r   r"   zAsyncResource.shutdown.   s
        r   c                 R   K    | j         | j        i | j         d {V x| _        }|S r   r$   r%   s     r   
__aenter__zAsyncResource.__aenter__0   s>      (ty$)Ct{CCCCCCCCC3
r   r'   c                 X   K   |                      | j                   d {V  d | _        d S r   r)   r*   s     r   	__aexit__zAsyncResource.__aexit__4   s7      mmDH%%%%%%%%%r   )r,   r-   r.   r   r   r	   r/   r0   r   r   r   r   r   r   r"   r8   r:   r   r   r   r3   r3   !   s         +DIxc3h(DDD	!c S T    
 GGsGx{GGG ^G@x{@t@@@@(1+           r   r3   N)__doc__abcr   r   typingr   r   r   r   r	   r
   r   r   r3   r   r   r   <module>r>      s      ' ' ' ' ' ' ' ' C C C C C C C C C C C C C C C CGCLL    wqzW    0    GAJ'      r   