
    biB                    z    d dl mZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ ddZddd	Z G d
 de      Zy)    )annotationsN)config)ArrayBackendEntrypointregister_cupy)Arrayto_cupy_dispatchc                H    	 dd l }|S # t        $ r | rt        d      Y y w xY w)Nr   z4Please install `cupy` to use `CupyBackendEntrypoint`)cupyImportError)strictr   s     V/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/array/cupy_entry_point.py_cupyr   
   s4    
 K	  TUUs    !!)metac                   |t               j                  d      n|}t        j                  ddi      5   t	        t
        |       |d|i|cd d d        S # 1 sw Y   y xY w)N array.backendnumpyr   )r   emptyr   setgetattrda)attrr   argskwargss       r   _da_with_cupy_metar      sY     $57==$D	_g.	/ = wr4 $<T<V<= = =s   AA c                      e Zd Zd Zed        Zedd       Zed        Zed        Z	e
d        Ze
d        Ze
d        Ze
d	        Ze
d
dd       Zy
)CupyBackendEntrypointc                2    t        d      rt                yy)z)Register data-directed dispatch functionsF)r   N)r   r   selfs    r   __init__zCupyBackendEntrypoint.__init__   s    O     c                    t         S Nr   )clss    r   to_backend_dispatchz)CupyBackendEntrypoint.to_backend_dispatch!   s    r#   c                    t        |j                  t               j                        r|S  |j                  | j                         fi |S r%   )
isinstance_metar   ndarray
map_blocksr'   )r&   datar   s      r   
to_backendz CupyBackendEntrypoint.to_backend%   s:    djj%'//2Kts668CFCCr#   c                >    t               j                  j                  S r%   )r   randomRandomStater    s    r   r1   z!CupyBackendEntrypoint.RandomState,   s    w~~)))r#   c                >    t               j                  j                  S r%   )r   r0   XORWOWr    s    r   default_bit_generatorz+CupyBackendEntrypoint.default_bit_generator0   s    w~~$$$r#   c                      t        dg| i |S )Nonesr   r   r   s     r   r6   zCupyBackendEntrypoint.ones4       !&:4:6::r#   c                      t        dg| i |S )Nzerosr7   r8   s     r   r;   zCupyBackendEntrypoint.zeros8       !';D;F;;r#   c                      t        dg| i |S )Nr   r7   r8   s     r   r   zCupyBackendEntrypoint.empty<   r<   r#   c                      t        dg| i |S )Nfullr7   r8   s     r   r?   zCupyBackendEntrypoint.full@   r9   r#   N)likec                    | t               j                  d      n| } t        j                  ddi      5  t	        j
                  |d| i|cd d d        S # 1 sw Y   y xY w)Nr   r   r   r@   )r   r   r   r   r   arange)r@   r   r   s      r   rB   zCupyBackendEntrypoint.arangeD   sT    $(Luw}}R dZZ'23 	999d888	9 	9 	9s   AA)r-   r   )__name__
__module____qualname__r"   classmethodr'   r.   propertyr1   r4   staticmethodr6   r;   r   r?   rB   r   r#   r   r   r      s    
     D D * * % % ; ; < < < < ; ;  9 9r#   r   )T)
__future__r   
dask.arrayarrayr   daskr   dask.array.backendsr   r   dask.array.corer   dask.array.dispatchr	   r   r   r   r   r#   r   <module>rP      s3    "   E ! 0 *. =-92 -9r#   