
    0j[                        d Z ddlmZ ddlZddlmZ ddlmZm	Z	  ej
        de            e	j        e          Z G d d	e	j                  Z G d
 de	j                  Z G d de	j                  Z G d de	j                  ZddZdS )zFlask extension module.    )absolute_importN)request)errors	providerszzModule "dependency_injector.ext.flask" is deprecated since version 4.0.0. Use "dependency_injector.wiring" module instead.)categoryc                       e Zd ZdZdS )ApplicationzFlask application provider.N__name__
__module____qualname____doc__     e/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/dependency_injector/ext/flask.pyr	   r	      s        %%%%r   r	   c                       e Zd ZdZdS )	ExtensionzFlask extension provider.Nr
   r   r   r   r   r      s        ####r   r   c                       e Zd ZdZd ZdS )ViewzFlask view provider.c                      t          |           S zReturn Flask view function.as_view)selfs    r   r   zView.as_view    s    t}}r   Nr   r   r   r   r   r   r   r   r   r      s)            r   r   c                       e Zd ZdZd ZdS )ClassBasedViewz Flask class-based view provider.c                 "    t          | |          S r   r   )r   names     r   r   zClassBasedView.as_view(   s    tT"""r   Nr   r   r   r   r   r   %   s)        **# # # # #r   r   c                 ~    t           t          j                  r fd}|s
J d            ||_        nEt           t          j                  r fd} j        j        |_        nt          j        d           j        j        |_         j        j	        |_	        t           j        t                    r j        |_        t           j        d          r j        j        D ]} ||          }t           j        d          r j        j        |_        t           j        d          r j        j        |_        |S )z5Transform class-based view provider to view function.c                  2                 } |j         | i |S N)dispatch_request)argskwargsr   providers      r   viewzas_view.<locals>.view1   s&    8::D(4($9&999r   z5Argument "endpoint" is required for class-based viewsc                       | i |S r"   r   )r$   r%   r&   s     r   r'   zas_view.<locals>.view9   s    8T,V,,,r   zUndefined provider type
decoratorsmethodsprovide_automatic_options)
isinstancer   Factoryr   Callableprovidesr   Errorr   r   type
view_classhasattrr)   r*   r+   )r&   r   r'   	decorators   `   r   r   r   -   s^   (I-.. 6	: 	: 	: 	: 	: LLLLLt	Hi0	1	1 6	- 	- 	- 	- 	- !)2l4555$,DL'2DO(#T** ,"+x ,// #!*5 	# 	#I9T??DDx ),, 1(0x "=>> U)1):)T&Kr   r"   )r   
__future__r   warningsflaskr   flask_requestdependency_injectorr   r   warnDeprecationWarningObject	Singletonr	   r   r.   r   r-   r   r   r   r   r   <module>r>      sZ     & & & & & &  * * * * * * 1 1 1 1 1 1 1 1 F    )
=
)
)& & & & &)% & & &$ $ $ $ $	# $ $ $    9   # # # # #Y& # # ## # # # # #r   