
    d.                        d dl mZ d dlmZmZ d dlmZmZmZ d dl	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 er
d d
lmZmZmZ  G d ded                   ZdS )    )annotations)IterableSequence)TYPE_CHECKINGAnyCallableN)Version)dask_available)!ImplicitToExplicitIndexingAdapter)ChunkManagerEntrypointT_ChunkedArrayis_duck_dask_array)	DaskArrayT_ChunksT_NormalizedChunksc            	          e Zd ZU ded<   eZded<   dRdZdSd
ZdTdZ	 	 	 	 dUdVdZ	dWdZ
dXdZedYd            Z	 	 	 	 	 dZd[d)Zddddddddd*d\d9Zddddd:d]d>Zdddddd?ddd@d^dKZd_dMZd`dQZdS )aDaskManagerztype[DaskArray]	array_clsbool	availablereturnNonec                     ddl m} || _        d S )Nr   )Array)
dask.arrayr   r   )selfr   s     7lib/python3.11/site-packages/xarray/core/daskmanager.py__init__zDaskManager.__init__   s!     	%$$$$$    datar   c                     t          |          S Nr   r   r!   s     r   is_chunked_arrayzDaskManager.is_chunked_array   s    !$'''r    r   r   c                    |j         S r#   )chunksr$   s     r   r'   zDaskManager.chunks    s
    {r    Nr'   T_Chunks | T_NormalizedChunksshapetuple[int, ...] | Nonelimit
int | Nonedtypenp.dtype | Noneprevious_chunksT_NormalizedChunks | Nonec                .    ddl m}  ||||||          S )zCalled by open_datasetr   )normalize_chunks)r)   r+   r-   r/   )dask.array.corer2   )r   r'   r)   r+   r-   r/   r2   s          r   r2   zDaskManager.normalize_chunks#   s?     	544444+
 
 
 	
r    c                t    dd l m} t          |t                    rt          j        |d<    |j        ||fi |S )Nr   meta)r   array
isinstancer   npndarray
from_array)r   r!   r'   kwargsdas        r   r:   zDaskManager.from_array6   s]    d=>> 	(ZF6Nr}
 
 
 
 	
r    tuple[np.ndarray, ...]c                    ddl m}  ||i |S )Nr   )compute)r   r?   )r   r!   r;   r?   s       r   r?   zDaskManager.computeC   s)    &&&&&&w''''r    c                    ddl m} |S )Nr   )r6   )daskr6   )r   r<   s     r   	array_apizDaskManager.array_apiH   s    $$$$$$	r    Farrr   funcr   combine_funcCallable | Noneaggregate_funcaxisint | Sequence[int] | Nonekeepdimsc           	     2    ddl m}  ||||||||          S )Nr   )	reduction)chunkcombine	aggregaterH   r-   rJ   )r   rL   )	r   rC   rD   rE   rG   rH   r-   rJ   rL   s	            r   rL   zDaskManager.reductionN   sD     	)(((((y $
 
 
 	
r    axesrH   rJ   output_dtypesoutput_sizes	vectorizeallow_rechunkr5   	signaturestrargsrQ    Sequence[tuple[int, ...]] | NonerR   $Sequence[np.typing.DTypeLike] | NonerS   dict[str, int] | NonerT   bool | NonerU   r5   tuple[np.ndarray, ...] | Nonec               :    ddl m}  |||g|R |||||||	|
d|S )Nr   )apply_gufuncrP   )dask.array.gufuncr_   )r   rD   rV   rQ   rH   rJ   rR   rS   rT   rU   r5   rX   r;   r_   s                 r   r_   zDaskManager.apply_gufuncd   sm     	322222|
 
 
 '%'
 
 
 
 	
r    r-   r'   	drop_axisnew_axisnp.typing.DTypeLike | Nonerb   rc   c                   dd l }ddlm}	 |'t          |j                  t          d          k     rg } |	|g|R ||||d|S )Nr   )
map_blocksz2022.9.1ra   )rA   r   rf   r	   __version__)
r   rD   r-   r'   rb   rc   rX   r;   rA   rf   s
             r   rf   zDaskManager.map_blocks   s     	)))))))9!:!:WZ=P=P!P!P I z

 
 
 
 
 
 	
r    Tnametokenr-   adjust_chunksnew_axesalign_arraysconcatenater5   out_indr   ri   
str | Nonerk   dict[Any, Callable] | Nonerl   dict[Any, int] | Nonerm   rn   c               :    ddl m}  |||g|R |||||||	|
d|S )Nr   )	blockwiserh   )r   rt   )r   rD   ro   ri   rj   r-   rk   rl   rm   rn   r5   rX   r;   rt   s                 r   rt   zDaskManager.blockwise   sm      	)(((((y
 
 
 '%#
 
 
 
 	
r    5tuple[dict[str, T_NormalizedChunks], list[DaskArray]]c                    ddl m}  ||i |S )Nr   )unify_chunks)r3   rw   )r   rX   r;   rw   s       r   rw   zDaskManager.unify_chunks   s+    
 	100000|T,V,,,r    sourcesDaskArray | Sequence[DaskArray]targetsc                $    ddl m}  |d||d|S )Nr   )store)rx   rz    )r   r|   )r   rx   rz   r;   r|   s        r   r|   zDaskManager.store   sD     	%$$$$$u 

 
 
 
 	
r    )r   r   )r!   r   r   r   )r!   r   r   r   )NNNN)r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r   r   )r!   r   r   r   )r!   r   r   r=   )r   r   )NNNNF)rC   r   rD   r   rE   rF   rG   rF   rH   rI   r-   r.   rJ   r   r   r   )rD   r   rV   rW   rX   r   rQ   rY   rH   r,   rJ   r   rR   rZ   rS   r[   rT   r\   rU   r   r5   r]   )rD   r   rX   r   r-   rd   r'   r*   rb   rI   rc   rI   )rD   r   ro   r   rX   r   ri   rp   r-   r.   rk   rq   rl   rr   rm   r   rn   r\   )rX   r   r   ru   )rx   ry   rz   r   )__name__
__module____qualname____annotations__r
   r   r   r%   r'   r2   r:   r?   propertyrB   rL   r_   rf   rt   rw   r|   r}   r    r   r   r      s        $I$$$$   ( ( ( (    )- !%59
 
 
 
 
&
 
 
 
( ( ( (
    X )-*.+/!%
 
 
 
 
6 26>B.2!%#.2
 
 
 
 
 
H -1)-04/3
 
 
 
 
 
F  !%48*.!#'
 
 
 
 
 
B- - - -
 
 
 
 
 
r    r   r   )
__future__r   collections.abcr   r   typingr   r   r   numpyr8   packaging.versionr	   xarray.core.duck_array_opsr
   xarray.core.indexingr   xarray.core.parallelcompatr   r   xarray.core.pycompatr   xarray.core.typesr   r   r   r   r}   r    r   <module>r      s$   " " " " " " . . . . . . . . / / / / / / / / / /     % % % % % % 5 5 5 5 5 5 B B B B B B M M M M M M M M 3 3 3 3 3 3 JIIIIIIIIIIE
 E
 E
 E
 E
(5 E
 E
 E
 E
 E
r    