File: //home/arjun/projects/env/lib/python3.10/site-packages/botocore/__pycache__/waiter.cpython-310.pyc
o
*we�7 � @ s� d dl Z d dlZd dlZd dlmZ d dlmZ ddlmZ ddl m
Z
mZmZ e �
e�Zdd� Zd d
� ZG dd� d�ZG d
d� d�ZG dd� d�ZG dd� d�ZG dd� d�ZdS )� N)�WaiterDocstring)�get_service_module_name� )�
xform_name)�ClientError�WaiterConfigError�WaiterErrorc C s| |� | �}t|j�}tt||��}dd� }t| |jj|jj|dd�|_ t
dt|jj�| f �}t|t
fd|i�}|| ||�S )a
:type waiter_name: str
:param waiter_name: The name of the waiter. The name should match
the name (including the casing) of the key name in the waiter
model file (typically this is CamelCasing).
:type waiter_model: botocore.waiter.WaiterModel
:param waiter_model: The model for the waiter configuration.
:type client: botocore.client.BaseClient
:param client: The botocore client associated with the service.
:rtype: botocore.waiter.Waiter
:return: The waiter object.
c [ s t j| fi |�� d S �N)�Waiter�wait)�self�kwargs� r �H/home/arjun/projects/env/lib/python3.10/site-packages/botocore/waiter.pyr 6 s z'create_waiter_with_client.<locals>.waitF)�waiter_name�
event_emitter�
service_model�service_waiter_model�include_signaturez%s.Waiter.%sr )�
get_waiterr � operation�NormalizedOperationMethod�getattrr �meta�eventsr �__doc__�strr �typer
) r �waiter_model�client�single_waiter_config�operation_name�operation_methodr �waiter_class_name�documented_waiter_clsr r r �create_waiter_with_client s,
�� ���r% c C s$ | � d�}t|t�rd|v rdS dS )N�Error�CodeTF)�get�
isinstance�dict)�response�errorr r r �is_valid_waiter_errorP s
r- c @ � e Zd Zdd� Zdd� ZdS )r c C s
|| _ d S r )�_client_method)r �
client_methodr r r �__init__X s
z"NormalizedOperationMethod.__init__c
K s>