HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/iotop/__pycache__/ui.cpython-311.pyc
�

w�&b�q��<�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZ	eed��s
ddl
m
Z
e
e_
n#eef$reje_
YnwxYwddlmZddlmZmZmZmZmZddlmZddlmZdd	lmZdd
lmZgd�Zd�Z d
�Z!d�Z"d�Z#d�Z$e$��Z%Gd�de&��Z'Gd�de&��Z(Gd�de&��Z)Gd�de&��Z*Gd�de&��Z+Gd�de,��Z-d�Z.d�Z/d�Z0d e
j1dzZ2d!�Z3dS)"�)�print_functionN�	monotonic)r)�OrderedDict)�	find_uids�TaskStatsNetlink�ProcessList�Stats�sysctl_task_delayacct)�
ThreadInfo)�VERSION)�ioprio)�IoprioSetError)�B�K�M�G�T�P�Ec���|dkrd}n|dkrd}|}ndSttj|dzd��dz��}d|t|��dd|zzzt|fzS)	Nr��-z0.00 B��
z	%s%.2f %s�)�int�math�log�float�UNITS)�size�sign�expos   �*/usr/lib/python3/dist-packages/iotop/ui.py�
human_sizer%;s����a�x�x����	
�������u����x��t�x��q��!�$�$�r�)�*�*�D���u�T�{�{�a�B��I�.�/�%��+�?�?�?�c�>�|jrd|dzzSt|��S)Nz%.2f Kg�@)�	kilobytesr%)�options�bytess  r$�format_sizer+Is*����+��5�6�>�*�*��e���r&c�L�t||ot|��|z��dzS)Nz/s)r+r)r)r!�durations   r$�format_bandwidthr.Os'���w�� ?��t���x�)?�@�@�4�G�Gr&c�J����fd�}�jr(|j}�fd�}tj��|jz
�n|j}�fd�}||j��}||j��}||j���}|j	|j
z
}	td|	��}	||	���}
||||
fS)Nc�6��dtd|�dzz��zS)Nz%.2f %%g��(\�X@g�cA)�min)�delayr-s �r$�
delay2percentz#format_stats.<locals>.delay2percentVs"����3�u�e�x�*�/D�&E�F�F�F�Fr&c�$��t�|��S�N)r+�r!r-r)s  �r$�<lambda>zformat_stats.<locals>.<lambda>Zs����G�T�0J�0J�r&c�&��t�||��Sr5)r.r6s  �r$r7zformat_stats.<locals>.<lambda>^s���0@�7>��h�1P�1P�r&r)�accumulated�stats_accum�timer�stats_accum_timestamp�stats_delta�blkio_delay_total�swapin_delay_total�
read_bytes�write_bytes�cancelled_write_bytes�max)r)�processr-r3�stats�display_format�io_delay�swapin_delayr@�
written_bytesrAs` `        r$�format_statsrJSs�����G�G�G�G�G���P��#��J�J�J�J���>�#�#�g�&C�C����#��P�P�P�P���}�U�4�5�5�H� �=��!9�:�:�L���� 0�(�;�;�J��%��(C�C�M���=�)�)�M� �.���9�9�K��\�:�{�:�:r&c���	ttd����������S#t$r}t|��Yd}~dSd}~wwxYw)Nz/proc/sys/kernel/pid_max�)�len�open�read�strip�	Exception�print)�es r$�get_max_pid_widthrTism����4�2�3�3�8�8�:�:�@�@�B�B�C�C�C������
�a�����q�q�q�q�q��������s�?A�
A&�A!�!A&c��eZdZdS)�CancelInputN��__name__�
__module__�__qualname__�r&r$rVrVx��������Dr&rVc��eZdZdS)�
InvalidIntNrWr[r&r$r^r^|r\r&r^c��eZdZdS)�
InvalidPidNrWr[r&r$r`r`�r\r&r`c��eZdZdS)�
InvalidTidNrWr[r&r$rbrb�r\r&rbc��eZdZdS)�InvalidIoprioDataNrWr[r&r$rdrd�r\r&rdc	���eZdZd�dfd�dfd�dfd�dfd�dfd�dfd	�dfd
�dfgZd�Zd�Zd
�Zd�Zd�Zd�Z	dd�Z
dd�Zd�Zd�Z
d�Zd�Zd d�Zd!d�Zd�Zd�Zd�Zd�ZdS)"�IOTopUIc��|jSr5)�pid��p�ss  r$r7zIOTopUI.<lambda>�s��a�e�r&Fc�*�|���Sr5)�ioprio_sort_keyris  r$r7zIOTopUI.<lambda>�s��a�'�'�)�)�r&c�*�|���Sr5)�get_userris  r$r7zIOTopUI.<lambda>�s��a�j�j�l�l�r&c��|jSr5)r@ris  r$r7zIOTopUI.<lambda>�s��a�l�r&Tc� �|j|jz
Sr5)rArBris  r$r7zIOTopUI.<lambda>�s��a�m�a�&=�=�r&c��|jSr5)r?ris  r$r7zIOTopUI.<lambda>�s	��a�*�r&c�J�|jpt|jp|j��Sr5)r>rr@rAris  r$r7zIOTopUI.<lambda>�s,��a�)�C��!�,�"?�!�-�@�A�B�B�r&c�*�|���Sr5)�get_cmdlineris  r$r7zIOTopUI.<lambda>�s��a�m�m�o�o�r&c�h�||_||_d|_tj|jd|_|jjsn||_|���	tj
��tj��tjd��dS#tj
$rYdSwxYwdS)N�rr)�process_listr)�sorting_keyrf�sorting_keys�sorting_reverse�batch�win�resize�curses�use_default_colors�start_color�curs_set�error)�selfr}rxr)s    r$�__init__zIOTopUI.__init__�s���(���������&�3�D�4D�E�a�H����|�!�
	��D�H��K�K�M�M�M�
��)�+�+�+��"�$�$�$����"�"�"�"�"���<�
�
�
����
����
	�
	s� :B�B/�.B/c�R�|j���\|_|_dSr5)r}�getmaxyx�height�width�r�s r$r~zIOTopUI.resize�s"��"&�(�"3�"3�"5�"5����T�Z�Z�Zr&c��d}tj��}|jjsI|�t
j���tjtj	z��|jj
�||jj
k�r||j���\}}|�
|dk|||jj��|jj
�|dz
}||jj
krdSn|dkrd}	|�|jjdz��}nB#tj$r0}|jr|jdt$jkrg}n�Yd}~nd}~wwxYw|D]5\}}|tjtjzzrtjd���6|jjs|���|r.|j���}	|�|	��|jj
��i||jj
k��zdSdS)Nrrg@�@)�select�pollr)r|�register�sys�stdin�fileno�POLLIN�POLLPRI�
iterationsrx�refresh_processes�refresh_displayr-�
delay_secondsr��args�errno�EINTR�POLLERR�POLLHUP�exitr~r}�getch�
handle_key)
r�r�r��total�current�eventsrS�fd�event�keys
          r$�runzIOTopUI.run�s���
��{�}�}���|�!�	N��M�M�#�)�*�*�,�,�f�m�f�n�.L�M�M�M��l�%�-��4�<�2�2�2�!�.�@�@�B�B�N�E�7�� � ��q��%��!%�!2�!;�
=�
=�
=��|�&�2��a��
����!8�8�8��E�9��q����
�
����4�<�#=��#F�G�G�����<�
�
�
��6��a�f�Q�i�5�;�6�6��F�F���F�F�F�F�����
����
 &�
 �
 ���U��F�N�V�^�;�<� ��H�Q�K�K�K���<�%�
����
�
�
��
%��h�n�n�&�&������$�$�$�5�l�%�-��4�<�2�2�2�2�2�2�2s�7"D�E�)&E�Ec� �|j|_dSr5)r{r�s r$�reverse_sortingzIOTopUI.reverse_sorting�s��#'�#7�7����r&c��|j}|�|��|_||jkr$tj|jd|_dSdS�Nr)ry�get_sorting_keyrfrzr{)r��delta�orig_sorting_keys   r$�adjust_sorting_keyzIOTopUI.adjust_sorting_key�sU���+���/�/��6�6����t�/�/�/�#*�#7��8H�#I�!�#L�D� � � �0�/r&c���|j}||z
}td|��}tttj��dz
|��}|js|dvr|dkrd}n|dkrd}|S)Nrr�rLrw��)ryrCr1rMrfrz�
has_swapin_io)r�r��new_sorting_keys   r$r�zIOTopUI.get_sorting_key�s|���*���5� ���a��1�1���c�'�"6�7�7�!�;�_�M�M���!�	(��&�(�(��A�:�:�&'�O�O��Q�Y�Y�&'�O��r&Nc��|j�ddtd��tjz|j��|j�dd|tj��|j���tj	��tj
d��|j�dt|����}tj
d��tj
��|dvr|S|rt���|S)Nrr� )Nr)r}�hline�ordr�A_NORMALr��addstr�A_BOLD�refresh�echor��getstrrM�noechorV�r��prompt�default�empty_is_cancel�inps     r$�
prompt_strzIOTopUI.prompt_str�s�������q�!�S��X�X���7���D�D�D������1�f�f�m�4�4�4����������
�
�
��������h�o�o�a��V���-�-���������
�����j� � ��J��	 ��-�-���r&c��|�|||��}	t|��S#t$rt���wxYwr5)r�r�
ValueErrorr^r�s     r$�
prompt_intzIOTopUI.prompt_int�sL���o�o�f�g��?�?��	��s�8�8�O���	�	�	��,�,��	���s	�(�Ac�z�	|�d��S#t$rt���t$r�wxYw)NzPID to ionice: )r�r^r`rVr�s r$�
prompt_pidzIOTopUI.prompt_pid�T��	��?�?�#4�5�5�5���	�	�	��,�,���	�	�	��	������#:c�z�	|�d��S#t$rt���t$r�wxYw)NzTID to ionice: )r�r^rbrVr�s r$�
prompt_tidzIOTopUI.prompt_tidr�r�c���	|�|�d|z|d��}n|�ddd��}n#t$rt���wxYw|dks|dkrt���|S)Nz'I/O priority data (0-7, currently %s): FzI/O priority data (0-7): rr�)r�r^rd)r��ioprio_datar�s   r$�prompt_datazIOTopUI.prompt_datas���	&��&��o�o�&O�(3�'4�5@�%�I�I����o�o�&A�4��O�O�����	&�	&�	&�#�%�%�%�	&������7�7�c�A�g�g�#�%�%�%��
s	�47�Ac	��	|�|��}n#t$rd}YnwxYwt|��dz
}	|j�ddtd��tjz|j��|j�	dd|tj
��t|��}t|��D]V\}}d|z}	||ur
tj}
ntj}
|j�	d||	|
��|t|	��z
}�W	|j�
��}|tjtd��fvr|dkr|dz}n�|tjtd��fvr||kr|dz
}n�|tjtd	��td
��fvr||S|dtjtjtjtd��td
��fvrt)�������)N���rTrr�� %s �l�r�
�
��q�Q)�indexr�rMr}r�r�rr�r��insstrr��	enumerate�	A_REVERSEr��KEY_LEFT�	KEY_RIGHT�	KEY_ENTER�
KEY_CANCEL�	KEY_CLOSE�KEY_EXITrV)r�r��display_list�ret_list�selected�set_len�offset�i�item�display�attrr�s            r$�
prompt_setzIOTopUI.prompt_set s���	��~�~�h�/�/�H�H���	�	�	��H�H�H�	�����l�#�#�a�'��	(��H�N�N�1�a��S���F�O�!;�T�Z�H�H�H��H�O�O�A�q�&�&�-�8�8�8���[�[�F�$�\�2�2�
'�
'���4� �4�-����=�=�!�+�D�D�!�?�D������6�7�D�9�9�9��#�g�,�,�&���

(��h�n�n�&�&���6�?�C��H�H�5�5�5�(�Q�,�,���M�H���f�.��C���9�9�9���(�(���M�H���V�-�s�4�y�y�#�d�)�)�D�D�D�#�H�-�-��R��!2�F�4D�#�_�c�#�h�h��C���B�B�B�%�-�-�'�

(�	(s��'�'c�R�d}gd�}gd�}|�d}|�||||��}|S)NzI/O priority class: )z	Real-timezBest-effort�Idle)�rt�be�idler)r�)r��ioprio_classr��classes_prompt�classes_retr�s      r$�prompt_classzIOTopUI.prompt_classAsI��'��=�=�=��*�*�*�����L��o�o�f�n�)�<�9�9���
r&�Error!c�,�|j�ddtd��tjz|j��|j�ddd|ztj��|j���tj
d��dS)Nrrr�z  %s  )r}r�r�rr�r�r�r�r�r;�sleep)r�r�s  r$�prompt_errorzIOTopUI.prompt_errorKsr������q�!�S��X�X���7���D�D�D������1�h��.��0@�A�A�A���������
�1�
�
�
�
�
r&c��|j�ddtd��tjz|j��|j���dS)Nrrr�)r}r�r�rr�r�r�r�s r$�prompt_clearzIOTopUI.prompt_clearQsE������q�!�S��X�X���7���D�D�D���������r&c����fd�}�fd�}�fd�}�fd�}itd��d��td��d��td	���fd
��td���fd��td
��|�td��|�td��|�td��|�td��|�td��|�td��|�td��|�tj�fd��tj�fd��tj�fd��tj�fd��}|�|d���}|��dS)Nc�2���jxjdzc_dS�NT)r)r9r�s�r$�toggle_accumulatedz.IOTopUI.handle_key.<locals>.toggle_accumulatedVs����L�$�$��,�$�$�$�$r&c�2���jxjdzc_dSr)r)�onlyr�s�r$�toggle_only_ioz*IOTopUI.handle_key.<locals>.toggle_only_ioYs����L����%����r&c����jxjdzc_�j����j���dSr)r)�	processesrx�clearr�r�s�r$�toggle_processesz,IOTopUI.handle_key.<locals>.toggle_processes\sI����L�"�"�d�*�"�"���#�#�%�%�%���/�/�1�1�1�1�1r&c���	�jjr/����}�j�|��}n.����}t
|�jj��}|���}tj
|��\}}��|��}|dkrd}n��|��}|�
||���j����j�������dS#t"$r(}��d|jz��Yd}~dSd}~wt($r��d��YdSt*$r��d��YdSt,$r��d��YdSt.$r��d��YdSt0$r����YdSwxYw)Nr�rzError setting I/O priority: %szInvalid process id!zInvalid thread id!zInvalid I/O priority data!zInvalid integer!)r)rr�rx�get_processr�r�taskstats_connection�
get_ioprior
�to_class_and_datar�r��
set_iopriorr�r�rr��errr`rbrdr^rV)rh�	exec_unit�tid�ioprio_valuer�r�rSr�s       �r$�ionicez"IOTopUI.handle_key.<locals>.ioniceasd��� 
$��<�)�P��/�/�+�+�C� $� 1� =� =�c� B� B�I�I��/�/�+�+�C� *�3�(,�(9�(N�!P�!P�I�(�3�3�5�5��)/�)A�,�)O�)O�,��{�#�0�0��>�>���6�)�)�"#�K�K�"&�"2�"2�;�"?�"?�K��$�$�\�;�?�?�?��!�'�'�)�)�)��!�3�3�5�5�5��!�!�#�#�#�#�#��"�
L�
L�
L��!�!�"B�Q�U�"J�K�K�K�K�K�K�K�K�K������
9�
9�
9��!�!�"7�8�8�8�8�8�8��
8�
8�
8��!�!�"6�7�7�7�7�7�7�$�
@�
@�
@��!�!�">�?�?�?�?�?�?��
6�
6�
6��!�!�"4�5�5�5�5�5�5��
$�
$�
$��!�!�#�#�#�#�#�#�
$���s6�DD(�(
G>�2E�"G>�:G>�G>�<G>�G>�=G>r�c�*�tjd��S�Nr�r�r�r[r&r$r7z$IOTopUI.handle_key.<locals>.<lambda>���������r&r�c�*�tjd��Srrr[r&r$r7z$IOTopUI.handle_key.<locals>.<lambda>�rr&r�c�,������Sr5�r�r�s�r$r7z$IOTopUI.handle_key.<locals>.<lambda>������,�,�.�.�r&�Rc�,������Sr5rr�s�r$r7z$IOTopUI.handle_key.<locals>.<lambda>�rr&�a�A�o�Orjrr��Ic�.����d��S)Nr��r�r�s�r$r7z$IOTopUI.handle_key.<locals>.<lambda>�s����/�/��3�3�r&c�.����d��Sr�r%r�s�r$r7z$IOTopUI.handle_key.<locals>.<lambda>�s����/�/��2�2�r&c�^����ttj����Sr5�r�rMrfrzr�s�r$r7z$IOTopUI.handle_key.<locals>.<lambda>�s#����/�/��W�5I�1J�1J�0J�K�K�r&c�\����ttj����Sr5r(r�s�r$r7z$IOTopUI.handle_key.<locals>.<lambda>�s ����/�/��G�4H�0I�0I�J�J�r&c��dSr5r[r[r&r$r7z$IOTopUI.handle_key.<locals>.<lambda>�s��t�r&)r�rr�r��KEY_HOME�KEY_END�get)r�r�rrr	r�key_bindings�actions`       r$r�zIOTopUI.handle_keyUs����	-�	-�	-�	-�	-�	&�	&�	&�	&�	&�	2�	2�	2�	2�	2�
!	$�!	$�!	$�!	$�!	$�F!
���H�H�#�#�!
�
��H�H�#�#�	!
�

��H�H�.�.�.�.�
!
�
��H�H�.�.�.�.�!
�
��H�H�"�!
�
��H�H�"�!
�
��H�H��!
�
��H�H��!!
�"
��H�H� �%!
�&
��H�H� �)!
�*
��H�H��-!
�.
��H�H��1!
�2
�O�3�3�3�3�5!
�6
��2�2�2�2�9!
�:
�O�K�K�K�K�=!
�>
�N�J�J�J�J�A!
��F�!�!�#�|�|�4�4��������r&c�h�����fd�}�fd�}tt|�jj�������}t
j�jd��jj	rd��nd��|�
��fd��j���tt||����S)Nc���t�
j|�
jj��}|\}}}}dtz}|jf}|dz
}||���fz
}|dz
}||���dd�fz
}|dz
}|||fz
}�
jr
|dz
}|||fz
}n�
jj	r
|dz
}|dz
}|d	z
}||z}|�
��}	�
jj	s]�
jt|��z
}
d
|
cxkrt|	��kr,nn)|
dz
d
z}|
|z
dz
}|	d|�dz|	|d�z}	||	z
}�
jj	s|d�
j�}|S)
Nz%%%ddz %4sz %-8s�z
 %11s %11sz %7s %7sr�)z
?unavailable?r�rr�~)
rJr)rxr-�
MAX_PID_WIDTHrhr
ror�r|rur�rM)rjrErGrHr@rA�format�params�line�cmdline�remaining_length�len1�offset2r�s             �r$r5z IOTopUI.get_data.<locals>.format�s���� ���q�$�2C�2L�M�M�E�>C�;�H�l�J���}�,�F��U�V�F��f��F��a�l�l�n�n�o�%�F��g��F��a�j�j�l�l�2�A�2�&�'�'�F��l�"�F��j�+�-�-�F��!�
+��*�$���,��0�0�����#�
+��&� ���*�*���c�M�F��V�$�D��m�m�o�o�G��<�%�
G�#'�:��D�	�	�#9� ��'�6�6�6�6�#�g�,�,�6�6�6�6�6�,�q�0�Q�6�D� 0�4� 7�!� ;�<�G�%�e�t�e�n�s�2�W�W�X�X�5F�F�G��G�O�D��<�%�
)��K�T�Z�K�(���Kr&c�\���jjp|��jj��Sr5)r)r�did_some_ior9)rjr�s �r$�
should_formatz'IOTopUI.get_data.<locals>.should_format�s,����|�(�(�;��=�=���!9�:�:�
;r&rc��|jSr5)r:�rjs r$r7z"IOTopUI.get_data.<locals>.<lambda>����Q�]�r&c��|jSr5)r=r@s r$r7z"IOTopUI.get_data.<locals>.<lambda>�rAr&c�.���|�|����Sr5r[)rjr��stats_lambdas ��r$r7z"IOTopUI.get_data.<locals>.<lambda>�s���S�S��L�L��O�O�%<�%<�r&)r��reverse)
�list�filterrxr�valuesrfrzryr)r9�sortr{�map)r�r5r>rr�rDs`   @@r$�get_datazIOTopUI.get_data�s������	�	�	�	�	�>	;�	;�	;�	;�	;���
� $� 1� ;� B� B� D� D�F�F�G�G�	��"�4�#3�4�Q�7���<�#�	3�2�2�L�L�2�2�L����<�<�<�<�<�#�3�	�	5�	5�	5��C��	�*�*�+�+�+r&c��� �!�"�#�dt�j|d|���d���dt�j|d|���d����dt�j|d|���d���dt�j|d|���d����g}tdtdz
��d	z}�jjr|d
z
}n|dz
}|dd
dddddg}tj�_�jrt��dkrd�_��
d������}�jjr6dg|z}tj
d��� � fd�|D��}� fd�|D��}�jjr��jjdkrS|D]}	t!|	����jjt#|��kr"t!d�|����|D]}
t!|
���t&j���dS�j����jrd}nd}g}g}
�jj�rʉ�d��}��d��}t5ddddd �jjrd!nd"fd#�jjrd$nd%fd&�jjrd'nd(fd)d*�jrd+nd,fd-||���fd.||���fd/|d���fd0|d���fg
��}d}|���D]�\}}|rd1|d2|g}d|d3krdnt@j!ddg}n	d1|d4g}gd5�}|rI|rGtEd�||��d�|��z���j#kr0|�$|��|
�$|��|dz
}��||xx|z
cc<|
|xx|z
cc<��tE|���"t#tK|�����#t#tK|����}tE|��}�j&�"z
�#z
|z
|z
}|d6krg}d�#|d7krg}d�"|d8krd}d}|d9krg}g}
d}�j&�"z
�#z
|z
|z
}tOtE|��|��}tQ|��D].\�!}	�j�)�!d|	d�j#����/|r<�j�*�"dtWd	��t@j,z�j#��d}�j#}t[tE|����D]��!�js�!d:vr�t@j,}|�!}�!�j.kr
|dd�}�!�j.kr|t@j/z}|�jrd;pd<z
}|d|�}|tE|��z}|r�j�)�"|||��|tE|��z
}��t[|��D]g�!	�!�"�#�fd=�}	||�!��n4#t`$r'||�!�1d>����YnwxYw�S#t@j2$rY�dwxYwt[|��D]�}�j&|z
|z
|z}�j�*|dtWd	��t@j,z�j#��d}t[tE||����D]b�!�j�3||||�!t@j,|
|�!z��|tE||�!��z
}�c��|r/�j�3�j&dz
d|t@j/���j�4��dS)?NzTotal DISK READ:   r�z | Total DISK WRITE:   rzCurrent DISK READ: z | Current DISK WRITE: �r��PID�TIDz  PRIOz  USERz     DISK READz  DISK WRITEz  SWAPINz      IOz    COMMANDFz    TIMEz	%H:%M:%S c���g|]}�|z��Sr[r[)�.0r��current_times  �r$�
<listcomp>z+IOTopUI.refresh_display.<locals>.<listcomp>�s���5�5�5�!�\�A�%�5�5�5r&c���g|]}�|z��Sr[r[)rRrkrSs  �r$rTz+IOTopUI.refresh_display.<locals>.<listcomp>�s���9�9�9�A�|�a�'�9�9�9r&rrzoCONFIG_TASK_DELAY_ACCT and kernel.task_delayacct sysctl not enabled in kernel, cannot determine SWAPIN and IO %r�)�keysr)�anyr�)r��quit)r�rr!�all�activerj�threads�procsr�	bandwidth�accum)rIrr��asc�desc�left�right�home�endz  z: rW�:)rrrrLrwr�r2r��>�<c�L���j���z�zd|��dSr)r}r�)r7r��len_summary�
len_titlesr�s ����r$�
print_linez+IOTopUI.refresh_display.<locals>.print_line]s*��������K��*�(D�a��N�N�N�N�Nr&zutf-8)5r.r)�rjustrCr4rr	�has_blkio_delay_totalr�r
r�rKr;�strftimer|�quietrRr�joinr��stdout�flushr}�erase�helpr�rrr9r{rP�itemsr�A_UNDERLINErMr��append�boolr�r1r�r�r�r�r��rangeryr��UnicodeEncodeError�encoder�r�r�)$r��
first_timer�r�r-�summaryrh�titles�linesrkr��
status_msg�
help_lines�
help_attrs�prev�nextrt�	help_liner��	help_item�	help_attr�len_status_msg�len_help�	max_lines�	num_lines�pos�remaining_colsr��titlerk�lnr7rSr�rirjs$`                               @@@@r$r�zIOTopUI.refresh_display�s	��������!���u�Q�x��B�B�H�H��L�L�L�L� ���u�Q�x��B�B�H�H��L�L�L�N�N�!���w�q�z�8�D�D�J�J�2�N�N�N�N� ���w�q�z�8�D�D�J�J�2�N�N�N�P�	
���!�m�a�'�)�)�C�/���<�!�	��5�L�C�C��5�L�C��x��+;�^��j�-�9��"�8�����	+�
%�&�&�%�/�/�%*��"�����"�"�"��
�
�����<��	:� �\�F�*�F��=��5�5�L�5�5�5�5�u�5�5�5�E�9�9�9�9��9�9�9�G��<��x	��|�!�Q�&�&� ���A��!�H�H�H�H��<�%��Z���8�8��"�'�'�&�/�/�*�*�*��
�
���a������J���������H�N�N�����!�
B�!�
�
�A�
�
�J��J��|� � 
;��+�+�B�/�/���+�+�A�.�.��"� �&�!�#��4�<�#4�B�%�%�(�C��t�|�'=�J�)�)�7�K����)A�N�+�+�w�O� ��4�#7�C�%�%�V�D��V�D�\�/�/�1�1�2��f�T�l�0�0�2�2�3��V�A�Y�_�_�.�.�/��F�2�J�,�,�.�.�/�$�����	�!%�����
;�
;�I�C���.�%)�3��d�$;�	�%&�S�E�\�\���v�?Q�ST�VW�$X�	�	�%)�3��$4�	�$-�I�I�	�%�;�T�;�S�����I�AV�9W�9W�Z\�Za�Za�bk�Zl�Zl�9l�5m�5m�pt�pz�5z�5z�"�)�)�)�4�4�4�"�)�)�)�4�4�4�!�Q��	�	�"�9�-�-�-��:�-�-�-�"�9�-�-�-��:�-�-�-�-��g�,�,�K��T�&�\�\�*�*�J� ��j�!1�!1�2�2�N��:���H���k�1�J�>��O�RZ�Z�I��1�}�}����
��1�}�}������1�}�}�!�
�!"���1�}�}��
��
�����k�1�J�>��O�RZ�Z�I��C��J�J�	�2�2�I�!�'�*�*�
6�
6���1������1�a�����n�5�5�5�5��
X�����{�A�s�3�x�x�&�:J�/J�D�J�W�W�W��C�!�Z�N��3�v�;�;�'�'�
"�
"���)��a�6�k�k���'���q�	����(�(�(�!�!�"�"�I�E���(�(�(��F�M�)�D��T�1�9�c�@�S�@�E��o�~�o�.���#�e�*�*�,���C��H�O�O�K��e�T�B�B�B��s�5�z�z�!����9�%�%�
�
��
�O�O�O�O�O�O�O�O�=�"�
�5��8�,�,�,�,��-�=�=�=�#�
�5��8�?�?�7�#;�#;�<�<�<�<�<�=�������|�����D������H�o�o�
2�
2���{�^�3�h�>��C������t�Q��C���6�3C�(C�T�Z�P�P�P����s�:�b�>�2�2�3�3�2�2�A��H�O�O�D�#�z�"�~�a�/@�&�BR�U_�`b�Uc�de�Uf�Bf�g�g�g��3�z�"�~�a�0�1�1�1�C�C�2��
/�������a���J� &�
�/�/�/��H�������s6�(Z8�1Z�Z8�.Z4�1Z8�3Z4�4Z8�8[
�	[
rr5)r�)rXrYrZrzr�r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�rKr�r[r&r$rfrf�s�������
�	�U�#�	)�	)�5�1�	"�	"�E�*�	"�	"�D�)�	=�	=�t�D�	*�	*�D�1�
C�
C�DH�	J�	%�	%�u�-��L����"6�6�6�%�%�%�B8�8�8�M�M�M����
�
�
�
��������������(�(�(�B�����������S�S�S�j-,�-,�-,�^X�X�X�X�Xr&rfc�r�|jr*tjtjtj��nAd�}tjtj|��tjtj|��t
|��}t||��}t|||��}|�	��dS)Nc�.�tjd��dSrr)r��kwargss  r$�
clean_exitz$run_iotop_window.<locals>.clean_exitxs���H�Q�K�K�K�K�Kr&)
r|�signal�SIGPIPE�SIG_DFL�SIGINT�SIGTERMrrrfr�)r}r)r�rrx�uis      r$�run_iotop_windowr�ts����}�2��
�f�n�f�n�5�5�5�5�	�	�	��
�f�m�Z�0�0�0��
�f�n�j�1�1�1�+�G�4�4���3�W�=�=�L�	��l�G�	,�	,�B��F�F�H�H�H�H�Hr&c�~�	|jrtd|��Stjt|��S#tj$r;}td|tj���t
jd��Yd}~dSd}~wt$r�}|j
tjkrJt|tj���tdtj���t
jd��|j
tjkr7t|tj���tdtj���n�Yd}~dSd}~wwxYw)Nziotop interface error:)�filera�
The Linux kernel interfaces that iotop relies on now require root privileges
or the NET_ADMIN capability. This change occurred because a security issue
(CVE-2011-2494) was found that allows leakage of sensitive data across user
boundaries. If you require the ability to run iotop as a non-root user, please
configure sudo to allow you to run iotop as root.

Please do not file bugs on iotop about this.a/
The Linux kernel interfaces that iotop relies on for process I/O statistics
were not found. Please enable CONFIG_TASKSTATS in your Linux kernel build
configuration, use iotop outside a container and or share the host's
network namespace with the container.

Please do not file bugs on iotop about this.)
r|r�r�wrapperr�rRr��stderrr��OSErrorr��EPERM�ENOENT)r)rSs  r$�	run_iotopr��sp����=�	=�#�D�'�2�2�2��>�"2�G�<�<�<���<����
�&���
�;�;�;�;����������������������7�e�k�!�!��!�#�*�%�%�%�%��0�7:�j�
B�
B�
B�
B�
�H�Q�K�K�K��7�e�l�"�"��!�#�*�%�%�%�%��0�7:�j�

B�
B�
B�
B�
B�
�
B�
B�
B�
B�
B�
B��������s&�3�3�D<�0A8�8
D<�B,D7�7D<c��d}	ddl}ddl}td��|�dt	��t��|��|�|��}n�#t$rtddl}ddl	}|�
|d���}td��|�|��|���|j
�|��}YnwxYw|���|�dd	��|�d
��|�d
��t'j|��dS)Nz
iotop.profrzProfiling using cProfilezcontinuation()r)�
lineeventszProfiling using hotshotr;�calls�2)�cProfile�pstatsrR�runctx�globals�localsr	�ImportError�hotshot�
hotshot.stats�Profile�runcall�closerE�load�
strip_dirs�
sort_stats�print_stats�
print_callees�os�remove)�continuation�	prof_filer�r�rEr��profs       r$�_profiler��sU���I�
.������
�
�
�
�(�)�)�)����(�'�)�)�V�X�X�y�I�I�I����Y�'�'�����.�.�.������������y�Q��7�7��
�'�(�(�(����\�"�"�"��
�
�����
�"�"�9�-�-����.����
������	���V�W�%�%�%�	���b����	��������I�i�����s�AA!�!A;C�CaF%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, i to change I/O priority, q to
quit, any other key to force a refresh.c	����	tjtjd��n$#tj$rt	d��YnwxYwtjtdtz���}|�	ddddd	d
���|�	dd
ddd���|�	dddddd���|�	ddddddd���|�	d d!dd"d#d$d%�&��|�	d'd(d)d*d#d+d,�&��|�	d-d.dd/d	d0���|�	d1d2dd3d	d4���|�	d5d6dd7d	d8���|�	d9d:dd;d<���|�	d=d>d?d@dAdB���|�	dCddDd	t
j
���|�	dEdFdGdHdI���|���\�}|r+|�dJdK�
|��z��t����jpg�_�jp
�jp�j�_�fdL���jr�fdM�}t)|��dS���dS)NNrz8unable to set locale, falling back to the default localeziotop )�usage�versionz-oz--only�
store_truerFz1only show processes or threads actually doing I/O)r/�destr�rtz-bz--batchr|znon-interactive mode)r/r�rtz-nz--iterrr��NUMz-number of iterations before ending [infinite])�typer��metavarrtz-dz--delayrr�z#delay between iterations [1 second]�SECr)r�r�rtr�r�z-pz--pid�pidsrwz"processes/threads to monitor [all]rO)r�r�r/rtr�z-uz--user�str�userszusers to monitor [all]�USERz-Pz--processesrz$only show processes, not all threadsz-az
--accumulatedr9z)show accumulated I/O instead of bandwidthz-kz--kilobytesr(z.use kilobytes instead of a human friendly unitz-tz--timer;z.add a timestamp on each line (implies --batch)z-qz--quiet�countrorz/suppress some lines of header (implies --batch)z	--profile�profilez	--no-help�store_falsertTzsuppress listing of shortcutszUnexpected arguments: r�c�"��t���Sr5)r�)r)s�r$r7zmain.<locals>.<lambda>�s���	�'�*�*�r&c�@��	���dS#t$rYdSwxYwr5)rQ)�	main_loops�r$�safe_main_loopzmain.<locals>.safe_main_loops9���
��	��������
�
�
����
���s�
�
�)�locale�	setlocale�LC_ALL�ErrorrR�optparse�OptionParser�USAGEr�
add_option�
SUPPRESS_HELP�
parse_argsr�rprr�r|r;ror�r�)�parserr�r�r�r)s   @@r$�mainr��s�����J������+�+�+�+���<�J�J�J�
�H�I�I�I�I�I�J����
�
"���7�8J�
K�
K�
K�F�
���d�H�\�!�5�N��P�P�P����d�I�l��1��3�3�3�
���d�H�5�|�#�J��L�L�L����d�I�G�/�@�#�Q��0�0�0����d�G�%�f�X�?���P�P�P�
���d�H�5�w�%�,D�$��&�&�&����d�M�,�&��A��C�C�C����d�O�L�(�%�F��H�H�H����d�M�,�&��K��M�M�M����d�H�\��K��M�M�M�
���d�I�g�G�Q�L��N�N�N�
���k�,�Y�#�(�*@��B�B�B�
���k�-�f�d�:��<�<�<��%�%�'�'�M�G�T��@����-�������>�?�?�?�
�g�����<�%�2�G�L��M�B�W�\�B�W�]�G�M�*�*�*�*�I����	�	�	�	�	�
	�� � � � � ��	�����s�$�A�A)4�
__future__rrr�r�rr�r�r�r�r�r;�hasattrrr��RuntimeError�collectionsr�
iotop.datarrrr	r
r�
iotop.versionr�iotopr
�iotop.iopriorr r%r+r.rJrTr4rQrVr^r`rbrd�objectrfr�r�r��argvr�r�r[r&r$�<module>r�s'��(&�%�%�%�%�%�
�
�
�
�����
�
�
�
���������	�	�	�	�
�
�
�
�
�
�
�
�
�
�
�
�������7�4��%�%�#�'�'�'�'�'�'�"������\�"�����Y�D�N�N�N�����$�#�#�#�#�#�]�]�]�]�]�]�]�]�]�]�]�]�]�]�!�!�!�!�!�!�!�!�!�!�!�!�������'�'�'�'�'�'�	,�+�+��?�?�?����H�H�H�;�;�;�,���"�!�#�#�
�	�	�	�	�	�)�	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	��	�	�	�	�	�	�	�	�	�	�	�	�a�a�a�a�a�f�a�a�a�H
�
�
����L���4
	+�.1�X�a�[�
	9��9�9�9�9�9s�A
�
A �A