
    ^j5                     N   U d dl Z d dlmZ d dlmZ d dlmZ eZi ae	e
eegdf   f   ed<   i ae	e
e j                  e   f   ed<   g aee   ed<   defd	Zd
edefdZd Zde
deddfdZde
defdZdeddfdZddZdedee
egdf   de
fdZdedede
fdZd dlmZ  ee       y)    N)Callable)Any)Sourceindex_to_bytecode_constructor index_to_external_object_weakref
keep_alivereturnc                       t        t              S N)boolr        n/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_dynamo/graph_bytecode_inputs.pyhas_user_objectsr      s    -..r   objc                 0    t         j                  |        | S r   )r   append)r   s    r   stash_graph_created_objectr      s    cJr   indexvaluec                 f    t         j                  |       t        j                  |      t        | <   y)z;Update an entry in the external object registry at runtime.N)r   r   weakrefrefr   )r   r   s     r   set_external_object_by_indexr   $   s$    e.5kk%.@$U+r   c                 v    | t         vrt        d      t        |           }|t        d      t        |           S )Nz4Index not registered in index_to_user_object_weakrefzUser object is no longer alive)r   AssertionError)r   r   s     r   get_external_object_by_indexr   *   sC    44STT
*5
1
3C
{=>>+E244r   argsc            
          t         j                          t         j                  t        |       D ci c]  \  }}|t	        j
                  |       c}}       y c c}}w r   )r   clearupdate	enumerater   r   )r   iargs      r   store_user_object_weakrefsr%   3   sC    $**,$+++4T?;CGKK	;;s    A
c                  |    t         j                          t        j                          t        j                          y r   )r   r    r   r   r   r   r   reset_user_object_trackingr'   ;   s&    !'')$**,r   example_valueconstruct_fnc                     t         j                  |        t        t              fdt        <   	 t	        j
                  |       t        <   S # t        $ r!}ddlm	}  |dd|  dg |       Y d }~S d }~ww xY w)Nc                      |       S r   r   )cgr)   r   s    r   <lambda>z/register_graph_created_object.<locals>.<lambda>H   s    l5"6M r      unimplementedz7Failed to make weakref to graph-created external objectuser_object: 0Object does not allow us to make a weakref to itgb_typecontextexplanationhintsfrom_exc)
r   r   lenr   r   r   r   	TypeErrorexcr0   )r(   r)   er0   r   s    `  @r   register_graph_created_objectr=   A   s    
 m$-.E+M!%(
29++m2L(/ L  	
&M#M?3J	
 	
 L	
s   A 	A=A88A=sourcec                     t        t              }fdt        |<   	 t        j                  |       t        |<   |S # t
        $ r!}ddlm}  |dd|  dg |       Y d }~|S d }~ww xY w)Nc                      |       S r   r   )r,   r>   s    r   r-   z&register_user_object.<locals>.<lambda>\   s    bj r   r.   r/   z%Failed to make weakref to User Objectr1   r2   r3   )r9   r   r   r   r   r:   r;   r0   )r   r>   r   r<   r0   s    `   r   register_user_objectrA   Y   sx    -.E+@!%(
29++e2D(/ L  	
&;#E7+J	
 	
 L	
s   < 	A&A!!A&)"set_leaf_function_module_retriever)r	   N)r   collections.abcr   typingr   torch._dynamo.sourcer   	PyCodegenr   dictint__annotations__r   ReferenceTyper   listr   r   r   CURRENT_STREAM_INDEXr   r   r%   r'   r=   rA   ,torch._higher_order_ops.invoke_leaf_functionrB   r   r   r   <module>rN      s1    $  ' 	 IK tC9+t2C)D$DE JJL  $sG,A,A#,F'F"G L
DI /$ /C C 
  A AC AD A5 5 5c d &.Y/?/E&F0 V  ,
 ##? @r   