
    0j1                         d dl Z d dlmZmZ e j        dk    rd dlmZ nd dlmZ d dlmZ d dl	m
Z
  G d d          ZdS )	    N)AnyType)      )Self)	Container)Resourcec                       e Zd ZU dZeed<   eee                  ed<   efdedeee                  ddfdZ	dede
fdZdd	Zd
eddfdZdS )LifespanaA  A starlette lifespan handler performing container resource initialization and shutdown.

    See https://www.starlette.io/lifespan/ for details.

    Usage:

    .. code-block:: python

        from dependency_injector.containers import DeclarativeContainer
        from dependency_injector.ext.starlette import Lifespan
        from dependency_injector.providers import Factory, Self, Singleton
        from starlette.applications import Starlette

        class Container(DeclarativeContainer):
            __self__ = Self()
            lifespan = Singleton(Lifespan, __self__)
            app = Factory(Starlette, lifespan=lifespan)

    :param container: container instance
    :param resource_type: A :py:class:`~dependency_injector.resources.Resource`
        subclass. Limits the resources to be initialized and shutdown.
    	containerresource_typereturnNc                 "    || _         || _        d S N)r   r   )selfr   r   s      i/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/dependency_injector/ext/starlette.py__init__zLifespan.__init__(   s    
 #*    appc                     | S r    )r   r   s     r   __call__zLifespan.__call__0   s    r   c                 `   K   | j                             | j                  }|
| d {V  d S d S r   )r   init_resourcesr   )r   results     r   
__aenter__zLifespan.__aenter__3   sA      ..t/ABBLLLLLLLLL r   exc_infoc                 `   K   | j                             | j                  }|
| d {V  d S d S r   )r   shutdown_resourcesr   )r   r   r   s      r   	__aexit__zLifespan.__aexit__9   sA      2243EFFLLLLLLLLL r   )r   N)__name__
__module____qualname____doc__r   __annotations__r   r	   r   r   r   r   r   r    r   r   r   r   r      s          . &&&&
 .6+ ++ HSM*+ 
	+ + + +C D              r   r   )systypingr   r   version_infor   typing_extensionsdependency_injector.containersr   dependency_injector.providersr	   r   r   r   r   <module>r,      s    



        w&&&&&& 4 4 4 4 4 4 2 2 2 2 2 20 0 0 0 0 0 0 0 0 0r   