
    i                       d Z ddlmZ ddlZddlZddlZddlmZmZ ddl	m
Z
 erddlmZ  ed      Zdd	Zdd
Z eddg      Zg dZ e
ej$                        dd       Z e
ej&                        dd       Z e
ej(                        d d       Z e
ej*                        dd       Z e
ej,                        dd       Z e
ej.                        d!d       Z e
ej0                        d d       Z e
ej2                        d d       Z e
ej4                        dddd       Z e
ej6                        d"d       Z e
ej8                        d"d       Zy)#z
Python polyfills for heapq
    )annotationsN)TYPE_CHECKINGTypeVar   )substitute_in_graph)
ModuleType_Tc                    i }t        d | D              }t        t        j                        D ]:  }|| v s|j	                  |      st        j                  j                  |      ||<   < |S )Nc              3  &   K   | ]	  }|d z     yw).N ).0names     W/var/www/html/engine/venv/lib/python3.12/site-packages/torch/_dynamo/polyfills/heapq.py	<genexpr>z+_save_and_remove_modules.<locals>.<genexpr>   s     2DTCZ2s   )tuplelistsysmodules
startswithpop)namesorig_modulesprefixesmodnames       r   _save_and_remove_modulesr      sc    L2E22H$ =ew11(;$'KKOOG$<L!=     c                4   | h|}t        |      }|D ]  }d t        j                  |<    	 t        j                  |       t        |       t        j                  j                  |       S # t        |       t        j                  j                  |       w xY wN)r   r   r   	importlibimport_moduleupdate)r   blockedr   r   r   s        r   import_fresh_moduler$   !   s     GE+E2L $#G$)&&t, '<( 	!'<(s   A+ +,Bheapq_heapq)r#   )_heapify_max_heappop_max_heapreplace_maxheapifyheappopheappushheappushpopheapreplacemergenlargest	nsmallestc               ,    t         j                  |       S r   )py_heapqr'   heaps    r   r'   r'   C         &&r   c                ,    t         j                  |       S r   )r3   r(   r4   s    r   r(   r(   H   r6   r   c                .    t         j                  | |      S r   )r3   r)   r5   items     r   r)   r)   M   s    $$T400r   c               ,    t         j                  |       S r   )r3   r*   r4   s    r   r*   r*   R       D!!r   c               ,    t         j                  |       S r   )r3   r+   r4   s    r   r+   r+   W   r<   r   c                .    t         j                  | |      S r   )r3   r,   r9   s     r   r,   r,   \   s    T4((r   c                .    t         j                  | |      S r   )r3   r-   r9   s     r   r-   r-   a       d++r   c                .    t         j                  | |      S r   )r3   r.   r9   s     r   r.   r.   f   r@   r   Fkeyreversec                .    t        j                  || |dS )NrB   )r3   r/   )rC   rD   	iterabless      r   r/   r/   k   s    >>9#w??r   c                2    t         j                  | ||      S N)rC   )r3   r0   niterablerC   s      r   r0   r0   p   s    Qc22r   c                2    t         j                  | ||      S rH   )r3   r1   rI   s      r   r1   r1   u   s    as33r   )r   zset[str]returnzdict[str, ModuleType])r   strr#   z	list[str]rM   r   )r5   list[_T]rM   None)r5   rO   rM   r	   )r5   rO   r:   r	   rM   r	   )r5   rO   r:   r	   rM   rP   r   )__doc__
__future__r   r%   r    r   typingr   r   
decoratorsr   typesr   r	   r   r$   r3   __all__r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r   r   r   <module>rW      s   #   
 ) ,   T]
)  w
; U''(' )' U''(' )' U++,1 -1 U]]#" $" U]]#" $" U^^$) %) U&&', (, U&&', (, U[[! @ "@ U^^$3 %3 U__%4 &4r   