
[XMc           @   s  d  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 m Z d d l m Z d d l m Z d d	 l m Z m Z d d l Z d
 d d !Z e j d e  d e
 j f d     YZ d e
 j f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d d l  Z  x' e! e  j" f D] Z# e e e# e  qWx$ e$ e% f D] Z# e e e# e  qWx$ e& e' f D] Z# e e e# e  qWd  e j( f d!     YZ) d" d, d#     YZ* d$ e j+ f d%     YZ, d& e j- f d'     YZ. d( d- d)     YZ/ d*   Z0 e1 d+ k rd d l2 Z2 e j3 e2 j4  e0   n  d S(.   s8   An input/output window for the glade reactor inspector.
iN(   t   sibpath(   t   reflect(   t   gtk2manhole(   t   Adaptert   registerAdapter(   t   log(   t   policies(   t
   implementst	   Interfaces   $Revision: 1.1 $i   is   gladereactor Inspectort   ConsoleOutputc           B   s   e  Z d    Z d   Z RS(   c         C   s/   t  j t j |  d   |  _ |  j j   d  S(   NR   (   R   t   FileLogObserverR   t	   _Notafilet   fobst   start(   t   self(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   _captureLocalLog   s    c         C   s   |  j  j   |  `  d  S(   N(   R   t   stop(   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR      s    (   t   __name__t
   __module__R   R   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR	      s   	t   ConsoleInputc           B   s   e  Z d    Z d   Z RS(   c         C   sG   |  j  j   } | j   \ } } | j | | t  } |  j |  d  S(   N(   t   textViewt
   get_buffert
   get_boundst   get_textt   Falset   do(   R   t   buffert   iter1t   iter2t   text(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   sendMessage$   s    c         C   s   |  j  j |  d  S(   N(   t   toplevelR   (   R   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR   *   s    (   R   R   R   R   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR   #   s   	t   INodec           B   s   e  Z d  Z d   Z RS(   s(   A node in the inspector tree model.
    c         C   s#   t  |  d  r t |   St |   S(   Nt   __dict__(   t   hasattrt   InstanceNodet   AttributesNode(   t	   adaptablet   default(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt	   __adapt__1   s    
(   R   R   t   __doc__R'   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR    -   s   t   InspectorNodec           B   s?   e  Z e e  d    Z d   Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   t   offsett   parentt   slot(   R   R*   R+   R,   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   postInit9   s    		c         C   sI   g  } |  } x, | j  d  k	 r: | j | j  | j  } q W| j   | S(   N(   R+   t   Nonet   appendR*   t   reverse(   R   t   Lt   x(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   getPath>   s    
c         C   s>   |  j  |  \ } } t | d t } | j | |  |  | S(   Nt   persist(   t   getR    R   R-   (   R   t   indexR,   t   ot   n(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   __getitem__G   s    c         C   s   t  |  j  S(   N(   t   strt   original(   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   origstrM   s    c         C   s   |  j  |  j   f S(   N(   R,   R<   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   formatP   s    (	   R   R   R   R    R-   R3   R9   R<   R=   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR)   6   s   
					t   ConstantNodec           B   s   e  Z d    Z RS(   c         C   s   d S(   Ni    (    (   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   __len__U   s    (   R   R   R?   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR>   T   s   t   DictionaryNodec           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s!   |  j  j   } | j   | | S(   N(   R;   t   itemst   sort(   R   R6   R1   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR5   Y   s    
c         C   s   t  |  j  S(   N(   t   lenR;   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR?   ^   s    c         C   s   d S(   Nt
   Dictionary(    (   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR<   a   s    (   R   R   R5   R?   R<   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR@   X   s   		t   ListNodec           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   | |  j  | f S(   N(   R;   (   R   R6   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR5   e   s    c         C   s   d S(   Nt   List(    (   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR<   h   s    c         C   s   t  |  j  S(   N(   RC   R;   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR?   k   s    (   R   R   R5   R<   R?   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyRE   d   s   		R$   c           B   s   e  Z d    Z d   Z RS(   c         C   s   t  t |  j   S(   N(   RC   t   dirR;   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR?   o   s    c         C   s7   t  |  j  } | j   | | t |  j | |  f S(   N(   RG   R;   RB   t   getattr(   R   R6   R1   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR5   r   s    
(   R   R   R?   R5   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR$   n   s   	R#   c           B   s   e  Z d    Z d   Z RS(   c         C   s   t  |  j j  d S(   Ni   (   RC   R;   R!   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR?   x   s    c         C   sx   | d k rF t  |  j d  r- |  j j } n t |  j  } d | f S| d 8} |  j j j   } | j   | | Sd  S(   Ni    t	   __class__i   (   R"   R;   RI   t   typeR!   RA   RB   (   R   R6   t   vR1   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR5   {   s    


(   R   R   R?   R5   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR#   w   s   	t   InspectorTreeModelc           B   s}   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z RS(   c         C   s?   t  j j |   t | d t |  _ |  j j d d  d  d  S(   NR4   i    t   root(   t   gtkt   GenericTreeModelt   __init__R    R   RM   R-   R.   (   R   RM   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyRP      s    c         C   s   d S(   Ni    (    (   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_get_flags   s    c         C   s   d S(   Ni   (    (   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_get_n_columns   s    c         C   s   t  j S(   N(   t   gobjectt   TYPE_STRING(   R   R6   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_get_column_type   s    c         C   s
   | j    S(   N(   R3   (   R   t   node(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_get_path   s    c         C   s(   |  j  } x | D] } | | } q W| S(   N(   RM   (   R   t   pathR2   t   elem(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_get_iter   s    	c         C   s   | j    | S(   N(   R=   (   R   RV   t   column(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_get_value   s    c         C   s/   y | j  | j d SWn t k
 r* d  SXd  S(   Ni   (   R+   R*   t
   IndexErrorR.   (   R   RV   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_iter_next   s    c         C   s   | d S(   Ni    (    (   R   RV   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_iter_children   s    c         C   s
   t  |  S(   N(   RC   (   R   RV   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_iter_has_child   s    c         C   s
   t  |  S(   N(   RC   (   R   RV   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_iter_n_children   s    c         C   s   | d  k r d  S| | S(   N(   R.   (   R   RV   R8   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_iter_nth_child   s    c         C   s   | j  S(   N(   R+   (   R   RV   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_iter_parent   s    (   R   R   RP   RQ   RR   RU   RW   RZ   R\   R^   R_   R`   Ra   Rb   Rc   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyRL      s   												t	   Inspectroc           B   sP   e  Z d Z d d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(   c         C   sW  t  j j t t d   |  _ } | j d  |  _ d d g } xF t t	 |   D]2 } |  j j
 t  j | | t  j   d |  qS Wi  } x* t j |  d  D] } | | | j j <q W|  j j |  | d  k	 r |  j |  n  i |  j d 6|  _ | j d  } t |  |  _ |  |  j _ | j d	 |  j j  t | j d
   |  _ d  S(   Ns   inspectro.gladet   treeviewt   Namet   ValueR   t   on_t   inspectt   inputt   key_press_eventt   output(   RN   t   gladet   XMLR    t   __file__t   xmlt
   get_widgett	   tree_viewt   rangeRC   t   append_columnt   TreeViewColumnt   CellRendererTextR   t   prefixedMethodst   im_funcR   t   signal_autoconnectR.   Ri   t   nsR   Rj   R   t   connectt   _on_key_press_eventR	   Rl   (   R   R7   R2   t   colnamest   it   dt   mt   iwidget(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyRP      s&    "	!c         C   sR   | |  _  | |  j d <|  j j d  j t |   |  j j d  j d  d  S(   Nt   itt   itnamet   itpaths   ???(   t   selectedRz   Rp   Rq   t   set_textt   repr(   R   R7   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   select   s    	c         C   s/   t  |  |  _ |  j j |  j  | |  _ d  S(   N(   RL   t   modelRr   t	   set_modelt	   inspected(   R   R7   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyRi      s    c         C   s   d } y t  |  GHy t | | d  } Wn t | | d  } n Xt | |  j |  j  } | d  k	 rx t  |  GHn  | |  j d <Wn t j   n Xd  S(   Ns   <inspector>t   evalt   singlet   _(   R   t   compileR   Rz   R.   R   t   err(   R   t   commandt   filenamet   codet   val(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR      s    c         G   s   |  j  |  j  d  S(   N(   Ri   R   (   R   t   a(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt
   on_inspect   s    c         G   s   t  |  j  d  S(   N(   Rd   R   (   R   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_inspect_new   s    c         C   s    |  j  |  j j |  j  d  S(   N(   R   R   RZ   R;   (   R   t   tvRX   R[   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_row_activated   s    N(   R   R   R.   R   RP   R   Ri   R   R   R   R   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyRd      s   					t   LoggingProtocolc           B   s>   e  Z d  Z e Z d Z d   Z d   Z d   Z	 d   Z
 RS(   s   Log network traffic.c         G   s)   t  j j |  |  g  |  _ g  |  _ d  S(   N(   R   t   ProtocolWrapperRP   t   inLogt   outLog(   R   t   args(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyRP     s    	c         C   sb   |  j  rK |  j j t j   | f  |  j rK |  j j |  j d  qK n  t j j |  |  d  S(   Ni(	   t   loggingR   R/   t   timet	   logViewert	   updateOutR   R   t   write(   R   t   data(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR     s
    		c         C   sb   |  j  rK |  j j t j   | f  |  j rK |  j j |  j d  qK n  t j j |  |  d  S(   Ni(	   R   R   R/   R   R   t   updateInR   R   t   dataReceived(   R   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR     s
    		c         C   s-   d t  |  j  } |  j r) | d 7} n  | S(   Ns   wrapped s
    (logging)(   R   t   wrappedProtocolR   (   R   t   r(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   __repr__  s    	N(   R   R   R(   t   TrueR   R.   R   RP   R   R   R   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR      s   			t   LoggingFactoryc           B   s,   e  Z d  Z e Z e Z d   Z d   Z RS(   s%   Wrap protocols with logging wrappers.c         C   s.   |  j  |  |  j j |   } |  j | _ | S(   N(   t   protocolt   wrappedFactoryt   buildProtocolR   (   R   t   addrt   p(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR   &  s    c         C   s-   d t  |  j  } |  j r) | d 7} n  | S(   Ns   wrapped s
    (logging)(   R   R   R   (   R   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR   +  s    	(	   R   R   R(   R   R   R   R   R   R   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR      s
   	t	   LogViewerc           B   s2   e  Z d  Z d   Z d   Z d   Z d   Z RS(   s   Display log of network traffic.c   	      C   sR  | |  _  t j   g } | j r< | j | j d d  n  | j r` | j | j d d  n  t |  |  _ |  | _ t j	 j
 t t d   |  _ } |  j j |   |  j j d  |  _ t j t t t  |  _ |  j j |  j  |  j j d  |  j j d  x| t j d t j   d d t j d t j   d d t j d t j   d d	 g D]# } |  j j |  | j d  qbWg  } xG | j D]< \ } } | j t | |  j  d
 t |  d d !f  qWxG | j D]< \ } } | j t | |  j  d t |  d d !f  qW| j   x | D] } |  j j |  q4Wd  S(   Ni    s   logview.gladet   loglisti   t   TimeR   t   Dt   Datai   t   Rit   S(   R   R   R   R/   R   t   mint	   startTimeR   RN   Rm   Rn   R    Ro   Rp   Ry   Rq   R   t	   ListStoreR:   R   R   t   set_reorderablet   set_headers_clickableRu   Rv   Rt   t   set_resizableR   RB   (	   R   R   t   valsR2   t   colR   t   tR   R~   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyRP   5  sF    				"			44
c         C   sC   | \ } } |  j  j t | |  j  d t |  d d !f  d  S(   NR   i   i(   R   R/   R:   R   R   (   R   t   .1R   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR   ]  s    	c         C   sC   | \ } } |  j  j t | |  j  d t |  d d !f  d  S(   NR   i   i(   R   R/   R:   R   R   (   R   R   R   R   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR   `  s    	c         C   s   d  |  j _ |  ` d  S(   N(   R.   R   R   (   R   t   w(    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   on_logview_destroyc  s    (   R   R   R(   RP   R   R   R   (    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR   2  s
   	(		c          C   s$   t    }  |  j |   t j   d  S(   N(   Rd   Ri   RN   t   main(   R2   (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyR   h  s    	t   __main__(    (    (5   R(   R   RN   RS   t	   gtk.gladet   twisted.python.utilR    t   twisted.pythonR   t   twisted.manhole.uiR   t   twisted.python.componentsR   R   R   t   twisted.protocolsR   t   zope.interfaceR   R   t   gnomet   versiont   initR	   R   R    R)   R>   R@   RE   R$   R#   t   typest   dictt   DictProxyTypeR2   t   listt   tuplet   intR:   RO   RL   Rd   R   R   t   WrappingFactoryR   R   R   R   t   syst   startLoggingt   stdout(    (    (    s>   /usr/lib/python2.7/dist-packages/twisted/manhole/_inspectro.pyt   <module>   sP   	
	
	3; 6	