
    >ieB                        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dS )    )annotationsN)config)ArrayBackendEntrypointregister_cupy)Arrayto_cupy_dispatchTc                V    	 dd l }n"# t          $ r | rt          d          Y d S w xY w|S )Nr   z4Please install `cupy` to use `CupyBackendEntrypoint`)cupyImportError)strictr   s     ;lib/python3.11/site-packages/dask/array/cupy_entry_point.py_cupyr   
   sS        	VTUUUtt Ks    &&)metac                   |!t                                          d          n|}t          j        ddi          5   t	          t
          |           |d|i|cd d d            S # 1 swxY w Y   d S )N array.backendnumpyr   )r   emptyr   setgetattrda)attrr   argskwargss       r   _da_with_cupy_metar      s     $577==$D	_g.	/	/ = = wr4  $<T<V<<= = = = = = = = = = = = = = = = = =s   A&&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dS )CupyBackendEntrypointc                F    t          d          rt                       dS dS )z)Register data-directed dispatch functionsF)r   N)r   r   selfs    r   __init__zCupyBackendEntrypoint.__init__   s,     	OOOOO	 	    c                    t           S Nr   )clss    r   to_backend_dispatchz)CupyBackendEntrypoint.to_backend_dispatch!   s    r#   datar   c                    t          |j        t                      j                  r|S  |j        |                                 fi |S r%   )
isinstance_metar   ndarray
map_blocksr'   )r&   r(   r   s      r   
to_backendz CupyBackendEntrypoint.to_backend%   sG    dj%''/22 	Kts6688CCFCCCr#   c                2    t                      j        j        S r%   )r   randomRandomStater    s    r   r1   z!CupyBackendEntrypoint.RandomState,   s    ww~))r#   c                2    t                      j        j        S r%   )r   r0   XORWOWr    s    r   default_bit_generatorz+CupyBackendEntrypoint.default_bit_generator0   s    ww~$$r#   c                 "    t          dg| R i |S )Nonesr   r   r   s     r   r6   zCupyBackendEntrypoint.ones4        !&:4:::6:::r#   c                 "    t          dg| R i |S )Nzerosr7   r8   s     r   r;   zCupyBackendEntrypoint.zeros8        !';D;;;F;;;r#   c                 "    t          dg| R i |S )Nr   r7   r8   s     r   r   zCupyBackendEntrypoint.empty<   r<   r#   c                 "    t          dg| R i |S )Nfullr7   r8   s     r   r?   zCupyBackendEntrypoint.full@   r9   r#   N)likec                    | !t                                          d          n| } t          j        ddi          5  t	          j        |d| i|cd d d            S # 1 swxY w Y   d S )Nr   r   r   r@   )r   r   r   r   r   arange)r@   r   r   s      r   rB   zCupyBackendEntrypoint.arangeD   s    $(Luww}}R   dZ'233 	9 	99d8888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   A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 D [D * * X* % % X% ; ; \; < < \< < < \< ; ; \;  9 9 9 9 \9 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      s    " " " " " "             E E E E E E E E ! ! ! ! ! ! 0 0 0 0 0 0    *. = = = = =-9 -9 -9 -9 -92 -9 -9 -9 -9 -9r#   