o
    .فi                     @   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   \/home/test-dt/pcm-url-check/venv/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   