Ñò
A¡KKc           @   sÞ  d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k Z d  d k	 Z	 d  d k
 Z
 d  d k l Z l Z l Z l Z d  d k l Z d  d k l Z d  d k Z d  d k l Z d d d d	 d
 d d g Z d „  Z d „  Z d „  Z d „  Z 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 „  Z" d „  Z# d „  Z$ d  e	 i% d! Z& d" „  Z' d S(#   iÿÿÿÿN(   t	   find_uidst   TaskStatsNetlinkt   ProcessListt   Stats(   t
   ThreadInfo(   t   VERSION(   t   IoprioSetErrort   Bt   Kt   Mt   Gt   Tt   Pt   Ec         C   s€   |  d j o
 d } n# |  d j  o d } |  }  n d St  t i |  d d ƒ d ƒ } d | t |  ƒ d d | >t | f S(	   Ni    t    t   -s   0.00 Bi   i
   s	   %s%.2f %si   (   t   intt   matht   logt   floatt   UNITS(   t   sizet   signt   expo(    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt
   human_size   s    
 c         C   s!   |  i  o d | d St | ƒ S(   Ns   %.2f Kg      @(   t	   kilobytesR   (   t   optionst   bytes(    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   format_size%   s    
c         C   s"   t  |  | o t | ƒ | ƒ d S(   Ns   /s(   R   R   (   R   R   t   duration(    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   format_bandwidth*   s    c            sÎ   ‡  f d †  } ˆ i  o/ | i } ‡ f d †  } t i ƒ  | i ‰  n | i } ‡ f d †  } | | i ƒ } | | i ƒ } | | i ˆ  ƒ } | i | i	 }	 t
 d |	 ƒ }	 | |	 ˆ  ƒ }
 | | | |
 f S(   Nc            s   d t  d |  ˆ  d ƒ S(   Ns   %.2f %%gÂõ(\ÿX@g    ÐcA(   t   min(   t   delay(   R   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   delay2percent0   s    c            s   t  ˆ  |  ƒ S(    (   R   (   R   R   (   R   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   <lambda>4   s    c            s   t  ˆ  |  | ƒ S(    (   R   (   R   R   (   R   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   8   s   i    (   t   accumulatedt   stats_accumt   timet   stats_accum_timestampt   stats_deltat   blkio_delay_totalt   swapin_delay_totalt
   read_bytest   write_bytest   cancelled_write_bytest   max(   R   t   processR   R!   t   statst   display_formatt   io_delayt   swapin_delayR*   t   written_bytesR+   (    (   R   R   s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   format_stats-   s    
		t   CancelInputc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR5   F   s    t
   InvalidIntc           B   s   e  Z RS(    (   R6   R7   (    (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR8   G   s    t
   InvalidPidc           B   s   e  Z RS(    (   R6   R7   (    (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR9   H   s    t
   InvalidTidc           B   s   e  Z RS(    (   R6   R7   (    (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR:   I   s    t   InvalidIoprioDatac           B   s   e  Z RS(    (   R6   R7   (    (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR;   J   s    t   IOTopUIc        	   B   s  e  Z d  „  e f d „  e f d „  e f d „  e f d „  e f d „  e f d „  e f d „  e f g Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z	 d e d „ Z d e d „ Z d „  Z d „  Z d „  Z d „  Z d d „ Z d d „ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   |  i  S(    (   t   pid(   t   pt   s(    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   S   s    c         C   s
   |  i  ƒ  S(    (   t   ioprio_sort_key(   R>   R?   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   T   s    c         C   s
   |  i  ƒ  S(    (   t   get_user(   R>   R?   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   U   s    c         C   s   | i  S(    (   R*   (   R>   R?   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   V   s    c         C   s   | i  | i S(    (   R+   R,   (   R>   R?   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   W   s    c         C   s   | i  S(    (   R)   (   R>   R?   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   X   s    c         C   s#   | i  p t | i p | i ƒ S(    (   R(   R   R*   R+   (   R>   R?   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   [   s   
c         C   s
   |  i  ƒ  S(    (   t   get_cmdline(   R>   R?   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   ]   s    c         C   s˜   | |  _  | |  _ d |  _ t i |  i d |  _ |  i i pU | |  _ |  i ƒ  y% t	 i
 ƒ  t	 i ƒ  t	 i d ƒ Wq” t	 i j
 o q” Xn d  S(   Ni   i   i    (   t   process_listR   t   sorting_keyR<   t   sorting_keyst   sorting_reverset   batcht   wint   resizet   cursest   use_default_colorst   start_colort   curs_sett   error(   t   selfRH   RC   R   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   __init__`   s    				


c         C   s   |  i  i ƒ  \ |  _ |  _ d  S(   N(   RH   t   getmaxyxt   heightt   width(   RO   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyRI   q   s    c   	      C   s­  d } t  i ƒ  } |  i i p' | i t i i ƒ  t  i t  i	 Bƒ n x`|  i i
 d  j p | |  i i
 j  o9|  i i ƒ  } | \ } } |  i | d j | | |  i i ƒ |  i i
 d  j	 o& | d 7} | |  i i
 j o Pqü n | d j o
 d } n y | i |  i i d ƒ } WnF t  i j
 o7 } | i o! | i d t i j o
 d } qb‚  n X|  i i p |  i ƒ  n | o  |  i i ƒ  } |  i | ƒ qI qI Wd  S(   Ni    i   g     @@(   t   selectt   pollR   RG   t   registert   syst   stdint   filenot   POLLINt   POLLPRIt
   iterationst   NoneRC   t   refresh_processest   refresh_displayR   t   delay_secondsRN   t   argst   errnot   EINTRRI   RH   t   getcht
   handle_key(	   RO   R\   RU   t   totalt
   total_readt   total_writet   eventst   et   key(    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   runt   s8    ' 
	
!
c         C   s   |  i  |  _  d  S(   N(   RF   (   RO   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   reverse_sorting“   s    c         C   s~   |  i  } |  i  | 7_  t d |  i  ƒ |  _  t t t i ƒ d |  i  ƒ |  _  | |  i  j o t i |  i  d |  _ n d  S(   Ni    i   (   RD   R-   R   t   lenR<   RE   RF   (   RO   t   deltat   orig_sorting_key(    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   adjust_sorting_key–   s    	"c         C   sÅ   |  i  i d d t d ƒ t i B|  i ƒ |  i  i d d | t i ƒ |  i  i ƒ  t i	 ƒ  t i
 d ƒ |  i  i d t | ƒ ƒ } t i
 d ƒ t i ƒ  | d j o | S| o t ƒ  ‚ n | S(   Ni   i    t    R   (   NR   (   RH   t   hlinet   ordRJ   t   A_NORMALRS   t   addstrt   A_BOLDt   refresht   echoRM   t   getstrRn   t   noechoR]   R5   (   RO   t   promptt   defaultt   empty_is_cancelt   inp(    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt
   prompt_str    s    )

c         C   sF   |  i  | | | ƒ } y t | ƒ SWn t j
 o t ƒ  ‚ n Xd  S(   N(   R€   R   t
   ValueErrorR8   (   RO   R|   R}   R~   R   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt
   prompt_int¯   s
    c         C   sI   y |  i  d ƒ SWn1 t j
 o t ƒ  ‚ n t j
 o
 ‚  n Xd  S(   Ns   PID to ionice: (   R‚   R8   R9   R5   (   RO   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt
   prompt_pid¶   s    c         C   sI   y |  i  d ƒ SWn1 t j
 o t ƒ  ‚ n t j
 o
 ‚  n Xd  S(   Ns   TID to ionice: (   R‚   R8   R:   R5   (   RO   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt
   prompt_tid¾   s    c         C   s   yC | d  j	 o |  i d | | t ƒ } n |  i d d  t ƒ } Wn t j
 o t ƒ  ‚ n X| d j  p | d j o t ƒ  ‚ n | S(   Ns'   I/O priority data (0-7, currently %s): s   I/O priority data (0-7): i    i   (   R]   R‚   t   FalseR8   R;   (   RO   t   ioprio_dataR   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   prompt_dataÆ   s    	c         C   s  y | i  | ƒ } Wn t j
 o d } n Xt | ƒ d } xÍt oÅ|  i i d d t d ƒ t i B|  i	 ƒ |  i i
 d d | t i ƒ t | ƒ } xp t | ƒ D]b \ } } d | }	 | | j o t i }
 n
 t i }
 |  i i
 d | |	 |
 ƒ | t |	 ƒ 7} q§ Wxú t oò |  i i ƒ  } | t i t d ƒ f j o | d j o | d 8} Pq| t i t d ƒ f j o | | j  o | d 7} Pq| t i t d ƒ t d	 ƒ f j o	 | | S| d
 t i t i t i t d ƒ t d ƒ f j o t ƒ  ‚ qqWqB Wd  S(   Niÿÿÿÿi   i    Rr   s    %s t   lt   rs   
s   i   t   qt   Q(   t   indexR   Rn   t   TrueRH   Rs   Rt   RJ   Ru   RS   t   insstrRw   t	   enumeratet	   A_REVERSERd   t   KEY_LEFTt	   KEY_RIGHTt	   KEY_ENTERt
   KEY_CANCELt	   KEY_CLOSEt   KEY_EXITR5   (   RO   R|   t   display_listt   ret_listt   selectedt   set_lent   offsett   it   itemt   displayt   attrRk   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt
   prompt_setÓ   s@     ) 
	 )
)
%	"c         C   sW   d } d d d g } d d d g } | d  j o
 d } n |  i | | | | ƒ } | S(	   Ns   I/O priority class: s	   Real-times   Best-effortt   Idlet   rtt   bet   idlei   (   R]   R    (   RO   t   ioprio_classR|   t   classes_promptt   classes_retR   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   prompt_classó   s    
s   Error!c         C   sg   |  i  i d d t d ƒ t i B|  i ƒ |  i  i d d d | t i ƒ |  i  i ƒ  t	 i
 d ƒ d  S(   Ni   i    Rr   s     %s  (   RH   Rs   Rt   RJ   Ru   RS   RŽ   R   Rx   R%   t   sleep(   RO   RN   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   prompt_errorü   s    ) c         C   s:   |  i  i d d t d ƒ t i B|  i ƒ |  i  i ƒ  d  S(   Ni   i    Rr   (   RH   Rs   Rt   RJ   Ru   RS   Rx   (   RO   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   prompt_clear  s    )c            sb  ‡  f d †  } ‡  f d †  } ‡  f d †  } ‡  f d †  } h d „  t  d ƒ 6d „  t  d ƒ 6‡  f d	 †  t  d
 ƒ 6‡  f d †  t  d ƒ 6| t  d ƒ 6| t  d ƒ 6| t  d ƒ 6| t  d ƒ 6| t  d ƒ 6| t  d ƒ 6| t  d ƒ 6| t  d ƒ 6‡  f d †  t i 6‡  f d †  t i 6‡  f d †  t i 6‡  f d †  t i 6} | i | d „  ƒ } | ƒ  d  S(   Nc              s#   ˆ  i  i t N_ ˆ  i i ƒ  d  S(   N(   R   R#   R   RC   t   clear(    (   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   toggle_accumulated  s    c              s   ˆ  i  i t N_ d  S(   N(   R   t   onlyR   (    (   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   toggle_only_io
  s    c              s0   ˆ  i  i t N_ ˆ  i i ƒ  ˆ  i i ƒ  d  S(   N(   R   t	   processesR   RC   R¬   R^   (    (   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   toggle_processes  s    c             s¦  yÔ ˆ  i  i o" ˆ  i ƒ  }  ˆ  i i |  ƒ } n" ˆ  i ƒ  } t | ˆ  i i ƒ } | i ƒ  } t	 i
 | ƒ \ } } ˆ  i | ƒ } | d j o
 d } n ˆ  i | ƒ } | i | | ƒ ˆ  i i ƒ  ˆ  i i ƒ  WnÁ t j
 o } ˆ  i d | i ƒ n¤ t j
 o ˆ  i d ƒ n… t j
 o ˆ  i d ƒ nf t j
 o ˆ  i d ƒ nG t j
 o ˆ  i d ƒ n( t j
 o ˆ  i ƒ  n Xˆ  i ƒ  d  S(   NR¤   i    s   Error setting I/O priority: %ss   Invalid process id!s   Invalid thread id!s   Invalid I/O priority data!s   Invalid integer!(   R   R°   Rƒ   RC   t   get_processR„   R   t   taskstats_connectiont
   get_iopriot   iopriot   to_class_and_dataR¨   R‡   t
   set_ioprioR¬   R^   R   Rª   t   errR9   R:   R;   R8   R5   R«   (   R=   t	   exec_unitt   tidt   ioprio_valueR¥   R†   Rj   (   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   ionice  s:    
c           S   s   t  i d  ƒ S(   i    (   RW   t   exit(    (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   5  s    RŠ   c           S   s   t  i d  ƒ S(   i    (   RW   R½   (    (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   7  s    R‹   c              s
   ˆ  i  ƒ  S(    (   Rm   (    (   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   9  s    R‰   c              s
   ˆ  i  ƒ  S(    (   Rm   (    (   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   ;  s    t   Rt   at   At   ot   OR>   R   Rœ   t   Ic              s   ˆ  i  d  ƒ S(   iÿÿÿÿ(   Rq   (    (   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   M  s    c              s   ˆ  i  d  ƒ S(   i   (   Rq   (    (   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   O  s    c              s   ˆ  i  t t i ƒ ƒ S(    (   Rq   Rn   R<   RE   (    (   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   Q  s    c              s   ˆ  i  t t i ƒ ƒ S(    (   Rq   Rn   R<   RE   (    (   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   S  s    c           S   s   d  S(   N(   R]   (    (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   V  s    (   Rt   RJ   R‘   R’   t   KEY_HOMEt   KEY_ENDt   get(   RO   Rk   R­   R¯   R±   R¼   t   key_bindingst   action(    (   RO   s(   /usr/lib/pymodules/python2.6/iotop/ui.pyRe     s.    #c            sÁ   ‡  f d †  } ‡  f d †  } t  | ˆ  i i i ƒ  ƒ } t i ˆ  i d ‰ ˆ  i i o d „  ‰ n
 d „  ‰ | i	 d ‡ ‡ f d †  d ˆ  i
 ƒ ˆ  i i p | ˆ  i d	 3n t | | ƒ S(
   Nc            s7  t  ˆ  i |  ˆ  i i ƒ } | \ } } } } t i o d | | f } n d } d |  i |  i ƒ  |  i ƒ  d  | | | f } |  i	 ƒ  } ˆ  i i
 pr ˆ  i t | ƒ }	 d |	 j  o t | ƒ j  n o7 |	 d d }
 |	 |
 d } | |
  d | | } qn | | 7} ˆ  i i
 p | ˆ  i  } n | S(   Ns   %7s %7s s    ?unavailable?  s   %5d %4s %-8s %11s %11s %si   i   i   t   ~(   R4   R   RC   R   R   t   has_blkio_delay_totalR=   R´   RA   RB   RG   RS   Rn   (   R>   R/   R1   R2   R*   R+   t   delay_statst   linet   cmdlinet   remaining_lengtht   len1t   offset2(   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   formatZ  s&    
$
c            s!   ˆ  i  i p |  i ˆ  i  i ƒ S(   N(   R   R®   t   did_some_ioR#   (   R>   (   RO   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   should_formatp  s    i    c         S   s   |  i  S(    (   R$   (   R>   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   w  s    c         S   s   |  i  S(    (   R'   (   R>   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   y  s    Rk   c            s   ˆ  |  ˆ |  ƒ ƒ S(    (    (   R>   (   Rk   t   stats_lambda(    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"   z  s    t   reversei   (   t   filterRC   R°   t   valuesR<   RE   RD   R   R#   t   sortRF   RG   RR   t   map(   RO   RÑ   RÓ   R°   (    (   RO   Rk   RÔ   s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   get_dataY  s    	
c         C   sˆ  d t  |  i | | ƒ t  |  i | | ƒ f } |  i i o
 d } n d } | d d d d d d	 d
 g } |  i ƒ  } |  i i oE d g | } t i d ƒ }	 g  }
 | D] } |
 |	 | q© ~
 } n |  i i on |  i i d j o4 | GH|  i i t | ƒ j o d i	 | ƒ GHqn x | D] } | GHq"Wt
 i i ƒ  nC|  i i ƒ  |  i i | |  i  ƒ |  i i d d t d ƒ t i B|  i ƒ |  i } x´ t t | ƒ ƒ D]  } t i } | | } | |  i j o | d } n | |  i j o, | t i O} | |  i o d p d 7} n | |  } | t | ƒ 8} |  i i | | ƒ q«Wt i o
 d  } n d } t t | ƒ |  i d t t | ƒ ƒ ƒ } x± t | ƒ D]£ } y+ |  i i  | d d | | i! d ƒ ƒ Wq¢t i" j
 o` t
 i# ƒ  \ } } } d | |  i i$ ƒ  | | | f } t% | ƒ i! d ƒ } | | | ‚ q¢Xq¢W| o' |  i i  |  i d d | t i ƒ n |  i i& ƒ  d  S(   Ns*   Total DISK READ: %s | Total DISK WRITE: %ss     PIDs     TIDs     PRIOs     USERs        DISK READs     DISK WRITEs     SWAPINs         IOs       COMMANDs       TIMEs	   %H:%M:%S i   R   i   i    Rr   t   >t   <sN   CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO %s   utf-8s   %s win:%s i:%d line:%st   string_escape('   R   R   R°   RÚ   R%   t   strftimeRG   t   quietR   t   joinRW   t   stdoutt   flushRH   t   eraseRv   RS   Rs   Rt   RJ   R   t   xrangeRn   RD   Rw   RF   R   RÊ   R]   R   RR   t   boolRŽ   t   encodeRN   t   exc_infoRQ   t   strRx   (   RO   t
   first_timeRg   Rh   R   t   summaryR=   t   titlest   linest   current_timet   _[1]Rˆ   t   remaining_colsRœ   RŸ   t   titlet
   status_msgt	   num_linest   exc_typet   valuet	   traceback(    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR_   €  sn    
) 	)	 	



, + 'N(   R6   R7   R…   R   RE   RP   RI   Rl   Rm   Rq   R]   R€   R‚   Rƒ   R„   R‡   R    R¨   Rª   R«   Re   RÚ   R_   (    (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR<   P   s4   					
				 			S	'c         C   s;   t  | ƒ } t | | ƒ } t |  | | ƒ } | i ƒ  d  S(   N(   R   R   R<   Rl   (   RH   R   R³   RC   t   ui(    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   run_iotop_windowº  s    c         C   s,   |  i  o t d  |  ƒ St i t |  ƒ Sd  S(   N(   RG   R÷   R]   RJ   t   wrapper(   R   (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt	   run_iotopÀ  s    
c      
   C   s  d } yL d d  k  } d d  k } d GH| i d t ƒ  t ƒ  | ƒ | i | ƒ } Wnn t j
 ob d d  k } d d  k } | i	 | d d ƒ} d GH| i
 |  ƒ | i ƒ  | i i | ƒ } n X| i ƒ  | i d d	 ƒ | i d
 ƒ | i d
 ƒ t i | ƒ d  S(   Ns
   iotop.profiÿÿÿÿs   Profiling using cProfiles   continuation()t
   lineeventsi   s   Profiling using hotshotR%   t   callsi2   (   t   cProfilet   pstatst   runctxt   globalst   localsR   t   ImportErrort   hotshott   hotshot.statst   Profilet   runcallt   closeR/   t   loadt
   strip_dirst
   sort_statst   print_statst   print_calleest   ost   remove(   t   continuationt	   prof_fileRü   Rý   R/   R  t   prof(    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   _profileÊ  s(    

s,  %s [OPTIONS]

DISK READ and DISK WRITE are the block I/O bandwidth used during the sampling
period. SWAPIN and IO are the percentages of time the thread spent respectively
while swapping in and waiting on I/O more generally. PRIO is the I/O priority at
which the thread is running (set using the ionice command).

Controls: left and right arrows to change the sorting column, r to invert the
sorting order, o to toggle the --only option, p to toggle the --processes
option, a to toggle the --accumulated option, q to quit, any other key to force
a refresh.i    c             sÊ  t  i t  i d ƒ t i d t d d t ƒ }  |  i d d d d d	 d
 d t d d ƒ|  i d d d d d	 d d d ƒ|  i d d d d d	 d d d d d ƒ|  i d d d d d	 d d d d d d d  ƒ|  i d! d" d d d	 d# d d$ d d% d d& ƒ|  i d' d( d d) d	 d* d d$ d d+ d d, ƒ|  i d- d. d d d	 d/ d t d d0 ƒ|  i d1 d2 d d d	 d3 d t d d4 ƒ|  i d5 d6 d d d	 d7 d t d d8 ƒ|  i d9 d: d d d	 d; d d< ƒ|  i d= d> d d? d	 d@ d dA d dB ƒ|  i dC d d d	 dD d t d t i	 ƒ|  i
 ƒ  \ ‰ } | o |  i dE dF i | ƒ ƒ n t ˆ ƒ ˆ i p g  ˆ _ ˆ i p ˆ i p ˆ i ˆ _ ‡ f dG †  ‰  ˆ i o ‡  f dH †  } t | ƒ n ˆ  ƒ  d  S(I   NR   t   usaget   versions   iotop s   -os   --onlyRÈ   t
   store_truet   destR®   R}   t   helps1   only show processes or threads actually doing I/Os   -bs   --batchRG   s   non-interactive modes   -ns   --itert   typeR   R\   t   metavart   NUMs-   number of iterations before ending [infinite]s   -ds   --delayR   R`   s#   delay between iterations [1 second]t   SECi   s   -ps   --pidt   pidst   appends"   processes/threads to monitor [all]t   PIDs   -us   --userRè   t   userss   users to monitor [all]t   USERs   -Ps   --processesR°   s$   only show processes, not all threadss   -as   --accumulatedR#   s)   show accumulated I/O instead of bandwidths   -ks   --kilobytesR   s.   use kilobytes instead of a human friendly units   -ts   --timeR%   s.   add a timestamp on each line (implies --batch)s   -qs   --quiett   countRß   i    s/   suppress some lines of header (implies --batch)s	   --profilet   profiles   Unexpected arguments: Rr   c              s
   t  ˆ  ƒ S(    (   Rù   (    (   R   (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyR"     s    c              s   y ˆ  ƒ  Wn n Xd  S(   N(    (    (   t	   main_loop(    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   safe_main_loop  s    (   t   localet	   setlocalet   LC_ALLt   optparset   OptionParsert   USAGER   t
   add_optionR…   t   SUPPRESS_HELPt
   parse_argsRN   Rà   R    R  RG   R%   Rß   R!  R  (   t   parserRa   R#  (    (   R"  R   s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   mainð  sV    !!!
 
((   RJ   Rb   R$  R   R'  R  t   pwdRT   t   structRW   R%   t
   iotop.dataR    R   R   R   R   t   iotop.versionR   Rµ   R   R   R   R   R   R4   t	   ExceptionR5   R8   R9   R:   R;   t   objectR<   R÷   Rù   R  t   argvR)  R.  (    (    (    s(   /usr/lib/pymodules/python2.6/iotop/ui.pyt   <module>   s@   "				ÿ k		
	$