ó
    Ú°›j½  ã                   óh   • S SK Jr  S SKJr  \" S/ SQ5      r " S S\5      rS rS r " S S	5      rg
)é    )Ú
namedtuple)Úimport_moduleÚServiceContext)Úservice_nameÚservice_modelÚservice_waiter_modelÚresource_json_definitionsc                   ó   • \ rS rSrSrSrg)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__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    ÚH/home/mande/repo/quber/.venv/lib/python3.13/site-packages/boto3/utils.pyr   r      s   † ñò& 	r   c                 ó   ^ ^• UmU U4S jnU$ )Nc                  ó†   >• TR                  SS5      u  p[        U5      nU R                  T5        [        X5      " S0 U D6$ )NÚ.é   r   )Úrsplitr   ÚupdateÚgetattr)ÚkwargsÚmoduleÚfunction_nameÚ	full_nameÚparent_kwargss      €€r   Ú_handlerÚlazy_call.<locals>._handler5   sA   ø€ Ø )× 0Ñ 0°°aÓ 8ÑˆÜ˜vÓ&ˆØ�‰�mÔ$Ü�vÔ-Ñ7°Ñ7Ð7r   r   )r   r   r!   r    s   `  @r   Ú	lazy_callr#   2   s   ù€ Ø€Mö8ð €Or   c                 ó4   • X;   a  [        SU S35      eX U'   g )NzCannot inject class attribute "z*", attribute already exists in class dict.)ÚRuntimeError)Úclass_attributesÚnameÚvalues      r   Úinject_attributer)   >   s0   € ØÓÜØ-¨d¨Vð 4,ð -ó
ð 	
ð
 "'˜Òr   c                   ó$   • \ rS rSrSrS rS rSrg)ÚLazyLoadedWaiterModeléH   a\  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                 ó(   • Xl         X l        X0l        g ©N)Ú_sessionÚ_service_nameÚ_api_version)ÚselfÚ
bc_sessionr   Úapi_versions       r   Ú__init__ÚLazyLoadedWaiterModel.__init__R   s   € Ø"ŒØ)ÔØ'Õr   c                 ó€   • U R                   R                  U R                  U R                  5      R	                  U5      $ r.   )r/   Úget_waiter_modelr0   r1   Ú
get_waiter)r2   Úwaiter_names     r   r9   Ú LazyLoadedWaiterModel.get_waiterW   s4   € Ø�}‰}×-Ñ-Ø×Ñ × 1Ñ 1ó
ç
‰*�[Ó
!ð	"r   )r1   r0   r/   N)r   r   r   r   r   r5   r9   r   r   r   r   r+   r+   H   s   † ñò(õ
"r   r+   N)	Úcollectionsr   Ú	importlibr   Ú_ServiceContextr   r#   r)   r+   r   r   r   Ú<module>r?      s?   ðõ #Ý #áØòó€ô	�_ô 	ò.	ò'÷"ò "r   