HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/awscli/__pycache__/paramfile.cpython-36.pyc
3

�T_n'�W@s�ddlZddlZddlZddlmZddlmZddlmZddl	m
Z
ddl	mZddlm
Z
eje�Zedd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]gV�ZGd^d_�d_e�Zd`da�ZGdbdc�dce�Zddde�Zdfdg�Zdhdi�Zedjdkifedjdlifdm�Zeifeifdn�ZdS)o�N)�
AWSRequest)�URLLib3Session)�ProfileNotFound)�six)�compat_open)�
ParamErrorzapi-gateway.put-integration.uriz.api-gateway.create-integration.integration-uriz.api-gateway.update-integration.integration-urizapi-gateway.create-api.targetzapi-gateway.update-api.targetz#appstream.create-stack.redirect-urlz#appstream.create-stack.feedback-urlz#appstream.update-stack.redirect-urlz#appstream.update-stack.feedback-urlz(cloudformation.create-stack.template-urlz(cloudformation.update-stack.template-urlz,cloudformation.create-stack-set.template-urlz,cloudformation.update-stack-set.template-urlz-cloudformation.create-change-set.template-urlz-cloudformation.validate-template.template-urlz2cloudformation.estimate-template-cost.template-urlz0cloudformation.get-template-summary.template-urlz,cloudformation.create-stack.stack-policy-urlz,cloudformation.update-stack.stack-policy-urlz0cloudformation.set-stack-policy.stack-policy-urlzcustom.package.template-filezcustom.deploy.template-filez:cloudformation.update-stack.stack-policy-during-update-urlzcustom.cp.website-redirectzcustom.mv.website-redirectzcustom.sync.website-redirectz guardduty.create-ip-set.locationz guardduty.update-ip-set.locationz*guardduty.create-threat-intel-set.locationz*guardduty.update-threat-intel-set.locationz(comprehend.detect-dominant-language.textz3comprehend.batch-detect-dominant-language.text-listzcomprehend.detect-entities.textz*comprehend.batch-detect-entities.text-listz"comprehend.detect-key-phrases.textz-comprehend.batch-detect-key-phrases.text-listz comprehend.detect-sentiment.textz+comprehend.batch-detect-sentiment.text-listz'iam.create-open-id-connect-provider.urlz)machine-learning.predict.predict-endpointz=mediatailor.put-playback-configuration.ad-decision-server-urlz3mediatailor.put-playback-configuration.slate-ad-urlz?mediatailor.put-playback-configuration.video-content-source-urlz+rds.copy-db-cluster-snapshot.pre-signed-urlz$rds.create-db-cluster.pre-signed-urlz#rds.copy-db-snapshot.pre-signed-urlz2rds.create-db-instance-read-replica.pre-signed-urlz:sagemaker.create-notebook-instance.default-code-repositoryz?sagemaker.create-notebook-instance.additional-code-repositoriesz:sagemaker.update-notebook-instance.default-code-repositoryz?sagemaker.update-notebook-instance.additional-code-repositoriesz@serverlessapplicationrepository.create-application.home-page-urlz>serverlessapplicationrepository.create-application.license-urlz=serverlessapplicationrepository.create-application.readme-urlzBserverlessapplicationrepository.create-application.source-code-urlz?serverlessapplicationrepository.create-application.template-urlzJserverlessapplicationrepository.create-application-version.source-code-urlzGserverlessapplicationrepository.create-application-version.template-urlz@serverlessapplicationrepository.update-application.home-page-urlz=serverlessapplicationrepository.update-application.readme-urlz*service-catalog.create-product.support-urlz*service-catalog.update-product.support-urlzsqs.add-permission.queue-urlz'sqs.change-message-visibility.queue-urlz-sqs.change-message-visibility-batch.queue-urlzsqs.delete-message.queue-urlz"sqs.delete-message-batch.queue-urlzsqs.delete-queue.queue-urlz"sqs.get-queue-attributes.queue-urlz,sqs.list-dead-letter-source-queues.queue-urlzsqs.receive-message.queue-urlzsqs.remove-permission.queue-urlzsqs.send-message.queue-urlz sqs.send-message-batch.queue-urlz"sqs.set-queue-attributes.queue-urlzsqs.purge-queue.queue-urlzsqs.list-queue-tags.queue-urlzsqs.tag-queue.queue-urlzsqs.untag-queue.queue-urlz(s3.copy-object.website-redirect-locationz4s3.create-multipart-upload.website-redirect-locationz's3.put-object.website-redirect-locationz#sns.subscribe.notification-endpointziot.create-job.document-sourceztranslate.translate-text.textz?workdocs.create-notification-subscription.notification-endpointc@seZdZdS)�ResourceLoadingErrorN)�__name__�
__module__�__qualname__�rr�/usr/lib/python3.6/paramfile.pyr�srcKsbtjt�}y|j�jdd�dk}Wntk
r:d}YnX|rJ|jt�t|�}|j	d|�dS)NZcli_follow_urlparam�trueTzload-cli-arg)
�copy�deepcopy�LOCAL_PREFIX_MAPZget_scoped_config�getr�update�REMOTE_PREFIX_MAP�URIArgumentHandler�register)�session�kwargsZ
prefix_mapZ	fetch_urlZhandlerrrr
�register_uri_param_handler�s


rc@s&eZdZddd�Zdd�Zdd�ZdS)	rNcCs&|dkrtjt�}|jt�||_dS)N)rrrrr�	_prefixes)�self�prefixesrrr
�__init__�s

zURIArgumentHandler.__init__cKsD|}dj|jd�dd��}|tks0t|dd�r4dS|j||�SdS)z-Handler that supports param values from URIs.�.�NZno_paramfile)�join�split�PARAMFILE_DISABLED�getattr�_check_for_uri_param)rZ
event_name�param�valuerZcli_argumentZqualified_param_namerrr
�__call__�szURIArgumentHandler.__call__cCsdt|t�rt|�dkr|d}yt||j�Stk
r^}zt|jtj	|���WYdd}~XnXdS)Nrr)
�
isinstance�list�len�
get_paramfilerrrZcli_namerZ	text_type)rr%r&�errr
r$�sz'URIArgumentHandler._check_for_uri_param)N)r	r
rrr'r$rrrr
r�s

rcCsJd}t|tj�rFx4|j�D](\}}|j|�r|\}}|||f|�}qW|S)aLLoad parameter based on a resource URI.

    It is possible to pass parameters to operations by referring
    to files or URI's.  If such a reference is detected, this
    function attempts to retrieve the data from the file or URI
    and returns it.  If there are any errors or if the ``path``
    does not appear to refer to a file or URI, a ``None`` is
    returned.

    :type path: str
    :param path: The resource URI, e.g. file://foo.txt.  This value
        may also be a non resource URI, in which case ``None`` is returned.

    :type cases: dict
    :param cases: A dictionary of URI prefixes to function mappings
        that a parameter is checked against.

    :return: The loaded value associated with the resource URI.
        If the provided ``path`` is not a resource URI, then a
        value of ``None`` is returned.

    N)r(rZstring_types�items�
startswith)�pathZcases�data�prefixZ
function_specZfunctionrrrr
r+�s
r+cCs�tjjtjj|t|�d���}yt||��
}|j�SQRXWnTtk
r^td|��Yn6t	t
fk
r�}ztd||f��WYdd}~XnXdS)Nz�Unable to load paramfile (%s), text contents could not be decoded.  If this is a binary file, please use the fileb:// prefix instead of the file:// prefix.zUnable to load paramfile %s: %s)�osr/�
expandvars�
expanduserr*r�read�UnicodeDecodeErrorr�OSError�IOError)r1r/�modeZ	file_path�fr,rrr
�get_file�s r;cCsty<t�}|jtd|�j��}|jdkr,|jStd|j��Wn2tk
rn}ztd||f��WYdd}~XnXdS)NZGET��z"received non 200 status code of %szUnable to retrieve %s: %s)r�sendrZprepareZstatus_code�textr�	Exception)r1Zurir�rr,rrr
�get_uri�s
rAr9r@�rb)zfile://zfileb://)zhttp://zhttps://)Zloggingr2rZbotocore.awsrequestrZbotocore.httpsessionrZbotocore.exceptionsrZ
awscli.compatrrZawscli.argprocessrZ	getLoggerr	Zlogger�setr"r?rr�objectrr+r;rArrrrrr
�<module>
s�