HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib64/python3.10/site-packages/boto3/__pycache__/utils.cpython-310.pyc
o

/weE�@s\ddlZddlmZedgd��ZGdd�de�Zdd�Zdd	�Zd
d�ZGdd
�d
�ZdS)�N)�
namedtuple�ServiceContext)�service_name�
service_model�service_waiter_model�resource_json_definitionsc@seZdZdZdS)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__�rr�D/home/arjun/projects/env/lib/python3.10/site-packages/boto3/utils.pyrscCst|�tj|S)zIImport module given a name.

    Does not support relative imports.

    )�
__import__�sys�modules)�namerrr
�
import_module2s
rcs|���fdd�}|S)Ncs6��dd�\}}t|�}|���t||�di|��S)N�.�r)�rsplitr�update�getattr)�kwargs�module�
function_name��	full_name�
parent_kwargsrr
�_handler?s
zlazy_call.<locals>._handlerr)rrrrrr
�	lazy_call<srcCs$||vrtd|�d���|||<dS)NzCannot inject class attribute "z*", attribute already exists in class dict.)�RuntimeError)�class_attributesr�valuerrr
�inject_attributeHs

�r#c@s eZdZdZdd�Zdd�ZdS)�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.
    cCs||_||_||_dS�N)�_session�
_service_name�_api_version)�self�
bc_sessionr�api_versionrrr
�__init__\s
zLazyLoadedWaiterModel.__init__cCs|j�|j|j��|�Sr%)r&�get_waiter_modelr'r(�
get_waiter)r)�waiter_namerrr
r.as
��z LazyLoadedWaiterModel.get_waiterN)rr	r
rr,r.rrrr
r$Rs	r$)	r�collectionsr�_ServiceContextrrrr#r$rrrr
�<module>s�