B
    d}                 @   sD   d dl mZmZmZ d dlmZ G dd deZG dd deZdS )    )absolute_importdivisionprint_function)zipc               @   s,   e Zd ZddgZdd Zdd Zdd Zd	S )
unique_list
value_list	value_setc             C   s   g | _ t | _d S )N)r   setr   )O r   j/mnt/filia/a/genomebrowser/www/genomebrowser/fleming/tools/molprobity/modules/cctbx_project/fable/utils.py__init__   s    zunique_list.__init__c             C   s
   || j kS )N)r   )r
   valuer   r   r   __contains__   s    zunique_list.__contains__c             C   s&   || j kr"| j| | j | d S )N)r   r   appendadd)r
   r   r   r   r   r      s    
zunique_list.appendN)__name__
__module____qualname__	__slots__r   r   r   r   r   r   r   r      s   r   c               @   s.   e Zd ZdddgZdd Zdd Zdd	 Zd
S )keyed_listsindices_by_keykeyslistsc             C   s   i | _ g | _g | _d S )N)r   r   r   )r
   r   r   r   r      s    zkeyed_lists.__init__c             C   s`   G dd dt }| j||}||krVt| j| j|< | j| g }| j| |S | j| S )Nc               @   s   e Zd ZdS )zkeyed_lists.get.<locals>.undefN)r   r   r   r   r   r   r   undef   s    r   )objectr   getlenr   r   r   )r
   keyr   iresultr   r   r   r      s    zkeyed_lists.getc             C   s   t t| j| jS )N)listr   r   r   )r
   r   r   r   items'   s    zkeyed_lists.itemsN)r   r   r   r   r   r   r"   r   r   r   r   r      s   
r   N)	
__future__r   r   r   	six.movesr   r   r   r   r   r   r   r   <module>   s   