o
    ×Ügé  ã                   @   s   G d d„ de ƒZdS )c                   @   sF   e Zd ZdZi Zddd„Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dS )ÚIndexedListz´
    List with optimised access by value
    Based on Alex Martelli's recipe

    http://code.activestate.com/recipes/52303-the-auxiliary-dictionary-idiom-for-sequences-with-/
    Nc                 C   sJ   d| _ i | _|d ur!d| _ t|ƒD ]\}}|| j|< t | |¡ qd S d S )NTF)ÚcleanÚ_dictÚ	enumerateÚlistÚappend)ÚselfÚiterableÚidxÚval© r   úU/var/www/html/api-tag/env/lib/python3.10/site-packages/openpyxl/utils/indexed_list.pyÚ__init__   s   
üzIndexedList.__init__c                 C   s:   i | _ d}| D ]}|| j vr|| j |< |d7 }qd| _d S )Né    é   T)r   r   )r   r	   Úvaluer   r   r   Ú_rebuild_dict   s   

€
zIndexedList._rebuild_dictc                 C   s   | j s|  ¡  || jv S ©N)r   r   r   ©r   r   r   r   r   Ú__contains__    s   
zIndexedList.__contains__c                 C   s   || v r	| j | S t‚r   )r   Ú
ValueErrorr   r   r   r   Úindex%   s   
zIndexedList.indexc                 C   s,   || j vrt| ƒ| j |< t | |¡ d S d S r   )r   Úlenr   r   r   r   r   r   r   *   s   
þzIndexedList.appendc                 C   s   |   |¡ | j| S r   )r   r   r   r   r   r   Úadd/   s   

zIndexedList.addr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r   r   r   r   r      s    
		r   N)r   r   r   r   r   r   Ú<module>   s   