HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/site-packages/botocore/__pycache__/validate.cpython-38.pyc
U

KD�g�5�@s�dZddlZddlZddlmZddlmZddlmZmZdd�Z	dd	�Z
d
d�ZGdd
�d
�ZGdd�d�Z
Gdd�d�ZdS)aQUser input parameter validation.

This module handles user input parameter validation
against a provided input model.

Note that the objects in this module do *not* mutate any
arguments.  No type version happens here.  It is up to another
layer to properly convert arguments to any required types.

Validation Errors
-----------------


�N)�datetime)�ParamValidationError)�is_json_value_header�parse_to_aware_datetimecCs,t�}|�||�}|��r(t|��d��dS)avValidates input parameters against a schema.

    This is a convenience function that validates parameters against a schema.
    You can also instantiate and use the ParamValidator class directly if you
    want more control.

    If there are any validation errors then a ParamValidationError
    will be raised.  If there are no validation errors than no exception
    is raised and a value of None is returned.

    :param params: The user provided input parameters.

    :type shape: botocore.model.Shape
    :param shape: The schema which the input parameters should
        adhere to.

    :raise: ParamValidationError

    ��reportN)�ParamValidator�validate�
has_errorsr�generate_report)�params�shape�	validatorr�r�>/opt/cppython/lib/python3.8/site-packages/botocore/validate.py�validate_parameterssrcs�fdd�}|S)Ncs��fdd�}�fdd��|S)Ncs �|||�r�|||||�SdS�Nr��self�paramr
�errors�name��_type_check�funcrr�_on_passes_type_check4szKtype_check.<locals>._create_type_check_guard.<locals>._on_passes_type_checkcs2t|��s.dd��D�}|j|d||d�dSdS)NcSsg|]}t|��qSr��str��.0�trrr�
<listcomp>:szUtype_check.<locals>._create_type_check_guard.<locals>._type_check.<locals>.<listcomp>�invalid type�r�valid_typesFT)�
isinstancer)rrr�valid_type_names�r$rrr8s
�zAtype_check.<locals>._create_type_check_guard.<locals>._type_checkr)rrr'rr�_create_type_check_guard3sz,type_check.<locals>._create_type_check_guardr)r$r(rr'r�
type_check2sr)cCsnd}td�}d|jkr.|jd}||krTd}n&t|d�rT|j�d�rTd}||krTd}|rj|j||||d�dS)	NFz-inf�minT�
serializationZ	hostLabel�)r�min_allowed)�float�metadata�hasattrr+�getr)r�valuer
�
error_typerZfailedr-rrr�range_checkIs


r4c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�ValidationErrorscCs
g|_dSr��_errors�rrrr�__init__[szValidationErrors.__init__cCs|jr
dSdS�NTFr6r8rrrr
^szValidationErrors.has_errorscCs*g}|jD]}|�|�|��q
d�|�S)N�
)r7�append�
_format_error�join)rZerror_messages�errorrrrrcs
z ValidationErrors.generate_reportcCs�|\}}}|�|�}|dkr2d|�d|d�d�S|dkrf|d}d�|d	�}d
|�d|�d|��S|dkr�|d
}t|�}d�|d�}	d|�d|�d|�d|	��S|dkr�|d
}|d}
d|�d|�d|
��S|dk�r|d
}|d}
d|�d|�d|
��S|dk�r d�||d�S|dk�rd|d
}t|�}d�|d�}	d|�d|�d|�d|	��S|dk�r�d�|d �}d!|�d"|�d#�S|d$k�r�d�|d �}d%|�d&|�d#�SdS)'N�missing required fieldzMissing required parameter in z: "�
required_name�"�
unknown field�
unknown_paramz, �valid_nameszUnknown parameter in z", must be one of: r"rr$zInvalid type for parameter z	, value: z, type: z, valid types: �
invalid ranger-zInvalid value for parameter z, valid min value: �invalid lengthzInvalid length for parameter z, valid min length: �unable to encode to jsonz2Invalid parameter {} must be json serializable: {}�
type_error�invalid type for documentz$Invalid type for document parameter �more than one input�membersz<Invalid number of parameters set for tagged union structure z*. Can only set one of the following keys: �.�empty inputz=Must set one of the following keys for tagged unionstructure z: )�	_get_namer>�type�format)rr?r3r�
additionalrDrEr�
param_typer$r-rLrrrr=isZ

����
�
�
�
�
�zValidationErrors._format_errorcCs&|sdS|�d�r|dd�S|SdS)N�inputrMr,)�
startswith)rrrrrrO�s

zValidationErrors._get_namecKs|j�|||f�dSr)r7r<)rr�reason�kwargsrrrr�szValidationErrors.reportN)	�__name__�
__module__�__qualname__r9r
rr=rOrrrrrr5Zs@r5c@seZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Ze	e
fd�d
d��Ze	efd�dd��Z
e	eefd�dd��Ze	e
fd�dd��Ze	efd�dd��Zdd�Ze	efd�dd��Ze	eejfefd�dd��ZeZe	efd�dd��Zdd �Zd!d"�Zd#S)$rz+Validates parameters against a shape model.cCst�}|j|||dd�|S)a�Validate parameters against a shape model.

        This method will validate the parameters against a provided shape model.
        All errors will be collected before returning to the caller.  This means
        that this method will not stop at the first error, it will return all
        possible errors.

        :param params: User provided dict of parameters
        :param shape: A shape model describing the expected input.

        :return: A list of errors.

        �)r)r5�	_validate)rrr
rrrrr	�szParamValidator.validatecCs(t|�r|jS|jdkr$|jr$|jSdS)NZ	structure)r�_validate_jsonvalue_string�	type_nameZis_document_type�_validate_document)rr
rrr�_check_special_validation_cases�sz.ParamValidator._check_special_validation_casescCs>|�|�}|r|||||�nt|d|j���||||�dS)NZ
_validate_)r`�getattrr^)rrr
rrZspecial_validatorrrrr\�s
�zParamValidator._validatec
CsJzt�|�Wn6ttfk
rD}z|j|d|d�W5d}~XYnXdS)NrH)rI)�json�dumps�
ValueError�	TypeErrorr)rrr
rr�errrr]�sz)ParamValidator._validate_jsonvalue_stringc
	Cs�|dkrdSt|t�r6|D]}|�|||||�qn�t|t�rlt|�D] \}}|�|||d||f�qHnJt|tftttf�s�ttttttf}dd�|D�}	|j	|d|t
|�|	d�dS)Nz%s[%d]cSsg|]}t|��qSrrrrrrr!�sz5ParamValidator._validate_document.<locals>.<listcomp>rJ)rrSr$)r%�dictr_�list�	enumerater�int�boolr.rrP)
rrr
rr�key�index�entityr$r&rrrr_�s.


��z!ParamValidator._validate_documentr'c		Cs�|jrDt|�dkr&|j|d|jd�nt|�dkrD|j|d|jd�|j�dg�D]}||krR|j|d||d�qR|j}g}|D].}||kr�|j|d	|t|�d
�q�|�|�q�|D](}|�|||j|||�d|���q�dS)NrrN)rLr,rK�requiredr@)rAZuser_paramsrC)rDrErM)	Zis_tagged_union�lenrrLr/r1rhr<r\)	rrr
rrZrequired_memberrLZknown_paramsrrrr�_validate_structure�sF����z"ParamValidator._validate_structurecCst|t|�|d|�dS)NrG)r4rprrrr�_validate_string!s
zParamValidator._validate_stringc
CsL|j}t|t|�|d|�t|�D]$\}}|�||||�d|�d��q"dS)NrG�[�])�memberr4rprir\)rrr
rrZmember_shape�i�itemrrr�_validate_list-szParamValidator._validate_listc	
CsX|j}|j}|��D]>\}}|�||||�d|�d��|�||||�d|���qdS)Nz (key: �)rM)rlr2�itemsr\)	rrr
rrZ	key_shapeZvalue_shaperlr2rrr�
_validate_map4s
zParamValidator._validate_mapcCst|||d|�dS�NrF�r4rrrr�_validate_integer<sz ParamValidator._validate_integercCsFt|tttf�rdSt|d�r"dS|j|d|tt�tt�dgd�dS)N�readr"zfile-like objectr#)r%�bytes�	bytearrayrr0rrrrr�_validate_blob@s
�zParamValidator._validate_blobcCsdSrrrrrr�_validate_booleanNsz ParamValidator._validate_booleancCst|||d|�dSr|r}rrrr�_validate_doubleRszParamValidator._validate_doublecCst|||d|�dSr|r}rrrr�_validate_longXszParamValidator._validate_longcCs0|�|�}|s,tt�dg}|j|d||d�dS)Nztimestamp-stringr"r#)�_type_check_datetimerrr)rrr
rrZ
is_valid_typer&rrr�_validate_timestamp\s
�z"ParamValidator._validate_timestampc
Cs0zt|�WdStttfk
r*YdSXdSr:)rrerd�AttributeError)rr2rrrr�gs
z#ParamValidator._type_check_datetimeN)rXrYrZ�__doc__r	r`r\r]r_r)rgrqrrrrh�tuplerxr{rjr~r�rkr�r.�decimal�Decimalr�Z_validate_floatr�r�r�rrrrr�s4	

(











rc@seZdZdd�Zdd�ZdS)�ParamValidationDecoratorcCs||_||_dSr)�_param_validator�_serializer)rZparam_validator�
serializerrrrr9rsz!ParamValidationDecorator.__init__cCsB|j}|dk	r4|j�||j�}|��r4t|��d��|j�||�S)Nr)�input_shaper�r	r
rrr��serialize_to_request)r�
parametersZoperation_modelr�rrrrr�vs��z-ParamValidationDecorator.serialize_to_requestN)rXrYrZr9r�rrrrr�qsr�)r�r�rbrZbotocore.exceptionsrZbotocore.utilsrrrr)r4r5rr�rrrr�<module>s[=