
    vKgE                     j    S SK r S SKJr  \" S/ SQ5      r " S S\5      rS rS rS r " S	 S
5      rg)    N)
namedtuple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       K/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/boto3/utils.pyr   r      s    & 	r   c                 >    [        U 5        [        R                  U    $ )zAImport module given a name.

Does not support relative imports.

)
__import__sysmodules)names    r   import_moduler   2   s     t;;t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>._handler?   sA     ) 0 0a 8v&m$v-777r   r   )r$   r!   r&   r%   s   `  @r   	lazy_callr(   <   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_attributesr   values      r   inject_attributer-   H   s0    -dV 4, -
 	

 "'r   c                   $    \ rS rSrSrS rS rSrg)LazyLoadedWaiterModelR   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__\   s    ")'r   c                     U R                   R                  U R                  U R                  5      R	                  U5      $ r2   )r3   get_waiter_modelr4   r5   
get_waiter)r6   waiter_names     r   r=    LazyLoadedWaiterModel.get_waitera   s4    }}-- 1 1

*[
!	"r   )r5   r4   r3   N)r   r   r   r   r   r9   r=   r   r   r   r   r/   r/   R   s    (
"r   r/   )	r   collectionsr   _ServiceContextr   r   r(   r-   r/   r   r   r   <module>rB      sD     "	_ 	.	'" "r   