U
    n/e
                     @   s4   d dl Z d dlZd dlmZ G dd dejjZdS )    N)ParamValidationErrorc                       s2   e Zd Zd fdd	Zdd Zedd Z  ZS )		AioConfigNc                    sJ   t  jf | | | t|| _| js2t | _d| jkrFd| jd< d S )Nkeepalive_timeout   )super__init___validate_connector_argscopyconnector_argsdict)selfr
   kwargs	__class__ 6/tmp/pip-unpacked-wheel-8mnez3y6/aiobotocore/config.pyr      s    

zAioConfig.__init__c                 C   s&   t  | j}||j t| jf|S )N)r	   Z_user_provided_optionsupdater   r
   )r   Zother_configZconfig_optionsr   r   r   merge   s    zAioConfig.mergec                 C   s  | d krd S |   D ]\}}|dkr@t|ts>t| ddq|dkrp|d k	rnt|ttfsnt| ddq|dkrt|tst| ddq|dkrdd l}t||jst| d	dq|d
krddlm	} t||st| ddqtd| dqd S )NZuse_dns_cachez value must be a boolean)reportr   z" value must be a float/int or NoneZforce_closessl_contextr   z must be an SSLContext instanceresolver)AbstractResolverz* must be an instance of a AbstractResolverzinvalid connector_arg:)
items
isinstanceboolr   floatintssl
SSLContextZaiohttp.abcr   )r
   kvr   r   r   r   r   r      s>    


z"AioConfig._validate_connector_args)N)__name__
__module____qualname__r   r   staticmethodr   __classcell__r   r   r   r   r      s   r   )r	   Zbotocore.clientZbotocoreZbotocore.exceptionsr   clientZConfigr   r   r   r   r   <module>   s   