
    ȯei                     h    d dl mZ d dlmZ  edg d      Z G d de      Zd Zd Z G d d	      Zy
)    )
namedtuple)import_moduleServiceContext)service_nameservice_modelservice_waiter_modelresource_json_definitionsc                       e Zd ZdZy)r   a   Provides important service-wide, read-only information about a service

    :type service_name: str
    :param service_name: The name of the service

    :type service_model: :py:class:`botocore.model.ServiceModel`
    :param service_model: The model of the service.

    :type service_waiter_model: :py:class:`botocore.waiter.WaiterModel` or
        a waiter model-like object such as
        :py:class:`boto3.utils.LazyLoadedWaiterModel`
    :param service_waiter_model: The waiter model of the service.

    :type resource_json_definitions: dict
    :param resource_json_definitions: The loaded json models of all resource
        shapes for a service. It is equivalient of loading a
        ``resource-1.json`` and retrieving the value at the key "resources".
    N)__name__
__module____qualname____doc__     M/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/boto3/utils.pyr   r      s    & 	r   c                      | fd}|S )Nc                      j                  dd      \  }}t        |      }| j                          t        ||      di | S )N.   r   )rsplitr   updategetattr)kwargsmodulefunction_name	full_nameparent_kwargss      r   _handlerzlazy_call.<locals>._handler5   sG     ) 0 0a 8v&m$-wv}-777r   r   )r   r   r   r   s   `  @r   	lazy_callr   2   s    M8 Or   c                 4    || v rt        d| d      || |<   y )NzCannot inject class attribute "z*", attribute already exists in class dict.)RuntimeError)class_attributesnamevalues      r   inject_attributer%   >   s6    -dV 4, -
 	

 "'r   c                       e Zd ZdZd Zd Zy)LazyLoadedWaiterModelat  A lazily loaded waiter model

    This does not load the service waiter model until an attempt is made
    to retrieve the waiter model for a specific waiter. This is helpful
    in docstring generation where we do not need to actually need to grab
    the waiter-2.json until it is accessed through a ``get_waiter`` call
    when the docstring is generated/accessed.
    c                 .    || _         || _        || _        y N)_session_service_name_api_version)self
bc_sessionr   api_versions       r   __init__zLazyLoadedWaiterModel.__init__R   s    ")'r   c                     | j                   j                  | j                  | j                        j	                  |      S r)   )r*   get_waiter_modelr+   r,   
get_waiter)r-   waiter_names     r   r3   z LazyLoadedWaiterModel.get_waiterW   s4    }}-- 1 1

*[
!	"r   N)r   r   r   r   r0   r3   r   r   r   r'   r'   H   s    (
"r   r'   N)	collectionsr   	importlibr   _ServiceContextr   r   r%   r'   r   r   r   <module>r8      s?    # #	_ 	.	'" "r   