<!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>

]{                 @   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 m Z d d l m Z d d	 l	 m
 Z
 d d
 l	 m Z d d l	 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   d d d f D Z e d e k	 rJd d   Z x e D] Z e j e e  q0WGd d   d e  Z f  i  d d  Z d d   Z Gd d   d e  Z d  d!   Z d" d#   Z Gd$ d%   d% e  Z Gd& d'   d' e  Z  d( e
 j! e
 j" f d) e
 j# e
 j$ f i Z% Gd* d    d  e  Z& Gd+ d,   d, e'  Z( Gd- d   d e  Z) d. d/   Z* i  d0 d1  Z+ d d d d2 d3 d4  Z, Gd5 d6   d6 e  Z- Gd7 d8   d8 e  Z. d2 d9 d:  Z/ Gd; d<   d< e)  Z0 Gd= d>   d> e)  Z1 Gd? d@   d@ e1  Z2 GdA dB   dB e)  Z3 GdC dD   dD e)  Z4 GdE dF   dF e)  Z5 GdG dH   dH e)  Z6 e+ dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ f  Z7 Gd] d^   d^ e7  Z8 e+ d_ dK dL dM dN dR d` da db dc d d dX dd de df d f  Z9 e+ dg dN dM dR f  Z: e+ dh di dj dk dl dm dn do dp dq dr ds f  Z; dj dt dp dt dr dt dl du dm du i e; _< Gdv dh   dh e;  Z= Gdw d   d e&  Z> e> j dx e j?  e> j dy e j?  e> j dz e j@ e3  e> j d{ e jA e1  e> j d| e jB e1  e> j d} e jC e1  e> j d~ e jD e1  e> j d e jE e2  e> j d e jF e4  e> j d e jG e=  e> j d e e8  e> j d eH e9  e> j d8 e. e6  e> j d: e/ e:  e> j d6 e- e5  e> j du d e0 d d e> j dt d d d S)BaseManagerSyncManager	BaseProxyToken    N)time)
format_exc   )
connection)context)pool)process)	reduction)util)get_contextc             C   s   t  j  |  j |  j   f f S)N)arraytypecodetobytes)a r   -/opt/alt/python35/lib64/python3.5/managers.pyreduce_array%   s    r   c             C   s(   g  |  ] } t  t i  |      q Sr   )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               @   sF   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__:   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__C   s    zToken.__repr__N)r"   r#   r$   )r+   
__module____qualname__	__slots__r&   r'   r)   r,   r   r   r   r   r   4   s
   c             C   sN   |  j  | | | | f  |  j   \ } } | d k r; | St | |   d  S)Nz#RETURN)sendrecvconvert_to_error)cr$   
methodnameargskwdskindresultr   r   r   dispatchK   s
    r9   c             C   sN   |  d k r | S|  d k r& t  |  S|  d k r@ t  d |  St d  Sd  S)Nz#ERRORz
#TRACEBACKz#UNSERIALIZABLEzUnserializable message: %s
zUnrecognized message type)RemoteError
ValueError)r7   r8   r   r   r   r2   U   s    
r2   c               @   s   e  Z d  Z d d   Z d S)r:   c             C   s)   d d d d t  |  j d  d d S)N
-K   r   )strr5   )r%   r   r   r   __str__b   s    zRemoteError.__str__N)r+   r-   r.   r@   r   r   r   r   r:   a   s   r:   c             C   sI   g  } x< t  |   D]. } t |  |  } t |  r | j |  q W| S)N)dirr   callableappend)r    tempr   funcr   r   r   all_methodsi   s    rF   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   x   s   	 z"public_methods.<locals>.<listcomp>)rF   )r    r   r   r   public_methodst   s    rH   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 d e
 d e d e	 i 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)0Servershutdowncreateaccept_connectionget_methods
debug_infonumber_of_objectsdummyincrefdecrefc             C   s   | |  _  t j |  |  _ t | \ } } | d | d d  |  _ |  j j |  _ d d  f  f i |  _ i  |  _ t	 j
   |  _ d  S)Nr#   backlog   0)registryr   AuthenticationStringauthkeylistener_clientlistenerr#   	id_to_objid_to_refcount	threadingRLockmutex)r%   rV   r#   rX   
serializerListenerClientr   r   r   r&      s    		zServer.__init__c             C   s   t  j   |  _ |  t j   _ zq t  j d |  j  } d | _ | j	   y* x# |  j j
   sq |  j j d  qO WWn t t f k
 r Yn XWd  t j t j k r t j d  t j t _ t j t _ t j d  Xd  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%   ri   r   r   r   serve_forever   s     	
	zServer.serve_foreverc             C   sg   x` y |  j  j   } Wn t k
 r- w Yn Xt j d |  j d | f  } d | _ | j   q Wd  S)Nrc   r5   T)rZ   acceptOSErrorr]   rh   handle_requestrj   rk   )r%   r3   tr   r   r   ri      s    	zServer.accepterc          '   C   su  d  } } } yW t  j | |  j  t  j | |  j  | j   } | \ } } } } t |  |  } Wn! t k
 r d t   f }	 YnG Xy | | | |  } Wn! t k
 r d t   f }	 Yn Xd | f }	 y | j |	  Wn t k
 rf}
 zd y | j d t   f  Wn t k
 r#Yn Xt	 j
 d |	  t	 j
 d |  t	 j
 d |
  WYd  d  }
 ~
 Xn X| j   d  S)Nz
#TRACEBACKz#RETURNzFailure to send message: %rz ... request was %rz ... exception was %r)r	   deliver_challengerX   answer_challenger1   r   	Exceptionr   r0   r   infoclose)r%   r3   funcnamer8   requestignorer5   r6   rE   msger   r   r   rz      s2    #zServer.handle_requestc          *   C   s%  t  j d t j   j  | j } | j } |  j } x|  j j	   s y,d  } } |   } | \ } } }	 }
 | | \ } } } | | k r t
 d | t |  | f   t | |  } y | |	 |
   } Wn1 t k
 r} z d | f } WYd  d  } ~ Xnp X| o| j | d   } | re|  j | | |  \ } } t | |  j |  } d | | f f } n d | f } Wn t
 k
 r | d  k rd t   f } n\ y8 |  j | } | |  | | | |	 |
  } d | f } Wn! t k
 rd t   f } Yn XYnX t k
 r7t  j d t j   j  t j d  Yn! t k
 rWd t   f } Yn XyM y | |  Wn8 t k
 r} z | d	 t   f  WYd  d  } ~ Xn XWq7 t k
 r} zU t  j d
 t j   j  t  j d |  t  j d |  | j   t j d  WYd  d  } ~ Xq7 Xq7 Wd  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   rs   r]   current_threadr   r1   r0   r[   re   rl   AttributeErrorr   r   r~   getrK   r   r#   r   fallback_mappingEOFErrorrp   rv   r   r   )r%   connr1   r0   r[   r4   r    r   identr5   r6   exposedZ	gettypeidfunctionresr   r   r"   ZridentZrexposedtokenZfallback_funcr8   r   r   r   serve_client   sl    				
		*	
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_reprr@   r,   z	#GETVALUEc             C   s   d  S)Nr   )r%   r3   r   r   r   rP   .  s    zServer.dummyc             C   s   |  j   g  } t |  j j    } | j   xV | D]N } | d k r6 | j d | |  j | t |  j | d  d  d  f  q6 Wd j |  SWd  QRXd  S)NrU   z  %s:       refcount=%s
    %sr   r>   r<   )	r_   r   r[   r   sortrC   r\   r?   join)r%   r3   r8   r   r   r   r   r   rN   1  s    

	*zServer.debug_infoc             C   s   t  |  j  d S)Nr   )lenr[   )r%   r3   r   r   r   rO   @  s    zServer.number_of_objectsc             C   sX   zC y t  j d  | j d  Wn d d  l } | j   Yn XWd  |  j j   Xd  S)Nz!manager received shutdown message#RETURNr   )r   N)r   rs   r0   	traceback	print_excre   set)r%   r3   r   r   r   r   rJ   F  s    zServer.shutdownc             O   s  |  j   |  j | \ } } } } | d  k r< | d }	 n | | |   }	 | d  k rc t |	  } | d  k	 r t |  t |  } d t |	  }
 t j d | |
  |	 t |  | f |  j |
 <|
 |  j	 k r d |  j	 |
 <|  j
 | |
  |
 t |  f SWd  QRXd  S)Nr   z%xz&%r callable returned object with id %r)r_   rV   rH   r   r$   r   rs   r   r[   r\   rQ   tuple)r%   r3   r"   r5   r6   rB   r   method_to_typeid	proxytyper    r   r   r   r   rK   S  s     
zServer.createc             C   s   t  |  j | j d  S)Nr   )r   r[   r$   )r%   r3   r   r   r   r   rM   v  s    zServer.get_methodsc             C   s-   | t  j   _ | j d  |  j |  d  S)N#RETURN)r   N)r]   r   r   r0   r   )r%   r3   r   r   r   r   rL   |  s    zServer.accept_connectionc             C   s&   |  j   |  j | d 7<Wd  QRXd  S)Nr   )r_   r\   )r%   r3   r   r   r   r   rQ     s    
zServer.increfc             C   s]   |  j  M |  j | d 8<|  j | d k rR |  j | =|  j | =t j d |  Wd  QRXd  S)Nr   r   zdisposing of obj with id %r)r_   r\   r[   r   rs   )r%   r3   r   r   r   r   rR     s
    
zServer.decrefN)r+   r-   r.   Zpublicr&   rw   ri   rz   r   r   r   r   r   rP   rN   rO   rJ   rK   rM   rL   rQ   rR   r   r   r   r   rI   ~   s,   
"J#rI   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   pickle	xmlrpclibc               @   s  e  Z d  Z i  Z e Z d d d d d d  Z d d   Z d d   Z d f  d	 d
  Z	 e
 d 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 d d d d   Z d S) r   Nr   c             C   s   | d  k r t  j   j } | |  _ t  j |  |  _ t   |  _ t j |  j _	 | |  _
 t | \ |  _ |  _ | p| t   |  _ d  S)N)r   rf   rX   _addressrW   _authkeyr   _stater   r   _serializerrY   Z	_Listener_Clientr   _ctx)r%   r#   rX   r`   ctxr   r   r   r&     s    		zBaseManager.__init__c             C   s   t  |  j |  j |  j |  j  S)N)rI   	_registryr   r   r   )r%   r   r   r   
get_server  s    zBaseManager.get_serverc             C   sN   t  |  j \ } } | |  j d |  j } t | d  d  t j |  j _ d  S)NrX   rP   )	rY   r   r   r   r9   r   r   r   r   )r%   ra   rb   r   r   r   r   connect  s    zBaseManager.connectc             C   sO  | d  k	 r% t  |  r% t d   t j d d  \ } } |  j j d t |   j d |  j |  j	 |  j
 |  j | | | f  |  _ d j d d   |  j j D  } t |   j d	 | |  j _ |  j j   | j   | j   |  _	 | j   t j |  j _ t j |  t |   j d |  j |  j	 |  j
 |  j |  j f d
 d |  _ d  S)Nzinitializer must be a callableduplexFrc   r5   :c             s   s   |  ] } t  |  Vq d  S)N)r?   )r   ir   r   r   	<genexpr>  s    z$BaseManager.start.<locals>.<genexpr>r=   exitpriorityr   )rB   	TypeErrorr	   Piper   Processr   _run_serverr   r   r   r   _processr   	_identityr+   r   rk   r   r1   r   r   r   r   r   Finalize_finalize_managerr   rJ   )r%   initializerinitargsreaderwriterr   r   r   r   rk     s&    "

zBaseManager.startc       	      C   si   | d  k	 r | |   |  j  | | | |  } | j | j  | j   t j d | j  | j   d  S)Nzmanager serving at %r)_Serverr0   r#   r   r   r   rw   )	clsrV   r#   rX   r`   r   r   r   serverr   r   r   r     s    

zBaseManager._run_serverc             O   sk   |  j  |  j d |  j } z) t | d  d | f | |  \ } } Wd  | j   Xt | |  j |  | f S)NrX   rK   )r   r   r   r9   r   r   )r%   r"   r5   r6   r   r$   r   r   r   r   _create  s
    )zBaseManager._createc             C   s;   |  j  d  k	 r7 |  j  j |  |  j  j   s7 d  |  _  d  S)N)r   r   is_alive)r%   timeoutr   r   r   r     s    zBaseManager.joinc          
   C   sA   |  j  |  j d |  j } z t | d  d  SWd  | j   Xd  S)NrX   rN   )r   r   r   r9   r   )r%   r   r   r   r   _debug_info  s    zBaseManager._debug_infoc          
   C   sA   |  j  |  j d |  j } z t | d  d  SWd  | j   Xd  S)NrX   rO   )r   r   r   r9   r   )r%   r   r   r   r   _number_of_objects"  s    zBaseManager._number_of_objectsc             C   s#   |  j  j t j k r |  j   |  S)N)r   r   r   r   rk   )r%   r   r   r   	__enter__,  s    
zBaseManager.__enter__c             C   s   |  j    d  S)N)rJ   )r%   exc_typeexc_valexc_tbr   r   r   __exit__2  s    zBaseManager.__exit__c             C   s  |  j    r t j d  y8 | | d | } z t | d  d  Wd  | j   XWn t k
 re Yn X|  j d d  |  j    r t j d  t |  d  r t j d  |  j   |  j d d	  |  j    r t j d
  t	 j
 | _ y t j | =Wn t k
 rYn Xd  S)Nz#sending shutdown message to managerrX   rJ   r   g      ?zmanager still alive	terminatez'trying to `terminate()` manager processg?z#manager still alive after terminate)r   r   r   r9   r   r~   r   hasattrr   r   r   r   r   _address_to_localKeyError)r   r#   rX   r(   r   r   r   r   r   r   5  s.    
zBaseManager._finalize_managerc             C   s   |  j  S)N)r   )r%   r   r   r   <lambda>U  s    zBaseManager.<lambda>Tc       
         s   d |  j  k r! |  j j   |  _   d  k r3 t   | pH t   d d   } | p` t   d d   } | r x  t | j    D] \ } } q| W| | |   f |  j  <| r    f d d   }	  |	 _ t |   |	  d  S)Nr   	_exposed__method_to_typeid_c          	      s   t  j d   |  j  | |  \ } }   | |  j d |  d |  j d | } |  j | j d |  j } t | d  d | j f  | S)Nz)requesting creation of a shared %r objectmanagerrX   r   rR   )	r   rs   r   r   r   r   r#   r9   r$   )r%   r5   r6   r   expproxyr   )r   r"   r   r   rD   r  s    z"BaseManager.register.<locals>.temp)	__dict__r   copy	AutoProxyr   r   r   r+   setattr)
r   r"   rB   r   r   r   create_methodkeyr   rD   r   )r   r"   r   registerW  s    
	zBaseManager.register)r+   r-   r.   r   rI   r   r&   r   r   rk   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 d d d  Z d d   Z f  i  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   NTc          
   C   s*  t  j N t  j j | j d   } | d  k rS t j   t   f } | t  j | j <Wd  QRX| d |  _ | d |  _	 | |  _
 |  j
 j |  _ | |  _ | |  _ t | d |  _ | d  k	 r t j |  |  _ n3 |  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   ForkAwareLocalr   _tls_idset_tokenr$   _id_managerr   rY   r   r   rW   r   rf   rX   _increfr   _after_fork)r%   r   r`   r   rX   r   rQ   Z	tls_idsetr   r   r   r&     s(    
			
zBaseProxy.__init__c             C   s   t  j d  t j   j } t j   j d k rH | d t j   j 7} |  j |  j j	 d |  j
 } t | d  d | f  | |  j _ d  S)Nzmaking connection to manager
MainThread|rX   rL   )r   rs   r   rf   r   r]   r   r   r   r#   r   r9   r   r	   )r%   r   r   r   r   r   _connect  s    zBaseProxy._connectc             C   sE  y |  j  j } WnA t k
 rS t j d t j   j  |  j   |  j  j } Yn X| j	 |  j
 | | | f  | j   \ } } | d k r | S| d k r2| \ } } |  j j | j d	 }	 |  j j | _ |	 | |  j d |  j d |  j d | }
 |  j | j d |  j } t | d  d | j f  |
 St | |   d  S)
Nz#thread %r does not own a connectionz#RETURNz#PROXYr   r   rX   r   rR   )r   r	   r   r   rs   r]   r   r   r   r0   r   r1   r   r   r"   r   r#   r   r   r   r9   r$   r2   )r%   r4   r5   r6   r   r7   r8   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  |  j j d |  j } t | d  d |  j f  t j d |  j j  |  j	 j
 |  j  |  j or |  j j } t j |  t j d |  j |  j | |  j |  j	 |  j  f d d |  _ d  S)NrX   rQ   z	INCREF %rr5   r   
   )r   r   r#   r   r9   r   r   rs   r$   r   addr   r   r   r   _decrefr   _close)r%   r   r(   r   r   r   r     s    zBaseProxy._increfc             C   s  | j  |  j  | d  k s. | j t j k r yE t j d |  j  | |  j d | } t | d  d |  j f  Wq t	 k
 r } z t j d |  WYd  d  } ~ Xq Xn t j d |  j  | rt
 | d  rt j d t j   j  | j j   | ` d  S)Nz	DECREF %rrX   rR   z... decref failed %sz%DECREF %r -- manager already shutdownr	   z-thread %r has no more proxies so closing conn)discardr$   r   r   r   r   rs   r#   r9   r~   r   r]   r   r   r	   r   )r   rX   r(   ZtlsZidsetr   r   r   r   r   r   r     s    &	zBaseProxy._decrefc             C   sT   d  |  _  y |  j   Wn6 t k
 rO } z t j d |  WYd  d  } ~ Xn Xd  S)Nzincref failed: %s)r   r   r~   r   r   )r%   r   r   r   r   r     s
    	zBaseProxy._after_forkc             C   s   i  } t  j   d  k	 r% |  j | d <t |  d d  r` |  j | d <t t |  j |  j | f f St t	 |   |  j |  j | f f Sd  S)NrX   _isautoFr   )
r
   get_spawning_popenr   r   r   RebuildProxyr   r   r   r   )r%   r6   r   r   r   r     s    zBaseProxy.__reduce__c             C   s
   |  j    S)N)r   )r%   memor   r   r   __deepcopy__"  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,   %  s    zBaseProxy.__repr__c             C   sB   y |  j  d  SWn* t k
 r= t |   d  d  d SYn Xd  S)Nr,   r   z; '__str__()' failed>r   )r   r~   r   )r%   r   r   r   r@   )  s    zBaseProxy.__str__)r+   r-   r.   r   r   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   } | rB | j | j k rB | j | j d S| j d d  oj t  t j   d d  } |  | | d | | Sd  S)Nrg   r   rQ   TZ_inheritingF)r   r   rf   r#   r[   r$   pop)rE   r   r`   r6   r   rQ   r   r   r   r   6  s    r   c             C   s   t  |  } y | |  | f SWn t k
 r2 Yn Xi  } x% | D] } t d | | f |  q@ Wt |  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   MakeProxyTypeK  s    	r  Tc       
      C   s   t  | d } | d  k rY | |  j d | } z t | d  d |  f  } Wd  | j   X| d  k rz | d  k	 rz | j } | d  k r t j   j } t d |  j	 |  } | |  | d | d | d | }	 d |	 _
 |	 S)Nr   rX   rM   zAutoProxy[%s]r   rQ   T)rY   r#   r9   r   r   r   rf   rX   r  r"   r   )
r   r`   r   rX   r   rQ   r   r   r  r   r   r   r   r   a  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%   r6   r   r   r   r&     s    zNamespace.__init__c             C   s   t  |  j j    } g  } x: | D]2 \ } } | j d  s" | j d | | f  q" W| j   d |  j j d j |  f S)NrG   z%s=%rz%s(%s)z, )	r   r   r   
startswithrC   r   r*   r+   r   )r%   r   rD   r   r   r   r   r   r,     s    
zNamespace.__repr__N)r+   r-   r.   r&   r,   r   r   r   r   r	  ~  s   r	  c               @   sR   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)	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               @   sR   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__r0   throwr   c             C   s   |  S)Nr   )r%   r   r   r   __iter__  s    zIteratorProxy.__iter__c             G   s   |  j  d |  S)Nr  )r   )r%   r5   r   r   r   r    s    zIteratorProxy.__next__c             G   s   |  j  d |  S)Nr0   )r   )r%   r5   r   r   r   r0     s    zIteratorProxy.sendc             G   s   |  j  d |  S)Nr  )r   )r%   r5   r   r   r   r    s    zIteratorProxy.throwc             G   s   |  j  d |  S)Nr   )r   )r%   r5   r   r   r   r     s    zIteratorProxy.closeN)r  r0   r  r   )	r+   r-   r.   r   r  r  r0   r  r   r   r   r   r   r    s   r  c               @   sL   e  Z d  Z d Z d d d d  Z d d   Z d	 d
   Z d d   Z d S)AcquirerProxyacquirereleaseTNc             C   s1   | d  k r | f n	 | | f } |  j  d |  S)Nr  )r   )r%   blockingr   r5   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  )r+   r-   r.   r   r  r  r   r   r   r   r   r   r    s
   r  c               @   sL   e  Z d  Z d Z d d d  Z d	 d
   Z d d   Z d d d  Z d S)ConditionProxyr  r  rm   notify
notify_allNc             C   s   |  j  d | f  S)Nrm   )r   )r%   r   r   r   r   rm     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   s   |   } | r | S| d  k	 r/ t    | } n d  } d  } xF | s | d  k	 rj | t    } | d k rj P|  j |  |   } q> W| S)Nr   )_timerm   )r%   	predicater   r8   endtimewaittimer   r   r   wait_for  s    		zConditionProxy.wait_for)r  r  rm   r  r  )r+   r-   r.   r   rm   r  r  r   r   r   r   r   r    s
   r  c               @   sI   e  Z d  Z d Z d d   Z d d   Z d	 d
   Z d d d  Z d S)
EventProxyrl   r   r   rm   c             C   s   |  j  d  S)Nrl   )r   )r%   r   r   r   rl     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)Nrm   )r   )r%   r   r   r   r   rm     s    zEventProxy.wait)rl   r   r   rm   )r+   r-   r.   r   rl   r   r   rm   r   r   r   r   r!    s
   r!  c               @   ss   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__rm   abortresetNc             C   s   |  j  d | f  S)Nrm   )r   )r%   r   r   r   r   rm     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#  rm   r$  r%  )r+   r-   r.   r   rm   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   sB   | d d k r  t  j |  |  St  j |  d  } | d | f  S)Nr   rG   r   r#  )objectr#  )r%   r   
callmethodr   r   r   __getattr__  s    zNamespaceProxy.__getattr__c             C   sH   | d d k r# t  j |  | |  St  j |  d  } | d | | f  S)Nr   rG   r   r*  )r,  r*  r#  )r%   r   r   r-  r   r   r   r*    s    zNamespaceProxy.__setattr__c             C   sB   | d d k r  t  j |  |  St  j |  d  } | d | f  S)Nr   rG   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     s    zValueProxy.getc             C   s   |  j  d | f  S)Nr   )r   )r%   r   r   r   r   r   	  s    zValueProxy.setN)r   r   )r+   r-   r.   r   r   r   r   r   r   r   r   r   r/    s   r/  BaseListProxy__add____contains____delitem____getitem____len____mul____reversed____rmul____setitem__rC   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__  s    zListProxy.__iadd__c             C   s   |  j  d | f  |  S)Nr@  )r   )r%   r   r   r   r   r@    s    zListProxy.__imul__N)r+   r-   r.   rB  r@  r   r   r   r   rA    s   rA  	DictProxyr   r   r   Zhas_keypopitem
setdefaultr
  
ArrayProxy	PoolProxyZapplyZapply_asyncr   imapZimap_unorderedr   mapZ	map_asyncstarmapZstarmap_asyncr   ZAsyncResultIteratorc               @   s(   e  Z d  Z d d   Z d d   Z d S)rG  c             C   s   |  S)Nr   )r%   r   r   r   r   5  s    zPoolProxy.__enter__c             C   s   |  j    d  S)N)r   )r%   r   r   r   r   r   r   r   7  s    zPoolProxy.__exit__N)r+   r-   r.   r   r   r   r   r   r   rG  4  s   c               @   s   e  Z d  Z d S)r   N)r+   r-   r.   r   r   r   r   r   >  s   	QueueJoinableQueuerd   Lockr^   	SemaphoreBoundedSemaphore	ConditionBarrierPoolr   dictr   r   F)I__all__rp   r]   r   queuer   r  r   r    r	   r
   r   r   r   r   r   r   r   Z
view_typesr   r!   Z	view_typer,  r   r9   r2   r~   r:   rF   rH   rI   r   ra   rb   XmlListener	XmlClientrY   r   r   r   r   r   r  r   r	  r  r  r  r  r  r!  r"  r)  r/  r0  rA  rC  rF  ZBasePoolProxyr   rG  r   rL  rd   rN  r^   rO  rP  rQ  rR  rS  rT  r   r   r   r   <module>   s   

 
		
