
    0a                     X    	 d dl mZ d Z G d de      Z[dgZy# e$ r	 d dlmZ Y  w xY w)    )MutableMappingc                 B     t         d      r j                    fd}|S )N__call__c                     | _         | S N)__doc__)gss    (lib/python3.12/site-packages/heapdict.pyfzdoc.<locals>.f   s    	    )hasattrr   )r
   r   s   ` r   docr      s"    q*II Hr   c                   ^   e Zd Z e       Zd Z eej                        d        Z eej                        d        Z	d Z
d Zd Z eej                        d        Z eej                        d        Z eej                        d	        Zd
 Z eej"                        d        Zd Zy)heapdictc                 D    g | _         i | _         | j                  |i | y r   )heapdupdate)selfargskws      r   __init__zheapdict.__init__   s#    	T R r   c                 V    | j                   d d = | j                  j                          y r   )r   r   clearr   s    r   r   zheapdict.clear   s    IIaLr   c                     || j                   v r| j                  |       ||t        |       g}|| j                   |<   | j                  j	                  |       | j                  t        | j                        dz
         y )N   )r   poplenr   append_decrease_key)r   keyvaluewrappers       r   __setitem__zheapdict.__setitem__   sb    $&&=HHSM#s4y)s		!3tyy>!+,r   c                    t        | j                        }| j                  }	 |dz  dz   }|dz   dz  }||k  r||   d   ||   d   k  r|}n|}||k  r||   d   ||   d   k  r|}||k(  ry | j                  ||       |}^Nr   r   )r    r   _swap)r   inhlrlows          r   _min_heapifyzheapdict._min_heapify'   s    		NIIa1AQ1A1u1a1Q47*1u1a1S6!9,axJJq#A! r   c                     |rF|dz
  dz	  }| j                   |   d   | j                   |   d   k  ry | j                  ||       |}|rEy y r(   )r   r)   )r   r*   parents      r   r"   zheapdict._decrease_key<   sO    !e\Fyy #diil1o5JJq&!A r   c                 ^    | j                   }||   ||   c||<   ||<   |||   d<   |||   d<   y )N   r   )r   r*   jr,   s       r   r)   zheapdict._swapE   s@    IIqT1Q4
!ad!Q!Qr   c                     | j                   |   }|d   r8|d   dz
  dz	  }| j                  |   }| j                  |d   |d          |d   r8| j                          y )Nr4   r   )r   r   r)   popitem)r   r#   r%   	parentposr2   s        r   __delitem__zheapdict.__delitem__K   s`    &&+aj aA-IYYy)FJJwqz6!9-	 aj
 	r   c                 &    | j                   |   d   S )Nr   )r   )r   r#   s     r   __getitem__zheapdict.__getitem__U   s    vvc{1~r   c                 ,    t        | j                        S r   )iterr   r   s    r   __iter__zheapdict.__iter__Y   s    DFF|r   c                 N   | j                   d   }t        | j                         dk(  r| j                   j                          nJ| j                   j                         | j                   d<   d| j                   d   d<   | j                  d       | j                  |d   = |d   |d   fS )zsD.popitem() -> (k, v), remove and return the (key, value) pair with lowest
value; but raise KeyError if D is empty.r   r   r4   )r   r    r   r0   r   )r   r%   s     r   r8   zheapdict.popitem]   s    ))A,tyy>QIIMMO99==?DIIaLDIIaLOa FF71:qz71:%%r   c                 ,    t        | j                        S r   )r    r   r   s    r   __len__zheapdict.__len__i   s    466{r   c                 J    | j                   d   d   | j                   d   d   fS )zjD.peekitem() -> (k, v), return the (key, value) pair with lowest value;
 but raise KeyError if D is empty.r   r   r5   r   s    r   peekitemzheapdict.peekitemm   s%    		!Q1a11r   N)__name__
__module____qualname__object_heapdict__markerr   r   dictr   r&   r0   r"   r)   r:   r<   r?   r8   rB   rD    r   r   r   r      s    xH!
 	_  			- -* 			  			  	 
& 	 2r   r   N)collections.abcr   ImportErrorcollectionsr   r   __all__rK   r   r   <module>rP      sB   +.
^2~ ^2B ,a  +*+s    ))