
    0a                     b    	 d dl mZ n# e$ r	 d dlmZ Y nw xY wd Z G d de          Z[dgZdS )    )MutableMappingc                 @     t           d          r j          fd}|S )N__call__c                     | _         | S N)__doc__)gss    (lib/python3.11/site-packages/heapdict.pyfzdoc.<locals>.f   s    	    )hasattrr   )r
   r   s   ` r   docr      s<    q* I     Hr   c                   r   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dS )heapdictc                 <    g | _         i | _         | j        |i | d S r   )heapdupdate)selfargskws      r   __init__zheapdict.__init__   s-    	T R     r   c                 L    | j         d d = | j                                         d S r   )r   r   clearr   s    r   r   zheapdict.clear   s"    IaaaLr   c                    || j         v r|                     |           ||t          |           g}|| j         |<   | j                            |           |                     t          | j                  dz
             d S )N   )r   poplenr   append_decrease_key)r   keyvaluewrappers       r   __setitem__zheapdict.__setitem__   sv    $&==HHSMMM#s4yy)s	!!!3ty>>!+,,,,,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d S |                     ||           |})NTr   r   )r    r   _swap)r   inhlrlows          r   _min_heapifyzheapdict._min_heapify'   s    	NNI	a1AQ1A1uu1a1Q47**1uu1a1S6!9,,axxJJq#A!	r   c                     |rN|dz
  dz	  }| j         |         d         | j         |         d         k     rd S |                     ||           |}|Ld S d S )Nr   r   )r   r(   )r   r)   parents      r   r"   zheapdict._decrease_key<   st     	!e\Fy #dil1o55JJq&!!!A  	 	 	 	 	r   c                 n    | j         }||         ||         c||<   ||<   |||         d<   |||         d<   d S )N   r   )r   r)   jr+   s       r   r(   zheapdict._swapE   sB    IqT1Q4
!ad!Q!Qr   c                     | j         |         }|d         rE|d         dz
  dz	  }| j        |         }|                     |d         |d                    |d         E|                                  d S )Nr3   r   )r   r   r(   popitem)r   r#   r%   	parentposr1   s        r   __delitem__zheapdict.__delitem__K   st    &+aj 	. aA-IYy)FJJwqz6!9---	 aj 	.
 	r   c                 (    | j         |         d         S )Nr   )r   )r   r#   s     r   __getitem__zheapdict.__getitem__U   s    vc{1~r   c                 *    t          | j                  S r   )iterr   r   s    r   __iter__zheapdict.__iter__Y   s    DF||r   c                 H   | j         d         }t          | j                   dk    r| j                                          nF| j                                         | j         d<   d| j         d         d<   |                     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   r3   )r   r    r   r/   r   )r   r%   s     r   r7   zheapdict.popitem]   s    )A,ty>>QIMMOOOO9==??DIaLDIaLOa   F71:qz71:%%r   c                 *    t          | j                  S r   )r    r   r   s    r   __len__zheapdict.__len__i   s    46{{r   c                 N    | 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   r4   r   s    r   peekitemzheapdict.peekitemm   s!    	!Q1a11r   N)__name__
__module____qualname__object_heapdict__markerr   r   dictr   r&   r/   r"   r(   r9   r;   r>   r7   rA   rC    r   r   r   r      si       vxxH! ! !
 	S__  _ 	S	- - -  *     	S	   	S	   	S  
& 
& 
& 	S  2 2 2 2 2r   r   N)collections.abcr   ImportErrorcollectionsr   r   __all__rJ   r   r   <module>rO      s   +....... + + +********+  ^2 ^2 ^2 ^2 ^2~ ^2 ^2 ^2B ,s   	 