
    h	                     F   S SK r S SKrS SKrSSKJr  SSKJr  SSKJr  SSKJ	r	  / SQr
\R                  S    S:H  r\ R                  \ R                  \ R                  \ R                   \ R"                  \ R$                  \ R&                  \ R(                  \ R*                  \ R,                  \ R.                  \ R0                  S	.rS
 rS rS rS rS rS rSS jr S r!S r"S r#Sr$0 r%\RL                  " 5       r' " S S5      r( " S S\(5      r) " S S\(5      r* " S S\*5      r+g)    N   )heap)get_context)assert_spawning)ForkingPickler)RawValueRawArrayValueArraycopysynchronized   )cubBhHiIlLfdc                 r    [         R                  " U 5      n[        R                  " U5      n[	        XS 5      $ N)ctypessizeofr   BufferWrapperrebuild_ctype)type_sizewrappers      =D:\TimeStamps\venv\Lib\site-packages\billiard/sharedctypes.py
_new_valuer%   !   s-    ==D  &G..    c                     [         R                  X 5      n[        U5      n[        R                  " [        R
                  " U5      S[        R                  " U5      5        UR                  " U6   U$ )z6
Returns a ctypes object allocated from shared memory
r   )typecode_to_typegetr%   r   memset	addressofr   __init__)typecode_or_typeargsr!   objs       r$   r   r   '   sT       !1DE
U
C
MM&""3'FMM#,>?LL$Jr&   c                 L   [         R                  X 5      n[        U[        5      (       aQ  X!-  n[	        U5      n[
        R                  " [
        R                  " U5      S[
        R                  " U5      5        U$ U[        U5      -  n[	        U5      nUR                  " U6   U$ )z5
Returns a ctypes array allocated from shared memory
r   )r(   r)   
isinstanceintr%   r   r*   r+   r   lenr,   )r-   size_or_initializerr!   r/   results        r$   r	   r	   2   s       !1DE%s+++f&&s+Qc0BC
/00E",-r&   c                 l   UR                  SS5      nUR                  SS5      nU(       a%  [        S[        UR                  5       5      -  5      e[	        U /UQ76 nUSL a  U$ US;   a#  U=(       d
    [        5       nUR                  5       n[        US5      (       d  [        SU-  5      e[        XSUS	9$ )
z.
Return a synchronization wrapper for a Value
lockNctx$unrecognized keyword argument(s): %sFTNacquire'%r' has no method 'acquire'r8   )
pop
ValueErrorlistkeysr   r   RLockhasattrAttributeErrorr   )r-   r.   kwdsr7   r8   r/   s         r$   r
   r
   C   s     88FD!D
((5$
C2T$))+5FFH 	H
#
+d
+Cu}
|"[]yy{4##;dBCCs++r&   c                 j   UR                  SS5      nUR                  SS5      nU(       a%  [        S[        UR                  5       5      -  5      e[	        X5      nUSL a  U$ US;   a#  U=(       d
    [        5       nUR                  5       n[        US5      (       d  [        SU-  5      e[        XSUS	9$ )
z1
Return a synchronization wrapper for a RawArray
r7   Nr8   r9   Fr:   r;   r<   r=   )
r>   r?   r@   rA   r	   r   rB   rC   rD   r   )r-   r4   rE   r7   r8   r/   s         r$   r   r   W   s     88FD!D
((5$
C2T$))+5FFH 	H
#
9Cu}
|"[]yy{4##;dBCCs++r&   c                 `    [        [        U 5      5      nU [        R                  " U5      S'   U$ )Nr   )r%   typer   pointer)r/   new_objs     r$   r   r   k   s(    c#G!$FNN7ANr&   c                 z   [        U [        5      (       a   S5       eU=(       d
    [        5       n[        U [        R                  5      (       a  [        XU5      $ [        U [        R                  5      (       a5  U R                  [        R                  L a  [        XU5      $ [        XU5      $ [        U 5      n [        U   nU" XU5      $ ! [         ac    UR                   Vs/ s H  oUS   PM	     Os  snf nn[        S U 5       5      nSUR                   -   n[        U[        4U5      =n[        U'    Nuf = f)Nzobject already synchronizedr   c              3   :   #    U  H  o[        U5      4v   M     g 7fr   )make_property).0names     r$   	<genexpr>synchronized.<locals>.<genexpr>   s     CUTM$/0Us   Synchronized)r1   SynchronizedBaser   r   _SimpleCDatarR   r   _type_c_charSynchronizedStringSynchronizedArrayrH   class_cacheKeyError_fields_dict__name__)	r/   r7   r8   clssclsfieldnamesr   	classnames	            r$   r   r   q   s   #/00O2OO0

C#v**++Cs++	C	&	&::&%c55 C003i	Ns#D Cs##  	N+.<<8<%1X<8E8CUCCA&5I&*97G6I1&MMD;s#		Ns   ;	C D:%C43AD:9D:c                     [        U 5        [        U [        R                  5      (       a)  [        U R
                  U R                  U R                  44$ [        [        U 5      U R                  S 44$ r   )	r   r1   r   r   r    rU   _wrapper_length_rH   )r/   s    r$   reduce_ctyperf      sS    C#v||$$szz3<<FFFtCy#,,===r&   c                     Ub  X-  n [         R                  " U [        5        [        (       a"  UR	                  5       nU R                  U5      nOU R                  UR                  5       5      nXl        U$ r   )	r   registerrf   PY3create_memoryviewfrom_bufferfrom_addressget_addressrd   )r!   r#   lengthbufr/   s        r$   r    r       se    E<0
s'')$  !4!4!67LJr&   c                      [         U    $ ! [         a+    0 n[        [        U 4S-  -  U5        X   [         U '   X   s $ f = f)N   )
prop_cacherZ   exectemplate)rO   r   s     r$   rM   rM      sN    $ X$A&*7
4w	s    2A A z
def get%s(self):
    self.acquire()
    try:
        return self._obj.%s
    finally:
        self.release()
def set%s(self, value):
    self.acquire()
    try:
        self._obj.%s = value
    finally:
        self.release()
%s = property(get%s, set%s)
c                   B    \ rS rSrSS jrS rS rS rS rS r	S	 r
S
rg)rS      Nc                     Xl         U(       a  X l        O'U=(       d	    [        SS9nUR                  5       U l        U R                  R                  U l        U R                  R
                  U l        g )NT)force)_obj_lockr   rB   r;   release)selfr/   r7   r8   s       r$   r,   SynchronizedBase.__init__   sM    	J040CDJzz))zz))r&   c                 6    U R                   R                  5       $ r   )rz   	__enter__r|   s    r$   r   SynchronizedBase.__enter__   s    zz##%%r&   c                 4    U R                   R                  " U6 $ r   )rz   __exit__)r|   r.   s     r$   r   SynchronizedBase.__exit__   s    zz""D))r&   c                 T    [        U 5        [        U R                  U R                  44$ r   )r   r   ry   rz   r   s    r$   
__reduce__SynchronizedBase.__reduce__   s"    dii444r&   c                     U R                   $ r   ry   r   s    r$   get_objSynchronizedBase.get_obj   s    yyr&   c                     U R                   $ r   )rz   r   s    r$   get_lockSynchronizedBase.get_lock   s    zzr&   c                 R    S[        U 5      R                  < SU R                  < S3$ )N<z wrapper for >)rH   r]   ry   r   s    r$   __repr__SynchronizedBase.__repr__   s    (,T
(;(;TYYGGr&   )rz   ry   r;   r{   NN)r]   
__module____qualname____firstlineno__r,   r   r   r   r   r   r   __static_attributes__ r&   r$   rS   rS      s&    *&*5Hr&   rS   c                   $    \ rS rSr\" S5      rSrg)rR      valuer   N)r]   r   r   r   rM   r   r   r   r&   r$   rR   rR      s    '"Er&   rR   c                   2    \ rS rSrS rS rS rS rS rSr	g)	rX      c                 ,    [        U R                  5      $ r   )r3   ry   r   s    r$   __len__SynchronizedArray.__len__   s    499~r&   c                 Z    U    U R                   U   sS S S 5        $ ! , (       d  f       g = fr   r   )r|   r   s     r$   __getitem__SynchronizedArray.__getitem__   s    99Q< TTs   
*c                 X    U    X R                   U'   S S S 5        g ! , (       d  f       g = fr   r   )r|   r   r   s      r$   __setitem__SynchronizedArray.__setitem__   s     IIaL TTs   
)c                 X    U    U R                   X sS S S 5        $ ! , (       d  f       g = fr   r   )r|   startstops      r$   __getslice__SynchronizedArray.__getslice__   s    99U( TTs   
)c                 V    U    X0R                   X& S S S 5        g ! , (       d  f       g = fr   r   )r|   r   r   valuess       r$   __setslice__SynchronizedArray.__setslice__   s    $*IIe! TTs   
(r   N)
r]   r   r   r   r   r   r   r   r   r   r   r&   r$   rX   rX      s     !)+r&   rX   c                   4    \ rS rSr\" S5      r\" S5      rSrg)rW      r   rawr   N)r]   r   r   r   rM   r   r   r   r   r&   r$   rW   rW      s    '"E

Cr&   rW   r   ),r   sysweakref r   r   contextr   	reductionr   __all__version_infori   rV   c_wcharc_bytec_ubytec_shortc_ushortc_intc_uintc_longc_ulongc_floatc_doubler(   r%   r   r	   r
   r   r   r   rf   r    rM   rt   rr   WeakKeyDictionaryrY   rS   rR   rX   rW   r   r&   r$   <module>r      s    
    $ %
L	qQ 
V^^	V^^	foo	FMM	V^^	foo /",(,($4>
"  
'')H H@## #+( +,* r&   