
    Dh                          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y)    )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y)ClientCreatorContextc                      || _         d | _        y N)_coro_client)selfcoros     u/var/www/fastuser/data/www/generator.snapmosaic.io/flask_app/venv/lib/python3.12/site-packages/aiobotocore/session.py__init__zClientCreatorContext.__init__   s    
    returnc                    K   | j                    d {   | _        | j                  j                          d {   S 7 +7 wr   )r   r   
__aenter__r   s    r   r$   zClientCreatorContext.__aenter__   s3     !ZZ'\\,,... (.s   A>&AA A Ac                 Z   K   | j                   j                  |||       d {    y 7 wr   )r   	__aexit__)r   exc_typeexc_valexc_tbs       r   r'   zClientCreatorContext.__aexit__   s"     ll$$Xw???s   !+)+N)__name__
__module____qualname__r    r   r$   r'    r!   r   r   r      s    /- /@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 )
AioSessionc                 B    |
t               }t        | 	  ||||       y r   )r   superr    )r   session_varsevent_hooksinclude_builtin_handlersprofile	__class__s        r   r    zAioSession.__init__%   s*     02K+'?	
r!   c                     t        |       S r   r   r%   s    r   _create_token_resolverz!AioSession._create_token_resolver3   s    $T**r!   c                 0    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                   j                  d|       y )Nc                  V    j                  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<   s7    &*&B&B)'# $9#F 5')= r!   smart_defaults_factory)_internal_componentslazy_register_component)r   rD   s   ` r    _register_smart_defaults_factoryz+AioSession._register_smart_defaults_factory;   s$    	 	!!99$&C	
r!   c                 L    | j                   j                  dt                      y )Nresponse_parser_factory)_componentsregister_componentr   r%   s    r   !_register_response_parser_factoryz,AioSession._register_response_parser_factoryI   s    ++%'?'A	
r!   c                 (    t        |||      | _        y r   )r   _credentials)r   
access_key
secret_keytokens       r   set_credentialszAioSession.set_credentialsN   s    *:z5Ir!   c                    K   | j                   6| j                  j                  d      j                          d {   | _         | j                   S 7 w)Ncredential_provider)rO   rK   get_componentload_credentialsr%   s    r   get_credentialszAioSession.get_credentialsQ   sO     $  ..)""$!D
    !s   9AAAc                 \   K   | j                  ||       d {   }t        ||      S 7 w)N)service_name)get_service_datar   )r   rZ   api_versionservice_descriptions       r   get_service_modelzAioSession.get_service_modelZ   s6     $($9$9+%
 
 /lKK
s   ,*,c                    K   |}| j                  d      j                  |d|      }t        j                  ||      }| j                  j                  d|z  |||        d{    |S 7 w)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KK+ L 
 #&&|\B
ll$z1%%	   
 	
 	
 	
s   A!A,#A*$A,c                 8    t         | j                  |i |      S r   )r   _create_client)r   argskwargss      r   create_clientzAioSession.create_clientq   s     #$7D$7$7$H$HIIr!   c                   K   | j                         }|
||j                  |
      }
n||}
| j                  ||
      }|| j                  d      }|!| j                  d      j	                  |d       }| j                  d      }| j                  d      }| j                  d      }|
|
j                  t        u rd }nZ||t        |||	      }nG| j                  ||      rt        d| j                  ||            | j                          d {   }| j                         }| j                  d	      }| j                  d
      }| j                  d      }| j                  |
|      }|dk7  rA| j                  d      }t        j                   |      }|j#                  |||       d {    t%        ||| j'                         |t(        t*        |||	      }|j-                  ||||||| j/                         |
||
       d {   }| j                  d      }|%|j1                  |j2                  j4                         |S 7 47 7 Cw)N	ca_bundleapi_versionsr`   event_emitterrJ   )rP   rQ   rR   explicit)providercred_varendpoint_resolverexceptions_factoryconfig_storelegacyrE   )
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   _resolve_defaults_moder
   deepcopymerge_smart_defaultsr   
user_agentr   r   rm   get_scoped_configregistermetaevents)r   rZ   r;   r\   use_sslr{   rz   aws_access_key_idaws_secret_access_keyaws_session_tokenconfigdefault_client_configloaderrq   rJ   r|   r   ru   rv   rw   defaults_moderE   client_creatorclientr   s                            r   rj   zAioSession._create_clientt   s     !% > > @ "7"C*008F #.*F//VD >--k:F22>BFFdK ##M2**?;"&"4"45N"O&":":h"FK).C.O(,0'K
 $$%68MN)#00%'<  !% 4 4 66K((*
 889LM!99:NO)).933FLIH$%)%A%A(&"  ==6L(==m[   *OO#

 &33%#%#002 #! 4 
 
 ..y9V[[//0Q 7
s8   DIIBI/I0AI	I
?IIIc                    K   | j                  d      }g }	 | j                  |       d {   }|d   j                  d|      }|j                  |||      }|S 7 .# t        $ r Y |S w xY ww)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		!%!6!6|!DDL*:6:: ,O 661CG
  E # 		s8   A,A A,A A,A 	A)%A,(A))A,)NNTNr   )	NNTNNNNNN)awsF)r+   r,   r-   r    r9   r=   rH   rM   rS   rX   r^   r[   rm   rj   r   __classcell__)r7   s   @r   r0   r0   "   sv    
 !%
+




J!L"J "aH 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      sO    ( 7   3 > C ) - ) (
@ 
@D DN r!   