
    >OOf                     x    d Z 	 ddlmZmZ ddlmZ  G d de      Z G d de      Z	y	# e$ r ddlmZmZ Y ,w xY w)

    )MutableMappingMapping   )SEQUENCE_TYPESc                   r    e Zd ZddZd Zed        Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zy)CaseInsensitiveDictNc                     t               | _        t               | _        |s|r |
t               } | j                  |fi | y y N)dict_store_case_insensitive_keymapupdateselfotherkwargss      S/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/ldap3/utils/ciDict.py__init__zCaseInsensitiveDict.__init__#   s>    f(,%F}DKK((     c                 F    	 | j                  |       y# t        $ r Y yw xY w)NTF)__getitem__KeyError)r   items     r   __contains__z CaseInsensitiveDict.__contains__+   s*    	T" 		s    	  c                 Z    t        | d      r| j                         j                         S | S )Nlower)hasattrstripr   )keys    r   _ci_keyzCaseInsensitiveDict._ci_key2   s%    &-c7&;syy{  "DDr   c                 t    | j                  |      }| j                  | j                  |   = | j                  |= y r   )r!   r   r   )r   r    ci_keys      r   __delitem__zCaseInsensitiveDict.__delitem__6   s5    c"KK55f=>))&1r   c                     | j                  |      }|| j                  v r|| j                  | j                  |   <   y || j                  |<   || j                  |<   y r   )r!   r   r   )r   r    r   r#   s       r   __setitem__zCaseInsensitiveDict.__setitem__;   sU    c"T222AEDKK55f=>#DKK47D))&1r   c                 X    | j                   | j                  | j                  |            S r   )r   r   r!   r   r    s     r   r   zCaseInsensitiveDict.__getitem__C   s%    {{488c9JKLLr   c                 6    | j                   j                         S r   )r   __iter__r   s    r   r*   zCaseInsensitiveDict.__iter__F   s    {{##%%r   c                 ,    t        | j                        S r   )lenr   r+   s    r   __len__zCaseInsensitiveDict.__len__I       4;;r   c                 ,    t        | j                        S r   )reprr   r+   s    r   __repr__zCaseInsensitiveDict.__repr__L   s    DKK  r   c                 ,    t        | j                        S r   )strr   r+   s    r   __str__zCaseInsensitiveDict.__str__O   r/   r   c                 6    | j                   j                         S r   )r   keysr+   s    r   r7   zCaseInsensitiveDict.keysR   s    {{!!r   c                 6    | j                   j                         S r   )r   valuesr+   s    r   r9   zCaseInsensitiveDict.valuesU   s    {{!!##r   c                 6    | j                   j                         S r   )r   itemsr+   s    r   r;   zCaseInsensitiveDict.itemsX   s    {{  ""r   c                 ,   t        |t        t        f      st        S t        |t              r[t        | j                               t        |j                               k7  ry| j                         D ]  \  }}||v r	||   |k(  r y y| t	        |      k(  S )NFT)
isinstancer   r   NotImplementedr	   r-   r;   )r   r   r    values       r   __eq__zCaseInsensitiveDict.__eq__[   s    %'41!!e014::< C$66"&**, %JC5LU3Z5-@$% *5111r   c                 ,    t        | j                        S r   )r	   r   r+   s    r   copyzCaseInsensitiveDict.copyj   s    "4;;//r   r   )__name__
__module____qualname__r   r   staticmethodr!   r$   r&   r   r*   r.   r2   r5   r7   r9   r;   r@   rB    r   r   r	   r	   "   s_    ) E E2
8M& ! "$#20r   r	   c                   @    e Zd Zd
dZd Zd Zd ZddZd Zd Z	d	 Z
y)CaseInsensitiveWithAliasDictNc                 n    t               | _        t               | _        t        j                  | |fi | y r   )r   _aliases_alias_keymapr	   r   r   s      r   r   z%CaseInsensitiveWithAliasDict.__init__o   s*    !V$$T5;F;r   c                 6    | j                   j                         S r   )rK   r7   r+   s    r   aliasesz$CaseInsensitiveWithAliasDict.aliasest   s    }}!!##r   c                    t        |t              ro| j                  |d         }|| j                  vr0t        j                  | |d   |       | j                  ||dd         y t        dt        |d   dz         z         | j                  |      }|| j                  vrt        j                  | ||       y || | j                  |   <   y )Nr      'z already used as alias)	r=   r   r!   rK   r	   r&   	set_aliasr   r4   )r   r    r?   r#   s       r   r&   z(CaseInsensitiveWithAliasDict.__setitem__w   s    c>*\\#a&)FT]]*#//c!feDvs12w/tc#a&3K*K&LLMM\\#&FT]]*#//c5A.3T]]6*+r   c                     | j                  |      }	 t        j                  | |       || j                  v r(| j                  |   d d  D ]  }| j	                  |        y # t
        $ r$ || j                  v r| j	                  |       Y y Y y w xY wr   )r!   r	   r$   rL   remove_aliasr   rK   )r   r    r#   aliass       r   r$   z(CaseInsensitiveWithAliasDict.__delitem__   s    c"	*++D&9+++!//7: -E%%e,- 	*&!!&) '	*s   AA   (BBc                    t        |t              s|g}|D ]  }| j                  |      }|| j                  v r=| j                  |      }|| j                  vr|| j                  vr|| j                  |<   || j
                  v r.| j
                  |   j                  | j                  |             t               | j
                  |<   | j
                  |   j                  | j                  |             || j
                  v r|| j
                  |   v r|rt        dt        |      z   dz         || j                  | j                  |         k(  rC|rGt        dt        |      z   dz         | j
                  D ].  }|| j
                  |   v s| j                  |||gz   |         t        dt        |      z   dz          y )NrQ   z' already used as aliasz' already used as key)ignore_duplicatesz!' is not an existing alias or key)r=   r   r!   r   rK   rL   appendlistr   r4   rR   )r   r    rU   rW   alias_to_addr#   ci_aliaskeymaps           r   rR   z&CaseInsensitiveWithAliasDict.set_alias   s   %0GE! 	^L\\#&F666<<54#@#@@t}}428h/!T%7%77 ..v6==dll8>TU9=D..v6 ..v6==dll8>TU!T%7%77HHZHZ[aHb<b !2"*4#l2C+CF`+`"aad.K.KH.U!VV.&tc,.?'?BZ'Z[["00 ^F!3!3F!;;vux/?Sde^
 #4#f+#58\#\]]9	^r   c                 6   t        |t              s|g}|D ]  }| j                  |      }| j                  | j                  |      j                  |       | j                  | j                  |      s| j                  | j                  |   = | j                  |=  y r   )r=   r   r!   rL   rK   remove)r   rU   alias_to_remover[   s       r   rT   z)CaseInsensitiveWithAliasDict.remove_alias   s    %0GE$ 	(O||O4Ht}}X67>>xH%%dmmH&=>&&t}}X'>?h'	(r   c                     	 t         j                  | |      S # t        $ r5 t         j                  | | j                  | j	                  |               cY S w xY wr   )r	   r   r   rK   r!   r(   s     r   r   z(CaseInsensitiveWithAliasDict.__getitem__   sR    	[&224== 	[&224t||TWGX9YZZ	[s    ;AAc                     t        | j                        }| j                  j                         |_        | j                  |_        |S r   )rI   r   rK   rB   rL   )r   news     r   rB   z!CaseInsensitiveWithAliasDict.copy   s7    *4;;7}}))+ ..
r   r   )F)rC   rD   rE   r   rN   r&   r$   rR   rT   r   rB   rG   r   r   rI   rI   n   s-    <
$4
*^B([r   rI   N)
__doc__collections.abcr   r   ImportErrorcollections r   r	   rI   rG   r   r   <module>rh      sM   247 I0. I0XY#6 Ye  4334s   ) 99