3
Òbn  ã               @   s   G d d„ de ƒZdS )c               @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚBidirMapc             K   s.   i | _ i | _x|D ]}| j||| ƒ qW d S )N)Úk2vÚv2kÚ__setitem__)ÚselfÚmapÚkey© r   úK/oak/stanford/groups/akundaje/marinovg/programs/s3cmd-master/S3/BidirMap.pyÚ__init__
   s    
zBidirMap.__init__c             C   s~   || j kr>| j | |kr>tdt|ƒ d t| j | ƒ d ƒ‚y| j | j| = W n tk
rd   Y nX || j|< || j |< d S )NzValue 'z' already in use with key 'ú')r   ÚKeyErrorÚstrr   )r   r   Úvaluer   r   r	   r      s    
&
zBidirMap.__setitem__c             C   s
   | j | S )N)r   )r   r   r   r   r	   Ú__getitem__   s    zBidirMap.__getitem__c             C   s
   | j jƒ S )N)r   Ú__str__)r   r   r   r	   r      s    zBidirMap.__str__c             C   s
   | j | S )N)r   )r   r   r   r   r	   Úgetkey!   s    zBidirMap.getkeyc             C   s
   | j | S )N)r   )r   r   r   r   r	   Úgetvalue$   s    zBidirMap.getvaluec             C   s   dd„ | j D ƒS )Nc             S   s   g | ]}|‘qS r   r   )Ú.0r   r   r   r	   ú
<listcomp>(   s    z!BidirMap.keys.<locals>.<listcomp>)r   )r   r   r   r	   Úkeys'   s    zBidirMap.keysc             C   s   dd„ | j D ƒS )Nc             S   s   g | ]}|‘qS r   r   )r   r   r   r   r	   r   +   s    z#BidirMap.values.<locals>.<listcomp>)r   )r   r   r   r	   Úvalues*   s    zBidirMap.valuesN)Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r   r   r   r   r   r   r   r	   r   	   s   r   N)Úobjectr   r   r   r   r	   Ú<module>	   s    