
    pge'#                         d dl mZmZ d dlmZ d dlmZmZmZm	Z	m
Z
 ddlmZ ddlmZmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZ ddlmZ  G d d          Z G d de          ZddZdS )    )UNSIGNED	translate)PartialCredentialsError)EVENT_ALIASESServiceModelSessionUnknownServiceErrorcopy   )retryhandler)AioBaseClientAioClientCreator)"AioSmartDefaultsConfigStoreFactory)AioCredentialscreate_credential_resolver)AioHierarchicalEmitter)AioResponseParserFactorycreate_token_resolver)AioIMDSRegionProviderc                   &    e Zd Zd ZdefdZd ZdS )ClientCreatorContextc                 "    || _         d | _        d S N)_coro_client)selfcoros     3lib/python3.11/site-packages/aiobotocore/session.py__init__zClientCreatorContext.__init__   s    
    returnc                 h   K   | j          d {V | _        | j                                         d {V S r   )r   r   
__aenter__r   s    r   r$   zClientCreatorContext.__aenter__   sG      !Z''''''\,,.........r!   c                 N   K   | j                             |||           d {V  d S r   )r   	__aexit__)r   exc_typeexc_valexc_tbs       r   r'   zClientCreatorContext.__aexit__   s8      l$$Xw???????????r!   N)__name__
__module____qualname__r    r   r$   r'    r!   r   r   r      sR          /- / / / /@ @ @ @ @r!   r   c                        e Zd Z	 	 	 	 d fd	Zd Zd Zd Zd ZddZd	 Z	dd
Z
ddZd Z	 	 	 	 	 	 	 	 	 ddZ	 ddZ xZS )
AioSessionNTc                 p    |t                      }t                                          ||||           d S r   )r   superr    )r   session_varsevent_hooksinclude_builtin_handlersprofile	__class__s        r   r    zAioSession.__init__%   sF     022K+'?	
 	
 	
 	
 	
r!   c                      t          |           S r   r   r%   s    r   _create_token_resolverz!AioSession._create_token_resolver3   s    $T***r!   c                 .    t          | | j                  S )N)region_name)r   _last_client_region_usedr%   s    r   _create_credential_resolverz&AioSession._create_credential_resolver6   s!    )d;
 
 
 	
r!   c                 H      fd} j                             d|           d S )Nc                  n                         d          } t                    }t          | |          S )Ndefault_config_resolver)session)_get_internal_componentr   r   )r@   imds_region_providerr   s     r   create_smart_defaults_factoryzRAioSession._register_smart_defaults_factory.<locals>.create_smart_defaults_factory<   sG    &*&B&B)' '# $9#F#F#F 5')=  r!   smart_defaults_factory)_internal_componentslazy_register_component)r   rD   s   ` r    _register_smart_defaults_factoryz+AioSession._register_smart_defaults_factory;   sI    	 	 	 	 	 	!99$&C	
 	
 	
 	
 	
r!   c                 T    | j                             dt                                 d S )Nresponse_parser_factory)_componentsregister_componentr   r%   s    r   !_register_response_parser_factoryz,AioSession._register_response_parser_factoryI   s3    ++%'?'A'A	
 	
 	
 	
 	
r!   c                 2    t          |||          | _        d S r   )r   _credentials)r   
access_key
secret_keytokens       r   set_credentialszAioSession.set_credentialsN   s    *:z5IIr!   c                    K   | j         7| j                            d                                           d {V | _         | j         S )Ncredential_provider)rO   rK   get_componentload_credentialsr%   s    r   get_credentialszAioSession.get_credentialsQ   sb      $ ..) ""$$! ! ! ! ! !D
   r!   c                 `   K   |                      ||           d {V }t          ||          S )N)service_name)get_service_datar   )r   rZ   api_versionservice_descriptions       r   get_service_modelzAioSession.get_service_modelZ   sU      $($9$9+%
 %
 
 
 
 
 
 
 /lKKKKr!   c                    K   |}|                      d                              |d|          }t          j        ||          }| j                            d|z  |||            d{V  |S )zK
        Retrieve the fully merged data associated with a service.
        data_loaderz	service-2)	type_namer\   zservice-data-loaded.%s)service_datarZ   rA   N)rV   load_service_modelr   get_eventsemit)r   rZ   r\   	data_pathrb   
service_ids         r   r[   zAioSession.get_service_data`   s       !	))-88KK+ L 
 
 #&|\BB
l$z1%%	   
 
 	
 	
 	
 	
 	
 	
 	
 r!   c                 6    t           | j        |i |          S r   )r   _create_client)r   argskwargss      r   create_clientzAioSession.create_clientq   s#    #$7D$7$H$H$HIIIr!   c                   K   |                                  }|
||                    |
          }
n||}
|                     ||
          }||                     d          }|)|                     d                              |d           }|                     d          }|                     d          }|                     d          }|
|
j        t          u rd }nl||t          |||	          }nU| 	                    ||          r%t          d| 	                    ||                    |                                  d {V }|                                 }|                     d	          }|                     d
          }t          j        |                     d                    }|                     d          }|                    | j        | j        | j                   |                     |
|          }|dk    r2|                     d          }|                    |||           d {V  |                     ||           t-          |||                                 |t0          t2          ||||
  
        }|                    |||||||                                 |
||
  
         d {V }|                     d          }||                    |j        j                   |S )N	ca_bundleapi_versionsr`   event_emitterrJ   )rP   rQ   rR   explicit)providercred_varendpoint_resolverexceptions_factoryconfig_storeuser_agent_creator)session_user_agent_namesession_user_agent_versionsession_user_agent_extralegacyrE   )client_namerw   )rx   )
rZ   r;   	is_secureendpoint_urlverifycredentialsscoped_configclient_configr\   
auth_tokenmonitor)get_default_client_configmerge_resolve_region_nameget_config_variablerd   rV   signature_versionr   r   _missing_cred_varsr   rX   get_auth_tokenrB   r
   set_session_configuser_agent_nameuser_agent_versionuser_agent_extra_resolve_defaults_modemerge_smart_defaults!_add_configured_endpoint_providerr   
user_agentr   r   rm   get_scoped_configregistermetaevents)r   rZ   r;   r\   use_sslr   r   aws_access_key_idaws_secret_access_keyaws_session_tokenconfigdefault_client_configloaderrq   rJ   r   r   ru   rv   rw   rx   defaults_moderE   client_creatorclientr   s                             r   rj   zAioSession._create_clientt   s      !% > > @ @ "7"C*0088FF #.*F//VDD >--k::F22>BBFFd K ##M22**?;;"&"4"45N"O"O&":h"F"FKK).C.O(,0'  KK
 $$%68MNN 	7)#00%'<     !% 4 4 6 6666666K((**
 889LMM!99:NOOy!3!3N!C!CDD!//0DEE 	--$($8'+'>%)%: 	. 	
 	
 	

 33FLIIH$$%)%A%A(& &" )==m[         	..$% 	/ 	
 	
 	
 *OO#1
 
 
 &33%#%#0022 #! 4 
 
 
 
 
 
 
 
 ..y99V[/000r!   awsFc                    K   |                      d          }g }	 |                     |           d {V }|d                             d|          }|                    |||          }n# t          $ r Y nw xY w|S )Nru   metadataendpointPrefix)rB   r[   rd   get_available_endpointsr	   )r   rZ   partition_nameallow_non_regionalresolverresultsrb   endpoint_prefixs           r   get_available_regionsz AioSession.get_available_regions   s       //0CDD		!%!6!6|!D!DDDDDDDL*:6:: , O 661C GG # 	 	 	D	s   AA* *
A76A7)NNTNr   )	NNTNNNNNN)r   F)r+   r,   r-   r    r9   r=   rH   rM   rS   rX   r^   r[   rm   rj   r   __classcell__)r7   s   @r   r0   r0   "   s=       
 !%
 
 
 
 
 
+ + +
 
 


 
 

 
 

J J J J! ! !L L L L   "J J J "n n n nb FK       r!   r0   Nc                      t          |           S )z&
    Return a new session object.
    )r0   )env_varss    r   get_sessionr      s     hr!   r   ) botocorer   r   botocore.exceptionsr   botocore.sessionr   r   r   r	   r
    r   r   r   r   configproviderr   r   r   r   hooksr   parsersr   tokensr   utilsr   r   r0   r   r.   r!   r   <module>r      s   ( ( ( ( ( ( ( ( 7 7 7 7 7 7                    3 3 3 3 3 3 3 3 > > > > > > C C C C C C C C ) ) ) ) ) ) - - - - - - ) ) ) ) ) ) ( ( ( ( ( (
@ 
@ 
@ 
@ 
@ 
@ 
@ 
@Q Q Q Q Q Q Q Qh           r!   