File "managers.cpython-34.pyc"

Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/opt/alt/python34/lib64/python3.4/multiprocessing/__pycache__/managers.cpython-34.pyc
File size: 34.93 KB
MIME-type: text/x-bytecode.python
Charset: 8 bit


e f@sddddgZddlZddlZddlZddlZddlmZddlmZdd	l	m
Z
dd
l	mZddl	mZddl	m
Z
dd
l	mZddl	mZddl	mZddZejejedddddfDZedek	rMddZxeD]Zejeeq0WnGdddeZfiddZddZGdddeZd d!Zd"d#ZGd$d%d%eZGd&d'd'eZ ie
j!e
j"fd(6e
j#e
j$fd)6Z%Gd*ddeZ&Gd+d,d,e'Z(Gd-ddeZ)d.d/Z*id0d1Z+dddd2d3d4Z,Gd5d6d6eZ-Gd7d8d8eZ.d2d9d:Z/Gd;d<d<e)Z0Gd=d>d>e)Z1Gd?d@d@e1Z2GdAdBdBe)Z3GdCdDdDe)Z4GdEdFdFe)Z5GdGdHdHe)Z6e+dIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\fZ7Gd]d^d^e7Z8e+d_dKdLdMdNdRd`dadbdcdddXdddedfdfZ9e+dgdNdMdRfZ:e+dhdidjdkdldmdndodpdqdrdsfZ;idtdj6dtdp6dtdr6dudl6dudm6e;_<Gdvdhdhe;Z=Gdwdde&Z>e>jdxej?e>jdyej?e>jdzej@e3e>jd{ejAe1e>jd|ejBe1e>jd}ejCe1e>jd~ejDe1e>jdejEe2e>jdejFe4e>jdejGe=e>jdee8e>jdeHe9e>jd8e.e6e>jd:e/e:e>jd6e-e5e>jdude0dde>jdtdddS)BaseManagerSyncManager	BaseProxyTokenN)time)
format_exc)
connection)context)pool)process)	reduction)util)get_contextcCstj|j|jffS)N)arraytypecodetobytes)ar=/opt/alt/python34/lib64/python3.4/multiprocessing/managers.pyreduce_array%srcCs(g|]}tti|qSr)typegetattr).0namerrr
<listcomp>)s	ritemskeysvaluescCstt|ffS)N)list)objrrrrebuild_as_list+sr!c@sLeZdZdZdZddZddZd	d
ZddZd
S)rz4
    Type to uniquely indentify a shared object
    typeidaddressidcCs!||||_|_|_dS)N)r"r#r$)selfr"r#r$rrr__init__:szToken.__init__cCs|j|j|jfS)N)r"r#r$)r%rrr__getstate__=szToken.__getstate__cCs|\|_|_|_dS)N)r"r#r$)r%staterrr__setstate__@szToken.__setstate__cCsd|j|j|jfS)Nz#Token(typeid=%r, address=%r, id=%r))r"r#r$)r%rrr__repr__CszToken.__repr__N)ztypeidzaddresszid)	__name__
__module____qualname____doc__	__slots__r&r'r)r*rrrrr4scCsN|j||||f|j\}}|dkr;|St||dS)zL
    Send a message to manager using connection `c` and return response
    z#RETURNN)sendrecvconvert_to_error)cr$
methodnameargskwdskindresultrrrdispatchKs
r9cCs~|dkr|S|dkr>t|tks4tt|S|dkrpt|tksbttd|StdSdS)Nz#ERRORz
#TRACEBACKz#UNSERIALIZABLEzUnserializable message: %s
zUnrecognized message type)rstrAssertionErrorRemoteError
ValueError)r7r8rrrr2Us
r2c@seZdZddZdS)r<cCs)ddddt|jdddS)N
-Kr)r:r5)r%rrr__str__bszRemoteError.__str__N)r+r,r-rArrrrr<asr<cCsLg}x?t|D]1}t||}t|r|j|qqW|S)z4
    Return a list of names of methods of `obj`
    )dirrcallableappend)r temprfuncrrrall_methodsisrGcCsddt|DS)zP
    Return a list of names of methods of `obj` which do not start with '_'
    cSs&g|]}|ddkr|qS)r_r)rrrrrrxs	z"public_methods.<locals>.<listcomp>)rG)r rrrpublic_methodstsrIc	@seZdZdZdddddddd	d
g	ZddZd
dZddZddZddZ	ddZ
ddZddZied6ed6e
d6Z
ddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0S)1ServerzM
    Server class which runs in a process controlled by a manager object
    shutdowncreateaccept_connectionget_methods
debug_infonumber_of_objectsdummyincrefdecrefcCst|tst||_tj||_t|\}}|d|dd|_|jj	|_	idffd6|_
i|_tj
|_dS)Nr#Zbacklog0)
isinstancebytesr;registryrAuthenticationStringauthkeylistener_clientlistenerr#	id_to_objid_to_refcount	threadingRLockmutex)r%rXr#rZ
serializerListenerClientrrrr&s		zServer.__init__cCstj|_|tj_zqtjd|j}d|_|j	y*x#|jj
sq|jjdqOWWntt
fk
rYnXWdtjtjkrtjdtjt_tjt_ntjdXdS)z(
        Run the server forever
        targetTrNzresetting stdout, stderrr)r_Event
stop_eventrcurrent_process_manager_serverThreadaccepterdaemonstartis_setwaitKeyboardInterrupt
SystemExitsysstdout
__stdout__rdebug
__stderr__stderrexit)r%rkrrr
serve_forevers 	
	
zServer.serve_foreverc
Csgx`y|jj}Wntk
r-wYnXtjd|jd|f}d|_|jqWdS)Nrer5T)r\ZacceptOSErrorr_rjhandle_requestrlrm)r%r3trrrrks
	zServer.accepterc'Csd}}}yvtj||jtj||j|j}|\}}}}||jksttd|t||}Wn!tk
rdt	f}	YnGXy||||}Wn!tk
rdt	f}	Yn
Xd|f}	y|j
|	Wntk
r}
zdy|j
dt	fWntk
rBYnXtjd|	tjd|tjd|
WYdd}
~
XnX|j
dS)z)
        Handle a new connection
        Nz%r unrecognizedz
#TRACEBACKz#RETURNzFailure to send message: %rz ... request was %rz ... exception was %r)r	Zdeliver_challengerZZanswer_challenger1publicr;r	Exceptionrr0rinfoclose)r%r3Zfuncnamer8requestignorer5r6rFmsgerrrr{s4


#zServer.handle_requestc*Cs+tjdtjj|j}|j}|j}x|jj	s&y/d}}|}|\}}}	}
||\}}}||krt
d|t||fnt||}
y|
|	|
}Wn1t
k
r}zd|f}WYdd}~XnpX|o|j|d}|rh|j|||\}}t||j|}d||ff}nd|f}Wnt
k
r|dkrdtf}n\y8|j|}||||||	|
}d|f}Wn!t
k
rdtf}YnXYnXtk
r:tjdtjjtjd	Yn!t
k
rZdtf}YnXyPy||Wn;t
k
r}z|d
t|fWYdd}~XnXWq7t
k
r"}zUtjdtjjtjd|tjd
||jtjdWYdd}~Xq7Xq7WdS)zQ
        Handle requests from the proxies in a particular process/thread
        z$starting server thread to service %rNz+method %r of %r object is not in exposed=%rz#ERRORz#PROXYz#RETURNz
#TRACEBACKz$got EOF -- exiting thread serving %rrz#UNSERIALIZABLEzexception in thread serving %rz ... message was %rz ... exception was %rr)rrur_current_threadrr1r0r]rgrnAttributeErrorrrr~getrLrr#rfallback_mappingEOFErrorrrrxreprrr)r%connr1r0r]r4r ridentr5r6exposedZ	gettypeidZfunctionresrrr"ZridentZrexposedtokenZ
fallback_funcr8rrrserve_clientsl				
	



	
-	
zServer.serve_clientcCs|S)Nr)r%rrr rrrfallback_getvalueszServer.fallback_getvaluecCs
t|S)N)r:)r%rrr rrrfallback_str"szServer.fallback_strcCs
t|S)N)r)r%rrr rrr
fallback_repr%szServer.fallback_reprrAr*z	#GETVALUEcCsdS)Nr)r%r3rrrrQ.szServer.dummycCs|jjzg}t|jj}|jxY|D]Q}|dkr<|jd||j|t|j|dddfq<q<Wdj	|SWd|jj
XdS)zO
        Return some info --- useful to spot problems with refcounting
        rUz  %s:       refcount=%s
    %srNr@r>)raacquirerr]rsortrDr^r:joinrelease)r%r3r8rrrrrrO1s


	
-zServer.debug_infocCst|jdS)z*
        Number of shared objects
        r)lenr])r%r3rrrrPCszServer.number_of_objectscCsXzCytjd|jdWnddl}|jYnXWd|jjXdS)z'
        Shutdown this process
        z!manager received shutdown message#RETURNNr)rN)rrur0	traceback	print_excrgset)r%r3rrrrrKIs
zServer.shutdownc
Os\|jjz:|j|\}}}}|dkrat|dkrN|sTt|d}	n|||}	|dkrt|	}n|dk	rt|tkstt|t|}ndt	|	}
t
jd||
|	t||f|j
|
<|
|jkr&d|j|
<n|j||
|
t|fSWd|jjXdS)z>
        Create a new shared object and return its id
        Nrrz%xz&%r callable returned object with id %r)rarrXrr;rIrdictrr$rrurr]r^rRtupler)r%r3r"r5r6rCrmethod_to_typeid	proxytyper rrrrrLVs(

z
Server.createcCst|j|jdS)zL
        Return the methods of the shared object indicated by token
        r)rr]r$)r%r3rrrrrN|szServer.get_methodscCs-|tj_|jd|j|dS)z=
        Spawn a new thread to serve this connection
        #RETURNN)rN)r_rrr0r)r%r3rrrrrMs
zServer.accept_connectionc
Cs7|jjz|j|d7<Wd|jjXdS)Nr)rarr^r)r%r3rrrrrRs
z
Server.increfc
Cs|jjzh|j|dks)t|j|d8<|j|dkrt|j|=|j|=tjd|nWd|jjXdS)Nrrzdisposing of obj with id %r)rarr^r;r]rrur)r%r3rrrrrSs
z
Server.decrefN)r+r,r-r.r}r&ryrkr{rrrrrrQrOrPrKrLrNrMrRrSrrrrrJ~s0
"J

&rJc@s+eZdZdgZdZdZdZdS)StatevaluerrN)r+r,r-r/INITIALSTARTEDSHUTDOWNrrrrrs	rpickleZ	xmlrpclibc@seZdZdZiZeZddddddZddZdd	Z	dfd
dZ
edfdd
ZddZ
dddZddZddZddZddZeddZeddZeddddddd ZdS)!rz!
    Base class for managers
    NrcCs|dkrtjj}n||_tj||_t|_tj|j_	||_
t|\|_|_
|pt|_dS)N)rrhrZ_addressrY_authkeyr_staterr_serializerr[Z	_Listener_Clientr_ctx)r%r#rZrbZctxrrrr&s		zBaseManager.__init__cCs:|jjtjkstt|j|j|j|j	S)zX
        Return server object with serve_forever() method and address attribute
        )
rrrrr;rJ	_registryrrr)r%rrr
get_serverszBaseManager.get_servercCsNt|j\}}||jd|j}t|ddtj|j_dS)z>
        Connect manager object to the server process
        rZNrQ)	r[rrrr9rrrr)r%rcrdrrrrconnectszBaseManager.connectcCsm|jjtjkst|dk	rCt|rCtdntjdd\}}|j	j
dt|jd|j
|j|j|j|||f|_djdd	|jjD}t|jd
||j_|jj|j|j|_|jtj|j_tj|t|jd|j|j|j|j|jfdd|_dS)
z@
        Spawn a server process for this manager object
        Nzinitializer must be a callableZduplexFrer5:css|]}t|VqdS)N)r:)rirrr	<genexpr>sz$BaseManager.start.<locals>.<genexpr>r?exitpriorityr)rrrrr;rC	TypeErrorr	ZPiperZProcessr_run_serverrrrr_processrZ	_identityr+rrmrr1rrFinalize_finalize_managerrrK)r%initializerinitargsreaderwriterrrrrrms("


zBaseManager.startc	Csl|dk	r||n|j||||}|j|j|jtjd|j|jdS)z@
        Create a server, report its address and run it
        Nzmanager serving at %r)_Serverr0r#rrrry)	clsrXr#rZrbrrrserverrrrrs

zBaseManager._run_servercOs|jjtjks!td|j|jd|j}z)t|dd|f||\}}Wd|j	Xt
||j||fS)zP
        Create a new shared object; return the token and exposed tuple
        zserver not yet startedrZNrL)rrrrr;rrrr9rr)r%r"r5r6rr$rrrr_creates!)zBaseManager._createcCsA|jdk	r=|jj||jjs=d|_q=ndS)zC
        Join the manager process (if it has been spawned)
        N)rris_alive)r%timeoutrrrrszBaseManager.joinc
CsA|j|jd|j}zt|ddSWd|jXdS)zS
        Return some info about the servers shared objects and connections
        rZNrO)rrrr9r)r%rrrr_debug_info$szBaseManager._debug_infoc
CsA|j|jd|j}zt|ddSWd|jXdS)z5
        Return the number of shared objects
        rZNrP)rrrr9r)r%rrrr_number_of_objects.szBaseManager._number_of_objectscCsA|jjtjkr"|jn|jjtjks=t|S)N)rrrrrmrr;)r%rrr	__enter__8s
zBaseManager.__enter__cCs|jdS)N)rK)r%exc_typeexc_valexc_tbrrr__exit__>szBaseManager.__exit__cCs|jrtjdy8||d|}zt|ddWd|jXWntk
reYnX|jdd|jrtjdt|drtjd	|j|jdd
|jrtjdqqqnt	j
|_ytj
|=Wntk
rYnXdS)zQ
        Shutdown the manager process; will be registered as a finalizer
        z#sending shutdown message to managerrZNrKrg?zmanager still alive	terminatez'trying to `terminate()` manager processg?z#manager still alive after terminate)rrrr9rr~rhasattrrrrrr_address_to_localKeyError)rr#rZr(rrrrrrAs.





zBaseManager._finalize_managercCs|jS)N)r)r%rrr<lambda>aszBaseManager.<lambda>Tc
s-d|jkr$|jj|_ndkr9tn|pNtdd}|pftdd}|rxgt|jD]P\}}t|tkst	d|t|tkst	d|qWn|||f|j<|r)fdd}	|	_
t||	ndS)z9
        Register a typeid with the manager type
        rN	_exposed__method_to_typeid_z%r is not a stringc	stjd|j||\}}||jd|d|jd|}|j|jd|j}t|dd|jf|S)Nz)requesting creation of a shared %r objectmanagerrZrrS)	rrurrrrr#r9r$)r%r5r6rZexpproxyr)rr"rrrE~sz"BaseManager.register.<locals>.temp)__dict__rcopy	AutoProxyrrrrr:r;r+setattr)
rr"rCrrr
create_methodkeyrrEr)rr"rregistercs 	")
	zBaseManager.register)r+r,r-r.rrJrr&rrrmclassmethodrrrrrrrstaticmethodrpropertyr#rrrrrrs*		$	

 	c@s(eZdZddZddZdS)ProcessLocalSetcCstj|dddS)NcSs
|jS)N)clear)r rrrrsz*ProcessLocalSet.__init__.<locals>.<lambda>)rregister_after_fork)r%rrrr&szProcessLocalSet.__init__cCst|ffS)N)r)r%rrr
__reduce__szProcessLocalSet.__reduce__N)r+r,r-r&rrrrrrsrc@seZdZdZiZejZddddddZddZ	fidd	Z
d
dZdd
Ze
ddZddZddZddZddZddZdS)rz.
    A base for proxies of shared objects
    NTcCsAtjjzPtjj|jd}|dkr\tjtf}|tj|j<nWdtjj	X|d|_
|d|_||_|jj
|_||_||_t|d|_|dk	rtj||_n3|jdk	r|jj|_ntjj|_|r*|jntj|tjdS)Nrr)r_mutexrrrr#rZForkAwareLocalrr_tls_idset_tokenr$_id_managerrr[rrrYrrhrZ_increfr_after_fork)r%rrbrrZrrRZ	tls_idsetrrrr&s,


			
zBaseProxy.__init__cCstjdtjj}tjjdkrK|dtjj7}n|j|jj	d|j
}t|dd|f||j_
dS)Nzmaking connection to managerZ
MainThread|rZrM)rrurrhrr_rrrr#rr9rr	)r%rrrrr_connects
zBaseProxy._connectcCsEy|jj}WnAtk
rStjdtjj|j|jj}YnX|j	|j
|||f|j\}}|dkr|S|dkr2|\}}|jj
|jd
}	|jj|_|	||jd|jd|jd|}
|j|jd|j}t|dd	|jf|
St||dS)zW
        Try to call a method of the referrent and return a copy of the result
        z#thread %r does not own a connectionz#RETURNz#PROXYrrrZrNrS)rr	rrrur_rrrr0rr1rrr"rr#rrrr9r$r2)r%r4r5r6rr7r8rrrrrrr_callmethods,
	
zBaseProxy._callmethodcCs
|jdS)z9
        Get a copy of the value of the referent
        z	#GETVALUE)r)r%rrr	_getvalueszBaseProxy._getvaluec
Cs|j|jjd|j}t|dd|jftjd|jj|j	j
|j|jor|jj}tj
|tjd|j|j||j|j	|jfdd|_dS)NrZrRz	INCREF %rr5r
)rrr#rr9rrrur$raddrrrr_decrefrZ_close)r%rr(rrrrszBaseProxy._increfcCs
|j|j|dks.|jtjkryEtjd|j||jd|}t|dd|jfWqt	k
r}ztjd|WYdd}~XqXntjd|j|rt
|drtjdtjj
|jj|`ndS)Nz	DECREF %rrZrSz... decref failed %sz%DECREF %r -- manager already shutdownr	z-thread %r has no more proxies so closing conn)discardr$rrrrrur#r9r~rr_rrr	r)rrZr(ZtlsZidsetrrrrrrrs&	
zBaseProxy._decrefcCsTd|_y|jWn6tk
rO}ztjd|WYdd}~XnXdS)Nzincref failed: %s)rrr~rr)r%rrrrrs
	zBaseProxy._after_forkcCsi}tjdk	r(|j|d<nt|ddrc|j|d<tt|j|j|ffStt	||j|j|ffSdS)NrZ_isautoFr)
r
Zget_spawning_popenrrrRebuildProxyrrrr)r%r6rrrr$s
zBaseProxy.__reduce__cCs
|jS)N)r)r%memorrr__deepcopy__1szBaseProxy.__deepcopy__cCs*dt|j|jjdt|fS)Nz<%s object, typeid %r at %s>z0x%x)rr+rr"r$)r%rrrr*4szBaseProxy.__repr__cCsBy|jdSWn*tk
r=t|dddSYnXdS)zV
        Return representation of the referent (or a fall-back if that fails)
        r*Nrz; '__str__()' failed>r)rr~r)r%rrrrA8s
zBaseProxy.__str__)r+r,r-r.rrZForkAwareThreadLockrr&rrrrrrrrrr*rArrrrrs%	
cCsttjdd}|rB|j|jkrB|j|jdS|jddojttjdd}|||d||SdS)z
    Function used for unpickling proxy objects.

    If possible the shared object is returned, or otherwise a proxy for it.
    riNrrRTZ_inheritingF)rrrhr#r]r$pop)rFrrbr6rrRrrrrEsrc
Cst|}y|||fSWntk
r2YnXi}x%|D]}td||f|q@Wt|tf|}||_||||f<|S)zC
    Return an proxy type whose methods are given by `exposed`
    zLdef %s(self, *args, **kwds):
        return self._callmethod(%r, args, kwds))rrexecrrr)rr_cacheZdicmeth	ProxyTyperrr
MakeProxyTypeZs

	rTc
Cst|d}|dkr\||jd|}zt|dd|f}Wd|jXn|dkr|dk	r|j}n|dkrtjj}ntd|j	|}|||d|d|d|}	d|	_
|	S)	z*
    Return an auto-proxy for `token`
    rNrZrNz
AutoProxy[%s]rrRT)r[r#r9rrrrhrZrr"r)
rrbrrZrrRrrrrrrrrps		rc@s(eZdZddZddZdS)	NamespacecKs|jj|dS)N)rupdate)r%r6rrrr&szNamespace.__init__cCsyt|jj}g}x=|D]5\}}|jds"|jd||fq"q"W|jdtjd|S)NrHz%s=%rz
Namespace(%s)z, )rrr
startswithrDrr:r)r%rrErrrrrr*s
zNamespace.__repr__N)r+r,r-r&r*rrrrrsrc@sReZdZdddZddZddZdd	ZeeeZd
S)ValueTcCs||_||_dS)N)	_typecode_value)r%rrlockrrrr&s	zValue.__init__cCs|jS)N)r)r%rrrrsz	Value.getcCs
||_dS)N)r)r%rrrrrsz	Value.setcCs dt|j|j|jfS)Nz
%s(%r, %r))rr+rr)r%rrrr*szValue.__repr__N)	r+r,r-r&rrr*rrrrrrrs
rcCstj||S)N)r)rZsequencerrrrArraysrc@sReZdZdZddZddZd	d
ZddZd
dZdS)
IteratorProxy__next__r0throwrcCs|S)Nr)r%rrr__iter__szIteratorProxy.__iter__cGs|jd|S)Nr)r)r%r5rrrrszIteratorProxy.__next__cGs|jd|S)Nr0)r)r%r5rrrr0szIteratorProxy.sendcGs|jd|S)Nr)r)r%r5rrrrszIteratorProxy.throwcGs|jd|S)Nr)r)r%r5rrrrszIteratorProxy.closeN)z__next__zsendzthrowzclose)	r+r,r-rr	rr0rrrrrrrsrc@sLeZdZd
ZddddZddZd	d
ZddZdS)
AcquirerProxyrrTNcCs1|dkr|fn	||f}|jd|S)Nr)r)r%Zblockingrr5rrrrs!zAcquirerProxy.acquirecCs
|jdS)Nr)r)r%rrrrszAcquirerProxy.releasecCs
|jdS)Nr)r)r%rrrrszAcquirerProxy.__enter__cCs
|jdS)Nr)r)r%rrrrrrrszAcquirerProxy.__exit__)zacquirezrelease)r+r,r-rrrrrrrrrr
s
r
c@sLeZdZdZdddZd	d
ZddZdd
dZdS)ConditionProxyrrronotify
notify_allNcCs|jd|fS)Nro)r)r%rrrrroszConditionProxy.waitcCs
|jdS)Nr)r)r%rrrrszConditionProxy.notifycCs
|jdS)Nr
)r)r%rrrr
szConditionProxy.notify_allcCs|}|r|S|dk	r/t|}nd}d}xL|s|dk	rp|t}|dkrpPqpn|j||}q>W|S)Nr)_timero)r%Z	predicaterr8ZendtimeZwaittimerrrwait_fors		


zConditionProxy.wait_for)zacquirezreleasezwaitznotifyz
notify_all)r+r,r-rrorr
rrrrrrs
rc@sIeZdZdZddZddZd	d
Zddd
ZdS)
EventProxyrnrrrocCs
|jdS)Nrn)r)r%rrrrnszEventProxy.is_setcCs
|jdS)Nr)r)r%rrrrszEventProxy.setcCs
|jdS)Nr)r)r%rrrrszEventProxy.clearNcCs|jd|fS)Nro)r)r%rrrrroszEventProxy.wait)zis_setzsetzclearzwait)r+r,r-rrnrrrorrrrrs
rc@sseZdZdZdddZdd	Zd
dZedd
ZeddZ	eddZ
dS)BarrierProxy__getattribute__roabortresetNcCs|jd|fS)Nro)r)r%rrrrroszBarrierProxy.waitcCs
|jdS)Nr)r)r%rrrrszBarrierProxy.abortcCs
|jdS)Nr)r)r%rrrrszBarrierProxy.resetcCs|jddS)Nrparties)zparties)r)r%rrrrszBarrierProxy.partiescCs|jddS)Nr	n_waiting)z	n_waiting)r)r%rrrrszBarrierProxy.n_waitingcCs|jddS)Nrbroken)zbroken)r)r%rrrrszBarrierProxy.broken)z__getattribute__zwaitzabortzreset)r+r,r-rrorrrrrrrrrrrsrc@s:eZdZdZddZddZdd	Zd
S)NamespaceProxyr__setattr____delattr__cCsB|ddkr tj||Stj|d}|d|fS)NrrHrr)objectr)r%r
callmethodrrr__getattr__szNamespaceProxy.__getattr__cCsH|ddkr#tj|||Stj|d}|d||fS)NrrHrr)rrr)r%rrrrrrrszNamespaceProxy.__setattr__cCsB|ddkr tj||Stj|d}|d|fS)NrrHrr)rrr)r%rrrrrr
szNamespaceProxy.__delattr__N)z__getattribute__z__setattr__z__delattr__)r+r,r-rrrrrrrrrsrc@s=eZdZdZddZddZeeeZdS)	
ValueProxyrrcCs
|jdS)Nr)r)r%rrrrszValueProxy.getcCs|jd|fS)Nr)r)r%rrrrrszValueProxy.setN)zgetzset)r+r,r-rrrrrrrrrrsr
BaseListProxy__add____contains____delitem____getitem____len____mul____reversed____rmul____setitem__rDcountextendindexinsertrremovereverser__imul__c@s(eZdZddZddZdS)	ListProxycCs|jd|f|S)Nr*)r)r%rrrr__iadd__$szListProxy.__iadd__cCs|jd|f|S)Nr/)r)r%rrrrr/'szListProxy.__imul__N)r+r,r-r1r/rrrrr0#sr0	DictProxyrrrZhas_keypopitem
setdefaultr
ArrayProxy	PoolProxyZapplyZapply_asyncrZimapZimap_unorderedrmapZ	map_asyncstarmapZ
starmap_asyncrZAsyncResultIteratorc@s(eZdZddZddZdS)r6cCs|S)Nr)r%rrrrDszPoolProxy.__enter__cCs|jdS)N)r)r%rrrrrrrFszPoolProxy.__exit__N)r+r,r-rrrrrrr6Csc@seZdZdZdS)ra(
    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.
    N)r+r,r-r.rrrrrMs	QueueZ
JoinableQueuerfLockr`	SemaphoreBoundedSemaphore	ConditionBarrierPoolrrrrF)I__all__rrr_rZqueuerrrrr	r
rrr
rrrrZ
view_typesrr!Z	view_typerrr9r2r~r<rGrIrJrrcrdZXmlListenerZ	XmlClientr[rrrrrrrrrrrr
rrrrrrr0r2r5Z
BasePoolProxyrr6rr:rfr;r`r<r=r>r?r@rrrrr<module>s


#