https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/iotop/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/iotop/__pycache__/ui.cpython-310.pyc
o

$�DYOk�	@s�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZzeed�s=ddl
m
Z
e
e_
WneefyMeje_
YnwddlmZddlmZmZmZmZddlmZddlmZdd	lmZdd
lmZgd�Zdd
�Zdd�Z dd�Z!dd�Z"dd�Z#e#�Z$Gdd�de%�Z&Gdd�de%�Z'Gdd�de%�Z(Gdd�de%�Z)Gdd�de%�Z*Gd d!�d!e+�Z,d"d#�Z-d$d%�Z.d&d'�Z/d(e
j0dZ1d)d*�Z2dS)+�)�print_functionN�	monotonic)r)�OrderedDict)�	find_uids�TaskStatsNetlink�ProcessList�Stats)�
ThreadInfo)�VERSION)�ioprio)�IoprioSetError)�B�K�M�G�T�P�EcCs`|dkrd}n|dkrd}|}ndStt�|dd�d�}d|t|�dd|>t|fS)	Nr��-z0.00 B��
z	%s%.2f %s�)�int�math�log�float�UNITS)�size�sign�expo�r!�*/usr/lib/python3/dist-packages/iotop/ui.py�
human_size;s�r#cCs|jr	d|dSt|�S)Nz%.2f Kg�@)�	kilobytesr#)�options�bytesr!r!r"�format_sizeIsr'cCst||o	t|�|�dS)Nz/s)r'r)r%r�durationr!r!r"�format_bandwidthOsr)cs��fdd�}�jr|j}�fdd�}t��|j�n	|j}�fdd�}||j�}||j�}||j��}|j	|j
}	td|	�}	||	��}
||||
fS)Ncsdtd|�d�S)Nz%.2f %%g��(\�X@g�cA)�min)�delay)r(r!r"�
delay2percentV�z#format_stats.<locals>.delay2percentcs
t�|�S�N)r'�rr(�r%r!r"�<lambda>Z�
zformat_stats.<locals>.<lambda>cst�||�Sr.)r)r/r0r!r"r1^s�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(r,�stats�display_format�io_delay�swapin_delayr:�
written_bytesr;r!)r(r%r"�format_statsSs



rDc
CsFzttd������WSty"}zt|�WYd}~dSd}~ww)Nz/proc/sys/kernel/pid_max�)�len�open�read�strip�	Exception�print)�er!r!r"�get_max_pid_widthis��rMc@�eZdZdS)�CancelInputN��__name__�
__module__�__qualname__r!r!r!r"rOx�rOc@rN)�
InvalidIntNrPr!r!r!r"rU|rTrUc@rN)�
InvalidPidNrPr!r!r!r"rV�rTrVc@rN)�
InvalidTidNrPr!r!r!r"rW�rTrWc@rN)�InvalidIoprioDataNrPr!r!r!r"rX�rTrXc	@s�eZdZdd�dfdd�dfdd�dfdd�dfdd�dfd	d�dfd
d�dfdd�dfgZdd
�Zdd�Zdd�Zdd�Zdd�Zdd�Z	d2dd�Z
d2dd�Zdd�Zdd �Z
d!d"�Zd#d$�Zd3d%d&�Zd4d(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�ZdS)5�IOTopUIcC�|jSr.)�pid��p�sr!r!r"r1��zIOTopUI.<lambda>FcC�|��Sr.)�ioprio_sort_keyr\r!r!r"r1��cCr`r.)�get_userr\r!r!r"r1�rbcC�|jSr.)r:r\r!r!r"r1�r_TcCs|j|jSr.)r;r<r\r!r!r"r1�scCrdr.)r9r\r!r!r"r1�r_cCs|jpt|jp	|j�Sr.)r8rr:r;r\r!r!r"r1�scCr`r.)�get_cmdliner\r!r!r"r1�rbcCsv||_||_d|_tj|jd|_|jjs9||_|��zt	�
�t	��t	�d�WdSt	j
y8YdSwdS)N�rr)�process_listr%�sorting_keyrY�sorting_keys�sorting_reverse�batch�win�resize�curses�use_default_colors�start_color�curs_set�error)�selfrlrgr%r!r!r"�__init__�s��zIOTopUI.__init__cCs|j��\|_|_dSr.)rl�getmaxyx�height�width�rsr!r!r"rm�r-zIOTopUI.resizec

Csjd}t��}|jjs|�tj��tjtj	B�|jj
dus#||jj
kr�|j��\}}|�
|dk|||jj�|jj
durI|d7}||jj
krHdSn|dkrOd}z|�|jjd�}Wn"tjy|}z|jrq|jdtjkrqg}n�WYd}~nd}~ww|D]\}}|tjtjB@r�t�d�q|jjs�|��|r�|j��}	|�|	�|jj
dus#||jj
ks#dSdS)Nrrg@�@)�select�pollr%rk�register�sys�stdin�fileno�POLLIN�POLLPRI�
iterationsrg�refresh_processes�refresh_displayr(�
delay_secondsrr�args�errno�EINTR�POLLERR�POLLHUP�exitrmrl�getch�
handle_key)
rsr�rz�total�current�eventsrL�fd�event�keyr!r!r"�run�sJ�����
�

�zIOTopUI.runcCs|j|_dSr.)rjrxr!r!r"�reverse_sorting��zIOTopUI.reverse_sortingcCs6|j}|�|�|_||jkrtj|jd|_dSdS�Nr)rh�get_sorting_keyrYrirj)rs�delta�orig_sorting_keyr!r!r"�adjust_sorting_key�s

�zIOTopUI.adjust_sorting_keycCs0|j}||7}td|�}tttj�d|�}|S)Nrr)rhr=r*rFrYri)rsr��new_sorting_keyr!r!r"r��s

zIOTopUI.get_sorting_keyNcCs�|j�ddtd�tjB|j�|j�dd|tj�|j��t�	�t�
d�|j�dt|��}t�
d�t�
�|dvr?|S|rDt��|S)Nrr� )Nr)rl�hline�ordrn�A_NORMALrw�addstr�A_BOLD�refresh�echorq�getstrrF�noechorO�rs�prompt�default�empty_is_cancel�inpr!r!r"�
prompt_str�s


zIOTopUI.prompt_strcCs.|�|||�}zt|�WStyt��wr.)r�r�
ValueErrorrUr�r!r!r"�
prompt_int�s
�zIOTopUI.prompt_intcC�0z|�d�WStyt��ty�w)NzPID to ionice: )r�rUrVrOrxr!r!r"�
prompt_pid���zIOTopUI.prompt_pidcCr�)NzTID to ionice: )r�rUrWrOrxr!r!r"�
prompt_tidr�zIOTopUI.prompt_tidcCs^z|dur|�d||d�}n|�ddd�}Wn
ty!t��w|dks*|dkr-t��|S)Nz'I/O priority data (0-7, currently %s): FzI/O priority data (0-7): r�)r�rUrX)rs�ioprio_datar�r!r!r"�prompt_data
s����zIOTopUI.prompt_datacCs\z|�|�}Wntyd}Ynwt|�d}	|j�ddtd�tjB|j�|j�	dd|tj
�t|�}t|�D]"\}}d|}	||urKtj}
ntj}
|j�	d||	|
�|t|	�7}q;	|j�
�}|tjtd�fvrv|dkrv|d8}n7|tjtd�fvr�||kr�|d7}n%|tjtd	�td
�fvr�||S|dtjtjtjtd�td
�fvr�t��q_q)N���rTrr�z %s �l�r�
�
��q�Q)�indexr�rFrlr�r�rnr�rw�insstrr��	enumerate�	A_REVERSEr��KEY_LEFT�	KEY_RIGHT�	KEY_ENTER�
KEY_CANCEL�	KEY_CLOSE�KEY_EXITrO)rsr��display_list�ret_list�selected�set_len�offset�i�item�display�attrr�r!r!r"�
prompt_setsD�
���zIOTopUI.prompt_setcCs4d}gd�}gd�}|durd}|�||||�}|S)NzI/O priority class: )z	Real-timezBest-effort�Idle)�rt�be�idler)r�)rs�ioprio_classr��classes_prompt�classes_retr�r!r!r"�prompt_class;s�zIOTopUI.prompt_class�Error!cCsN|j�ddtd�tjB|j�|j�ddd|tj�|j��t	�
d�dS)Nrrr�z  %s  )rlr�r�rnr�rwr�r�r�r5�sleep)rsrrr!r!r"�prompt_errorEs
zIOTopUI.prompt_errorcCs,|j�ddtd�tjB|j�|j��dS)Nrrr�)rlr�r�rnr�rwr�rxr!r!r"�prompt_clearKszIOTopUI.prompt_clearcs�fdd�}�fdd�}�fdd�}�fdd�}itd	�d
d��td�d
d��td��fdd��td��fdd��td�|�td�|�td�|�td�|�td�|�td�|�td�|�td�|�tj�fdd��tj�fdd��tj�fdd��tj�fdd��}|�|dd��}|�dS)Nc��jjdN_dS�NT)r%r3r!rxr!r"�toggle_accumulatedP�z.IOTopUI.handle_key.<locals>.toggle_accumulatedcr�r�)r%�onlyr!rxr!r"�toggle_only_ioSr�z*IOTopUI.handle_key.<locals>.toggle_only_iocs(�jjdN_�j���j��dSr�)r%�	processesrg�clearr�r!rxr!r"�toggle_processesVs
z,IOTopUI.handle_key.<locals>.toggle_processesc
s^zH�jjr���}�j�|�}n���}t|�jj�}|��}t	�
|�\}}��|�}|dkr2d}n��|�}|�
||��j���j��Wn`tyc}z��d|j�WYd}~dSd}~wtyq��d�YdSty��d�YdSty���d�YdSty���d�YdSty����YdSw���dS)Nr�rzError setting I/O priority: %szInvalid process id!zInvalid thread id!zInvalid I/O priority data!zInvalid integer!)r%r�r�rg�get_processr�r	�taskstats_connection�
get_ioprior�to_class_and_datar�r��
set_ioprior�r�rr��errrVrWrXrUrOr�)r[�	exec_unit�tid�ioprio_valuer�r�rLrxr!r"�ionice[sB��


��z"IOTopUI.handle_key.<locals>.ionicer�cS�
t�d�S�Nr�r|r�r!r!r!r"r1�r2z$IOTopUI.handle_key.<locals>.<lambda>r�cSr�r�r�r!r!r!r"r1�r2r�c����Sr.�r�r!rxr!r"r1�rb�Rcr�r.r�r!rxr!r"r1�rb�a�A�o�Or]rr��Ic�
��d�S)Nr��r�r!rxr!r"r1�r2cr�r�r�r!rxr!r"r1�r2cs��ttj��Sr.�r�rFrYrir!rxr!r"r1�scs��ttj��Sr.r�r!rxr!r"r1�scSsdSr.r!r!r!r!r"r1�s)r�rnr�r��KEY_HOME�KEY_END�get)rsr�r�r�r�r��key_bindings�actionr!rxr"r�Osn#��
�
�	��
������
�
�
�
�#
zIOTopUI.handle_keycs��fdd�}�fdd�}tt|�jj����}tj�jd��jj	r(dd��ndd��|j
��fd	d��jd
�tt||��S)Nc
s�t�j|�jj�}|\}}}}tjrd||f}nd}dt}|d|j|��|�	�dd�|||f}|�
�}	�jjsl�jt
|�}
d|
krOt
|	�krlnn|
dd}|
|d}|	d|�d|	|d�}	||	7}�jjs{|d�j�}|S)	Nz%7s %7s z ?unavailable?  z%%%ddz %4s %-8s %11s %11s %s�rr�~)rDr%rgr(r�has_blkio_delay_total�
MAX_PID_WIDTHr[r�rcrerkrwrF)
r]r?rArBr:r;�delay_stats�
pid_format�line�cmdline�remaining_length�len1�offset2rxr!r"�format�s*�z IOTopUI.get_data.<locals>.formatcs�jjp|��jj�Sr.)r%r��did_some_ior3�r]rxr!r"�
should_format�s
�z'IOTopUI.get_data.<locals>.should_formatrcSrZr.)r4rr!r!r"r1�r_z"IOTopUI.get_data.<locals>.<lambda>cSrZr.)r7rr!r!r"r1�r_cs�|�|��Sr.r!r)r��stats_lambdar!r"r1�s)r��reverse)
�list�filterrgr��valuesrYrirhr%r3�sortrj�map)rsrrr�r!)r�rsrr"�get_data�s
�
�zIOTopUI.get_datac s�dt�j|d|��d�t�j|d|��d�fdt�j|d|��d�t�j|d|��d�fg}tdtd�d}�jjrF|d7}n|d	7}|d
ddd
dddg}���}�jjrxdg|}t�d���fdd�|D�}�fdd�|D�}�jj	r��jj
dkr�|D]}	t|	�q��jj
t|�kr�td�
|��|D]}
t|
�q�tj��dS�j��tjr�d}nd}g}g}
�jj�rw��d�}��d�}tddddd�jjr�dnd fd!�jjr�d"nd#fd$�jjr�d%nd&fd'd(�jr�d)nd*fd+||��fd,||��fd-|d��fd.|d��fg
�}d}|��D]^\}}|�r4d/|d0|g}d|d1k�r-dntjddg}n	d/|d2g}gd3�}|�rU|�rUtd�
||�d�
|���j k�re|�!|�|
�!|�|d7}�q|||7<|
||7<�qt|��tt"|���tt"|��}t|�}�j#��||}|d4k�r�g}d�|d5k�r�g}d�|d6k�r�d}d}|d7k�r�g}g}
d}�j#��||}t$t|�|�}t%|�D]\�}	�j�&�d|	d�j ���q�|�r��j�'�dt(d�tj)B�j �d}�j }t*t|��D]J�tj)}|�}��j+k�r|dd�}��j+k�r-|tj,O}|�j�r*d8�p+d97}|d|�}|t|�8}|�rE�j�&�|||�|t|�7}�qt*|�D]6�z(����fd:d;�}z||��Wnt-�yx||��.d<��YnwW�qQtj/�y�Y�qQwt*|�D]G}�j#|||}�j�'|dt(d�tj)B�j �d}t*t||��D]!��j�0||||�tj)|
|�B�|t||��7}�q��q�|�r�j�0�j#dd|tj,��j�1�dS)=Nz.Total DISK READ:   %s | Total DISK WRITE:   %sr�rz.Current DISK READ: %s | Current DISK WRITE: %s�r��PID�TIDz  PRIOz  USERz     DISK READz  DISK WRITEz  SWAPINz      IOz    COMMANDz    TIMEz	%H:%M:%S c�g|]}�|�qSr!r!)�.0r���current_timer!r"�
<listcomp>��z+IOTopUI.refresh_display.<locals>.<listcomp>crr!r!)rr^r r!r"r"�r#rrzNCONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO %r�)�keysr)�anyr�)r��quit)r�r�r��all�activer]�threads�procsr��	bandwidth�accum)rrr��asc�desc�left�right�home�endz  z: r%�:)rrrrErfr�r�>�<cs�j����d|�dSr�)rlr�)r	)r��len_summary�
len_titlesrsr!r"�
print_lineBsz+IOTopUI.refresh_display.<locals>.print_linezutf-8)2r)r%�rjustr=rr�rr5�strftimerk�quietrKr�joinr|�stdout�flushrl�eraserr�helpr�rr�r3rjrI�itemsrn�A_UNDERLINErFrw�append�boolrvr*r�r�r�r�r��rangerhr��UnicodeEncodeError�encoderrr�r�) rs�
first_timer�r�r(�summaryr[�titles�linesr^r��
status_msg�
help_lines�
help_attrs�prev�nextr@�	help_liner��	help_item�	help_attr�len_status_msg�len_help�	max_lines�	num_lines�pos�remaining_colsr��titler8�lnr	r!)r!r�r6r7rsr"r��s���	

�







�
0






���(��zIOTopUI.refresh_displayr�r.)r�)rQrRrSrirtrmr�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r!r!r!r"rY�s<





�
�!
	

!

U'rYcCsf|jrt�tjtj�ndd�}t�tj|�t�tj|�t|�}t||�}t|||�}|�	�dS)Nc_st�d�dSr�r�)r��kwargsr!r!r"�
clean_exit]r�z$run_iotop_window.<locals>.clean_exit)
rk�signal�SIGPIPE�SIG_DFL�SIGINT�SIGTERMrrrYr�)rlr%r]r�rg�uir!r!r"�run_iotop_windowYs
rdc
Cs~z|jr
td|�WSt�t|�WSty>}z"|jtjkr2t|tj	d�tdtj	d�t�
d�n�WYd}~dSd}~ww)N)�filea�
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.r)rkrdrn�wrapper�OSErrorr��EPERMrKr|�stderrr�)r%rLr!r!r"�	run_iotopgs����rjcCs�d}zddl}ddl}td�|�dt�t�|�|�|�}Wn+tyJddl}ddl	}|j
|dd�}td�|�|�|��|j
�|�}Ynw|��|�dd	�|�d
�|�d
�t�|�dS)Nz
iotop.profrzProfiling using cProfilezcontinuation()r)�
lineeventszProfiling using hotshotr5�calls�2)�cProfile�pstatsrK�runctx�globals�localsr�ImportError�hotshot�
hotshot.stats�Profile�runcall�closer?�load�
strip_dirs�
sort_stats�print_stats�
print_callees�os�remove)�continuation�	prof_filernror?rt�profr!r!r"�_profile�s*
�

r�aF%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	s�z	t�tjd�Wntjytd�Ynwtjtdtd�}|j	ddddd	d
d�|j	dd
dddd�|j	ddddddd�|j	dddddddd�|j	d d!dd"d#d$d%d&�|j	d'd(d)d*d#d+d,d&�|j	d-d.dd/d	d0d�|j	d1d2dd3d	d4d�|j	d5d6dd7d	d8d�|j	d9d:dd;d<d�|j	d=d>d?d@dAdBd�|j	dCddDd	tj
d�|j	dEdFdGdHdId�|��\�}|r�|�dJdK�
|��t���jp�g�_�jpԈjpԈj�_�fdLdM���jr�fdNdO�}t|�dS��dS)PNrz8unable to set locale, falling back to the default localeziotop )�usage�versionz-oz--only�
store_truer�Fz1only show processes or threads actually doing I/O)r�destr�r@z-bz--batchrkznon-interactive mode)rr�r@z-nz--iterrr��NUMz-number of iterations before ending [infinite])�typer��metavarr@z-dz--delayrr�z#delay between iterations [1 second]�SECr)r�r�r@r�r�z-pz--pid�pidsrCz"processes/threads to monitor [all]r)r�r�rr@r�z-uz--user�str�userszusers to monitor [all]�USERz-Pz--processesr�z$only show processes, not all threadsz-az
--accumulatedr3z)show accumulated I/O instead of bandwidthz-kz--kilobytesr$z.use kilobytes instead of a human friendly unitz-tz--timer5z.add a timestamp on each line (implies --batch)z-qz--quiet�countr;rz/suppress some lines of header (implies --batch)z	--profile�profilez	--no-help�store_falser@Tzsuppress listing of shortcutszUnexpected arguments: r�cst��Sr.)rjr!r0r!r"r1�rbzmain.<locals>.<lambda>cs"z��WdStyYdSwr.)rJr!)�	main_loopr!r"�safe_main_loop�s
�zmain.<locals>.safe_main_loop)�locale�	setlocale�LC_ALL�ErrorrK�optparse�OptionParser�USAGEr
�
add_option�
SUPPRESS_HELP�
parse_argsrrr<rr�rkr5r;r�r�)�parserr�r�r!)r�r%r"�main�s~�
������
�
�
���
��
r�)3�
__future__rrnr�r�rr�r~ryr^r|r5�hasattrrrs�RuntimeError�collectionsr�
iotop.datarrrrr	�
iotop.versionr
�iotopr�iotop.iopriorrr#r'r)rDrMrrJrOrUrVrWrX�objectrYrdrjr��argvr�r�r!r!r!r"�<module>s`
��L
�

https://t.me/RX1948 - 2025