U
    yh`                     @   sT   U d dl Z d dlmZ d dlZd dlmZ daee ed< e jdd Z	dd Z
dS )	    N)Optional)ContentStoreReaderLOAD_TENSOR_READERc                 c   s.   t d kstt| dda z
d V  W 5 d a X d S )NF)cache)r   AssertionErrorr   )loc r   J/var/www/html/venv/lib/python3.8/site-packages/torch/_prims/debug_prims.pyload_tensor_reader   s
    
r
   c                  C   s(   t jdd t jdddd } d S )Nzdebugprims::load_tensorzR(str name, int[] size, int[] stride, *, ScalarType dtype, Device device) -> TensorZBackendSelectc                 S   s   t d kr"ddlm} |||||S ddlm} t j| |d}t| |ksbt|  d| t|	 |kst|	  d| |j
|kst|j
 d| |j|kr|||d}|S d S )Nr   )rand_strided)clone_input)devicez != )dtype)r   Ztorch._dynamo.testingr   Ztorch._dynamo.utilsr   Zread_tensorlistsizer   strider   r   )namer   r   r   r   r   r   rr   r   r	   load_tensor_factory"   s    &&
z1register_debug_prims.<locals>.load_tensor_factory)torchlibrarydefineimpl)r   r   r   r	   register_debug_prims   s    r   )
contextlibtypingr   r   Ztorch.utils._content_storer   r   __annotations__contextmanagerr
   r   r   r   r   r	   <module>   s    
