o
    %zh                     @   sD   d dl Z e jdk sd dlmZ dS d dlmZ G dd deeZdS )    N)      )OrderedDict)	DictMixinc                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdddZ	dd Z
dd ZejZejZejZejZejZejZejZejZdd Zdd Zed ddZdd Zdd ZdS )!r   c                 O   sV   t |dkrtdt | z| j W n ty    |   Y nw | j|i | d S )N   z$expected at most 1 arguments, got %d)len	TypeError_OrderedDict__endAttributeErrorclearupdate)selfargskwds r   R/var/www/html/kangema/venv/lib/python3.10/site-packages/asn1crypto/_ordereddict.py__init__#   s   
zOrderedDict.__init__c                 C   s,   g  | _ }|d ||g7 }i | _t|  d S N)r	   _OrderedDict__mapdictr   )r   endr   r   r   r   ,   s   
zOrderedDict.clearc                 C   sH   || vr| j }|d }|||g |d<  |d< | j|< t| || d S )Nr   r   )r	   r   r   __setitem__)r   keyvaluer   currr   r   r   r   2   s
    zOrderedDict.__setitem__c                 C   s2   t | | | j|\}}}||d< ||d< d S )Nr   r   )r   __delitem__r   pop)r   r   prevnext_r   r   r   r   9   s   zOrderedDict.__delitem__c                 c   :    | j }|d }||ur|d V  |d }||usd S d S )Nr   r   r	   r   r   r   r   r   r   __iter__?      
zOrderedDict.__iter__c                 c   r   )Nr   r   r    r!   r   r   r   __reversed__F   r#   zOrderedDict.__reversed__Tc                 C   s<   | st d|rt|  }nt|  }| |}||fS )Nzdictionary is empty)KeyErrorreversednextiterr   )r   lastr   r   r   r   r   popitemM   s   
zOrderedDict.popitemc                    s\    fdd D } j  jf} `  `t  }|\ _  _|r( j|f|fS  j|ffS )Nc                    s   g | ]}| | gqS r   r   ).0kr   r   r   
<listcomp>X   s    z*OrderedDict.__reduce__.<locals>.<listcomp>)r   r	   varscopy	__class__)r   itemstmp	inst_dictr   r-   r   
__reduce__W   s   zOrderedDict.__reduce__c                 C   s   t | S r   )listr-   r   r   r   keysa   s   zOrderedDict.keysc                 C   s&   | s	d| j jf S d| j j|  f S )Nz%s()z%s(%r))r1   __name__r2   r-   r   r   r   __repr__m   s   zOrderedDict.__repr__c                 C   s
   |  | S r   )r1   r-   r   r   r   r0   r      
zOrderedDict.copyNc                 C   s   |  }|D ]}|||< q|S r   r   )clsiterabler   dr   r   r   r   fromkeysu   s   
zOrderedDict.fromkeysc                 C   sX   t |tr&t| t|krdS t|  | D ]\}}||kr# dS qdS t| |S )NFT)
isinstancer   r   zipr2   r   __eq__)r   otherpqr   r   r   rA   |   s   
zOrderedDict.__eq__c                 C   s
   | |k S r   r   )r   rB   r   r   r   __ne__   r:   zOrderedDict.__ne__)Tr   )r8   
__module____qualname__r   r   r   r   r"   r$   r*   r5   r7   r   
setdefaultr   r   valuesr2   iterkeys
itervalues	iteritemsr9   r0   classmethodr>   rA   rE   r   r   r   r   r   !   s0    	



r   )sysversion_infocollectionsr   UserDictr   r   r   r   r   r   <module>   s
   
