
    8tf                     ,    d Z ddlmZ  G d dee      Zy)zsDrop-in replacement for collections.OrderedDict by Raymond Hettinger

http://code.activestate.com/recipes/576693/

    )	DictMixinc                   .   e Zd Zd Zd Zd Zd Zd Zd ZddZ	d Z
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
 Zd Zedd       Zd Zd Zy)OrderedDictc                     t        |      dkD  rt        dt        |      z        	 | j                    | j
                  |i | y # t        $ r | j	                          Y .w xY w)N   z$expected at most 1 arguments, got %d)len	TypeError_OrderedDict__endAttributeErrorclearupdate)selfargskwdss      a/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/simplejson/ordered_dict.py__init__zOrderedDict.__init__
   s]    t9q=BSYNOO	JJ 	T"T"  	JJL	s   A A"!A"c                 ^    g x| _         }|d ||gz  }i | _        t        j                  |        y N)r
   _OrderedDict__mapdictr   )r   ends     r   r   zOrderedDict.clear   s2    
Sc3


4    c                     || vr-| j                   }|d   }|||gx|d<   x|d<   | j                  |<   t        j                  | ||       y )Nr      )r
   r   r   __setitem__)r   keyvaluer   currs        r   r   zOrderedDict.__setitem__   sS    d?**Cq6D25tS1AADGAc!ftzz#sE*r   c                     t         j                  | |       | j                  j                  |      \  }}}||d<   ||d<   y )Nr   r   )r   __delitem__r   pop)r   r   prevnexts       r   r    zOrderedDict.__delitem__    s<    s#**..-T4QQr   c              #   Z   K   | j                   }|d   }||ur|d    |d   }||ury y w)Nr   r   r
   r   r   r   s      r   __iter__zOrderedDict.__iter__&   :     jj1v#oq'M7D #o   &++c              #   Z   K   | j                   }|d   }||ur|d    |d   }||ury y w)Nr   r   r%   r&   s      r   __reversed__zOrderedDict.__reversed__-   r(   r)   c                     | st        d      |rt        |       j                         nt        |       j                         }| j	                  |      }||fS )Nzdictionary is empty)KeyErrorreversedr#   iterr!   )r   lastr   r   s       r   popitemzOrderedDict.popitem4   sI    011'+htn!!#d1BEzr   c                     | D cg c]	  }|| |   g }}| j                   | j                  f}| ` | `t        |       j                         }|\  | _         | _        |r| j                  |f|fS | j                  |ffS c c}w r   )r   r
   varscopy	__class__)r   kitemstmp	inst_dicts        r   
__reduce__zOrderedDict.__reduce__;   s    '+,!!T!W,,jj$**$J
JOO%	!$
DJNNUHi88~~x'' -s   A:c                     t        |       S r   )listr   s    r   keyszOrderedDict.keysE   s    Dzr   c                     | s| j                   j                  dS | j                   j                  d| j                         dS )Nz()())r5   __name__r7   r=   s    r   __repr__zOrderedDict.__repr__Q   s3    !^^4466>>22DJJLAAr   c                 $    | j                  |       S r   )r5   r=   s    r   r4   zOrderedDict.copyV   s    ~~d##r   Nc                 ,     |        }|D ]  }|||<   	 |S r    )clsiterabler   dr   s        r   fromkeyszOrderedDict.fromkeysY   s&    E 	CAcF	r   c                     t        |t              rQt        |       t        |      k(  xr8 t        d t	        | j                         |j                               D              S t        j                  | |      S )Nc              3   ,   K   | ]  \  }}||k(    y wr   rF   ).0pqs      r   	<genexpr>z%OrderedDict.__eq__.<locals>.<genexpr>c   s     J1q!tJs   )
isinstancer   r   allzipr7   r   __eq__r   others     r   rT   zOrderedDict.__eq__`   sZ    e[)t9c%j( KJTZZ\5;;=)IJJK{{4''r   c                     | |k(   S r   rF   rU   s     r   __ne__zOrderedDict.__ne__f   s    5=  r   )Tr   )rB   
__module____qualname__r   r   r   r    r'   r+   r1   r:   r>   r   
setdefaultr   r!   valuesr7   iterkeys
itervalues	iteritemsrC   r4   classmethodrJ   rT   rX   rF   r   r   r   r      s    #+( %%JF
--CFOOE!!H%%J##IB
$  (!r   r   N)__doc__UserDictr   r   r   rF   r   r   <module>rc      s   
 _!$	 _!r   