<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
2a                 @   s  d dddgZ ddlZddlZddlZddlZddlZddlmZ ddlm	Z	 dd	l
mZmZ dd
lmZ ddlmZ ddlmZ ddlmZ dd Zejeje dd dD Zed ek	rdd ZxeD ]Zejee qW G dd deZf i fddZdd ZG dd deZdd Zd d! ZG d"d# d#eZG d$d% d%eZ e	j!e	j"fe	j#e	j$fd&Z%G d'd  d eZ&G d(d) d)e'Z(G d*d deZ)d+d, Z*i fd-d.Z+dd0d1Z,G d2d3 d3eZ-G d4d5 d5eZ.dd6d7Z/G d8d9 d9e)Z0G d:d; d;e)Z1G d<d= d=e1Z2G d>d? d?e)Z3G d@dA dAe)Z4G dBdC dCe)Z5G dDdE dEe)Z6e+dFdZ7G dZd[ d[e7Z8e+d\dZ9d]deie9_:e+dfdZ;e+dgdZ<dsdsdsdededte<_:G dudg dge<Z=G dvd de&Z>e>jdwej? e>jdxej? e>jdyej@e3 e>jdzejAe1 e>jd{ejBe1 e>jd|ejCe1 e>jd}ejDe1 e>jd~ejEe2 e>jdejFe4 e>jdejGe= e>jdee8 e>jdeHe9 e>jd5e.e6 e>jd7e/e; e>jd3e-e5 e>jdee0dd e>jdsdd dS )BaseManagerSyncManager	BaseProxyToken    N)
format_exc   )
connection)	reductionget_spawning_popen)pool)process)util)get_contextc             C   s   t j | j| j ffS )N)arraytypecodetobytes)a r   -/opt/alt/python36/lib64/python3.6/managers.pyreduce_array$   s    r   c             C   s   g | ]}t ti | qS r   )typegetattr).0namer   r   r   
<listcomp>(   s    r   itemskeysvaluesc             C   s   t t | ffS )N)list)objr   r   r   rebuild_as_list*   s    r    c               @   s0   e Zd ZdZdd Zdd Zdd	 Zd
d ZdS )r   typeidaddressidc             C   s   |||  | _ | _| _d S )N)r!   r"   r#   )selfr!   r"   r#   r   r   r   __init__9   s    zToken.__init__c             C   s   | j | j| jfS )N)r!   r"   r#   )r$   r   r   r   __getstate__<   s    zToken.__getstate__c             C   s   |\| _ | _| _d S )N)r!   r"   r#   )r$   stater   r   r   __setstate__?   s    zToken.__setstate__c             C   s   d| j j| j| j| jf S )Nz %s(typeid=%r, address=%r, id=%r))	__class____name__r!   r"   r#   )r$   r   r   r   __repr__B   s    zToken.__repr__N)r!   r"   r#   )r*   
__module____qualname__	__slots__r%   r&   r(   r+   r   r   r   r   r   3   s
   c             C   s8   | j ||||f | j \}}|dkr*|S t||d S )Nz#RETURN)sendrecvconvert_to_error)cr#   
methodnameargskwdskindresultr   r   r   dispatchJ   s
    r8   c             C   s<   | dkr|S | dkrt |S | dkr0t d| S tdS d S )Nz#ERRORz
#TRACEBACKz#UNSERIALIZABLEzUnserializable message: %s
zUnrecognized message type)RemoteError
ValueError)r6   r7   r   r   r   r1   T   s    r1   c               @   s   e Zd Zdd ZdS )r9   c             C   s&   ddd  d t | jd  dd  S )N
-K   r   )strr4   )r$   r   r   r   __str__a   s    zRemoteError.__str__N)r*   r,   r-   r?   r   r   r   r   r9   `   s   r9   c             C   s6   g }x,t | D ] }t| |}t|r|j| qW |S )N)dirr   callableappend)r   tempr   funcr   r   r   all_methodsh   s    
rE   c             C   s   dd t | D S )Nc             S   s   g | ]}|d  dkr|qS )r   _r   )r   r   r   r   r   r   w   s    z"public_methods.<locals>.<listcomp>)rE   )r   r   r   r   public_methodss   s    rG   c            	   @   s   e Zd Zddddddddd	g	Zd
d Zdd Zdd Zdd Zdd Zdd Z	dd Z
dd Ze
ee	dZdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-S ).Servershutdowncreateaccept_connectionget_methods
debug_infonumber_of_objectsdummyincrefdecrefc             C   s^   || _ tj|| _t| \}}||dd| _| jj| _dd f fi| _i | _i | _	t
j | _d S )N   )r"   Zbacklog0)registryr   AuthenticationStringauthkeylistener_clientlistenerr"   	id_to_objid_to_refcountid_to_local_proxy_obj	threadingLockmutex)r$   rT   r"   rV   
serializerListenerClientr   r   r   r%      s    
zServer.__init__c             C   s   t j | _| tj _zZt j| jd}d|_|j	  y x| jj
 sN| jjd q6W W n ttfk
rj   Y nX W d tjtjkrtjd tjt_tjt_tjd X d S )N)targetTr   zresetting stdout, stderrr   )r\   Event
stop_eventr   current_process_manager_serverThreadaccepterdaemonstartis_setwaitKeyboardInterrupt
SystemExitsysstdout
__stdout__r   debug
__stderr__stderrexit)r$   rh   r   r   r   serve_forever   s     



zServer.serve_foreverc             C   sP   xJy| j j }W n tk
r&   wY nX tj| j|fd}d|_|j  qW d S )N)rb   r4   T)rX   ZacceptOSErrorr\   rg   handle_requestri   rj   )r$   r2   tr   r   r   rh      s    zServer.accepterc          '   C   s4  d  } }}y>t j|| j t j|| j |j }|\}}}}t| |}W n tk
rh   dt f}	Y n>X y||f||}W n tk
r   dt f}	Y n
X d|f}	y|j|	 W nr tk
r& }
 zTy|jdt f W n tk
r   Y nX t	j
d|	 t	j
d| t	j
d|
 W Y d d }
~
X nX |j  d S )Nz
#TRACEBACKz#RETURNzFailure to send message: %rz ... request was %rz ... exception was %r)r   Zdeliver_challengerV   Zanswer_challenger0   r   	Exceptionr   r/   r   infoclose)r$   r2   funcnamer7   requestignorer4   r5   rD   msger   r   r   rx      s2    zServer.handle_requestc          D   C   s  t jdtj j |j}|j}| j}x| jj	 syBd  }}| }|\}}}	}
y|| \}}}W n^ t
k
r } zBy| j| \}}}W n& t
k
r } z
|W Y d d }~X nX W Y d d }~X nX ||krtd|t||f t||}y||	|
}W n, tk
r& } zd|f}W Y d d }~X nPX |o8|j|d }|rn| j|||\}}t|| j|}d||ff}nd|f}W n tk
r   |d krdt f}nNy,| j| }|| |||f|	|
}d|f}W n  tk
r   dt f}Y nX Y nP tk
r"   t jdtj j tjd Y n  tk
r@   dt f}Y nX yDy|| W n2 tk
r } z|d	t f W Y d d }~X nX W q( tk
r } zBt jd
tj j t jd| t jd| |j  tjd W Y d d }~X q(X q(W d S )Nz$starting server thread to service %rz+method %r of %r object is not in exposed=%rz#ERRORz#PROXYz#RETURNz
#TRACEBACKz$got EOF -- exiting thread serving %rr   z#UNSERIALIZABLEzexception in thread serving %rz ... message was %rz ... exception was %rr   )r   rr   r\   current_threadr   r0   r/   rY   rd   rk   KeyErrorr[   AttributeErrorr   r   rz   getrJ   r   r"   r   fallback_mappingEOFErrorro   ru   r{   r|   )r$   connr0   r/   rY   r3   r   r~   identr4   r5   exposed	gettypeidkeZ	second_keZfunctionresr   r   r!   ZridentZrexposedtokenZfallback_funcr7   r   r   r   serve_client   sx    (


$zServer.serve_clientc             C   s   |S )Nr   )r$   r   r   r   r   r   r   fallback_getvalue&  s    zServer.fallback_getvaluec             C   s   t |S )N)r>   )r$   r   r   r   r   r   r   fallback_str)  s    zServer.fallback_strc             C   s   t |S )N)repr)r$   r   r   r   r   r   r   fallback_repr,  s    zServer.fallback_repr)r?   r+   z	#GETVALUEc             C   s   d S )Nr   )r$   r2   r   r   r   rO   5  s    zServer.dummyc             C   s|   | j l g }t| jj }|j  xD|D ]<}|dkr(|jd|| j| t| j| d d d f  q(W dj|S Q R X d S )NrS   z  %s:       refcount=%s
    %sr   r=   r;   )	r^   r   rZ   r   sortrB   r>   rY   join)r$   r2   r7   r   r   r   r   r   rM   8  s    

$zServer.debug_infoc             C   s
   t | jS )N)lenrZ   )r$   r2   r   r   r   rN   G  s    zServer.number_of_objectsc             C   sL   z:yt jd |jd W n   dd l}|j  Y nX W d | jj  X d S )Nz!manager received shutdown message#RETURNr   )r   N)r   rr   r/   	traceback	print_excrd   set)r$   r2   r   r   r   r   rI   N  s    
zServer.shutdownc             O   s   | j  | j| \}}}}|d kr,|d }	n
|||}	|d krFt|	}|d k	r^t|t| }dt|	 }
tjd||
 |	t||f| j|
< |
| j	krd| j	|
< W d Q R X | j
||
 |
t|fS )Nr   z%xz&%r callable returned object with id %r)r^   rT   rG   r   r#   r   rr   r   rY   rZ   rP   tuple)r$   r2   r!   r4   r5   rA   r   method_to_typeid	proxytyper   r   r   r   r   rJ   [  s     


zServer.createc             C   s   t | j|j d S )Nr   )r   rY   r#   )r$   r2   r   r   r   r   rL   z  s    zServer.get_methodsc             C   s"   |t j _|jd | j| d S )N#RETURN)r   N)r\   r   r   r/   r   )r$   r2   r   r   r   r   rK     s    

zServer.accept_connectionc             C   s   | j  y| j|  d7  < W nh tk
r } zL|| jkrrd| j|< | j| | j|< | j| \}}}tjd| n|W Y d d }~X nX W d Q R X d S )Nr   z&Server re-enabled tracking & INCREF %r)r^   rZ   r   r[   rY   r   rr   )r$   r2   r   r   r   r   r   r   r   r   rP     s    

zServer.increfc             C   s   || j kr$|| jkr$tjd| d S | j. | j |  d8  < | j | dkrT| j |= W d Q R X || j krd f d f| j|< tjd| | j | j|= W d Q R X d S )NzServer DECREF skipping %rr   r   zdisposing of obj with id %r)rZ   r[   r   rr   r^   rY   )r$   r2   r   r   r   r   rQ     s    


zServer.decrefN)r*   r,   r-   Zpublicr%   rv   rh   rx   r   r   r   r   r   rO   rM   rN   rI   rJ   rL   rK   rP   rQ   r   r   r   r   rH   }   s,   
"QrH   c               @   s   e Zd ZdgZdZdZdZdS )Statevaluer   r      N)r*   r,   r-   r.   INITIALSTARTEDSHUTDOWNr   r   r   r   r     s   r   )pickleZ	xmlrpclibc               @   s   e Zd Zi ZeZd ddZdd Zdd Zdf fd	d
Z	e
df fddZdd Zd!ddZdd Zdd Zdd Zdd Zedd Zedd Ze
d"ddZdS )#r   Nr   c             C   s\   |d krt j j}|| _t j|| _t | _tj| j_	|| _
t| \| _| _|pTt | _d S )N)r   re   rV   _addressrU   _authkeyr   _stater   r   _serializerrW   Z	_Listener_Clientr   _ctx)r$   r"   rV   r_   Zctxr   r   r   r%     s    

zBaseManager.__init__c             C   s   t | j| j| j| jS )N)rH   	_registryr   r   r   )r$   r   r   r   
get_server  s    
zBaseManager.get_serverc             C   s8   t | j \}}|| j| jd}t|d d tj| j_d S )N)rV   rO   )	rW   r   r   r   r8   r   r   r   r   )r$   r`   ra   r   r   r   r   connect  s    zBaseManager.connectc          	   C   s   |d k	rt | rtdtjdd\}}| jjt| j| j| j	| j
| j|||fd| _djdd | jjD }t| jd | | j_| jj  |j  |j | _	|j  tj| j_tj| t| j| j| j	| j
| j| jfd	d
| _d S )Nzinitializer must be a callableF)Zduplex)rb   r4   :c             s   s   | ]}t |V  qd S )N)r>   )r   ir   r   r   	<genexpr>  s    z$BaseManager.start.<locals>.<genexpr>r<   r   )r4   exitpriority)rA   	TypeErrorr   ZPiper   ZProcessr   _run_serverr   r   r   r   _processr   Z	_identityr*   r   rj   r|   r0   r   r   r   r   r   Finalize_finalize_managerr   rI   )r$   initializerinitargsreaderwriterr   r   r   r   rj     s&    




zBaseManager.startc       	      C   sN   |d k	r||  | j ||||}|j|j |j  tjd|j |j  d S )Nzmanager serving at %r)_Serverr/   r"   r|   r   r{   rv   )	clsrT   r"   rV   r_   r   r   r   serverr   r   r   r     s    zBaseManager._run_serverc             O   sN   | j | j| jd}zt|d d|f| |\}}W d |j  X t|| j||fS )N)rV   rJ   )r   r   r   r8   r|   r   )r$   r!   r4   r5   r   r#   r   r   r   r   _create%  s
    
zBaseManager._createc             C   s*   | j d k	r&| j j| | j j s&d | _ d S )N)r   r   is_alive)r$   timeoutr   r   r   r   1  s    

zBaseManager.joinc          
   C   s.   | j | j| jd}zt|d dS |j  X d S )N)rV   rM   )r   r   r   r8   r|   )r$   r   r   r   r   _debug_info:  s    zBaseManager._debug_infoc          
   C   s.   | j | j| jd}zt|d dS |j  X d S )N)rV   rN   )r   r   r   r8   r|   )r$   r   r   r   r   _number_of_objectsD  s    zBaseManager._number_of_objectsc             C   s   | j jtjkr| j  | S )N)r   r   r   r   rj   )r$   r   r   r   	__enter__N  s    zBaseManager.__enter__c             C   s   | j   d S )N)rI   )r$   exc_typeexc_valexc_tbr   r   r   __exit__T  s    zBaseManager.__exit__c             C   s   | j  rtjd y,|||d}zt|d d W d |j  X W n tk
rR   Y nX | jdd | j  rtjd t| drtjd | j  | jd	d | j  rtjd
 t	j
|_ytj|= W n tk
r   Y nX d S )Nz#sending shutdown message to manager)rV   rI   g      ?)r   zmanager still alive	terminatez'trying to `terminate()` manager processg?z#manager still alive after terminate)r   r   r{   r8   r|   rz   r   hasattrr   r   r   r   r   _address_to_localr   )r   r"   rV   r'   r   r   r   r   r   r   W  s.    




zBaseManager._finalize_managerc             C   s   | j S )N)r   )r$   r   r   r   <lambda>w  s    zBaseManager.<lambda>Tc       
         s   d| j kr| jj | _ d kr"t |p0t dd }|p@t dd }|r`xt|j D ]\}}qTW ||| f| j< |r fdd}	|	_t| |	 d S )Nr   	_exposed__method_to_typeid_c                s`   t jd | jf||\}} || j| | j|d}| j|j| jd}t|d d|jf |S )Nz)requesting creation of a shared %r object)managerrV   r   )rV   rQ   )	r   rr   r   r   r   r   r"   r8   r#   )r$   r4   r5   r   Zexpproxyr   )r   r!   r   r   rC     s    z"BaseManager.register.<locals>.temp)	__dict__r   copy	AutoProxyr   r   r   r*   setattr)
r   r!   rA   r   r   r   create_methodkeyr   rC   r   )r   r!   r   registery  s    

zBaseManager.register)NNr   N)N)NNNNT)r*   r,   r-   r   rH   r   r%   r   r   rj   classmethodr   r   r   r   r   r   r   staticmethodr   propertyr"   r   r   r   r   r   r     s(    
	$
	

  c               @   s   e Zd Zdd Zdd ZdS )ProcessLocalSetc             C   s   t j| dd  d S )Nc             S   s   | j  S )N)clear)r   r   r   r   r     s    z*ProcessLocalSet.__init__.<locals>.<lambda>)r   register_after_fork)r$   r   r   r   r%     s    zProcessLocalSet.__init__c             C   s   t | f fS )N)r   )r$   r   r   r   
__reduce__  s    zProcessLocalSet.__reduce__N)r*   r,   r-   r%   r   r   r   r   r   r     s   r   c               @   s|   e Zd Zi Zej ZdddZdd Zf i fdd	Z	d
d Z
dd Zedd Zdd Zdd Zdd Zdd Zdd ZdS )r   NTFc       	   
   C   s   t j8 t jj|jd }|d kr:tj t f}|t j|j< W d Q R X |d | _|d | _	|| _
| j
j| _|| _|| _t| d | _|| _|d k	rtj|| _n"| jd k	r| jj| _ntj j| _|r| j  tj| t j d S )Nr   r   )r   _mutexr   r   r"   r   ZForkAwareLocalr   _tls_idset_tokenr#   _id_managerr   rW   r   _owned_by_managerr   rU   r   re   rV   _increfr   _after_fork)	r$   r   r_   r   rV   r   rP   manager_ownedZ	tls_idsetr   r   r   r%     s*    



zBaseProxy.__init__c             C   sd   t jd tj j}tj jdkr4|dtj j 7 }| j| jj	| j
d}t|d d|f || j_d S )Nzmaking connection to managerZ
MainThread|)rV   rK   )r   rr   r   re   r   r\   r   r   r   r"   r   r8   r   r   )r$   r   r   r   r   r   _connect  s    

zBaseProxy._connectc             C   s   y| j j}W n6 tk
rB   tjdtj j | j  | j j}Y nX |j	| j
|||f |j \}}|dkrp|S |dkr|\}}| jj|j d }	| jj|_|	|| j| j| j|d}
| j|j| jd}t|d d|jf |
S t||d S )	Nz#thread %r does not own a connectionz#RETURNz#PROXYr   )r   rV   r   )rV   rQ   )r   r   r   r   rr   r\   r   r   r   r/   r   r0   r   r   r!   r   r"   r   r   r   r8   r#   r1   )r$   r3   r4   r5   r   r6   r7   r   r   r   r   r   r   r   _callmethod  s,    

zBaseProxy._callmethodc             C   s
   | j dS )Nz	#GETVALUE)r   )r$   r   r   r   	_getvalue  s    zBaseProxy._getvaluec          	   C   s   | j rtjd| jj d S | j| jj| jd}t|d d| j	f tjd| jj | j
j| j	 | joj| jj}tj| tj| j| j|| j| j
| jfdd| _d S )Nz%owned_by_manager skipped INCREF of %r)rV   rP   z	INCREF %r
   )r4   r   )r   r   rr   r   r#   r   r"   r   r8   r   r   addr   r   r   r   _decrefr   Z_close)r$   r   r'   r   r   r   r     s    
zBaseProxy._increfc             C   s   |j | j |d ks |jtjkry2tjd| j || j|d}t|d d| jf W q t	k
r } ztjd| W Y d d }~X qX ntjd| j | rt
|drtjdtj j |jj  |`d S )Nz	DECREF %r)rV   rQ   z... decref failed %sz%DECREF %r -- manager already shutdownr   z-thread %r has no more proxies so closing conn)discardr#   r   r   r   r   rr   r"   r8   rz   r   r\   r   r   r   r|   )r   rV   r'   ZtlsZidsetr   r   r   r   r   r   r      s     
zBaseProxy._decrefc             C   sH   d | _ y| j  W n0 tk
rB } ztjd|  W Y d d }~X nX d S )Nzincref failed: %s)r   r   rz   r   r{   )r$   r   r   r   r   r   9  s
    zBaseProxy._after_forkc             C   s^   i }t  d k	r| j|d< t| ddrB| j|d< tt| j| j|ffS tt| | j| j|ffS d S )NrV   _isautoFr   )	r
   r   r   r   RebuildProxyr   r   r   r   )r$   r5   r   r   r   r   A  s    


zBaseProxy.__reduce__c             C   s   | j  S )N)r   )r$   memor   r   r   __deepcopy__N  s    zBaseProxy.__deepcopy__c             C   s   dt | j| jjt| f S )Nz<%s object, typeid %r at %#x>)r   r*   r   r!   r#   )r$   r   r   r   r+   Q  s    zBaseProxy.__repr__c             C   s4   y
| j dS  tk
r.   t| d d d S X d S )Nr+   r   z; '__str__()' failed>r   )r   rz   r   )r$   r   r   r   r?   U  s    
zBaseProxy.__str__)NNNTF)r*   r,   r-   r   r   ZForkAwareThreadLockr   r%   r   r   r   r   r   r   r   r   r   r+   r?   r   r   r   r   r     s    
(	c             C   s   t tj dd }|rT|j|jkrTtjd| d|d< |j|jkrT|j|j |j|j< |j	ddopt tj dd }| ||fd|i|S )Nrf   z*Rebuild a proxy owned by manager, token=%rTr   rP   Z_inheritingF)
r   r   re   r"   r   rr   r#   r[   rY   pop)rD   r   r_   r5   r   rP   r   r   r   r   b  s    r   c             C   sr   t |}y|| |f S  tk
r(   Y nX i }x|D ]}td||f | q4W t| tf|}||_||| |f< |S )NzLdef %s(self, *args, **kwds):
        return self._callmethod(%r, args, kwds))r   r   execr   r   r   )r   r   _cacheZdicmeth	ProxyTyper   r   r   MakeProxyTypew  s    
r   Tc       
      C   s   t | d }|d krB|| j|d}zt|d d| f}W d |j  X |d krX|d k	rX|j}|d krjtj j}td| j	 |}|| ||||d}	d|	_
|	S )Nr   )rV   rL   zAutoProxy[%s])r   rV   rP   T)rW   r"   r8   r|   r   r   re   rV   r   r!   r   )
r   r_   r   rV   r   rP   r   r   r   r   r   r   r   r     s    


r   c               @   s   e Zd Zdd Zdd ZdS )	Namespacec             K   s   | j j| d S )N)r   update)r$   r5   r   r   r   r%     s    zNamespace.__init__c             C   s^   t | jj }g }x,|D ]$\}}|jds|jd||f  qW |j  d| jjdj|f S )NrF   z%s=%rz%s(%s)z, )	r   r   r   
startswithrB   r   r)   r*   r   )r$   r   rC   r   r   r   r   r   r+     s    
zNamespace.__repr__N)r*   r,   r-   r%   r+   r   r   r   r   r     s   r   c               @   s8   e Zd ZdddZdd Zdd Zdd	 ZeeeZd
S )ValueTc             C   s   || _ || _d S )N)	_typecode_value)r$   r   r   lockr   r   r   r%     s    zValue.__init__c             C   s   | j S )N)r  )r$   r   r   r   r     s    z	Value.getc             C   s
   || _ d S )N)r  )r$   r   r   r   r   r     s    z	Value.setc             C   s   dt | j| j| jf S )Nz
%s(%r, %r))r   r*   r   r  )r$   r   r   r   r+     s    zValue.__repr__N)T)	r*   r,   r-   r%   r   r   r+   r   r   r   r   r   r   r     s
   
r   c             C   s   t j | |S )N)r   )r   Zsequencer  r   r   r   Array  s    r  c               @   s8   e Zd ZdZdd Zdd Zd	d
 Zdd Zdd ZdS )IteratorProxy__next__r/   throwr|   c             C   s   | S )Nr   )r$   r   r   r   __iter__  s    zIteratorProxy.__iter__c             G   s   | j d|S )Nr  )r   )r$   r4   r   r   r   r    s    zIteratorProxy.__next__c             G   s   | j d|S )Nr/   )r   )r$   r4   r   r   r   r/     s    zIteratorProxy.sendc             G   s   | j d|S )Nr  )r   )r$   r4   r   r   r   r    s    zIteratorProxy.throwc             G   s   | j d|S )Nr|   )r   )r$   r4   r   r   r   r|     s    zIteratorProxy.closeN)r  r/   r  r|   )	r*   r,   r-   r   r  r  r/   r  r|   r   r   r   r   r    s   r  c               @   s2   e Zd ZdZdddZdd Zd	d
 Zdd ZdS )AcquirerProxyacquirereleaseTNc             C   s"   |d kr|fn||f}| j d|S )Nr	  )r   )r$   Zblockingr   r4   r   r   r   r	    s    zAcquirerProxy.acquirec             C   s
   | j dS )Nr
  )r   )r$   r   r   r   r
    s    zAcquirerProxy.releasec             C   s
   | j dS )Nr	  )r   )r$   r   r   r   r     s    zAcquirerProxy.__enter__c             C   s
   | j dS )Nr
  )r   )r$   r   r   r   r   r   r   r     s    zAcquirerProxy.__exit__)r	  r
  )TN)r*   r,   r-   r   r	  r
  r   r   r   r   r   r   r    s
   
r  c               @   s4   e Zd ZdZdddZd	d
 Zdd ZdddZdS )ConditionProxyr	  r
  rl   notify
notify_allNc             C   s   | j d|fS )Nrl   )r   )r$   r   r   r   r   rl     s    zConditionProxy.waitc             C   s
   | j dS )Nr  )r   )r$   r   r   r   r    s    zConditionProxy.notifyc             C   s
   | j dS )Nr  )r   )r$   r   r   r   r    s    zConditionProxy.notify_allc             C   sh   | }|r|S |d k	r$t j | }nd }d }x6|sb|d k	rP|t j  }|dkrPP | j| | }q.W |S )Nr   )timeZ	monotonicrl   )r$   	predicater   r7   ZendtimeZwaittimer   r   r   wait_for  s    

zConditionProxy.wait_for)r	  r
  rl   r  r  )N)N)r*   r,   r-   r   rl   r  r  r  r   r   r   r   r    s
   
r  c               @   s2   e Zd ZdZdd Zdd Zd	d
 ZdddZdS )
EventProxyrk   r   r   rl   c             C   s
   | j dS )Nrk   )r   )r$   r   r   r   rk     s    zEventProxy.is_setc             C   s
   | j dS )Nr   )r   )r$   r   r   r   r     s    zEventProxy.setc             C   s
   | j dS )Nr   )r   )r$   r   r   r   r     s    zEventProxy.clearNc             C   s   | j d|fS )Nrl   )r   )r$   r   r   r   r   rl     s    zEventProxy.wait)rk   r   r   rl   )N)r*   r,   r-   r   rk   r   r   rl   r   r   r   r   r    s
   r  c               @   sN   e Zd ZdZdddZdd	 Zd
d Zedd Zedd Z	edd Z
dS )BarrierProxy__getattribute__rl   abortresetNc             C   s   | j d|fS )Nrl   )r   )r$   r   r   r   r   rl     s    zBarrierProxy.waitc             C   s
   | j dS )Nr  )r   )r$   r   r   r   r    s    zBarrierProxy.abortc             C   s
   | j dS )Nr  )r   )r$   r   r   r   r    s    zBarrierProxy.resetc             C   s   | j ddS )Nr  parties)r  )r   )r$   r   r   r   r    s    zBarrierProxy.partiesc             C   s   | j ddS )Nr  	n_waiting)r  )r   )r$   r   r   r   r    s    zBarrierProxy.n_waitingc             C   s   | j ddS )Nr  broken)r  )r   )r$   r   r   r   r    s    zBarrierProxy.broken)r  rl   r  r  )N)r*   r,   r-   r   rl   r  r  r   r  r  r  r   r   r   r   r    s   
r  c               @   s(   e Zd ZdZdd Zdd Zdd	 Zd
S )NamespaceProxyr  __setattr____delattr__c             C   s0   |d dkrt j| |S t j| d}|d|fS )Nr   rF   r   r  )objectr  )r$   r   
callmethodr   r   r   __getattr__   s    zNamespaceProxy.__getattr__c             C   s4   |d dkrt j| ||S t j| d}|d||fS )Nr   rF   r   r  )r  r  r  )r$   r   r   r  r   r   r   r  %  s    zNamespaceProxy.__setattr__c             C   s0   |d dkrt j| |S t j| d}|d|fS )Nr   rF   r   r  )r  r  r  )r$   r   r  r   r   r   r  *  s    zNamespaceProxy.__delattr__N)r  r  r  )r*   r,   r-   r   r  r  r  r   r   r   r   r    s   r  c               @   s*   e Zd ZdZdd Zdd ZeeeZdS )	
ValueProxyr   r   c             C   s
   | j dS )Nr   )r   )r$   r   r   r   r   3  s    zValueProxy.getc             C   s   | j d|fS )Nr   )r   )r$   r   r   r   r   r   5  s    zValueProxy.setN)r   r   )r*   r,   r-   r   r   r   r   r   r   r   r   r   r  1  s   r  BaseListProxy__add____contains____delitem____getitem____len____mul____reversed____rmul____setitem__rB   countextendindexinsertr   removereverser   __imul__c               @   s   e Zd Zdd Zdd ZdS )	ListProxyc             C   s   | j d|f | S )Nr+  )r   )r$   r   r   r   r   __iadd__A  s    zListProxy.__iadd__c             C   s   | j d|f | S )Nr0  )r   )r$   r   r   r   r   r0  D  s    zListProxy.__imul__N)r*   r,   r-   r2  r0  r   r   r   r   r1  @  s   r1  	DictProxyr  r   r   r   has_keypopitem
setdefaultr   Iterator
ArrayProxy	PoolProxyapplyapply_asyncr|   imapimap_unorderedr   map	map_asyncstarmapstarmap_asyncr   ZAsyncResult)r;  r?  rA  r<  r=  c               @   s   e Zd Zdd Zdd ZdS )r9  c             C   s   | S )Nr   )r$   r   r   r   r   d  s    zPoolProxy.__enter__c             C   s   | j   d S )N)r   )r$   r   r   r   r   r   r   r   f  s    zPoolProxy.__exit__N)r*   r,   r-   r   r   r   r   r   r   r9  c  s   c               @   s   e Zd ZdS )r   N)r*   r,   r-   r   r   r   r   r   m  s   	QueueZJoinableQueuerc   r]   RLock	SemaphoreBoundedSemaphore	ConditionBarrierPoolr   dictF)r   r   )r   )r   r   r   )NNNT)T)r!  r"  r#  r$  r%  r&  r'  r(  r)  rB   r*  r+  r,  r-  r   r.  r/  r   r0  )r"  r#  r$  r  r%  r)  r   r   r   r4  r   r   r   r5  r6  r   r   )r%  r$  r)  )r:  r;  r|   r<  r=  r   r>  r?  r@  rA  r   )I__all__ro   r\   r   Zqueuer  r   r    r   contextr	   r
   r   r   r   r   r   r   Z
view_typesr   r    Z	view_typer  r   r8   r1   rz   r9   rE   rG   rH   r   r`   ra   ZXmlListenerZ	XmlClientrW   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r   r1  r3  r   r8  ZBasePoolProxyr9  r   rB  rc   r]   rC  rD  rE  rF  rG  rH  rI  r   r   r   r   <module>   s   


  ;
 ]
 4 

	   	  
 


