o
    ßý°j›  ã                   @   s"   d dl mZ G dd„ deeƒZdS )é    )Ú	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 )!ÚOrderedDictc                 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   ú†/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/ldap3/utils/ordDict.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   Ú__setitem__)r   ÚkeyÚvaluer   Úcurrr   r   r   r   -   s
    zOrderedDict.__setitem__c                 C   s2   t  | |¡ | j |¡\}}}||d< ||d< d S )Nr   r   )r   Ú__delitem__r   Úpop)r   r   ÚprevÚnextr   r   r   r   4   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__A   r"   zOrderedDict.__reversed__Tc                 C   s<   | st dƒ‚|rt| ƒ ¡ }nt| ƒ ¡ }|  |¡}||fS )Nzdictionary is empty)ÚKeyErrorÚreversedr   Úiterr   )r   Úlastr   r   r   r   r   ÚpopitemH   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>S   s    z*OrderedDict.__reduce__.<locals>.<listcomp>)r   r   ÚvarsÚcopyÚ	__class__)r   ÚitemsÚtmpÚ	inst_dictr   r+   r   Ú
__reduce__R   s   zOrderedDict.__reduce__c                 C   s   t | ƒS r   )Úlistr+   r   r   r   Úkeys\   s   zOrderedDict.keysc                 C   s&   | s	d| j jf S d| j j|  ¡ f S )Nz%s()z%s(%r))r/   Ú__name__r0   r+   r   r   r   Ú__repr__h   s   zOrderedDict.__repr__c                 C   s
   |   | ¡S r   )r/   r+   r   r   r   r.   m   ó   
zOrderedDict.copyNc                 C   s   | ƒ }|D ]}|||< q|S r   r   )ÚclsÚiterabler   Údr   r   r   r   Úfromkeysp   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   Úzipr0   r   Ú__eq__)r   ÚotherÚpÚqr   r   r   r?   w   s   
ÿzOrderedDict.__eq__c                 C   s
   | |k S r   r   )r   r@   r   r   r   Ú__ne__�   r8   zOrderedDict.__ne__)Tr   )r6   Ú
__module__Ú__qualname__r   r	   r   r   r!   r#   r(   r3   r5   r   Ú
setdefaultr
   r   Úvaluesr0   ÚiterkeysÚ
itervaluesÚ	iteritemsr7   r.   Úclassmethodr<   r?   rC   r   r   r   r   r      s0    	



r   N)ÚUserDictr   r   r   r   r   r   r   Ú<module>   s   