File: //usr/lib/python3.6/site-packages/botocore/__pycache__/validate.cpython-36.pyc
3
�T_�, � @ s� d Z ddlmZ ddlZddlZddlmZ ddlmZ ddlmZ ddl m
Z
dd � Zd
d� Zdd
� Z
G dd� de�ZG dd� de�ZG dd� de�ZdS )aQ User 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
-----------------
� )�sixN)�datetime)�parse_to_aware_datetime)�is_json_value_header)�ParamValidationErrorc C s, t � }|j| |�}|j� r(t|j� d��dS )av Validates 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�shapeZ validatorr � r �/usr/lib/python3.6/validate.py�validate_parameters s r c s � fdd�}|S )Nc s � �fdd�}�fdd�� |S )Nc s � |||�r�| ||||�S d S )Nr )�self�paramr
�errors�name)�_type_check�funcr r �_on_passes_type_check6 s zKtype_check.<locals>._create_type_check_guard.<locals>._on_passes_type_checkc s2 t | � �s.dd� � D �}|j|d| |d� dS dS )Nc S s g | ]}t j|��qS r )r � text_type)�.0�tr r r �
<listcomp><