��Qc@s�ddddgZddlZddlZddlZddlZddlZddlZddlmZddl m
Z
mZmZm
Z
mZmZddlmZdd lmZmZmZmZdd
lmZmZyddlmZWn!ek
rddlmZnXd�Zejeje�gd
ddfD]Z e!e"ie ���^qDZ#de$fd��YZ%fid�Z&d�Z'de(fd��YZ)d�Z*d�Z+de$fd��YZ,de$fd��YZ-iej.ej/fd6ej0ej1fd6Z2de$fd��YZ3de4fd��YZ5de$fd ��YZ6d!�Z7id"�Z8e9e9e9e:d#�Z;d$e$fd%��YZ<d&e$fd'��YZ=e:d(�Z>d)e6fd*��YZ?d+e6fd,��YZ@d-e@fd.��YZAd/e6fd0��YZBd1e6fd2��YZCd3e6fd4��YZDe8d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKf�ZEdLeEfdM��YZFe8dNd7d8d:d<d@dOdPdQdRd
ddGdSdTdUdf�ZGe8dVd<d:d@d;dAf�ZHe8dWdXdYdZd[d\d]d^d_d`f �ZIidadY6dad_6dbd[6dbd\6eI_Jde3fdc��YZKeKjddej�eKjdeej�eKjdfejLeB�eKjdgejMe@�eKjdhejNe@�eKjdiejOe@�eKjdjejPe@�eKjdkejQeA�eKjdle
eI�eKjdmeReF�eKjdneSeG�eKjd&e=eD�eKjdoe>eH�eKjd$e<eC�eKjdbdpe?dqeT�eKjdadqeT�dS(rtBaseManagertSyncManagert BaseProxytTokeni�N(t
format_exc(tProcesstcurrent_processtactive_childrentPooltutilt
connection(tAuthenticationString(texittPopentassert_spawningtForkingPickler(tFinalizetinfo(t
PicklingErrorcCstj|j|j�ffS(N(tarrayttypecodettostring(ta((s./sys/lib/python2.7/multiprocessing/managers.pytreduce_array@stitemstkeystvaluescBs8eZdZdZd�Zd�Zd�Zd�ZRS( s4
Type to uniquely indentify a shared object
ttypeidtaddresstidcCs!||||_|_|_dS(N(RRR(tselfRRR((s./sys/lib/python2.7/multiprocessing/managers.pyt__init__PscCs|j|j|jfS(N(RRR(R((s./sys/lib/python2.7/multiprocessing/managers.pyt__getstate__SscCs|\|_|_|_dS(N(RRR(Rtstate((s./sys/lib/python2.7/multiprocessing/managers.pyt__setstate__VscCsd|j|j|jfS(Ns#Token(typeid=%r, address=%r, id=%r)(RRR(R((s./sys/lib/python2.7/multiprocessing/managers.pyt__repr__Ys(stypeidsaddresssid(t__name__t
__module__t__doc__t __slots__RR R"R#(((s./sys/lib/python2.7/multiprocessing/managers.pyRJs cCsN|j||||f�|j�\}}|dkr;|St||��dS(sL
Send a message to manager using connection `c` and return response
s#RETURNN(tsendtrecvtconvert_to_error(tcRt
methodnametargstkwdstkindtresult((s./sys/lib/python2.7/multiprocessing/managers.pytdispatchas
cCs~|dkr|S|dkr>t|�tks4t�t|�S|dkrpt|�tksbt�td|�Std�SdS(Ns#ERRORs
#TRACEBACKs#UNSERIALIZABLEsUnserializable message: %s
sUnrecognized message type(ttypetstrtAssertionErrortRemoteErrort
ValueError(R/R0((s./sys/lib/python2.7/multiprocessing/managers.pyR*ks
R5cBseZd�ZRS(cCs)ddddt|jd�ddS(Ns
t-iKi(R3R-(R((s./sys/lib/python2.7/multiprocessing/managers.pyt__str__xs(R$R%R8(((s./sys/lib/python2.7/multiprocessing/managers.pyR5wscCsOg}xBt|�D]4}t||�}t|d�r|j|�qqW|S(s4
Return a list of names of methods of `obj`
t__call__(tdirtgetattrthasattrtappend(tobjttemptnametfunc((s./sys/lib/python2.7/multiprocessing/managers.pytall_methodsscCs-gt|�D]}|ddkr
|^q
S(sP
Return a list of names of methods of `obj` which do not start with '_'
it_(RB(R>R@((s./sys/lib/python2.7/multiprocessing/managers.pytpublic_methods�stServerc Bs�eZdZddddddddd g Zd
�Zd�Zd�Zd
�Zd�Zd�Z d�Z
ie d6e
d6ed6Zd�Zd�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(sM
Server class which runs in a process controlled by a manager object
tshutdowntcreatetaccept_connectiontget_methodst
debug_infotnumber_of_objectstdummytincreftdecrefcCs�t|t�st�||_t|�|_t|\}}|d|dd�|_|jj|_iddfd6|_
i|_tj
�|_d|_dS(NRtbacklogit0i((t
isinstancetbytesR4tregistryRtauthkeytlistener_clienttlistenerRtNonet id_to_objtid_to_refcountt threadingtRLocktmutextstop(RRSRRTt
serializertListenertClient((s./sys/lib/python2.7/multiprocessing/managers.pyR�s cCs�|t�_z�ykxdy|jj�}Wnttfk
rDqnXtjd|jd|f�}t |_
|j�qWntt
fk
r�nXWdd|_|jj�XdS(s(
Run the server forever
ttargetR-Ni�(Rt_manager_serverRVtaccepttOSErrortIOErrorRZtThreadthandle_requesttTruetdaemontstarttKeyboardInterruptt
SystemExitR]tclose(RR+tt((s./sys/lib/python2.7/multiprocessing/managers.pyt
serve_forever�s cCsd}}}yvtj||j�tj||j�|j�}|\}}}}||jksttd|��t||�}Wn t k
r�dt
�f} nFXy||||�}Wn t k
r�dt
�f} n
Xd|f} y|j| �Wnqt k
rp}
y|jdt
�f�Wnt k
r<nXtj
d| �tj
d|�tj
d|
�nX|j�dS(s)
Handle a new connection
s%r unrecognizeds
#TRACEBACKs#RETURNsFailure to send message: %rs ... request was %rs ... exception was %rN(RWR
tdeliver_challengeRTtanswer_challengeR)tpublicR4R;t ExceptionRR(R RRm(RR+tfuncnameR0trequesttignoreR-R.RAtmsgte((s./sys/lib/python2.7/multiprocessing/managers.pyRg�s4
cCs�tjdtj�j�|j}|j}|j}x�|js�d}}|�}|\}}} }
||\}}}||kr�t
d|t|�|f��nt||�}
y|
| |
�}Wnt
k
r�}d|f}npX|o|j|d�}|rP|j|||�\}}t||j|�}d||ff}nd|f}Wn�t
k
r�|dkr�dt�f}q?y8|j|}|||||| |
�}d|f}Wq?t
k
r�dt�f}q?XnVtk
rtjdtj�j�tjd�n t
k
r>dt�f}nXy>y||�Wn)t
k
r{}|d t|�f�nXWq7t
k
r�}tjd
tj�j�tjd|�tjd|�|j�tjd
�q7Xq7WdS(sQ
Handle requests from the proxies in a particular process/thread
s$starting server thread to service %rs+method %r of %r object is not in exposed=%rs#ERRORs#PROXYs#RETURNs
#TRACEBACKs$got EOF -- exiting thread serving %ris#UNSERIALIZABLEsexception in thread serving %rs ... message was %rs ... exception was %riN(R tdebugRZtcurrent_threadR@R)R(RXR]RWtAttributeErrorR2R;RstgetRGRRRtfallback_mappingtEOFErrortsysRtreprRRm(RtconnR)R(RXR,R>RutidentR-R.texposedt gettypeidtfunctiontresRxRwRtridenttrexposedttokent
fallback_funcR0((s./sys/lib/python2.7/multiprocessing/managers.pytserve_client�sl
cCs|S(N((RR�R�R>((s./sys/lib/python2.7/multiprocessing/managers.pytfallback_getvalue+scCs
t|�S(N(R3(RR�R�R>((s./sys/lib/python2.7/multiprocessing/managers.pytfallback_str.scCs
t|�S(N(R�(RR�R�R>((s./sys/lib/python2.7/multiprocessing/managers.pyt
fallback_repr1sR8R#s #GETVALUEcCsdS(N((RR+((s./sys/lib/python2.7/multiprocessing/managers.pyRL:scCs�|jj�z�g}|jj�}|j�xS|D]K}|dkr6|jd||j|t|j|d�d f�q6q6Wdj|�SWd|jj �XdS(sO
Return some info --- useful to spot problems with refcounting
RPs %s: refcount=%s
%siiKs
N(
R\tacquireRXRtsortR=RYR3tjointrelease(RR+R0RR�((s./sys/lib/python2.7/multiprocessing/managers.pyRJ=s
'cCst|j�dS(s*
Number of shared objects
i(tlenRX(RR+((s./sys/lib/python2.7/multiprocessing/managers.pyRKOscCsz�tjd�|jd �tjtjkrZtjd�tjt_tjt_ntj d�x(t
�D]}tjd�|j�qqWx(t
�D]}tjd�|j�q�Wtj �tj
d�Wnddl}|j�nXWdtd�XdS(
s'
Shutdown this process
s!manager received shutdown messages#RETURNsresetting stdout, stderris&terminating a child process of managersmanager exiting with exitcode 0i�N(s#RETURNN(R RyR(RWRtstdoutt
__stdout__t
__stderr__tstderrt_run_finalizersRt terminateR�Rt tracebackt print_excR(RR+tpR�((s./sys/lib/python2.7/multiprocessing/managers.pyRFUs*
cOs\|jj�z:|j|\}}}}|dkrat|�dkrN|sTt�|d} n|||�} |dkr�t| �}n|dk r�t|�tks�t�t |�t |�}ndt
| �}
tjd||
�| t
|�|f|j|
<|
|jkr&d|j|
<n|j||
�|
t|�fSWd|jj�XdS(s>
Create a new shared object and return its id
iis%xs&%r callable returned object with id %rN(R\R�RSRWR�R4RDR2tdicttlistRR RytsetRXRYRMttupleR�(RR+RR-R.tcallableR�tmethod_to_typeidt proxytypeR>R�((s./sys/lib/python2.7/multiprocessing/managers.pyRGus(
cCst|j|jd�S(sL
Return the methods of the shared object indicated by token
i(R�RXR(RR+R�((s./sys/lib/python2.7/multiprocessing/managers.pyRI�scCs-|tj�_|jd�|j|�dS(s=
Spawn a new thread to serve this connection
s#RETURNN(s#RETURNN(RZRzR@R(RWR�(RR+R@((s./sys/lib/python2.7/multiprocessing/managers.pyRH�s
cCs9|jj�z|j|cd7<Wd|jj�XdS(Ni(R\R�RYR�(RR+R�((s./sys/lib/python2.7/multiprocessing/managers.pyRM�s
cCs�|jj�zj|j|dks)t�|j|cd8<|j|dkrv|j|=|j|=tjd|�nWd|jj�XdS(Niisdisposing of obj with id %r(R\R�RYR4RXR RyR�(RR+R�((s./sys/lib/python2.7/multiprocessing/managers.pyRN�s
(R$R%R&RrRRoRgR�R�R�R�R}RLRJRKRFRGRIRHRMRN(((s./sys/lib/python2.7/multiprocessing/managers.pyRE�s. " J
& tStatecBs#eZdgZdZdZdZRS(tvalueiii(R$R%R'tINITIALtSTARTEDtSHUTDOWN(((s./sys/lib/python2.7/multiprocessing/managers.pyR��s tpicklet xmlrpclibcBs�eZdZiZeZdddd�Zd�Zd�Z d�Z
ddd�Zeddd��Z
d�Zdd �Zd
�Zd�Zd�Zd
�Zed��Zed��Zedddded��ZRS(s!
Base class for managers
R�cCsq|dkrt�j}n||_t|�|_t�|_tj|j_ ||_
t|\|_|_
dS(N(RWRRTt_addressRt_authkeyR�t_stateR�R�t_serializerRUt _Listenert_Client(RRRTR^((s./sys/lib/python2.7/multiprocessing/managers.pyR�s cCs%t|�j|j|j|jffS(N(R2tfrom_addressR�R�R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyt
__reduce__�scCs:|jjtjkst�t|j|j|j|j �S(sX
Return server object with serve_forever() method and address attribute
(
R�R�R�R�R4REt _registryR�R�R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyt
get_server�scCsNt|j\}}||jd|j�}t|dd�tj|j_ dS(s>
Connect manager object to the server process
RTRLN(
RUR�R�R�R1RWR�R�R�R�(RR_R`R�((s./sys/lib/python2.7/multiprocessing/managers.pytconnect�scCsg|jjtjkst�|dk rFt|d�rFtd��ntj dt
�\}}tdt|�j
d|j|j|j|j|||f�|_djd�|jjD��}t|�jd||j_|jj�|j�|j�|_|j�tj|j_tj|t|�jd|j|j|j|j|jfd d
�|_dS(s@
Spawn a server process for this manager object
R9sinitializer must be a callabletduplexRaR-t:css|]}t|�VqdS(N(R3(t.0ti((s./sys/lib/python2.7/multiprocessing/managers.pys <genexpr>
sR7texitpriorityiN( R�R�R�R�R4RWR<t TypeErrorR
tPipetFalseRR2t_run_serverR�R�R�R�t_processR�t _identityR$R@RjRmR)R�R Rt_finalize_managerR�RF(RtinitializertinitargstreadertwriterR�((s./sys/lib/python2.7/multiprocessing/managers.pyRj�s(
c Csl|dk r||�n|j||||�}|j|j�|j�tjd|j�|j�dS(s@
Create a server, report its address and run it
smanager serving at %rN(RWt_ServerR(RRmR RRo( tclsRSRRTR^R�R�R�tserver((s./sys/lib/python2.7/multiprocessing/managers.pyR�s
cOs�|jjtjks!td��|j|jd|j�}z)t|dd|f||�\}}Wd|j
�Xt||j|�|fS(sP
Create a new shared object; return the token and exposed tuple
sserver not yet startedRTRGN(R�R�R�R�R4R�R�R�R1RWRmR(RRR-R.R�RR�((s./sys/lib/python2.7/multiprocessing/managers.pyt_create0s!)cCs|jj|�dS(sC
Join the manager process (if it has been spawned)
N(R�R�(Rttimeout((s./sys/lib/python2.7/multiprocessing/managers.pyR�<scCsA|j|jd|j�}zt|dd�SWd|j�XdS(sS
Return some info about the servers shared objects and connections
RTRJN(R�R�R�R1RWRm(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyt_debug_infoBscCsA|j|jd|j�}zt|dd�SWd|j�XdS(s5
Return the number of shared objects
RTRKN(R�R�R�R1RWRm(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyt_number_of_objectsLscCs|S(N((R((s./sys/lib/python2.7/multiprocessing/managers.pyt __enter__VscCs|j�dS(N(RF(Rtexc_typetexc_valtexc_tb((s./sys/lib/python2.7/multiprocessing/managers.pyt__exit__YscCs|j�r�jd�y8||d|�}zt|dd�Wd|j�XWntk
rdnX|jdd�|j�r�jd�t|d�r�jd �|j �|jdd
�|j�r�jd�q���t
j|_yt
j|=Wntk
rnXdS(sQ
Shutdown the manager process; will be registered as a finalizer
s#sending shutdown message to managerRTRFNR�g����smanager still aliveR�s'trying to `terminate()` manager processg����s#manager still alive after terminate(tis_aliveR RR1RWRmRsR�R<R�R�R�R�Rt_address_to_localtKeyError(tprocessRRTR!R�R�((s./sys/lib/python2.7/multiprocessing/managers.pyR�\s.
cCs|jS(N(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyt<lambda>|sc
s$d|jkr$|jj�|_n�dkr9t�n|pNt�dd�}|pft�dd�}|r�xa|j�D]P\}}t|�tks�t d|��t|�tks|t d|��q|Wn|||�f|j�<|r ��fd�} �| _
t|�| �ndS(s9
Register a typeid with the manager type
R�t _exposed_t_method_to_typeid_s%r is not a stringc s�tjd��|j�||�\}}�||jd|d|jd|�}|j|jd|j�}t|dd|j f�|S(Ns)requesting creation of a shared %r objecttmanagerRTR�RN(
R RyR�R�R�R�RR1RWR(RR-R.R�texptproxyR�(R�R(s./sys/lib/python2.7/multiprocessing/managers.pyR?�sN(t__dict__R�tcopyRWt AutoProxyR;RR2R3R4R$tsetattr(
R�RR�R�R�R�t
create_methodtkeyR�R?((R�Rs./sys/lib/python2.7/multiprocessing/managers.pytregister~s ")
N(((R$R%R&R�RER�RWRR�R�R�RjtclassmethodR�R�R�R�R�R�R�tstaticmethodR�tpropertyRRhR�(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s*
$
tProcessLocalSetcBseZd�Zd�ZRS(cCstj|d��dS(NcSs
|j�S(N(tclear(R>((s./sys/lib/python2.7/multiprocessing/managers.pyR��s(R tregister_after_fork(R((s./sys/lib/python2.7/multiprocessing/managers.pyR�scCst|�dfS(N((R2(R((s./sys/lib/python2.7/multiprocessing/managers.pyR��s(R$R%RR�(((s./sys/lib/python2.7/multiprocessing/managers.pyR��s cBs�eZdZiZej�Zddded�Z d�Z
d
id�Zd�Zd�Z
ed��Zd�Zd�Zd �Zd
�Zd�ZRS(s.
A base for proxies of shared objects
cCs;tjj�zPtjj|jd�}|dkr\tj�t �f}|tj|j<nWdtjj
�X|d|_|d|_||_
|j
j|_||_||_t|d|_|dk r�|�|_n0|jdk r|jj|_nt�j|_|r$|j�ntj|tj�dS(Nii(Rt_mutexR�R�R|RRWR tForkAwareLocalR�R�t_tlst_idsett_tokenRt_idt_managerR�RUR�RR�RRTt_increfR�t_after_fork(RR�R^R�RTR�RMt tls_idset((s./sys/lib/python2.7/multiprocessing/managers.pyR�s,
cCs�tjd�t�j}tj�jdkrH|dtj�j7}n|j|jjd|j �}t
|dd|f�||j_
dS(Nsmaking connection to managert
MainThreadt|RTRH(R RyRR@RZRzR�R�RR�R1RWR�R
(RR@R�((s./sys/lib/python2.7/multiprocessing/managers.pyt_connect�s
c Cs5y|jj}Wn@tk
rRtjdtj�j�|j�|jj}nX|j |j
|||f�|j�\}}|dkr�|S|dkr"|\}}|jj
|jd} | ||jd|jd|jd|�}
|j|jd|j�}t|d d|jf�|
St||��d S(
sW
Try to call a method of the referrent and return a copy of the result
s#thread %r does not own a connections#RETURNs#PROXYi�R�RTR�RNN(R�R
R{R RyRZRzR@R�R(R�R)R�R�RR�R�R�RR1RWRR*(RR,R-R.R�R/R0R�R�R�R�((s./sys/lib/python2.7/multiprocessing/managers.pyt_callmethod�s*
cCs
|jd�S(s9
Get a copy of the value of the referent
s #GETVALUE(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyt _getvaluescCs�|j|jjd|j�}t|dd|jf�tjd|jj �|j
j|j�|jor|jj
}tj|tjd|j|j||j|j
|jfdd�|_dS(NRTRMs INCREF %rR-R�i
(R�R�RR�R1RWR�R RyRR�taddR�R�RRt_decrefR�t_close(RR�R!((s./sys/lib/python2.7/multiprocessing/managers.pyR�
scCs�|j|j�|dks.|jtjkr�yEtjd|j�||jd|�}t |dd|jf�Wq�t
k
r�}tjd|�q�Xntjd|j�|r�|d�r�jdtj
�j�|jj�|`ndS(Ns DECREF %rRTRNs... decref failed %ss%DECREF %r -- manager already shutdownR
s-thread %r has no more proxies so closing conn(tdiscardRRWR�R�R�R RyRR1RsR<RZRzR@R
Rm(R�RTR!ttlstidsetR�R�Rx((s./sys/lib/python2.7/multiprocessing/managers.pyR�s
cCsBd|_y|j�Wn$tk
r=}tjd|�nXdS(Nsincref failed: %s(RWR�R�RsR R(RRx((s./sys/lib/python2.7/multiprocessing/managers.pyR�6s
cCs�i}tj�r"|j|d<nt|dt�r]|j|d<tt|j|j |ffStt
|�|j|j |ffSdS(NRTt_isautoR�(R
tthread_is_spawningR�R;R�R�tRebuildProxyR�R�R�R2(RR.((s./sys/lib/python2.7/multiprocessing/managers.pyR�>s
cCs
|j�S(N(R�(Rtmemo((s./sys/lib/python2.7/multiprocessing/managers.pyt__deepcopy__KscCs*dt|�j|jjdt|�fS(Ns<%s object, typeid %r at %s>s0x%x(R2R$R�RR(R((s./sys/lib/python2.7/multiprocessing/managers.pyR#NscCs8y|jd�SWn tk
r3t|�d dSXdS(sV
Return representation of the referent (or a fall-back if that fails)
R#i�s; '__str__()' failed>N(R�RsR�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR8Rs
N((R$R%R&R�R tForkAwareThreadLockR�RWRhRR�R�R�R�R�R�R�R�RR#R8(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s%
cCs�tt�dd�}|r?|j|jkr?|j|jdS|jdt�odtt�dt�}|||d||�SdS(s�
Function used for unpickling proxy objects.
If possible the shared object is returned, or otherwise a proxy for it.
RbiRMt_inheritingN( R;RRWRRXRtpopRhR�(RAR�R^R.R�RM((s./sys/lib/python2.7/multiprocessing/managers.pyR_scBs�e|�}y|||fSWnek
r1nXi}x |D]}d||f|Uq?We|ef|�}||_||||f<|S(sC
Return an proxy type whose methods are given by `exposed`
sLdef %s(self, *args, **kwds):
return self._callmethod(%r, args, kwds)(R�R�R2RR�(R@R�t_cachetdictmetht ProxyType((s./sys/lib/python2.7/multiprocessing/managers.pyt
MakeProxyTypets
c
Cs�t|d}|dkr\||jd|�}zt|dd|f�}Wd|j�Xn|dkr�|dk r�|j}n|dkr�t�j}ntd|j |�}|||d|d|d|�} t
| _| S(s*
Return an auto-proxy for `token`
iRTRINs
AutoProxy[%s]R�RM(RURWRR1RmR�RRTR
RRhR�(
R�R^R�RTR�RMR�R�R R�((s./sys/lib/python2.7/multiprocessing/managers.pyR��s t NamespacecBseZd�Zd�ZRS(cKs|jj|�dS(N(R�tupdate(RR.((s./sys/lib/python2.7/multiprocessing/managers.pyR�scCss|jj�}g}x=|D]5\}}|jd�s|jd||f�qqW|j�dtjd|�S(NRCs%s=%rs
Namespace(%s)s, (R�Rt
startswithR=R�R3R�(RRR?R@R�((s./sys/lib/python2.7/multiprocessing/managers.pyR#�s
(R$R%RR#(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s tValuecBs>eZed�Zd�Zd�Zd�Zeee�ZRS(cCs||_||_dS(N(t _typecodet_value(RRR�tlock((s./sys/lib/python2.7/multiprocessing/managers.pyR�s cCs|jS(N(R(R((s./sys/lib/python2.7/multiprocessing/managers.pyR|�scCs
||_dS(N(R(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs dt|�j|j|jfS(Ns
%s(%r, %r)(R2R$RR(R((s./sys/lib/python2.7/multiprocessing/managers.pyR#�s( R$R%RhRR|R�R#R�R�(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s
cCstj||�S(N(R(RtsequenceR((s./sys/lib/python2.7/multiprocessing/managers.pytArray�st
IteratorProxycBsDeZdZd�Zd�Zd�Zd�Zd �Zd
�ZRS(t__next__tnextR(tthrowRmcCs|S(N((R((s./sys/lib/python2.7/multiprocessing/managers.pyt__iter__�scGs|jd|�S(NR(R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyR�scGs|jd|�S(NR(R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyR�scGs|jd|�S(NR((R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyR(�scGs|jd|�S(NR(R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyR�scGs|jd|�S(NRm(R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyRm�s(s__next__snextssendsthrowsclose( R$R%R�RRRR(RRm(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s t
AcquirerProxycBs5eZdZed�Zd�Zd�Zd�ZRS(R�R�cCs|jd|f�S(NR�(R�(Rtblocking((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs
|jd�S(NR�(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs
|jd�S(NR�(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs
|jd�S(NR�(R�(RR�R�R�((s./sys/lib/python2.7/multiprocessing/managers.pyR��s(sacquiresrelease(R$R%R�RhR�R�R�R�(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s
tConditionProxycBs,eZdZd d�Zd�Zd�ZRS(
R�R�twaittnotifyt
notify_allcCs|jd|f�S(NR(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR�scCs
|jd�S(NR(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR�scCs
|jd�S(NR(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR�s(sacquiresreleaseswaitsnotifys
notify_allN(R$R%R�RWRRR(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s t
EventProxycBs5eZdZd�Zd�Zd�Zd d�ZRS(
tis_setR�R�RcCs
|jd�S(NR (R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR �scCs
|jd�S(NR�(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs
|jd�S(NR�(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs|jd|f�S(NR(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR�s(sis_setssetsclearswaitN(R$R%R�R R�R�RWR(((s./sys/lib/python2.7/multiprocessing/managers.pyR�s
tNamespaceProxycBs)eZdZd�Zd�Zd�ZRS(t__getattribute__t__setattr__t__delattr__cCsB|ddkr tj||�Stj|d�}|d|f�S(NiRCR�R"(tobjectR"(RR�t
callmethod((s./sys/lib/python2.7/multiprocessing/managers.pyt__getattr__�scCsH|ddkr#tj|||�Stj|d�}|d||f�S(NiRCR�R#(R%R#R"(RR�R�R&((s./sys/lib/python2.7/multiprocessing/managers.pyR#�scCsB|ddkr tj||�Stj|d�}|d|f�S(NiRCR�R$(R%R$R"(RR�R&((s./sys/lib/python2.7/multiprocessing/managers.pyR$s(s__getattribute__s__setattr__s__delattr__(R$R%R�R'R#R$(((s./sys/lib/python2.7/multiprocessing/managers.pyR!�s t
ValueProxycBs/eZdZd�Zd�Zeee�ZRS(R|R�cCs
|jd�S(NR|(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyR|
scCs|jd|f�S(NR�(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR�s(sgetsset(R$R%R�R|R�R�R�(((s./sys/lib/python2.7/multiprocessing/managers.pyR(s t
BaseListProxyt__add__t__contains__t__delitem__t__delslice__t__getitem__t__getslice__t__len__t__mul__t__reversed__t__rmul__t__setitem__t__setslice__R=tcounttextendtindextinsertRtremovetreverseR�t__imul__t ListProxycBseZd�Zd�ZRS(cCs|jd|f�|S(NR7(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyt__iadd__scCs|jd|f�|S(NR<(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR<s(R$R%R>R<(((s./sys/lib/python2.7/multiprocessing/managers.pyR=s t DictProxyR�R�R|thas_keytpopitemt
setdefaultRt
ArrayProxyt PoolProxytapplytapply_asyncRmtimaptimap_unorderedR�tmapt map_asyncR�tAsyncResulttIteratorcBseZdZRS(s(
Subclass of `BaseManager` which supports a number of shared object types.
The types registered are those intended for the synchronization
of threads, plus `dict`, `list` and `Namespace`.
The `multiprocessing.Manager()` function creates started instances of
this class.
(R$R%R&(((s./sys/lib/python2.7/multiprocessing/managers.pyR?s tQueuet
JoinableQueuetEventtLockR[t SemaphoretBoundedSemaphoret ConditionRR�R�RR�R�(Ut__all__tosRtweakrefRZRRMR�RtmultiprocessingRRRRR R
tmultiprocessing.processRtmultiprocessing.forkingRR
RRtmultiprocessing.utilRRtcPickleRtImportErrorR�RR�R@R2R;t
view_typesR%RR1R*RsR5RBRDRER�R_R`tXmlListenert XmlClientRURR�R�RRR
RWRhR�RRRRRRRR!R(R)R=R?RCRDR�RRORPR[RQRRRSR�R�R�(((s./sys/lib/python2.7/multiprocessing/managers.pyt<module>$s�."
4
�
�
�
|