
    Vpf                    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d!dZed             Zed              ZdS )"EArrayaval_dataNd   c                "    || _         || _        d S N)r   r   )selfr   datas      O/var/www/html/nettyfy-visnx/env/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                p    t          | j        j        t          j                  r| j        j        S | j        S r   )
isinstancer   rK   r   SingleDeviceShardingdevicer   s    r   rQ   zEArray.deviceV   s/    $*%~'JKK Z=r   indexintreturnc                    t           r   r(   )r   rR   s     r   addressable_datazEArray.addressable_data^   s    
r   c                    t           r   rV   r   s    r   addressable_shardszEArray.addressable_shardsa       
r   c                    t           r   rV   r   s    r   global_shardszEArray.global_shardse   rZ   r   )rR   rS   rT   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   rQ   rW   rY   r\    r   r   r   r       s       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  r   r   c                x    d | D             }d t          | |          D             }t          j        ||          S )Nc                    g | ]	}|j         
S re   )r   ).0xs     r   
<listcomp>z-_earray_shard_arg_handler.<locals>.<listcomp>l   s    			a!'			r   c                H    g | ]\  }}t          j        |j        |           S re   )r   physical_shardingr   )rh   ri   rK   s      r   rj   z-_earray_shard_arg_handler.<locals>.<listcomp>m   s;     ; ; ;#8 #4QVXFF ; ; ;r   )zipr	   
shard_args)xs	shardingsarrsphys_shardingss       r   _earray_shard_arg_handlerrs   k   sO    		2			$; ;'*2y'9'9; ; ;.		.	..r   c                    | j         S r   r   r   s    r   r,   r,   r   s    TY r   c                    | j         S r   ru   ri   s    r   r,   r,   s   s    af r   c                    | S r   re   rw   s    r   r,   r,   t   s    A r   c                     | j         f| j        fS r   )r   r   rw   s    r   r,   r,   v   s    z16* r   c                .    t          | |d                   S )Nr   )r   )aro   s     r   r,   r,   v   s    &BqE:J:J r   )
__future__r   r3   jax._srcr   r   r   r   r   jax._src.interpretersr	   r
   jax._src.utilr   r   map
unsafe_maprm   
unsafe_zipArrayr   rs   shard_arg_handlers_shaped_abstractify_handlerspytype_aval_mappingscanonicalize_dtype_handlersdispatch_registryregister_nodere   r   r   <module>r      s   # " " " " "                          # # # # # # & & & & & & % % % % % % , , , , , , , ,CZCZG G G G GY_ G G GV/ / /
 #<  0F0F %f -$4$4 & !*5+  ' 	  ) )
**,J,JL L L L Lr   