HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/botocore/__pycache__/args.cpython-310.pyc
o

*we�w�@s�dZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
ZddlmZddlmZddlmZdd	lmZmZe�e�Zd
dgZgd�Zd
ZGdd�d�ZdS)z�Internal 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)zap-northeast-1z
ap-south-1zap-southeast-1zap-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-2�2c@s�eZdZ	d:dd�Z			d;dd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd:d$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�ZdS)<�ClientArgsCreatorNcCs>||_||_||_||_||_|durt��|_dS||_dS�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_creator�r �F/home/arjun/projects/env/lib/python3.10/site-packages/botocore/args.py�__init__As

zClientArgsCreator.__init__c
#
Csn|�|||	||||�}
|
d}|
d}|
d}|
d}|
d}|
d}|d�dd�}|
d	}|
d
}|d}|d}t�|j�}t|j||d
|d|||
�}||d<tdi|��}t|�}|j|||d||j	|j
|j|j|j
f||j|jd�}tj�||�}tj�|�}|�||||||||||	|�} |j�|�}!|r�|jnd}"|"|_|||||||j|||j| |!d�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)
r.r2�verifyr�max_pool_connections�proxies�timeoutr+�client_cert�proxies_config)�
serializer�endpoint�response_parserr�request_signer�
service_modelr�
client_configr*r�endpoint_ruleset_resolverrr )�compute_client_args�get�copyrr�
service_idrr�create_endpointrr4r5�connect_timeout�read_timeoutr7r8�botocore�	serialize�create_serializer�parsers�
create_parser�_build_endpoint_resolverr�with_client_configr�_supplied_user_agentrr)#rr=r.�	is_securer2r3�credentials�
scoped_configr>�endpoint_bridge�
auth_token�endpoints_ruleset_data�partition_data�
final_argsr#r$r%r&r'r(r*r+r,r-�endpoint_region_namer�signer�
new_config�endpoint_creatorr:r9r;�ruleset_resolver�client_ua_creator�supplied_uar r r!�get_client_argsUs��
�

�����z!ClientArgsCreator.get_client_argscCs�|j}|jd}	d}
|r|jsd}
n|r!|�d�}|dur!t|�}
|�|�}|j||d�}
|j|||
|||d�}|d�dg�}|j�	|��
�}t|d	|d
|d�}d|vr]|jdd
�d|vrg|jdd�|dur�|j|j
|j|j|j|j|j|j|j|j|j|j|j|j|jd�|�|�|�|�|�|�|�|�|�|�}|�|�}|r�d|vr�|dur�i}d|d<||
|
||	|||� ||�d�S)Nr&TFr$)r>r2)r#r.r2rOrRr(r)�tagsr.r0)r.r0r�	dualstack)�use_dualstack_endpoint�fips)�use_fips_endpoint)rErFr4r5r8�retriesr7�inject_host_prefix�
tcp_keepalive�user_agent_extra�user_agent_appid�"request_min_compression_size_bytes�disable_request_compression�client_context_paramsra)r#r$r,r%r&r'r(r+)!�endpoint_prefixr)r$rAr�compute_s3_config� _compute_configured_endpoint_url�_compute_endpoint_configrrM�	to_string�dict�updaterErFr4r5r8rdr7rerfrgrhrirjrk�_compute_retry_config�_compute_connect_timeout� _compute_user_agent_appid_config�#_compute_request_compression_config�_is_s3_service�_compute_socket_options)rr=r>rRr.r2rOrQr#r&r$�	raw_valuer(r,r%�endpoint_variant_tags�preliminary_ua_stringr'�
is_s3_servicer r r!r@�s�




������





��z%ClientArgsCreator.compute_client_argscCs0|dur|S|�|�rt�d�|S|j�d�S)Nz"Ignoring configured endpoint URLs.r2)� _ignore_configured_endpoint_urls�logger�debugr�get_config_variable)rr>r2r r r!rn)s

z2ClientArgsCreator._compute_configured_endpoint_urlcCs |r
|jdur
|jS|j�d�S)N�ignore_configured_endpoint_urls)r�rr�)rr>r r r!r}3s�
�z2ClientArgsCreator._ignore_configured_endpoint_urlscCsH|j�d�}|dur"|jdur"|dur|j}|S|��}|�|j�|S)Nr1)rr�r1rBrr)rr>�s3_configurationr r r!rm>s
	�z#ClientArgsCreator.compute_s3_configcCs|dvS)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'.
        )r1z
s3-controlr )rr#r r r!rwQsz ClientArgsCreator._is_s3_servicecCsT|||||d�}|dkr|jdd|i|��S|dkr"|jdi|��S|jdi|��S)N)r#r.r2rOrRr1r(�stsr )�_compute_s3_endpoint_config�_compute_sts_endpoint_config�_resolve_endpoint)rr#r.r2rOrRr(�resolve_endpoint_kwargsr r r!ro[s
���z*ClientArgsCreator._compute_endpoint_configcKsX|�|d|�}|rd|d<|jdi|��}|�||d�|r*|ddkr*d|d<|S)Nr.rRrr
r )�_should_force_s3_globalr��!_set_region_if_custom_s3_endpoint)rr(r��force_s3_globalr%r r r!r�ss��z-ClientArgsCreator._compute_s3_endpoint_configcCs6d}|rd|vr|d}|�|�|dv}|dko|S)Nr
�us_east_1_regional_endpoint)r
N)�_validate_s3_regional_config)rr.r(�s3_regional_config�is_global_regionr r r!r��s
z)ClientArgsCreator._should_force_s3_globalcCs|tvrtjj|d��dS)N)�%s3_us_east_1_regional_endpoint_config)�VALID_REGIONAL_ENDPOINTS_CONFIGrG�
exceptions�+InvalidS3UsEast1RegionalEndpointConfigError)r�
config_valr r r!r��s
��z.ClientArgsCreator._validate_s3_regional_configcCsF|ddur|ddur!|�d�}|d|d<|d|d<dSdSdS)Nr-r.r1��resolve)rr%rRr:r r r!r��s
�z3ClientArgsCreator._set_region_if_custom_s3_endpointcKs:|jdi|��}|�|d|d|�r|�||d�|S)Nr.r2rOr )r��_should_set_global_sts_endpoint�_set_global_sts_endpoint)rr�r%r r r!r��s��z.ClientArgsCreator._compute_sts_endpoint_configcCs6|o
|�di��d�}|s|rdS|��dko|tvS)Nr)r_Fr
)rA�"_get_sts_regional_endpoints_config�LEGACY_GLOBAL_STS_REGIONS)rr.r2r%�has_variant_tagsr r r!r��s���z1ClientArgsCreator._should_set_global_sts_endpointcCs.|j�d�}|s
d}|tvrtjj|d��|S)N�sts_regional_endpointsr
)�sts_regional_endpoints_config)rr�r�rGr��&InvalidSTSRegionalEndpointsConfigError)rr�r r r!r��s���z4ClientArgsCreator._get_sts_regional_endpoints_configcCs$|rdnd}d||d<d|d<dS)N�https�httpz%s://sts.amazonaws.comr2r
r-r )rr%rO�schemer r r!r��sz*ClientArgsCreator._set_global_sts_endpointcCs|�||||�Srr�)rr#r.r2rOrRr r r!r��s�z#ClientArgsCreator._resolve_endpointcCsPtjtjdfg}|o|j}|o|�|�dd��}|s|r&|�tjtjdf�|S)N�rfF)	�socket�IPPROTO_TCP�TCP_NODELAYrf�_ensure_booleanrA�append�
SOL_SOCKET�SO_KEEPALIVE)rrQr>r+�client_keepalive�scoped_keepaliver r r!rx�s

�z)ClientArgsCreator._compute_socket_optionscCs|�|�|�|�dSr)�_compute_retry_max_attempts�_compute_retry_mode)rr'r r r!rs�s
z'ClientArgsCreator._compute_retry_configcCs�|�d�}|dur&d|vr|�dd�dSd|vr&|�d�}|d|d<dS|j�d�}|dur@|dur:i}||d<||d<dSdS)Nrd�total_max_attempts�max_attemptsr�)rA�poprr�)rr'rd�valuer�r r r!r��s 


�z-ClientArgsCreator._compute_retry_max_attemptscCsP|�d�}|duri}||d<nd|vrdS|j�d�}|dur"d}||d<dS)Nrd�mode�
retry_moder
�rArr�)rr'rdr�r r r!r�s

z%ClientArgsCreator._compute_retry_modecCs6|�d�}|durdS|j�d�}|r||d<dSdS)NrEr�)rr'rEr r r!rts
��z*ClientArgsCreator._compute_connect_timeoutcCsd|�d�}|�d�}|dur|j�d�}|�|�}||d<|dur(|j�d�}nt|�}||d<dS)Nrirj)rArr��_validate_min_compression_sizer)rr'�min_size�disabledr r r!rv*s

�
�z5ClientArgsCreator._compute_request_compression_configc	Cs�d}d}|durLd|�d�}zt|�}Wnttfy.|�dt|��d�}tjj|d��w||kr9|ksLn|�d|�d	|�d
�}tjj|d��|S)Nr�izInvalid 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�typerGr��InvalidConfigError)rr��min_allowed_min_size�max_allowed_min_size�error_msg_base�msgr r r!r�@s.
�������z0ClientArgsCreator._validate_min_compression_sizecCst|t�r|S|��dkS)N�true)�
isinstance�bool�lower)r�valr r r!r�Ys
z!ClientArgsCreator._ensure_booleanc
Cs�|durdS|�|�pi}|j}
|
dvs|dur|}n|}|j||
||
||jd�}|dur3|jp1i}ni}|�|
�r?|�|�|durF|jnd}t|||||||	|d�S)N)r1r�)r.r#r(rR�client_endpoint_url�legacy_endpoint_url)�endpoint_ruleset_datarUr=�builtins�client_contextr�use_ssl�requested_auth_scheme)	rmrl�*compute_endpoint_resolver_builtin_defaults�hostrkrwrrr0r)rrTrUr>r=rWr.r2r:rOrRr�
s3_config_raw�service_name_raw�eprv2_region_name�resolver_builtinsr��sig_versionr r r!rL_sD�

���z*ClientArgsCreator._build_endpoint_resolverc	Cs�|r|}n	|��s|}nd}|�dd�rd}n|dur't|�s'|�d�dk}n|�d�dk}tj|tj|dur<|�d�p=dtj|durH|�|�pIdtj	|j
|ddd�tj|�||�tj
|�dd�tj|tj|�dd	�tj|�dd�tj|�d
d�tj|iS)N�use_accelerate_endpointF�addressing_style�virtual�pathrc)r.r2r%�use_arn_regionT�$s3_disable_multiregion_access_points)�resolver_uses_builtin_datarAr	�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)	rr.r#r(rRr�r��given_endpoint�force_path_styler r r!r��sd
������
�����z<ClientArgsCreator.compute_endpoint_resolver_builtin_defaultscCsP|�d�}|dur|j�d�}|dur"t|�tkr"t�dt�d��||d<dS)NrhzHThe configured value for user_agent_appid exceeds the maximum length of z characters.)rArr��len�USERAGENT_APPID_MAXLENr~�warning)rr'rhr r r!ru�s
���z2ClientArgsCreator._compute_user_agent_appid_configr)NNN)�__name__�
__module__�__qualname__r"r^r@rnr}rmrwror�r�r�r�r�r�r�r�r�rxrsr�r�rtrvr�r�rLr�rur r r r!r@sB	
�
�ki

	


 
@Tr)�__doc__rB�loggingr��botocore.exceptionsrG�botocore.parsers�botocore.serialize�botocore.configr�botocore.endpointr�botocore.regionsrr�r�botocore.signersr�botocore.useragentr�botocore.utilsrr	�	getLoggerr�r~r�r�r�rr r r r!�<module>s*
�