
    vKg)z                         S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJ	r	  SSK
Jr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJrJr  \R.                  " \5      rS
S/r/ SQrSr " S S5      rg)zInternal module to help with normalizing botocore client args.

This module (and all function/classes within this module) should be
considered internal, and *not* a public API.

    N)Config)EndpointCreator)EndpointResolverBuiltins)EndpointRulesetResolver)RequestSigner)UserAgentString)ensure_booleanis_s3_accelerate_urllegacyregional)zap-northeast-1z
ap-south-1zap-southeast-1zap-southeast-2
aws-globalzca-central-1zeu-central-1z
eu-north-1z	eu-west-1z	eu-west-2z	eu-west-3z	sa-east-1	us-east-1z	us-east-2z	us-west-1z	us-west-22   c                       \ rS rSr S!S jr   S"S jrS rS rS rS r	S	 r
S
 rS rS rS rS rS rS rS rS rS rS!S jrS rS rS rS rS rS rS rS rS rS rS r S r!g)#ClientArgsCreatorA   Nc                     Xl         X0l        X@l        XPl        X`l        Uc  [
        R                  " 5       U l        g Xpl        g N)_event_emitter_response_parser_factory_loader_exceptions_factory_config_storer   from_environment_session_ua_creator)selfevent_emitter
user_agentresponse_parser_factoryloaderexceptions_factoryconfig_storeuser_agent_creators           M/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/botocore/args.py__init__ClientArgsCreator.__init__B   s>     ,(?%#5 )%'6'G'G'ID$'9$    c                    U R                  UUU	UUUU5      nUS   nUS   nUS   nUS   nUS   nUS   nUS   R                  SS 5      nUS	   nUS
   nUS   nUS   n[        R                  " U R                  5      n[	        UR
                  UUS   US   UUU
5      nUUS'   [        S0 UD6n[        U5      nUR                  UUUS   UU R                  UR                  UR                  UR                  UR                  4UUR                  UR                  S9n[         R"                  R%                  UU5      n[         R&                  R)                  U5      nU R+                  UUUUUUUUUU	U5      n U R,                  R/                  U5      n!U(       a  UR0                  OS n"U"Ul        UUUUUUU R4                  UUU R6                  U U!S.$ )Nservice_nameparameter_validationendpoint_configprotocolconfig_kwargs	s3_configmetadata	partitionsocket_optionsconfigured_endpoint_urlsigning_regionregion_namesigning_namesignature_versions3endpoint_url)
r4   r8   verifyr   max_pool_connectionsproxiestimeoutr1   client_certproxies_config)
serializerendpointresponse_parserr   request_signerservice_modelr    client_configr0   r!   endpoint_ruleset_resolverr#    )compute_client_argsgetcopyr   r   
service_idr   r   create_endpointr   r:   r;   connect_timeoutread_timeoutr=   r>   botocore	serializecreate_serializerparserscreate_parser_build_endpoint_resolverr   with_client_configr   _supplied_user_agentr   r   )#r   rC   r4   	is_securer8   r9   credentialsscoped_configrD   endpoint_bridge
auth_tokenendpoints_ruleset_datapartition_data
final_argsr)   r*   r+   r,   r-   r.   r0   r1   r2   r3   endpoint_region_namer   signer
new_configendpoint_creatorr@   r?   rA   ruleset_resolverclient_ua_creatorsupplied_uas#                                      r$   get_client_args!ClientArgsCreator.get_client_argsV   sX    --

 ".1)*@A$%67j)"?3{+	#J/33KF	#$45",-F"G()9:.}=		$"5"56$$N+/0
 (d,m,
*=9#33,(8$($A$A!+!@!@&&//1H1HI)"..%44 4 
 ''99*

 #**88B88" #
 !44GG
 3@m..T*5
' % .*$*ll'""&":":)9"3
 	
r'   c                    UR                   nUR                  S   n	Sn
U(       a  UR                  (       d  Sn
O&U(       a  UR                  S5      nUb  [	        U5      n
U R                  U5      nU R                  UUS9nU R                  UUUUUUS9nUS   R                  S/ 5      nU R                  R                  U5      R                  5       n[        US	   US
   US9nSU;   a  UR                  SS9  SU;   a  UR                  SS9  Ub  UR                  UR                  UR                  UR                  UR                   UR"                  UR$                  UR&                  UR(                  UR*                  UR,                  UR.                  UR0                  UR2                  UR4                  UR6                  S9  U R9                  U5        U R;                  U5        U R=                  U5        U R?                  U5        U RA                  U5        U R                  U5      nU RC                  U5      nU(       a  SU;   a
  Uc  0 nSUS'   UU
UUU	UUU RE                  Xr5      S.$ )Nr,   TFr*   )rD   r8   )r)   r4   r8   rV   rY   r.   r/   tagsr4   r6   )r4   r6   r   	dualstack)use_dualstack_endpointfips)use_fips_endpoint)rL   rM   r:   r;   r>   retriesr=   inject_host_prefixtcp_keepaliveuser_agent_extrauser_agent_appid"request_min_compression_size_bytesdisable_request_compressionclient_context_paramssigv4a_signing_region_setrj   )r)   r*   r2   r+   r,   r-   r.   r1   )#endpoint_prefixr/   r*   rH   r	   compute_s3_config _compute_configured_endpoint_url_compute_endpoint_configr   rT   	to_stringdictupdaterL   rM   r:   r;   r>   rm   r=   rn   ro   rp   rq   rr   rs   rt   ru   _compute_retry_config_compute_connect_timeout _compute_user_agent_appid_config#_compute_request_compression_config)_compute_sigv4a_signing_region_set_config_is_s3_service_compute_socket_options)r   rC   rD   rY   r4   r8   rV   rX   r)   r,   r*   	raw_valuer.   r2   r+   endpoint_variant_tagspreliminary_ua_stringr-   is_s3_services                      r$   rG   %ClientArgsCreator.compute_client_args   s    %44 ))*5#!C!C#( %))*@AI$'5i'@$**=9	"&"G"G'% #H #

 77%#0+ 8 
 !0
 ; ? ? K !% 8 8 K K!

)+ 	 '6-.AB,

 //   =**  4 8$   - = =*77%2%G%G%--,;;%--)55#0#C#C+99!.!?!?!.!?!?!DD "==&3&I&I!;;) ! . 	""=1%%m4--m<00?66}E**=9	++L9[,AA 	26I./ )$8'>. *""::
 	
r'   c                     Ub  U$ U R                  U5      (       a  [        R                  S5        U$ U R                  R	                  S5      $ )Nz"Ignoring configured endpoint URLs.r8   ) _ignore_configured_endpoint_urlsloggerdebugr   get_config_variable)r   rD   r8   s      r$   rx   2ClientArgsCreator._compute_configured_endpoint_url.  sI    #00??LL=>!!55nEEr'   c                 x    U(       a  UR                   b  UR                   $ U R                  R                  S5      $ )Nignore_configured_endpoint_urls)r   r   r   )r   rD   s     r$   r   2ClientArgsCreator._ignore_configured_endpoint_urls8  s9    ==I @@@!!55-
 	
r'   c                     U R                   R                  S5      nUbI  UR                  b<  Uc  UR                  nU$ UR                  5       nUR	                  UR                  5        U$ )Nr7   )r   r   r7   rI   r|   )r   rD   s3_configurations      r$   rw   #ClientArgsCreator.compute_s3_configC  sr    --AA$G $+#+'4'7'7$   (8'<'<'>$$++M,<,<=r'   c                     US;   $ )a  Whether the service is S3 or S3 Control.

Note that throughout this class, service_name refers to the endpoint
prefix, not the folder name of the service in botocore/data. For
S3 Control, the folder name is 's3control' but the endpoint prefix is
's3-control'.
)r7   z
s3-controlrF   )r   r)   s     r$   r    ClientArgsCreator._is_s3_serviceV  s     333r'   c                     UUUUUS.nUS:X  a  U R                   " SSU0UD6$ US:X  a  U R                  " S0 UD6$ U R                  " S0 UD6$ )N)r)   r4   r8   rV   rY   r7   r.   stsrF   )_compute_s3_endpoint_config_compute_sts_endpoint_config_resolve_endpoint)r   r)   r4   r8   rV   rY   r.   resolve_endpoint_kwargss           r$   ry   *ClientArgsCreator._compute_endpoint_config`  s|     )&(".#
 433 #'>  5 44O7NOO%%@(?@@r'   c                     U R                  US   U5      nU(       a  S US'   U R                  " S0 UD6nU R                  XBS   5        U(       a  US   S:X  a  SUS'   U$ )Nr4   rY   r   r   rF   )_should_force_s3_globalr   !_set_region_if_custom_s3_endpoint)r   r.   r   force_s3_globalr+   s        r$   r   -ClientArgsCreator._compute_s3_endpoint_configx  sz     66#M2I
 59#M200K3JK..5FG	
 }=M-8OM*r'   c                 r    SnU(       a  SU;   a  US   nU R                  U5        US;   nUS:H  =(       a    U$ )Nr   us_east_1_regional_endpoint)r   N)_validate_s3_regional_config)r   r4   r.   s3_regional_configis_global_regions        r$   r   )ClientArgsCreator._should_force_s3_global  sK    %6)C!*+H!I--.@A&*==!X-B2BBr'   c                 R    U[         ;  a  [        R                  R                  US9eg )N)%s3_us_east_1_regional_endpoint_config)VALID_REGIONAL_ENDPOINTS_CONFIGrN   
exceptions+InvalidS3UsEast1RegionalEndpointConfigError)r   
config_vals     r$   r   .ClientArgsCreator._validate_s3_regional_config  s2    <<%%QQ6@ R   =r'   c                 b    US   c)  US   c"  UR                  S5      nUS   US'   US   US'   g g g )Nr3   r4   r7   resolve)r   r+   rY   r@   s       r$   r   3ClientArgsCreator._set_region_if_custom_s3_endpoint  sU     ,-5.6&..t4H089I0JO,--5m-DOM*	 7 6r'   c                     U R                   " S0 UD6nU R                  US   US   U5      (       a  U R                  X!S   5        U$ )Nr4   r8   rV   rF   )r   _should_set_global_sts_endpoint_set_global_sts_endpoint)r   r   r+   s      r$   r   .ClientArgsCreator._compute_sts_endpoint_config  s\    00K3JK//#M2#N3
 

 ))!E r'   c                     U=(       a!    UR                  S0 5      R                  S5      nU(       d  U(       a  gU R                  5       S:H  =(       a	    U[        ;   $ )Nr/   rh   Fr   )rH   "_get_sts_regional_endpoints_configLEGACY_GLOBAL_STS_REGIONS)r   r4   r8   r+   has_variant_tagss        r$   r   1ClientArgsCreator._should_set_global_sts_endpoint  s[     + /B/B0

#f+ 	 +335A 988	
r'   c                     U R                   R                  S5      nU(       d  SnU[        ;  a  [        R                  R                  US9eU$ )Nsts_regional_endpointsr   )sts_regional_endpoints_config)r   r   r   rN   r   &InvalidSTSRegionalEndpointsConfigError)r   r   s     r$   r   4ClientArgsCreator._get_sts_regional_endpoints_config  s^    (,(:(:(N(N$)
% -,4))23 %%LL.K M   -,r'   c                 4    U(       a  SOSnU S3US'   SUS'   g )Nhttpshttpz://sts.amazonaws.comr8   r   r3   rF   )r   r+   rV   schemes       r$   r   *ClientArgsCreator._set_global_sts_endpoint  s(    %6-3H4H*I',7()r'   c                 &    UR                  XX45      $ r   r   )r   r)   r4   r8   rV   rY   s         r$   r   #ClientArgsCreator._resolve_endpoint  s     &&|
 	
r'   c                 D   [         R                  [         R                  S4/nU=(       a    UR                  nU=(       a!    U R	                  UR                  SS5      5      nU(       d  U(       a0  UR                  [         R                  [         R                  S45        U$ )N   ro   F)	socketIPPROTO_TCPTCP_NODELAYro   _ensure_booleanrH   append
SOL_SOCKETSO_KEEPALIVE)r   rX   rD   r1   client_keepalivescoped_keepalives         r$   r   )ClientArgsCreator._compute_socket_options  s     "--v/A/A1EF(H]-H-H( 
T-A-Aou5.
 /!!6#4#4f6I6I1"MNr'   c                 H    U R                  U5        U R                  U5        g r   )_compute_retry_max_attempts_compute_retry_mode)r   r-   s     r$   r}   'ClientArgsCreator._compute_retry_config  s    ((7  /r'   c                     UR                  S5      nUb9  SU;   a  UR                  SS 5        g SU;   a  UR                  S5      nUS-   US'   g U R                  R                  S5      nUb  Uc  0 nX!S'   XBS'   g g )Nrm   total_max_attemptsmax_attemptsr   )rH   popr   r   )r   r-   rm   valuer   s        r$   r   -ClientArgsCreator._compute_retry_max_attempts  s      ##I.#w.ND1(N3 16	,- ))==nM#+2i(,8()	 $r'   c                     UR                  S5      nUc  0 nX!S'   OSU;   a  g U R                  R                  S5      nUc  SnX2S'   g )Nrm   mode
retry_moder   rH   r   r   )r   r-   rm   r   s       r$   r   %ClientArgsCreator._compute_retry_mode  sY    ##I.?G'.)$w '';;LI
!J$r'   c                 |    UR                  S5      nUb  g U R                  R                  S5      nU(       a  X!S'   g g )NrL   r   )r   r-   rL   s      r$   r~   *ClientArgsCreator._compute_connect_timeout"  sJ     (++,=>&,,@@
 />+, r'   c                 
   UR                  S5      nUR                  S5      nUc  U R                  R                  S5      nU R                  U5      nX!S'   Uc  U R                  R                  S5      nO[	        U5      nX1S'   g )Nrr   rs   )rH   r   r   _validate_min_compression_sizer	   )r   r-   min_sizedisableds       r$   r   5ClientArgsCreator._compute_request_compression_config/  s     $$%IJ $$%BC))==4H 66x@>F:;))==-H
 &h/H7?34r'   c                 (   SnSnUbH  SU S3n [        U5      nX!s=::  a  U::  d*  O  U SU S	U S
3n[        R
                  R                  US9eU$ ! [        [        4 a/    U S[        U5       S3n[        R
                  R                  US9ef = f)Nr   i   zInvalid value "z)" for request_min_compression_size_bytes.z$ Value must be an integer. Received z	 instead.)	error_msgz Value must be between z and .)int
ValueError	TypeErrortyperN   r   InvalidConfigError)r   r   min_allowed_min_sizemax_allowed_min_sizeerror_msg_basemsgs         r$   r   0ClientArgsCreator._validate_min_compression_sizeE  s     &!( ,6 6 Lx= (K7KK%&&=+,E2F1GqJ  ))<<s<KK 	* L%& '  $X/y:  ))<<s<KKLs   A ?Bc                 V    [        U[        5      (       a  U$ UR                  5       S:H  $ )Ntrue)
isinstanceboollower)r   vals     r$   r   !ClientArgsCreator._ensure_boolean^  s%    c4  J99;&((r'   c                 t   Uc  g U R                  U5      =(       d    0 nUR                  nUS;   d  Uc  UnOUnU R                  UUUU
UUR                  S9nUb  UR                  =(       d    0 nO0 nU R                  U5      (       a  UR                  U5        Ub  UR                  OS n[        UUUUUUU	US9$ )N)r7   r   )r4   r)   r.   rY   client_endpoint_urllegacy_endpoint_url)endpoint_ruleset_datar\   rC   builtinsclient_contextr   use_sslrequested_auth_scheme)	rw   rv   *compute_endpoint_resolver_builtin_defaultshostrt   r   r|   r6   r   )r   r[   r\   rD   rC   r^   r4   r8   r@   rV   rY   r   s3_config_rawservice_name_raweprv2_region_nameresolver_builtinsr  sig_versions                     r$   rS   *ClientArgsCreator._build_endpoint_resolverd  s     ") ..}=C(88 },0C 4 + KK))#+ , ( L 
 $*@@FBNN/00!!-0 ( ++ 	
 '"8)'&)'"-	
 		
r'   c                    U(       a  UnOUR                  5       (       d  UnOS nUR                  SS5      (       a  SnO<Ub%  [        U5      (       d  UR                  S5      S:g  nOUR                  S5      S:H  n[        R                  U[        R
                  US L =(       a    UR                  S5      =(       d    S[        R                  US L =(       a    UR                  U5      =(       d    S[        R                  U R                  US S S9[        R                  U R                  X5      [        R                  UR                  SS5      [        R                  U[        R                  UR                  SS	5      [        R                   UR                  SS5      [        R"                  UR                  S
S5      [        R$                  U0$ )Nuse_accelerate_endpointFaddressing_stylevirtualpathrl   )r4   r8   r+   use_arn_regionT$s3_disable_multiregion_access_points)resolver_uses_builtin_datarH   r
   EPRBuiltins
AWS_REGIONAWS_USE_FIPS$_resolve_endpoint_variant_config_varAWS_USE_DUALSTACK_resolve_use_dualstack_endpointAWS_STS_USE_GLOBAL_ENDPOINTr   AWS_S3_USE_GLOBAL_ENDPOINTr   AWS_S3_ACCELERATEAWS_S3_FORCE_PATH_STYLEAWS_S3_USE_ARN_REGIONAWS_S3CONTROL_USE_ARN_REGIONAWS_S3_DISABLE_MRAPSDK_ENDPOINT)	r   r4   r)   r.   rY   r   r  given_endpointforce_path_styles	            r$   r  <ClientArgsCreator.compute_endpoint_resolver_builtin_defaults  s    0N !;;==0N!N ==2E::$ ,5I6
 6
  )}}-?@IM(}}-?@FJ ""K$$$&  $HH' ))$&  $CC  3344 +!%$( 5  22,,[D))9==)5, //1A--y}} $0 44imm %7 ++Y]]6. $$n[.
 .	
r'   c                     UR                  S5      nUc  U R                  R                  S5      nUb0  [        U5      [        :  a  [
        R                  S[         S35        X!S'   g )Nrq   zHThe configured value for user_agent_appid exceeds the maximum length of z characters.)rH   r   r   lenUSERAGENT_APPID_MAXLENr   warning)r   r-   rq   s      r$   r   2ClientArgsCreator._compute_user_agent_appid_config  su    (,,-?@##11EE"  ($%(>>NN%%;$<LJ -=()r'   c                 j    UR                  S5      nUc  U R                  R                  S5      nX!S'   g )Nru   r   )r   r-   ru   s      r$   r   ;ClientArgsCreator._compute_sigv4a_signing_region_set_config  sD    $1$5$5'%
! %,(,(:(:(N(N+)% 6O12r'   )r   r   r   r   r   r   r   )NNN)"__name__
__module____qualname____firstlineno__r%   re   rG   rx   r   rw   r   ry   r   r   r   r   r   r   r   r   r   r   r}   r   r   r~   r   r   r   rS   r  r   r   __static_attributes__rF   r'   r$   r   r   A   s      :> #i
Vk
ZF	
 &4A0*CE

-8


09@%?@,2)>
@R
h= Or'   r   )__doc__rI   loggingr   botocore.exceptionsrN   botocore.parsersbotocore.serializebotocore.configr   botocore.endpointr   botocore.regionsr   r  r   botocore.signersr   botocore.useragentr   botocore.utilsr	   r
   	getLoggerr/  r   r   r   r*  r   rF   r'   r$   <module>r@     sq          " - D 4 * . ?			8	$ #  (  OO OOr'   