
    
9j                        S SK Jr  S SKrS SKrS SKJr   " S S\R                  5      r " S S5      rS r	 " S	 S
5      r
 " S S5      r " S S5      r " S S5      rg)    )annotationsN)
_klv_utilsc                       \ rS rSrSrSrSrSrg)Actions	             N)__name__
__module____qualname____firstlineno__SetGetBarrier__static_attributes__r       Z/home/wildlama/miniconda3/lib/python3.13/site-packages/cupyx/distributed/_store_actions.pyr   r   	   s    
C
CGr   r   c                  6    \ rS rSrS rS r\S 5       rS rSr	g)ActionError   c                    Xl         g N
_exception)self	exceptions     r   __init__ActionError.__init__   s    #r   c                x    U R                   n[        R                  " S[        U5      R	                  S5      5      $ )Nr   ascii)r   r   get_result_action_tstrencode)r   es     r   klvActionError.klv   s+    OO--aQw1GHHr   c                J    [        U R                  R                  S5      5      eNutf-8)RuntimeErrorr   decoder'   s    r   from_klvActionError.from_klv   s    3>>009::r   c                .    [         R                  U5        g r   )r   r/   r   datas     r   decode_resultActionError.decode_result   s    T"r   r   N)
r   r   r   r   r   r'   staticmethodr/   r4   r   r   r   r   r   r      s&    $I ; ;#r   r   c                p    U [         R                  :X  a  [        R                  U5      nObU [         R                  :X  a  [        R                  U5      nO8U [         R                  :X  a  [        R                  U5      nO[        SU  35      eU" U5      $ ! [         a  n[        U5      s S nA$ S nAff = f)Nzunknown action )r   r   r/   r   r   
ValueError	Exceptionr   )actionvaluestore
action_objr&   s        r   execute_actionr>      s    W[[ e,Jw{{"e,Jw& ))%0Jvh788%   1~s   BB 
B5 
B0*B50B5c                  P    \ rS rSr " S S5      rS r\S 5       rS rS r	S r
S	rg
)r   /   c                  *    \ rS rSrS r\S 5       rSrg)Set.SetResult0   c                n    [        [        S5      5      n[        R                  " SU5      n[        U5      $ NTr   	bytearraybytesr   r#   r   vr:   s      r   r'   Set.SetResult.klv1   ,    %+&A33Aq9F= r   c                    gNTr   r.   s    r   r/   Set.SetResult.from_klv6   s    r   r   Nr   r   r   r   r'   r6   r/   r   r   r   r   	SetResultrB   0   s    	!
 
	 
	r   rQ   c                    Xl         X l        [        U[        5      (       d  [	        S5      e[        U5      [        [        [        4;  a  [	        S5      eg )N&Invalid type for key, only str allowedz1Invalid type for value, only int or bytes allowed)	keyr;   
isinstancer$   r8   typerH   rG   int)r   rT   r;   s      r   r   Set.__init__:   sO    
#s##EFF;ui55CE E 6r   c                    [        U 5      n [        U 5       H(  u  pUS:X  d  M  U S U R                  S5      nXS-   S  n   O   [        S5      e[        R
                  " U 5      n[        X45      $ )Nr   r+   r   z%No separation character for key found)rH   	enumerater-   r8   r   get_value_from_bytesr   )r;   ibkrJ   s        r   r/   Set.from_klvD   sq    ee$DAAv"1I$$W-!ef	 % DEE++E21yr   c                   [        U R                  R                  S5      5      nUR                  S5        U[        R
                  " U R                  5      -  n[        R                  " [        R                  U5      n[        U5      $ )Nr"   r   )rG   rT   r%   appendr   create_value_bytesr;   get_action_tr   r   rH   rI   s      r   r'   Set.klvQ   s]    dhhoog./		Z**4::66((a8V}r   c                p    U R                   UR                  U R                  '   [        R	                  5       $ r   )r;   storagerT   r   rQ   r   r<   s     r   __call__Set.__call__X   s$    "&**dhh}}r   c                @    [         R                  R                  U5      $ r   )r   rQ   r/   r2   s     r   r4   Set.decode_result\       }}%%d++r   )rT   r;   N)r   r   r   r   rQ   r   r6   r/   r'   rh   r4   r   r   r   r   r   r   /   s5     E 
 
,r   r   c                  P    \ rS rSr " S S5      rS r\S 5       rS rS r	S r
S	rg
)r   `   c                  0    \ rS rSrS rS r\S 5       rSrg)Get.GetResulta   c                    Xl         g r   r;   )r   r;   s     r   r   Get.GetResult.__init__b   s    Jr   c                    [         R                  " U R                  5      n[         R                  " SU5      n[	        U5      $ Nr   )r   rb   r;   r#   rH   rI   s      r   r'   Get.GetResult.klve   s2    --djj9A33Aq9F= r   c                D    [        U 5      n [        R                  " U 5      $ r   )rG   r   r[   rs   s    r   r/   Get.GetResult.from_klvj   s    e$E22599r   rs   N)	r   r   r   r   r   r'   r6   r/   r   r   r   r   	GetResultrp   a   s     		!
 
	: 
	:r   rz   c                P    Xl         [        U[        5      (       d  [        S5      eg )NrS   )rT   rU   r$   r8   )r   rT   s     r   r   Get.__init__o   s%    #s##EFF $r   c                :    U R                  S5      n[        U5      $ r*   )r-   r   )r;   r^   s     r   r/   Get.from_klvt   s    LL!1vr   c                    [        U R                  R                  S5      5      n[        R                  " [
        R                  U5      n[        U5      $ )Nr"   )rG   rT   r%   r   rc   r   r   rH   rI   s      r   r'   Get.klvy   s9    dhhoog./((a8V}r   c                Z    [         R                  UR                  U R                     5      $ r   )r   rz   rf   rT   rg   s     r   rh   Get.__call__~   s    }}U]]488455r   c                @    [         R                  R                  U5      $ r   )r   rz   r/   r2   s     r   r4   Get.decode_result   rl   r   )rT   N)r   r   r   r   rz   r   r6   r/   r'   rh   r4   r   r   r   r   r   r   `   s5    : :G
  
6,r   r   c                       \ rS rSrS rS rSrg)_BarrierImpl   c                D    Xl         [        R                  " 5       U l        g r   )_world_size	threading	Condition_cvar)r   
world_sizes     r   r   _BarrierImpl.__init__   s    %((*
r   c                $   U R                      U =R                  S-  sl        U R                  S:X  a  U R                   R                  5         O*U R                  S:  a  U R                   R                  5         S S S 5        g ! , (       d  f       g = f)Nr   r   )r   r   	notifyAllwait)r   s    r   rh   _BarrierImpl.__call__   s^    ZZ!1$

$$&!!A%

! ZZs   A+B
B)r   r   N)r   r   r   r   r   rh   r   r   r   r   r   r      s    +"r   r   c                  J    \ rS rSr " S S5      rS r\S 5       rS rS r	Sr
g	)
r      c                  *    \ rS rSrS r\S 5       rSrg)Barrier.BarrierResult   c                n    [        [        S5      5      n[        R                  " SU5      n[        U5      $ rE   rF   rI   s      r   r'   Barrier.BarrierResult.klv   rL   r   c                    grN   r   r.   s    r   r/   Barrier.BarrierResult.from_klv   s     r   r   NrP   r   r   r   BarrierResultr      s    	!
 
	 
	r   r   c                t    [         R                  " [        R                  [	        S5      5      n[	        U5      $ rv   )r   rc   r   r   rH   )r   r:   s     r   r'   Barrier.klv   s&    ((%(CV}r   c                    [        5       $ r   )r   r.   s    r   r/   Barrier.from_klv   s
    yr   c                d   UR                      UR                  c  [        UR                  5      Ul        S S S 5        UR                  5         UR                      S Ul        S S S 5        [        R                  5       $ ! , (       d  f       NN= f! , (       d  f       [        R                  5       $ = fr   )_lock_current_barrierr   r   r   r   rg   s     r   rh   Barrier.__call__   s}    [[%%-)5e6G6G)H&  	 [[%)E" $$&& [
 [$$&&s   (A=B=
B
B/c                @    [         R                  R                  U5      $ r   )r   r   r/   r2   s     r   r4   Barrier.decode_result   s    $$--d33r   r   N)r   r   r   r   r   r'   r6   r/   rh   r4   r   r   r   r   r   r      s/    	 	  '4r   r   )
__future__r   enumr   cupyx.distributedr   IntEnumr   r   r>   r   r   r   r   r   r   r   <module>r      sZ    "   (dll # #  ., .,b", ",J" "4 4r   