
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
ó
{fc           @   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 Z d d l m Z d d l	 m
 Z
 m Z m Z m Z m Z m Z d d l m Z d d	 l m Z m Z m Z m Z d d
 l m Z m Z y d d l m Z Wn! e k
 rd d l m Z n Xd „  Z e j e j e ƒ g  d d d f D] Z  e! e" i  e  ƒ ƒ  ƒ ^ qDZ# d e$ f d „  ƒ  YZ% f  i  d „ Z& d „  Z' d e( f d „  ƒ  YZ) d „  Z* d „  Z+ d e$ f d „  ƒ  YZ, d e$ f d „  ƒ  YZ- i e j. e j/ f d 6e j0 e j1 f d 6Z2 d  e$ f d „  ƒ  YZ3 d e4 f d „  ƒ  YZ5 d e$ f d  „  ƒ  YZ6 d! „  Z7 i  d" „ Z8 e9 e9 e9 e: d# „ Z; d$ e$ f d% „  ƒ  YZ< d& e$ f d' „  ƒ  YZ= e: d( „ Z> d) e6 f d* „  ƒ  YZ? d+ e6 f d, „  ƒ  YZ@ d- e@ f d. „  ƒ  YZA d/ e6 f d0 „  ƒ  YZB d1 e6 f d2 „  ƒ  YZC d3 e6 f d4 „  ƒ  YZD e8 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK f ƒ ZE dL eE f dM „  ƒ  YZF e8 dN d7 d8 d: dO d< d@ dP dQ dR dS d d dG dT dU dV d f ƒ ZG i dW dO 6eG _H e8 dX d< d: d@ d; dA f ƒ ZI e8 dY dZ d[ d\ d] d^ d_ d` da db f	 ƒ ZJ i dc d[ 6dc da 6dW d] 6dW d^ 6eJ _H d e3 f dd „  ƒ  YZK eK j de e j ƒ eK j df e j ƒ eK j dg e jL eB ƒ eK j dh e jM e@ ƒ eK j di e jN e@ ƒ eK j dj e jO e@ ƒ eK j dk e jP e@ ƒ eK j dl e jQ eA ƒ eK j dm e eJ ƒ eK j dn eR eF ƒ eK j do eS eG ƒ eK j d& e= eD ƒ eK j dp e> eI ƒ eK j d$ e< eC ƒ eK j dW dq e? dr eT ƒeK j dc dr eT ƒd S(s   t   BaseManagert   SyncManagert	   BaseProxyt   TokeniÿÿÿÿN(   t
   format_exc(   t   Processt   current_processt   active_childrent   Poolt   utilt
   connection(   t   AuthenticationString(   t   exitt   Popent   assert_spawningt   ForkingPickler(   t   Finalizet   info(   t   PicklingErrorc         C   s   t  j  |  j |  j ƒ  f f S(   N(   t   arrayt   typecodet   tostring(   t   a(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   reduce_array@   s    t   itemst   keyst   valuesc           B   s8   e  Z d  Z d Z d „  Z d „  Z d „  Z d „  Z RS(	   s4   
    Type to uniquely indentify a shared object
    t   typeidt   addresst   idc         C   s!   | | | |  _  |  _ |  _ d  S(   N(   R   R   R   (   t   selfR   R   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   __init__P   s    c         C   s   |  j  |  j |  j f S(   N(   R   R   R   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   __getstate__S   s    c         C   s   | \ |  _  |  _ |  _ d  S(   N(   R   R   R   (   R   t   state(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   __setstate__V   s    c         C   s   d |  j  |  j |  j f S(   Ns#   Token(typeid=%r, address=%r, id=%r)(   R   R   R   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   __repr__Y   s    (   R   R   R   (   t   __name__t
   __module__t   __doc__t	   __slots__R   R    R"   R#   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR   J   s   			c         C   sN   |  j  | | | | f ƒ |  j ƒ  \ } } | d k r; | St | | ƒ ‚ d S(   sL   
    Send a message to manager using connection `c` and return response
    s   #RETURNN(   t   sendt   recvt   convert_to_error(   t   cR   t
   methodnamet   argst   kwdst   kindt   result(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   dispatcha   s
    c         C   sN   |  d k r | S|  d k r& t  | ƒ S|  d k r@ t  d | ƒ St d ƒ Sd  S(   Ns   #ERRORs
   #TRACEBACKs   #UNSERIALIZABLEs   Unserializable message: %s
s   Unrecognized message type(   t   RemoteErrort
   ValueError(   R/   R0   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR*   k   s    
R2   c           B   s   e  Z d  „  Z RS(   c         C   s)   d d d d t  |  j d ƒ d d S(   Ns   
t   -iK   i    (   t   strR-   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   __str__x   s    (   R$   R%   R6   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR2   w   s   c         C   sO   g  } xB t  |  ƒ D]4 } t |  | ƒ } t | d ƒ r | j | ƒ q q W| S(   s4   
    Return a list of names of methods of `obj`
    t   __call__(   t   dirt   getattrt   hasattrt   append(   t   objt   tempt   namet   func(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   all_methods   s    c         C   s-   g  t  |  ƒ D] } | d d k r | ^ q S(   sP   
    Return a list of names of methods of `obj` which do not start with '_'
    i    t   _(   R@   (   R<   R>   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   public_methodsŠ   s    t   Serverc        	   B   sÚ   e  Z d  Z d d d d d d d d d	 g	 Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 i e	 d 6e
 d 6e d 6Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   sM   
    Server class which runs in a process controlled by a manager object
    t   shutdownt   createt   accept_connectiont   get_methodst
   debug_infot   number_of_objectst   dummyt   increft   decrefc         C   sŠ   | |  _  t | ƒ |  _ t | \ } } | d | d d ƒ |  _ |  j j |  _ i d  d f d 6|  _ i  |  _ t	 j
 ƒ  |  _ d |  _ d  S(   NR   t   backlogi   t   0i    (    (   t   registryR   t   authkeyt   listener_clientt   listenerR   t   Nonet	   id_to_objt   id_to_refcountt	   threadingt   RLockt   mutext   stop(   R   RO   R   RP   t
   serializert   Listenert   Client(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR   ›   s    		c         C   s´   |  t  ƒ  _ zŠ yl xe y |  j j ƒ  } Wn t t f k
 rD q n Xt j d |  j d | f ƒ } t	 | _
 | j ƒ  q WWn t t f k
 r” n XWd d |  _ |  j j ƒ  Xd S(   s(   
        Run the server forever
        t   targetR-   Niç  (   R   t   _manager_serverRR   t   acceptt   OSErrort   IOErrorRV   t   Threadt   handle_requestt   Truet   daemont   startt   KeyboardInterruptt
   SystemExitRY   t   close(   R   R+   t   t(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   serve_foreverª   s    		c         C   s`  d } } } yW t j | |  j ƒ t j | |  j ƒ | j ƒ  } | \ } } } } t |  | ƒ } Wn  t k
 r‡ d t ƒ  f }	 nF Xy | | | | Ž } Wn  t k
 rÀ d t ƒ  f }	 n Xd | f }	 y | j	 |	 ƒ Wnq t k
 rQ}
 y | j	 d t ƒ  f ƒ Wn t k
 rn Xt
 j d |	 ƒ t
 j d | ƒ t
 j d |
 ƒ n X| j ƒ  d S(   s)   
        Handle a new connection
        s
   #TRACEBACKs   #RETURNs   Failure to send message: %rs    ... request was %rs    ... exception was %rN(   RS   R
   t   deliver_challengeRP   t   answer_challengeR)   R9   t	   ExceptionR   R(   R	   R   Ri   (   R   R+   t   funcnameR0   t   requestt   ignoreR-   R.   R?   t   msgt   e(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRc   ¿   s2    c         C   sè  t  j d t j ƒ  j ƒ | j } | j } |  j } x­|  j sãyd } } | ƒ  } | \ } } }	 }
 | | \ } } } | | k r© t
 d | t | ƒ | f ƒ ‚ n  t | | ƒ } y | |	 |
 Ž  } Wn t k
 rì } d | f } np X| o| j | d ƒ } | rP|  j | | | ƒ \ } } t | |  j | ƒ } d | | f f } n d | f } Wnß t
 k
 ré| d k r‹d t ƒ  f } q?y8 |  j | } | |  | | | |	 |
 Ž } d | f } Wq?t k
 råd t ƒ  f } q?XnV t k
 rt  j d t j ƒ  j ƒ t j d ƒ n  t k
 r>d t ƒ  f } n Xy; y | | ƒ Wn& t k
 rx} | d	 t ƒ  f ƒ n XWq7 t k
 rß} t  j d
 t j ƒ  j ƒ t  j d | ƒ t  j d | ƒ | j ƒ  t j d ƒ q7 Xq7 Wd S(   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 %ri    s   #UNSERIALIZABLEs   exception in thread serving %rs    ... message was %rs    ... exception was %ri   N(   R	   t   debugRV   t   current_threadR>   R)   R(   RT   RY   RS   t   AttributeErrort   typeR9   Rn   t   getRE   R   R   R   t   fallback_mappingt   EOFErrort   sysR   R   Ri   (   R   t   connR)   R(   RT   R,   R<   Rp   t   identR-   R.   t   exposedt	   gettypeidt   functiont   resRs   Rr   R   t   ridentt   rexposedt   tokent   fallback_funcR0   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   serve_clientá   sl    				
			
c         C   s   | S(   N(    (   R   R|   R}   R<   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   fallback_getvalue+  s    c         C   s
   t  | ƒ S(   N(   R5   (   R   R|   R}   R<   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   fallback_str.  s    c         C   s
   t  | ƒ S(   N(   t   repr(   R   R|   R}   R<   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   fallback_repr1  s    R6   R#   s	   #GETVALUEc         C   s   d  S(   N(    (   R   R+   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRJ   :  s    c         C   s¨   |  j  j ƒ  z† g  } |  j j ƒ  } | j ƒ  xS | D]K } | d k r6 | j d | |  j | t |  j | d ƒ d  f ƒ q6 q6 Wd j | ƒ SWd |  j  j	 ƒ  Xd S(   sO   
        Return some info --- useful to spot problems with refcounting
        RN   s     %s:       refcount=%s
    %si    iK   s   
N(
   RX   t   acquireRT   R   t   sortR;   RU   R5   t   joint   release(   R   R+   R0   R   R}   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRH   =  s    
	'c         C   s   t  |  j ƒ d S(   s*   
        Number of shared objects
        i   (   t   lenRT   (   R   R+   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRI   O  s    c         C   s  zö yÒ t  j d ƒ | j d	 ƒ t j t j k rZ t  j d ƒ t j t _ t j t _ n  t  j	 d ƒ x( t
 ƒ  D] } t  j d ƒ | j ƒ  qq Wx( t
 ƒ  D] } t  j d ƒ | j ƒ  qœ Wt  j	 ƒ  t  j d ƒ Wn d d l } | j ƒ  n XWd t d ƒ Xd S(
   s'   
        Shutdown this process
        s!   manager received shutdown messages   #RETURNs   resetting stdout, stderri    s&   terminating a child process of managers   manager exiting with exitcode 0iÿÿÿÿN(   s   #RETURNN(   R	   Rt   R(   RS   R{   t   stdoutt
   __stdout__t
   __stderr__t   stderrt   _run_finalizersR   t	   terminateR�   R   t	   tracebackt	   print_excR   (   R   R+   t   pR–   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRD   U  s*    
c         O   s%  |  j  j ƒ  z|  j | \ } } } } | d k rB | d }	 n | | | Ž  }	 | d k rl t |	 ƒ } n  | d k	 r‘ t | ƒ t | ƒ } n  d t |	 ƒ }
 t j d | |
 ƒ |	 t	 | ƒ | f |  j
 |
 <|
 |  j k rï d |  j |
 <n  |  j | |
 ƒ |
 t | ƒ f SWd |  j  j ƒ  Xd S(   s>   
        Create a new shared object and return its id
        i    s   %xs&   %r callable returned object with id %rN(   RX   R‹   RO   RS   RB   t   listR   R	   Rt   t   setRT   RU   RK   t   tupleRŽ   (   R   R+   R   R-   R.   t   callableR~   t   method_to_typeidt	   proxytypeR<   R}   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRE   u  s$    c         C   s   t  |  j | j d ƒ S(   sL   
        Return the methods of the shared object indicated by token
        i   (   R›   RT   R   (   R   R+   R„   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRG   ›  s    c         C   s-   | t  j ƒ  _ | j d ƒ |  j | ƒ d S(   s=   
        Spawn a new thread to serve this connection
        s   #RETURNN(   s   #RETURNN(   RV   Ru   R>   R(   RS   R†   (   R   R+   R>   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRF   ¡  s    c         C   s9   |  j  j ƒ  z |  j | c d 7<Wd  |  j  j ƒ  Xd  S(   Ni   (   RX   R‹   RU   RŽ   (   R   R+   R}   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRK   ©  s    c         C   ss   |  j  j ƒ  zQ |  j | c d 8<|  j | d k r] |  j | =|  j | =t j d | ƒ n  Wd  |  j  j ƒ  Xd  S(   Ni   i    s   disposing of obj with id %r(   RX   R‹   RU   RT   R	   Rt   RŽ   (   R   R+   R}   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRL   °  s    (   R$   R%   R&   t   publicR   Rk   Rc   R†   R‡   Rˆ   RŠ   Ry   RJ   RH   RI   RD   RE   RG   RF   RK   RL   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRC   ”   s.   			"	J			
				 	&			t   Statec           B   s#   e  Z d  g Z d Z d Z d Z RS(   t   valuei    i   i   (   R$   R%   R'   t   INITIALt   STARTEDt   SHUTDOWN(    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR    ¿  s   	t   picklet	   xmlrpclibc           B   sà   e  Z d  Z i  Z e Z d d d d „ Z d „  Z d „  Z	 d „  Z
 d d d „ Z e d d d „ ƒ Z d „  Z d d	 „ Z d
 „  Z d „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d d d d e d „ ƒ Z RS(   s!   
    Base class for managers
    R¥   c         C   sq   | d  k r t ƒ  j } n  | |  _ t | ƒ |  _ t ƒ  |  _ t j |  j _	 | |  _
 t | \ |  _ |  _ d  S(   N(   RS   R   RP   t   _addressR   t   _authkeyR    t   _stateR¢   R¡   t   _serializerRQ   t	   _Listenert   _Client(   R   R   RP   RZ   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR   Ù  s    		c         C   s%   t  |  ƒ j |  j |  j |  j f f S(   N(   Rw   t   from_addressR§   R¨   Rª   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt
   __reduce__ã  s    c         C   s   t  |  j |  j |  j |  j ƒ S(   sX   
        Return server object with serve_forever() method and address attribute
        (   RC   t	   _registryR§   R¨   Rª   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt
   get_serverç  s    c         C   sN   t  |  j \ } } | |  j d |  j ƒ} t | d d ƒ t j |  j _	 d S(   s>   
        Connect manager object to the server process
        RP   RJ   N(
   RQ   Rª   R§   R¨   R1   RS   R    R£   R©   R¡   (   R   R[   R\   R|   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   connectï  s    c         C   sL  | d k	 r+ t | d ƒ r+ t d ƒ ‚ n  t j d t ƒ \ } } t d t |  ƒ j d |  j	 |  j
 |  j |  j | | | f ƒ |  _ d j 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(   s@   
        Spawn a server process for this manager object
        R7   s   initializer must be a callablet   duplexR]   R-   t   :c         s   s   |  ] } t  | ƒ Vq d  S(   N(   R5   (   t   .0t   i(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pys	   <genexpr>
  s    R4   t   exitpriorityi    N(   RS   R:   t	   TypeErrorR
   t   Pipet   FalseR   Rw   t   _run_serverR¯   R§   R¨   Rª   t   _processR�   t	   _identityR$   R>   Rf   Ri   R)   R    R£   R©   R¡   R	   R   t   _finalize_managerR¬   RD   (   R   t   initializert   initargst   readert   writerR}   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRf   ø  s&    

c   	      C   sl   | d k	 r | | Œ  n  |  j | | | | ƒ } | j | j ƒ | j ƒ  t j d | j ƒ | j ƒ  d S(   s@   
        Create a server, report its address and run it
        s   manager serving at %rN(   RS   t   _ServerR(   R   Ri   R	   R   Rk   (	   t   clsRO   R   RP   RZ   RÁ   R¾   R¿   t   server(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRº     s    
c         O   sk   |  j  |  j d |  j ƒ} z) t | d d | f | | ƒ \ } } Wd | j ƒ  Xt | |  j | ƒ | f S(   sP   
        Create a new shared object; return the token and exposed tuple
        RP   RE   N(   R¬   R§   R¨   R1   RS   Ri   R   (   R   R   R-   R.   R|   R   R~   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   _create0  s
    )c         C   s   |  j  j | ƒ d S(   sC   
        Join the manager process (if it has been spawned)
        N(   R»   R�   (   R   t   timeout(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR�   <  s    c         C   sA   |  j  |  j d |  j ƒ} z t | d d ƒ SWd | j ƒ  Xd S(   sS   
        Return some info about the servers shared objects and connections
        RP   RH   N(   R¬   R§   R¨   R1   RS   Ri   (   R   R|   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   _debug_infoB  s    c         C   sA   |  j  |  j d |  j ƒ} z t | d d ƒ SWd | j ƒ  Xd S(   s5   
        Return the number of shared objects
        RP   RI   N(   R¬   R§   R¨   R1   RS   Ri   (   R   R|   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   _number_of_objectsL  s    c         C   s   |  S(   N(    (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt	   __enter__V  s    c         C   s   |  j  ƒ  d  S(   N(   RD   (   R   t   exc_typet   exc_valt   exc_tb(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   __exit__Y  s    c         C   s  |  j  ƒ  ré t j d ƒ y8 | | d | ƒ} z t | d d ƒ Wd | j ƒ  XWn t k
 rd n X|  j d d ƒ |  j  ƒ  ré t j d ƒ t |  d ƒ ræ t j d	 ƒ |  j	 ƒ  |  j d d
 ƒ |  j  ƒ  rã t j d ƒ qã qæ qé n  t
 j | _ y t j | =Wn t k
 rn Xd S(   sQ   
        Shutdown the manager process; will be registered as a finalizer
        s#   sending shutdown message to managerRP   RD   NRÆ   gš™™™™™É?s   manager still aliveR•   s'   trying to `terminate()` manager processgš™™™™™¹?s#   manager still alive after terminate(   t   is_aliveR	   R   R1   RS   Ri   Rn   R�   R:   R•   R    R¤   R¡   R   t   _address_to_localt   KeyError(   t   processR   RP   R!   R¬   R|   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR½   \  s.    
c         C   s   |  j  S(   N(   R§   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   <lambda>|  t    c   
         sà   d |  j  k r$ |  j j ƒ  |  _ n  ˆ  d k r9 t ‰  n  | pN t ˆ  d d ƒ } | pf t ˆ  d d ƒ } | r� x | j ƒ  D] \ } } q| Wn  | | | ˆ  f |  j ˆ <| rÜ ‡  ‡ f d †  }	 ˆ |	 _ t |  ˆ |	 ƒ n  d S(   s9   
        Register a typeid with the manager type
        R¯   t	   _exposed_t   _method_to_typeid_c      	      sŠ   t  j d ˆ ƒ |  j ˆ | | Ž \ } } ˆ  | |  j d |  d |  j d | ƒ} |  j | j d |  j ƒ} t | d  d | j	 f ƒ | S(   Ns)   requesting creation of a shared %r objectt   managerRP   R~   RL   (
   R	   Rt   RÅ   Rª   R¨   R¬   R   R1   RS   R   (   R   R-   R.   R„   t   expt   proxyR|   (   Rž   R   (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR=   ™  s    N(	   t   __dict__R¯   t   copyRS   t	   AutoProxyR9   R   R$   t   setattr(
   RÃ   R   Rœ   Rž   R~   R�   t   create_methodt   keyR¡   R=   (    (   Rž   R   s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   register~  s    	
	N(    (    (   R$   R%   R&   R¯   RC   RÂ   RS   R   R®   R°   R±   Rf   t   classmethodRº   RÅ   R�   RÇ   RÈ   RÉ   RÍ   t   staticmethodR½   t   propertyR   Rd   Rß   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR    Ò  s*   
				$		
	
		 	t   ProcessLocalSetc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   t  j |  d „  ƒ d  S(   Nc         S   s
   |  j  ƒ  S(   N(   t   clear(   R<   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRÒ   ¬  RÓ   (   R	   t   register_after_fork(   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR   «  s    c         C   s   t  |  ƒ d f S(   N(    (   Rw   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR®   ­  s    (   R$   R%   R   R®   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRã   ª  s   	c           B   s›   e  Z d  Z i  Z e j ƒ  Z d d d e d „ Z	 d „  Z
 d i  d „ Z d „  Z d „  Z e d „  ƒ Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z RS(   s.   
    A base for proxies of shared objects
    c         C   s;  t  j j ƒ  zP t  j j | j d  ƒ } | d  k r\ t j ƒ  t	 ƒ  f } | t  j | j <n  Wd  t  j j
 ƒ  X| d |  _ | d |  _ | |  _ |  j j |  _ | |  _ | |  _ t | d |  _ | d  k	 rá t | ƒ |  _ n0 |  j d  k	 r|  j j |  _ n t ƒ  j |  _ | r$|  j ƒ  n  t j |  t  j ƒ d  S(   Ni    i   (   R   t   _mutexR‹   RÏ   Rx   R   RS   R	   t   ForkAwareLocalRã   RŽ   t   _tlst   _idsett   _tokenR   t   _idt   _managerRª   RQ   R¬   R   R¨   R   RP   t   _increfRå   t   _after_fork(   R   R„   RZ   RÖ   RP   R~   RK   t	   tls_idset(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR   »  s,    			c         C   sŒ   t  j d ƒ t ƒ  j } t j ƒ  j d k rH | d t j ƒ  j 7} n  |  j |  j j d |  j	 ƒ} t
 | d  d | f ƒ | |  j _ d  S(   Ns   making connection to managert
   MainThreadt   |RP   RF   (   R	   Rt   R   R>   RV   Ru   R¬   Rê   R   R¨   R1   RS   Rè   R
   (   R   R>   R|   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   _connectá  s    c      	   C   sD  y |  j  j } Wn@ t k
 rR t j d t j ƒ  j ƒ |  j ƒ  |  j  j } n X| j	 |  j
 | | | f ƒ | j ƒ  \ } } | d k r‘ | S| d k r1| \ } } |  j j | j d }	 |  j j | _ |	 | |  j d |  j d |  j d | ƒ}
 |  j | j d |  j ƒ} t | d	 d | j f ƒ |
 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Ö   RP   R~   RL   N(   Rè   R
   Rv   R	   Rt   RV   Ru   R>   Rò   R(   Rë   R)   Rì   R¯   R   Rê   R   Rª   R¨   R¬   R1   RS   R   R*   (   R   R,   R-   R.   R|   R/   R0   R~   R„   Rž   RØ   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   _callmethodê  s,    	
c         C   s   |  j  d ƒ S(   s9   
        Get a copy of the value of the referent
        s	   #GETVALUE(   Ró   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt	   _getvalue  s    c      
   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(   NRP   RK   s	   INCREF %rR-   R¶   i
   (   R¬   Rê   R   R¨   R1   RS   Rë   R	   Rt   R   Ré   t   addRì   R©   R   R   t   _decrefRè   t   _close(   R   R|   R!   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRí     s    c         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˜ } t j d | ƒ q¯ Xn t j d |  j ƒ | rô t | d ƒ rô t j d t j ƒ  j ƒ | j j ƒ  | ` n  d  S(   Ns	   DECREF %rRP   RL   s   ... decref failed %ss%   DECREF %r -- manager already shutdownR
   s-   thread %r has no more proxies so closing conn(   t   discardR   RS   R¡   R    R£   R	   Rt   R   R1   Rn   R:   RV   Ru   R>   R
   Ri   (   R„   RP   R!   t   tlst   idsetR¬   R|   Rs   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRö     s    	c         C   sB   d  |  _ y |  j ƒ  Wn$ t k
 r= } t j d | ƒ n Xd  S(   Ns   incref failed: %s(   RS   Rì   Rí   Rn   R	   R   (   R   Rs   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRî   7  s
    	c         C   sƒ   i  } t  j ƒ  r" |  j | d <n  t |  d t ƒ r] |  j | d <t t |  j |  j	 | f f St t
 |  ƒ |  j |  j	 | f f Sd  S(   NRP   t   _isautoR~   (   R   t   thread_is_spawningR¨   R9   R¹   RÔ   t   RebuildProxyRÛ   Rê   Rª   Rw   (   R   R.   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR®   ?  s    c         C   s
   |  j  ƒ  S(   N(   Rô   (   R   t   memo(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   __deepcopy__L  s    c         C   s*   d t  |  ƒ j |  j j d t |  ƒ f S(   Ns   <%s object, typeid %r at %s>s   0x%x(   Rw   R$   Rê   R   R   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR#   O  s    c         C   s8   y |  j  d ƒ SWn  t k
 r3 t |  ƒ d  d SXd S(   sV   
        Return representation of the referent (or a fall-back if that fails)
        R#   iÿÿÿÿs   ; '__str__()' failed>N(   Ró   Rn   R‰   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR6   S  s    N(    (   R$   R%   R&   RÏ   R	   t   ForkAwareThreadLockRæ   RS   Rd   R   Rò   Ró   Rô   Rí   Rá   Rö   Rî   R®   Rÿ   R#   R6   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR   ´  s   %								c         C   s�   t  t ƒ  d d ƒ } | r? | j | j k r? | j | j d S| j d t ƒ od t  t ƒ  d t ƒ } |  | | d | | �Sd S(   s‚   
    Function used for unpickling proxy objects.

    If possible the shared object is returned, or otherwise a proxy for it.
    R^   i    RK   t   _inheritingN(	   R9   R   RS   R   RT   R   t   popRd   R¹   (   R?   R„   RZ   R.   RÄ   RK   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRý   `  s    c         B   s�   e  | ƒ } y | |  | f SWn e k
 r1 n Xi  } x  | D] } d | | f | Uq? We |  e f | ƒ } | | _ | | |  | f <| S(   sB   
    Return a proxy type whose methods are given by `exposed`
    sL   def %s(self, *args, **kwds):
        return self._callmethod(%r, args, kwds)(   R›   RÐ   Rw   R   RÔ   (   R>   R~   t   _cachet   dict   metht	   ProxyType(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   MakeProxyTypeu  s    	c   
   	   C   sß   t  | d } | d k r\ | |  j d | ƒ} z t | d d |  f ƒ } Wd | j ƒ  Xn  | d k r€ | d k	 r€ | j } n  | d k r› t ƒ  j } n  t d |  j	 | ƒ } | |  | d | d | d | ƒ}	 t
 |	 _ |	 S(   s*   
    Return an auto-proxy for `token`
    i   RP   RG   Ns   AutoProxy[%s]RÖ   RK   (   RQ   RS   R   R1   Ri   R¨   R   RP   R  R   Rd   Rû   (
   R„   RZ   RÖ   RP   R~   RK   R¬   R|   R  RØ   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRÛ   ‹  s    		t	   Namespacec           B   s   e  Z d  „  Z d „  Z RS(   c         K   s   |  j  j | ƒ d  S(   N(   RÙ   t   update(   R   R.   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR   ©  s    c         C   ss   |  j  j ƒ  } g  } x= | D]5 \ } } | j d ƒ s | j d | | f ƒ q q W| j ƒ  d t j d | ƒ S(   NRA   s   %s=%rs   Namespace(%s)s   , (   RÙ   R   t
   startswithR;   RŒ   R5   R�   (   R   R   R=   R>   R¡   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR#   «  s    
(   R$   R%   R   R#   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  ¨  s   	t   Valuec           B   s>   e  Z e d  „ Z d „  Z d „  Z d „  Z e e e ƒ Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t	   _typecodet   _value(   R   R   R¡   t   lock(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR   µ  s    	c         C   s   |  j  S(   N(   R  (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRx   ¸  s    c         C   s   | |  _  d  S(   N(   R  (   R   R¡   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRš   º  s    c         C   s    d t  |  ƒ j |  j |  j f S(   Ns
   %s(%r, %r)(   Rw   R$   R  R  (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR#   ¼  s    (	   R$   R%   Rd   R   Rx   Rš   R#   Râ   R¡   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  ´  s
   			c         C   s   t  j  |  | ƒ S(   N(   R   (   R   t   sequenceR  (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   ArrayÀ  s    t   IteratorProxyc           B   sD   e  Z d Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z RS(   t   __next__t   nextR(   t   throwRi   c         C   s   |  S(   N(    (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   __iter__Ê  s    c         G   s   |  j  d | ƒ S(   NR  (   Ró   (   R   R-   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  Ì  s    c         G   s   |  j  d | ƒ S(   NR  (   Ró   (   R   R-   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  Î  s    c         G   s   |  j  d | ƒ S(   NR(   (   Ró   (   R   R-   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR(   Ð  s    c         G   s   |  j  d | ƒ S(   NR  (   Ró   (   R   R-   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  Ò  s    c         G   s   |  j  d | ƒ S(   NRi   (   Ró   (   R   R-   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRi   Ô  s    (   R  R  R(   R  Ri   (	   R$   R%   RÔ   R  R  R  R(   R  Ri   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  Ç  s   					t   AcquirerProxyc           B   s5   e  Z d Z e d „ Z d „  Z d „  Z d „  Z RS(   R‹   RŽ   c         C   s   |  j  d | f ƒ S(   NR‹   (   Ró   (   R   t   blocking(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR‹   Ú  s    c         C   s   |  j  d ƒ S(   NRŽ   (   Ró   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRŽ   Ü  s    c         C   s   |  j  d ƒ S(   NR‹   (   Ró   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRÉ   Þ  s    c         C   s   |  j  d ƒ S(   NRŽ   (   Ró   (   R   RÊ   RË   RÌ   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRÍ   à  s    (   R‹   RŽ   (   R$   R%   RÔ   Rd   R‹   RŽ   RÉ   RÍ   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  Ø  s
   		t   ConditionProxyc           B   s,   e  Z d Z d	 d „ Z d „  Z d „  Z RS(
   R‹   RŽ   t   waitt   notifyt
   notify_allc         C   s   |  j  d | f ƒ S(   NR  (   Ró   (   R   RÆ   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  ç  s    c         C   s   |  j  d ƒ S(   NR  (   Ró   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  é  s    c         C   s   |  j  d ƒ S(   NR  (   Ró   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  ë  s    (   R‹   RŽ   R  R  R  N(   R$   R%   RÔ   RS   R  R  R  (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  ä  s   	t
   EventProxyc           B   s5   e  Z d Z d „  Z d „  Z d „  Z d	 d „ Z RS(
   t   is_setRš   Rä   R  c         C   s   |  j  d ƒ S(   NR  (   Ró   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  ð  s    c         C   s   |  j  d ƒ S(   NRš   (   Ró   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRš   ò  s    c         C   s   |  j  d ƒ S(   NRä   (   Ró   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRä   ô  s    c         C   s   |  j  d | f ƒ S(   NR  (   Ró   (   R   RÆ   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  ö  s    (   R  Rš   Rä   R  N(   R$   R%   RÔ   R  Rš   Rä   RS   R  (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  î  s
   			t   NamespaceProxyc           B   s)   e  Z d Z d „  Z d „  Z d „  Z RS(   t   __getattribute__t   __setattr__t   __delattr__c         C   sB   | d d k r  t  j |  | ƒ St  j |  d ƒ } | d | f ƒ S(   Ni    RA   Ró   R  (   t   objectR  (   R   RÞ   t
   callmethod(    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   __getattr__û  s    c         C   sH   | d d k r# t  j |  | | ƒ St  j |  d ƒ } | d | | f ƒ S(   Ni    RA   Ró   R   (   R"  R   R  (   R   RÞ   R¡   R#  (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR      s    c         C   sB   | d d k r  t  j |  | ƒ St  j |  d ƒ } | d | f ƒ S(   Ni    RA   Ró   R!  (   R"  R!  R  (   R   RÞ   R#  (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR!    s    (   R  R   R!  (   R$   R%   RÔ   R$  R   R!  (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR  ù  s   		t
   ValueProxyc           B   s/   e  Z d Z d „  Z d „  Z e e e ƒ Z RS(   Rx   Rš   c         C   s   |  j  d ƒ S(   NRx   (   Ró   (   R   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRx     s    c         C   s   |  j  d | f ƒ S(   NRš   (   Ró   (   R   R¡   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyRš     s    (   Rx   Rš   (   R$   R%   RÔ   Rx   Rš   Râ   R¡   (    (    (    s0   /usr/lib64/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;   t   countt   extendt   indext   insertR  t   removet   reverseRŒ   t   __imul__t	   ListProxyc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s   |  j  d | f ƒ |  S(   NR4  (   Ró   (   R   R¡   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   __iadd__  s    c         C   s   |  j  d | f ƒ |  S(   NR9  (   Ró   (   R   R¡   (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR9     s    (   R$   R%   R;  R9  (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR:    s   	t	   DictProxyR  Rä   RÚ   Rx   t   has_keyt   popitemt
   setdefaultR	  t   Iteratort
   ArrayProxyt	   PoolProxyt   applyt   apply_asyncRi   t   imapt   imap_unorderedR�   t   mapt	   map_asyncR•   t   AsyncResultc           B   s   e  Z d  Z RS(   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&   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyR   C  s   	t   Queuet   JoinableQueuet   Eventt   LockRW   t	   Semaphoret   BoundedSemaphoret	   ConditionR   R™   t   dictR  Rž   RÝ   (U   t   __all__t   osR{   t   weakrefRV   R   RJ  R–   R   t   multiprocessingR   R   R   R   R	   R
   t   multiprocessing.processR   t   multiprocessing.forkingR   R   R   R   t   multiprocessing.utilR   R   t   cPickleR   t   ImportErrorR¥   R   Rß   R>   Rw   R9   t
   view_typesR"  R   R1   R*   Rn   R2   R@   RB   RC   R    R[   R\   t   XmlListenert	   XmlClientRQ   R    Rš   Rã   R   Rý   R  RS   Rd   RÛ   R  R  R  R  R  R  R  R  R%  R&  R:  R<  RÕ   RA  RB  R   RL  RM  RW   RN  RO  RP  R™   RQ  R¹   (    (    (    s0   /usr/lib64/python2.7/multiprocessing/managers.pyt   <module>$   s®   ."	4
			
ÿ ,
Ø
¬	
		