§
    @xÅj½  ã                   ó|   — 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d
S )é    )Ú
namedtuple)Úimport_moduleÚServiceContext)Úservice_nameÚservice_modelÚservice_waiter_modelÚresource_json_definitionsc                   ó   — e Zd ZdZdS )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__© ó    ú<C:\Projects\Historical\venv\Lib\site-packages\boto3/utils.pyr   r      s   € € € € € ðð ð& 	€Dr   c                 ó   ‡ ‡— |Šˆ ˆfd„}|S )Nc                  óª   •— ‰                      dd¦  «        \  }}t          |¦  «        }|                      ‰¦  «          t          ||¦  «        di | ¤ŽS )Nú.é   r   )Úrsplitr   ÚupdateÚgetattr)ÚkwargsÚmoduleÚfunction_nameÚ	full_nameÚparent_kwargss      €€r   Ú_handlerzlazy_call.<locals>._handler5   s\   ø€ Ø )× 0Ò 0°°aÑ 8Ô 8Ñˆ�Ý˜vÑ&Ô&ˆØ�Š�mÑ$Ô$Ð$Ø-�w�v˜}Ñ-Ô-Ð7Ð7°Ð7Ð7Ð7r   r   )r   r   r   r   s   `  @r   Ú	lazy_callr   2   s.   øø€ Ø€Mð8ð 8ð 8ð 8ð 8ð 8ð €Or   c                 ó>   — || v rt          d|› d�¦  «        ‚|| |<   d S )NzCannot inject class attribute "z*", attribute already exists in class dict.)ÚRuntimeError)Úclass_attributesÚnameÚvalues      r   Úinject_attributer%   >   sI   € ØÐÐÐÝð-¨dð -ð -ð -ñ
ô 
ð 	
ð
 "'Ð˜ÑÐÐr   c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú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                 ó0   — || _         || _        || _        d S ©N)Ú_sessionÚ_service_nameÚ_api_version)ÚselfÚ
bc_sessionr   Úapi_versions       r   Ú__init__zLazyLoadedWaiterModel.__init__R   s   € Ø"ˆŒØ)ˆÔØ'ˆÔÐÐr   c                 ór   — | j                              | j        | j        ¦  «                             |¦  «        S r)   )r*   Úget_waiter_modelr+   r,   Ú
get_waiter)r-   Úwaiter_names     r   r3   z LazyLoadedWaiterModel.get_waiterW   s4   € ØŒ}×-Ò-ØÔ Ô 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   