
    uki5                    P   d dl 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 d dlmZ d dl	m
Z
 d d	lmZmZ eecZZeecZZ G d
 dej$                        Zd Zee
j*                  e<   d ej,                  e<   d ej.                  e<   ej0                  j3                  ed d        y)    )annotationsN)	basearray)core)dtypes)	tree_util)sharding_impls)pxla)safe_zipsafe_mapc                     e Zd ZddgZdZdZd Zd Zd Zd Z	d	 Z
d
 Z ed       Z ed       Z ed       Z ed       Z ed       Zd Z ed       Z ed       Z ed       Z ed       Z ed       Z ed       Z ed       Z ed       Zed        Zed        Zed        ZddZed        Zed        Z y) EArrayaval_dataNd   c                     || _         || _        y N)r   r   )selfr   datas      J/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/jax/_src/earray.py__init__zEArray.__init__$   s    DIDJ    c                :    | j                   j                         }| S r   )r   block_until_ready)r   _s     r   r   zEArray.block_until_ready(   s    

$$&AKr   c                8    | j                   j                          y r   )r   copy_to_host_asyncr   s    r   r   zEArray.copy_to_host_async,   s    JJ!!#r   c                ^    t        | j                  | j                  j                               S r   )r   r   r   copyr   s    r   r   zEArray.copy/   s    $))TZZ__.//r   c                2    dt        | j                        z   S )NE)reprr   r   s    r   __repr__zEArray.__repr__2   s    djj!!!r   c                B    | j                   dk(  rt        d      t        )Nr   ziteration over a 0-d array)ndim	TypeErrorNotImplementedErrorr   s    r   __iter__zEArray.__iter__5   s    yyA~Y'CDD
r   c                .    | j                   j                  S r   )r   shaper   s    r   <lambda>zEArray.<lambda>:       		 r   c                .    | j                   j                  S r   )r   dtyper   s    r   r+   zEArray.<lambda>;   r,   r   c                @    t        | j                  j                        S r   )lenr   r*   r   s    r   r+   zEArray.<lambda>>   s    s499??3 r   c                T    t        j                  | j                  j                        S r   )mathprodr   r*   r   s    r   r+   zEArray.<lambda>?   s    tyy9 r   c                B    | j                   j                  j                  S r   )r   r.   itemsizer   s    r   r+   zEArray.<lambda>@   s    499??#;#; r   c                T    | j                   dk(  rt        d      | j                  d   S )Nr   zlen() of unsized object)r%   r&   r*   r   s    r   __len__zEArray.__len__A   s&    yyA~Y'@AA::a=r   c                .    | j                   j                  S r   )r   devicesr   s    r   r+   zEArray.<lambda>F   s    $**"4"4 r   c                .    | j                   j                  S r   )r   
_committedr   s    r   r+   zEArray.<lambda>G       TZZ%:%: r   c                .    | j                   j                  S r   )r   is_fully_addressabler   s    r   r+   zEArray.<lambda>H   s    tzz/N/N r   c                .    | j                   j                  S r   )r   is_fully_replicatedr   s    r   r+   zEArray.<lambda>I   s    djj.L.L r   c                .    | j                   j                  S r   )r   deleter   s    r   r+   zEArray.<lambda>J   s    !2!2 r   c                .    | j                   j                  S r   )r   
is_deletedr   s    r   r+   zEArray.<lambda>K   r<   r   c                .    | j                   j                  S r   )r   on_device_size_in_bytesr   s    r   r+   zEArray.<lambda>L   s    $**2T2T r   c                .    | j                   j                  S r   )r   unsafe_buffer_pointerr   s    r   r+   zEArray.<lambda>M   s    

0P0P r   c                    | j                   j                  }t        j                  | j                  | j
                  |      S r   )r   shardingr   logical_shardingr*   r.   )r   phys_shardings     r   rJ   zEArray.shardingP   s.    JJ''M**4::tzz=QQr   c                .    | j                   j                  S r   )r   	committedr   s    r   rN   zEArray.committedU   s    ::r   c                    t        | j                  j                  t        j                        r| j                  j
                  S | j                  S r   )
isinstancer   rJ   r   SingleDeviceShardingdevicer   s    r   rR   zEArray.deviceY   s6    $**%%~'J'JKZZ==r   c                    t         r   r'   )r   indexs     r   addressable_datazEArray.addressable_dataa   s    
r   c                    t         r   rT   r   s    r   addressable_shardszEArray.addressable_shardsd       
r   c                    t         r   rT   r   s    r   global_shardszEArray.global_shardsh   rY   r   )rU   intreturnr   )!__name__
__module____qualname__	__slots____hash____array_priority__r   r   r   r   r#   r(   propertyr*   r.   r%   sizer5   r7   r9   r;   r>   r@   rB   rD   rF   rH   rJ   rN   rR   rV   rX   r[    r   r   r   r      s>   w)($0"
 /
0%
/
0% 
3	4$	9	:$;<(
 45':;*!"NO !LM23&:;*$%TU"#PQ R R          r   r   c                    | D cg c]  }|j                    }}t        | |      D cg c]%  \  }}t        j                  |j                  |      ' }}}t        j                  ||||      S c c}w c c}}w r   )r   zipr   physical_shardingr   r	   
shard_args)xs	shardingslayoutscopy_semanticsxarrsrJ   phys_shardingss           r   _earray_shard_arg_handlerrr   n   ss    	a!''	$	'*2y'9;#8 #44QVVXF ;. ; 
.$	GG	 
;s
   A.*A3c                    | j                   S r   )r   ro   s    r   r+   r+   v   s
    aff r   c                    | S r   rf   rt   s    r   r+   r+   w   s    q r   c                4    | j                   f| j                  fS r   )r   r   rt   s    r   r+   r+   y   s    z166* r   c                     t        | |d         S )Nr   )r   )ark   s     r   r+   r+   y   s    &BqE:J r   )
__future__r   r2   jax._srcr   r   r   r   r   jax._src.interpretersr	   jax._src.utilr
   r   map
unsafe_maprh   
unsafe_zipArrayr   rr   shard_arg_handlerspytype_aval_mappingscanonicalize_value_handlersdispatch_registryregister_noderf   r   r   <module>r      s    #      # & ,CZCZKY__ K^H #<   $4  & !-8 " "6 * 	   ) )
*,JLr   