+
    i                     F    ^ RI Ht ^ RIHt  ! R R4      t ! R R4      tR# )    )ClientError)get_service_module_namec                   6   a  ] tR t^t o ]tR tR tR tRtV t	R# )BaseClientExceptionsc                    Wn         R# )zBase class for exceptions object on a client

:type code_to_exception: dict
:param code_to_exception: Mapping of error codes (strings) to exception
    class that should be raised when encountering a particular
    error code.
N_code_to_exception)selfcode_to_exceptions   &&7/usr/lib/python3/dist-packages/botocore/errorfactory.py__init__BaseClientExceptions.__init__   s
     #4    c                L    V P                   P                  WP                  4      # )a  Retrieves the error class based on the error code

This is helpful for identifying the exception class needing to be
caught based on the ClientError.parsed_reponse['Error']['Code'] value

:type error_code: string
:param error_code: The error code associated to a ClientError exception

:rtype: ClientError or a subclass of ClientError
:returns: The appropriate modeled exception class for that error
    code. If the error code does not match any of the known
    modeled exceptions then return a generic ClientError.
)r	   getr   )r
   
error_codes   &&r   	from_codeBaseClientExceptions.from_code   s!     &&**:7G7GHHr   c           	         V P                   P                  4        Uu. uF  pVP                  NK  	  pp\        V  R V RRP	                  V4       24      hu upi )z object has no attribute z. Valid exceptions are: z, )r	   values__name__AttributeErrorjoin)r
   nameexception_clsexception_cls_namess   &&  r   __getattr__ BaseClientExceptions.__getattr__.   st     "&!8!8!?!?!A
!A ""!A 	 
 v.tf 5&&*ii0C&D%EG
 	
	
s   Ar   N)
r   
__module____qualname____firstlineno__r   r   r   r   __static_attributes____classdictcell____classdict__s   @r   r   r      s     K4I 
 
r   r   c                   2   a  ] tR t^9t o R tR tR tRtV tR# )ClientExceptionsFactoryc                    / V n         R # )N_client_exceptions_cache)r
   s   &r   r    ClientExceptionsFactory.__init__:   s
    (*%r   c                    VP                   pW P                  9  d    V P                  V4      pW0P                  V&   V P                  V,          # )aZ  Creates a ClientExceptions object for the particular service client

:type service_model: botocore.model.ServiceModel
:param service_model: The service model for the client

:rtype: object that subclasses from BaseClientExceptions
:returns: The exceptions object of a client that can be used
    to grab the various different modeled exceptions.
)service_namer*   _create_client_exceptions)r
   service_modelr-   client_exceptionss   &&  r   create_client_exceptions0ClientExceptionsFactory.create_client_exceptions=   sK     %11<<< $ > >} M:K)),7,,\::r   c                "   / p/ pVP                    FG  p\        VP                  4      p\        V\        3/ 4      pWbV&   \        VP
                  4      pWcV&   KI  	  \        \        V4      R ,           4      p\        V\        3V4      p	V	! V4      # )
Exceptions)error_shapesstrr   typer   r   r   r   )
r
   r/   	cls_propsr   error_shapeexception_namer   codecls_nameclient_exceptions_clss
   &&        r   r.   1ClientExceptionsFactory._create_client_exceptionsM   s    	(55K !1!12N +DM(5n%{--.D&3d# 6 .}=LM $+-y!
 %%677r   r)   N)	r   r   r    r!   r   r1   r.   r"   r#   r$   s   @r   r'   r'   9   s     +; 8 8r   r'   N)botocore.exceptionsr   botocore.utilsr   r   r'    r   r   <module>rB      s"    , 2%
 %
P!8 !8r   