3
ˆd~  ã               @   sL   d Z ddlmZ dd„ ZG dd„ deƒZG dd„ deƒZG d	d
„ d
eƒZdS )z? Defines the standard exceptions raised by the Traits package.
é   )Úclass_ofc             C   s   t | ƒ}d| |f }|S )z] Return a string representation of a value and its type for readable
    error messages.
    z%r %r)Útype)ÚobjZthe_typeÚmsg© r   ú5/tmp/pip-build-7vycvbft/traits/traits/trait_errors.pyÚ	repr_type   s    r   c               @   s0   e Zd Zd
dd„Zddd„Zdd„ Zdd	„ ZdS )Ú
TraitErrorNc             C   sN   |d kr t |tƒs|f}|| _n*|| _|| _|| _d | _d| _| jd |ƒ d S )NZThe)	Ú
isinstanceÚtupleÚargsÚnameÚinfoÚvalueÚdescÚprefixÚset_desc)Úselfr   r   r   r   r   r   r   Ú__init__   s    
zTraitError.__init__c             C   s2   t | dƒr.|d k	r|| _|d k	r&|| _| jƒ  d S )Nr   )Úhasattrr   ÚobjectÚset_args)r   r   r   r   r   r   r   ,   s    
zTraitError.set_descc             C   s   t | dƒr|| _| jƒ  d S )Nr   )r   r   r   )r   r   r   r   r   Ú
set_prefix4   s    
zTraitError.set_prefixc             C   s~   | j d krd}n
d| j  }t| dd ƒ}|d k	rXd| j| jt|ƒ|| jt| jƒf f| _n"d| j| j|| jt| jƒf f| _d S )NÚ z specifies %s andr   zK%s '%s' trait of %s instance%s must be %s, but a value of %s was specified.z<%s '%s' trait%s must be %s, but a value of %s was specified.)	r   Úgetattrr   r   r   r   r   r   r   )r   Úextrar   r   r   r   r   9   s$    

zTraitError.set_args)NNNN)N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r	      s   

r	   c               @   s   e Zd ZdS )ÚTraitNotificationErrorN)r   r   r   r   r   r   r   r   a   s   r   c               @   s   e Zd Zdd„ ZdS )ÚDelegationErrorc             C   s   |f| _ d S )N)r   )r   r   r   r   r   r   g   s    zDelegationError.__init__N)r   r   r   r   r   r   r   r   r    f   s   r    N)Ú__doc__Z
trait_baser   r   Ú	Exceptionr	   r   r    r   r   r   r   Ú<module>   s
   	G