
    Wh                    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 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<   d ej        e<   ej                            ed d            dS )    )annotationsN)api_util)	basearray)core)	tree_util)sharding_impls)pxla)xla)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 dS )#EArrayaval_dataNd   c                "    || _         || _        d S N)r   r   )selfr   datas      U/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/jax/_src/earray.py__init__zEArray.__init__%   s    DIDJJJ    c                8    | j                                         }| S r   )r   block_until_ready)r   _s     r   r   zEArray.block_until_ready)   s    
$$&&AKr   c                8    | j                                          d S r   )r   copy_to_host_asyncr   s    r   r   zEArray.copy_to_host_async-   s    J!!#####r   c                Z    t          | j        | j                                                  S r   )r   r   r   copyr   s    r   r    zEArray.copy0   s     $)TZ__..///r   c                0    dt          | j                  z   S )NE)reprr   r   s    r   __repr__zEArray.__repr__3   s    dj!!!!r   c                D    | j         dk    rt          d          t          )Nr   ziteration over a 0-d array)ndim	TypeErrorNotImplementedErrorr   s    r   __iter__zEArray.__iter__6   s!    yA~~Y'CD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                4    t          | j        j                  S r   )lenr   r+   r   s    r   r,   zEArray.<lambda>?   s    s49?33 r   c                >    t          j        | j        j                  S r   )mathprodr   r+   r   s    r   r,   zEArray.<lambda>@   s    ty99 r   c                $    | j         j        j        S r   )r   r/   itemsizer   s    r   r,   zEArray.<lambda>A   s    49?#; r   c                P    | 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__B   s'    yA~~Y'@AAA:a=r   c                    | j         j        S r   )r   devicesr   s    r   r,   zEArray.<lambda>G   s    $*"4 r   c                    | j         j        S r   )r   
_committedr   s    r   r,   zEArray.<lambda>H       TZ%: r   c                    | j         j        S r   )r   is_fully_addressabler   s    r   r,   zEArray.<lambda>I   s    tz/N r   c                    | j         j        S r   )r   is_fully_replicatedr   s    r   r,   zEArray.<lambda>J   s    dj.L r   c                    | j         j        S r   )r   deleter   s    r   r,   zEArray.<lambda>K   s    !2 r   c                    | j         j        S r   )r   
is_deletedr   s    r   r,   zEArray.<lambda>L   r=   r   c                    | j         j        S r   )r   on_device_size_in_bytesr   s    r   r,   zEArray.<lambda>M   s    $*2T r   c                    | j         j        S r   )r   unsafe_buffer_pointerr   s    r   r,   zEArray.<lambda>N   s    
0P r   c                N    | j         j        }t          j        | j        |          S r   )r   shardingr   logical_shardingr   )r   phys_shardings     r   rK   zEArray.shardingQ   s!    J'M*49mDDDr   c                    | j         j        S r   )r   	committedr   s    r   rO   zEArray.committedV   s    :r   c                p    t          | j        j        t          j                  r| j        j        S | j        S r   )
isinstancer   rK   r   SingleDeviceShardingdevicer   s    r   rS   zEArray.deviceZ   s/    $*%~'JKK Z=r   indexintreturnc                    t           r   r(   )r   rT   s     r   addressable_datazEArray.addressable_datab   s    
r   c                    t           r   rX   r   s    r   addressable_shardszEArray.addressable_shardse       
r   c                    t           r   rX   r   s    r   global_shardszEArray.global_shardsi   r\   r   )rT   rU   rV   r   )!__name__
__module____qualname__	__slots____hash____array_priority__r   r   r   r    r$   r)   propertyr+   r/   r&   sizer6   r8   r:   r<   r?   rA   rC   rE   rG   rI   rK   rO   rS   rY   r[   r^    r   r   r   r       s1       w)(    $ $ $0 0 0" " "  
 (//
0
0%
(//
0
0% 
33	4	4$	99	:	:$X;;<<(  
 H4455'x::;;*!"N"NOO !L!LMM82233&x::;;*$H%T%TUU"(#P#PQQ E E 8E     8    8      8   8  r   r   c                |    d | D             }d t          | |          D             }t          j        ||||          S )Nc                    g | ]	}|j         
S rg   )r   ).0xs     r   
<listcomp>z-_earray_shard_arg_handler.<locals>.<listcomp>p   s    			a!'			r   c                H    g | ]\  }}t          j        |j        |           S rg   )r   physical_shardingr   )rj   rk   rK   s      r   rl   z-_earray_shard_arg_handler.<locals>.<listcomp>q   s;     ; ; ;#8 #4QVXFF ; ; ;r   )zipr	   
shard_args)xs	shardingslayoutscopy_semanticsarrsphys_shardingss         r   _earray_shard_arg_handlerrw   o   sU    		2			$; ;'*2y'9'9; ; ;. 
.$	G	GGr   c                    | j         S r   r   r   s    r   r,   r,   w   s    TY r   c                    | j         S r   ry   rk   s    r   r,   r,   x   s    af r   c                    | S r   rg   r{   s    r   r,   r,   y   s    A r   c                     | j         f| j        fS r   )r   r   r{   s    r   r,   r,   {   s    z16* r   c                .    t          | |d                   S )Nr   )r   )arq   s     r   r,   r,   {   s    &BqE:J:J r   )
__future__r   r3   jax._srcr   r   r   r   r   jax._src.interpretersr	   r
   jax._src.utilr   r   map
unsafe_mapro   
unsafe_zipArrayr   rw   shard_arg_handlers_shaped_abstractify_handlerspytype_aval_mappingscanonicalize_dtype_handlersdispatch_registryregister_noderg   r   r   <module>r      s   # " " " " "                          # # # # # # & & & & & & % % % % % % , , , , , , , ,CZCZK K K K KY_ K K K^H H H #<  0F0F %f -$4$4 & !*5+  ' 	  ) )
**,J,JL L L L Lr   