U
    9%e                     @   sR   d dl Z d dlmZ d dlZd dlmZ d dlmZ dae j	dd Z
dd ZdS )	    N)Sequence)	custom_op)ContentStoreReaderc                 c   s.   t d kstt| dda z
d V  W 5 d a X d S )NF)cache)LOAD_TENSOR_READERAssertionErrorr   )loc r	   W/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/torch/_prims/debug_prims.pyload_tensor_reader   s
    
r   c                  C   sB   t dttt tt tjtjtjddd} |  dd }d S )Nzdebugprims::load_tensor)namesizestridedtypedevicereturnc                S   s   d S )Nr	   )r   r   r   r   r   r	   r	   r
   load_tensor   s    	z)register_debug_prims.<locals>.load_tensorc                 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)r   z != )r   )r   Ztorch._dynamo.testingr   Ztorch._dynamo.utilsr   Zread_tensorlistr   r   r   r   r   )r   r   r   r   r   r   r   rr	   r	   r
   load_tensor_factory(   s    &&
z1register_debug_prims.<locals>.load_tensor_factory)	r   strr   inttorchr   r   ZTensorZimpl_factory)r   r   r	   r	   r
   register_debug_prims   s    
r   )
contextlibtypingr   r   Ztorch._custom_op.implr   Ztorch.utils._content_storer   r   contextmanagerr   r   r	   r	   r	   r
   <module>   s   
