��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
cCsN|dkr|S|dkr&t|�S|dkr@td|�Std�SdS(Ns#ERRORs
#TRACEBACKs#UNSERIALIZABLEsUnserializable message: %s
sUnrecognized message type(tRemoteErrort
ValueError(R/R0((s./sys/lib/python2.7/multiprocessing/managers.pyR*ks
R2cBseZd�ZRS(cCs)ddddt|jd�ddS(Ns
t-iKi(tstrR-(R((s./sys/lib/python2.7/multiprocessing/managers.pyt__str__xs(R$R%R6(((s./sys/lib/python2.7/multiprocessing/managers.pyR2wscCsOg}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_(R@(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|\}}|d|dd�|_|jj|_iddfd6|_i|_t j
�|_d|_dS(NRtbacklogit0i((
tregistryRtauthkeytlistener_clienttlistenerRtNonet id_to_objtid_to_refcountt threadingtRLocktmutextstop(RRORRPt
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_serverRRtaccepttOSErrortIOErrorRVtThreadthandle_requesttTruetdaemontstarttKeyboardInterruptt
SystemExitRYtclose(RR+tt((s./sys/lib/python2.7/multiprocessing/managers.pyt
serve_forever�s cCs`d}}}yWtj||j�tj||j�|j�}|\}}}}t||�}Wn tk
r�dt�f} nFXy||||�}Wn tk
r�dt�f} n
Xd|f} y|j | �Wnqtk
rQ}
y|j dt�f�Wntk
rnXt
jd| �t
jd|�t
jd|
�nX|j�dS(s)
Handle a new connection
s
#TRACEBACKs#RETURNsFailure to send message: %rs ... request was %rs ... exception was %rN(
RSR
tdeliver_challengeRPtanswer_challengeR)R9t ExceptionRR(R RRi(RR+tfuncnameR0trequesttignoreR-R.R?tmsgte((s./sys/lib/python2.7/multiprocessing/managers.pyRc�s2
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 tdebugRVtcurrent_threadR>R)R(RTRYRStAttributeErrorttypeR9RntgetRERRRtfallback_mappingtEOFErrortsysRtreprRRi(RtconnR)R(RTR,R<RptidentR-R.texposedt gettypeidtfunctiontresRsRrRtridenttrexposedttokent
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(R5(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_repr1sR6R#s #GETVALUEcCsdS(N((RR+((s./sys/lib/python2.7/multiprocessing/managers.pyRJ: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
RNs %s: refcount=%s
%siiKs
N(
RXtacquireRTRtsortR;RUR5tjointrelease(RR+R0RR~((s./sys/lib/python2.7/multiprocessing/managers.pyRH=s
'cCst|j�dS(s*
Number of shared objects
i(tlenRT(RR+((s./sys/lib/python2.7/multiprocessing/managers.pyRIOscCsz�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 RtR(RSR{tstdoutt
__stdout__t
__stderr__tstderrt_run_finalizersRt terminateR�Rt tracebackt print_excR(RR+tpR�((s./sys/lib/python2.7/multiprocessing/managers.pyRDUs*
cOs%|jj�z|j|\}}}}|dkrB|d} n|||�} |dkrlt| �}n|dk r�t|�t|�}ndt| �}
tjd||
�| t |�|f|j
|
<|
|jkr�|j|
<n|j||
�|
t
|�fSWd|jj�XdS(s>
Create a new shared object and return its id
is%xs&%r callable returned object with id %rN(RXR�RORSRBtlistRR RttsetRTRURKttupleR�(RR+RR-R.tcallableRtmethod_to_typeidt proxytypeR<R~((s./sys/lib/python2.7/multiprocessing/managers.pyREus$
cCst|j|jd�S(sL
Return the methods of the shared object indicated by token
i(R�RTR(RR+R�((s./sys/lib/python2.7/multiprocessing/managers.pyRG�scCs-|tj�_|jd�|j|�dS(s=
Spawn a new thread to serve this connection
s#RETURNN(s#RETURNN(RVRuR>R(RSR�(RR+R>((s./sys/lib/python2.7/multiprocessing/managers.pyRF�s
cCs9|jj�z|j|cd7<Wd|jj�XdS(Ni(RXR�RUR�(RR+R~((s./sys/lib/python2.7/multiprocessing/managers.pyRK�s
cCss|jj�zQ|j|cd8<|j|dkr]|j|=|j|=tjd|�nWd|jj�XdS(Niisdisposing of obj with id %r(RXR�RURTR RtR�(RR+R~((s./sys/lib/python2.7/multiprocessing/managers.pyRL�s
(R$R%R&tpublicRRkRcR�R�R�R�RyRJRHRIRDRERGRFRKRL(((s./sys/lib/python2.7/multiprocessing/managers.pyRC�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(RSRRPt_addressRt_authkeyR�t_stateR�R�t_serializerRQt _Listenert_Client(RRRPRZ((s./sys/lib/python2.7/multiprocessing/managers.pyR�s cCs%t|�j|j|j|jffS(N(Rwtfrom_addressR�R�R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyt
__reduce__�scCst|j|j|j|j�S(sX
Return server object with serve_forever() method and address attribute
(RCt _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
RPRJN(
RQR�R�R�R1RSR�R�R�R�(RR[R\R}((s./sys/lib/python2.7/multiprocessing/managers.pytconnect�scCsL|dk r+t|d�r+td��ntjdt�\}}tdt|�jd|j |j
|j|j|||f�|_
djd�|j
jD��}t|�jd||j
_|j
j�|j�|j�|_
|j�tj|j_tj|t|�jd|j
|j
|j|j|jfd d
�|_dS(s@
Spawn a server process for this manager object
R7sinitializer must be a callabletduplexR]R-t:css|]}t|�VqdS(N(R5(t.0ti((s./sys/lib/python2.7/multiprocessing/managers.pys <genexpr>
sR4texitpriorityiN(RSR:t TypeErrorR
tPipetFalseRRwt_run_serverR�R�R�R�t_processR�t _identityR$R>RfRiR)R�R�R�R�R Rt_finalize_managerR�RD(RtinitializertinitargstreadertwriterR~((s./sys/lib/python2.7/multiprocessing/managers.pyRf�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(RSt_ServerR(RRiR RRk( tclsRORRPRZR�R�R�tserver((s./sys/lib/python2.7/multiprocessing/managers.pyR�s
cOsk|j|jd|j�}z)t|dd|f||�\}}Wd|j�Xt||j|�|fS(sP
Create a new shared object; return the token and exposed tuple
RPREN(R�R�R�R1RSRiR(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
RPRHN(R�R�R�R1RSRi(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
RPRIN(R�R�R�R1RSRi(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(RD(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 managerRPRDNR�g����smanager still aliveR�s'trying to `terminate()` manager processg����s#manager still alive after terminate(tis_aliveR RR1RSRiRnR�R:R�R�R�R�Rt_address_to_localtKeyError(tprocessRRPR!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�x|j�D]\}}q|Wn|||�f|j�<|r���fd�} �| _t|�| �ndS(s9
Register a typeid with the manager type
R�t _exposed_t_method_to_typeid_c s�tjd��|j�||�\}}�||jd|d|jd|�}|j|jd|j�}t|dd|j f�|S(Ns)requesting creation of a shared %r objecttmanagerRPRRL(
R RtR�R�R�R�RR1RSR(RR-R.R�texptproxyR}(R�R(s./sys/lib/python2.7/multiprocessing/managers.pyR=�sN( t__dict__R�tcopyRSt AutoProxyR9RR$tsetattr(
R�RR�R�RR�t
create_methodtkeyR�R=((R�Rs./sys/lib/python2.7/multiprocessing/managers.pytregister~s
N(((R$R%R&R�RCR�RSRR�R�R�RftclassmethodR�R�R�R�R�R�R�tstaticmethodR�tpropertyRRdR�(((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((Rw(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�RxRRSR tForkAwareLocalR�R�t_tlst_idsett_tokenRt_idt_managerR�RQR�RR�RRPt_increfR�t_after_fork(RR�RZR�RPRRKt 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|RPRF(R RtRR>RVRuR�R�RR�R1RSR�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�RPRRLN(R�R
RvR RtRVRuR>R�R(R�R)R�R�RR�R�R�RR1RSRR*(RR,R-R.R}R/R0RR�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(NRPRKs INCREF %rR-R�i
(R�R�RR�R1RSR�R RtRR�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 %rRPRLs... decref failed %ss%DECREF %r -- manager already shutdownR
s-thread %r has no more proxies so closing conn(tdiscardRRSR�R�R�R RtRR1RnR:RVRuR>R
Ri(R�RPR!ttlstidsetR�R}Rs((s./sys/lib/python2.7/multiprocessing/managers.pyR�s
cCsBd|_y|j�Wn$tk
r=}tjd|�nXdS(Nsincref failed: %s(RSR�R�RnR R(RRs((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(NRPt_isautoR(R
tthread_is_spawningR�R9R�R�tRebuildProxyR�R�R�Rw(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(RwR$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�RnR|(R((s./sys/lib/python2.7/multiprocessing/managers.pyR6Rs
N((R$R%R&R�R tForkAwareThreadLockR�RSRdRR�R�R�R�R�R�R�R�R�R#R6(((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.
R^iRKt_inheritingN( R9RRSRRTRtpopRdR�(R?R�RZR.R�RK((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�RwRR�(R>Rt_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`
iRPRGNs
AutoProxy[%s]R�RK(RQRSRR1RiR�RRPRRRdR�(
R�RZR�RPRRKR�R}RR�((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(NRAs%s=%rs
Namespace(%s)s, (R�Rt
startswithR;R�R5R�(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.pyRx�scCs
||_dS(N(R(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR��scCs dt|�j|j|jfS(Ns
%s(%r, %r)(RwR$RR(R((s./sys/lib/python2.7/multiprocessing/managers.pyR#�s( R$R%RdRRxR�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(tthrowRicCs|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(NRi(R�(RR-((s./sys/lib/python2.7/multiprocessing/managers.pyRi�s(s__next__snextssendsthrowsclose( R$R%R�RRRR(RRi(((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�RdR�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�RSRRR(((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�RR�R�RSR(((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(NiRAR�R(tobjectR(RR�t
callmethod((s./sys/lib/python2.7/multiprocessing/managers.pyt__getattr__�scCsH|ddkr#tj|||�Stj|d�}|d||f�S(NiRAR�R(R!RR(RR�R�R"((s./sys/lib/python2.7/multiprocessing/managers.pyR�scCsB|ddkr tj||�Stj|d�}|d|f�S(NiRAR�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#RR (((s./sys/lib/python2.7/multiprocessing/managers.pyR�s t
ValueProxycBs/eZdZd�Zd�Zeee�ZRS(RxR�cCs
|jd�S(NRx(R�(R((s./sys/lib/python2.7/multiprocessing/managers.pyRx
scCs|jd|f�S(NR�(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR�s(sgetsset(R$R%R�RxR�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(NR3(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyt__iadd__scCs|jd|f�|S(NR8(R�(RR�((s./sys/lib/python2.7/multiprocessing/managers.pyR8s(R$R%R:R8(((s./sys/lib/python2.7/multiprocessing/managers.pyR9s t DictProxyR�R�Rxthas_keytpopitemt
setdefaultRt
ArrayProxyt PoolProxytapplytapply_asyncRitimaptimap_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
JoinableQueuetEventtLockRWt SemaphoretBoundedSemaphoret ConditionRR�tdictRR�R�(Ut__all__tosR{tweakrefRVRRIR�RtmultiprocessingRRRRR R
tmultiprocessing.processRtmultiprocessing.forkingRR
RRtmultiprocessing.utilRRtcPickleRtImportErrorR�RR�R>RwR9t
view_typesR!RR1R*RnR2R@RBRCR�R[R\tXmlListenert XmlClientRQRR�R�RR�RRSRdR�RR
RRRRRRR$R%R9R;R?R@R�RRKRLRWRMRNROR�RPR�(((s./sys/lib/python2.7/multiprocessing/managers.pyt<module>$s�."
4
�
�
�
|