Current File : //usr/lib/python3/dist-packages/boto3/__pycache__/utils.cpython-312.pyc
�

��eE��j�ddlZddlmZedgd��ZGd�de�Zd�Zd�Zd�ZGd	�d
�Zy)�N)�
namedtuple�ServiceContext)�service_name�
service_model�service_waiter_model�resource_json_definitionsc��eZdZdZy)raProvides 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__���-/usr/lib/python3/dist-packages/boto3/utils.pyrrs���&	rc�>�t|�tj|S)zIImport module given a name.

    Does not support relative imports.

    )�
__import__�sys�modules)�names r�
import_moduler2s���t���;�;�t��rc����|���fd�}|S)Nc����jdd�\}}t|�}|j��t||�di|��S)N�.�r)�rsplitr�update�getattr)�kwargs�module�
function_name�	full_name�
parent_kwargss   ��r�_handlerzlazy_call.<locals>._handler?sG��� )� 0� 0��a� 8���
��v�&���
�
�m�$�-�w�v�}�-�7��7�7rr)r!rr#r"s`  @r�	lazy_callr$<s����M�8��Orc�4�||vrtd|�d���|||<y)NzCannot inject class attribute "z*", attribute already exists in class dict.)�RuntimeError)�class_attributesr�values   r�inject_attributer)Hs6������-�d�V�4,�
-�
�	
�
"'���rc��eZdZdZd�Zd�Zy)�LazyLoadedWaiterModelatA 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__zLazyLoadedWaiterModel.__init__\s��"��
�)���'��rc��|jj|j|j�j	|�Sr-)r.�get_waiter_modelr/r0�
get_waiter)r1�waiter_names  rr7z LazyLoadedWaiterModel.get_waiteras4���}�}�-�-����� 1� 1�
�
�*�[�
!�	"rN)r
rrr
r4r7rrrr+r+Rs���(�
"rr+)	r�collectionsr�_ServiceContextrrr$r)r+rrr�<module>r;sD���"������	�_�	�.�	�'�"�"r