B
    5d                 @   s4   d Z ddlmZ ddlZdgZG dd deeZdS )z%
A dict that implements MutableAttr.
    )MutableAttrNAttrDictc                   sP   e Zd ZdZ fddZdd Zdd Zdd	 Z fd
dZe	dd Z
  ZS )r   z-
    A dict that implements MutableAttr.
    c                s.   t t| j|| | dt | dd d S )N_sequence_type_allow_invalid_attributesF)superr   __init___setattrtuple)selfargskwargs)	__class__ 7/tmp/pip-unpacked-wheel-akj3st3j/attrdict/dictionary.pyr      s    zAttrDict.__init__c             C   s   | j S )z<
        The configuration for an attrmap instance.
        )r   )r
   r   r   r   _configuration   s    zAttrDict._configurationc             C   s   |   | j| jfS )z'
        Serialize the object.
        )copyr   r   )r
   r   r   r   __getstate__   s    zAttrDict.__getstate__c             C   s0   |\}}}|  | | d| | d| dS )z)
        Deserialize the object.
        r   r   N)updater   )r
   statemappingZsequence_typeZallow_invalid_attributesr   r   r   __setstate__&   s    

zAttrDict.__setstate__c                s   t djtt|  dS )NzAttrDict({contents}))contents)sixuformatr   r   __repr__)r
   )r   r   r   r   /   s    
zAttrDict.__repr__c             C   s   | |}| d| |S )z-
        A standardized constructor.
        r   )r   )clsr   configurationattrr   r   r   _constructor4   s    zAttrDict._constructor)__name__
__module____qualname____doc__r   r   r   r   r   classmethodr   __classcell__r   r   )r   r   r      s   
	)r#   Zattrdict.mixinsr   r   __all__dictr   r   r   r   r   <module>   s   