%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3.9/site-packages/cockpit/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3.9/site-packages/cockpit/__pycache__/samples.cpython-39.opt-1.pyc

a

��hD�	@szddlZddlZddlZddlZddlmZmZmZmZm	Z	m
Z
mZmZddl
mZe�ejd�ZdedkrrendZdZeeefZe�e�Zd"eeeeeeed	�d
d�ZGdd
�d
e
�ZGdd�d�ZGdd�de�ZGdd�de�ZGdd�de�Z Gdd�de�Z!Gdd�de�Z"Gdd�de�Z#Gdd�de�Z$Gdd�de�Z%Gd d!�d!e�Z&e&e"e#ee e!ee%e$g	Z'dS)#�N)�Any�Callable�DefaultDict�Iterable�List�
NamedTuple�Optional�Tuple)�Handle�
SC_CLK_TCK���dz/sys/class/hwmon�)�rootfd�statfile�default�key�returnc	
Cs�ztj|tj|d�}Wnty*YdS0zlzt�|d�}WnLty�}z4|jtjkrht�	d||�WYd}~Wt�
|�dSd}~00Wt�
|�nt�
|�0|r�|�|�t|�}|�d|�}|||�}zt
|�p�|WSt�y�YdS0dS)N��dir_fd�zFailed to read %s: %s�
)�os�open�O_RDONLY�FileNotFoundError�read�OSError�errnoZENODEV�loggerZwarning�close�index�len�int�
ValueError)	rrrr�fd�data�e�start�end�r*�3/usr/lib/python3.9/site-packages/cockpit/samples.py�
read_int_file%s*
�r,c@s.eZdZUeed<eed<eed<eed<dS)�SampleDescription�nameZunitsZ	semantics�	instancedN)�__name__�
__module__�__qualname__�str�__annotations__�boolr*r*r*r+r-Cs
r-c@s*eZdZUeeed<edd�dd�ZdS)�Sampler�descriptionsN��samplesrcCst�dS)N)�NotImplementedError)�selfr9r*r*r+�sampleMszSampler.sample)r0r1r2rr-r4�Samplesr<r*r*r*r+r6Js
r6c
@s�eZdZeddddd�eddddd�eddddd�eddddd�ed	ddd
d�edddd
d�edddd
d�ed
ddd
d�gZedd�dd�ZdS)�
CPUSamplerzcpu.basic.nice�millisec�counterF�r/zcpu.basic.userzcpu.basic.systemzcpu.basic.iowaitz
cpu.core.niceTz
cpu.core.userzcpu.core.systemzcpu.core.iowaitNr8cCsBtd���"}|D�]
}|�d�s"q|��dd�\}}}}}}	|dd�pLd}
|
r�d}t|�t||�d�|
<t|�t||�d�|
<t|�t||�d�|
<t|	�t||�d	�|
<qd
}t|�t||�d�<t|�t||�d�<t|�t||�d�<t|	�t||�d	�<qWd�n1�s40YdS)Nz
/proc/stat�cpu��zcpu.corez.nicez.userz.systemz.iowaitz	cpu.basic)r�
startswith�splitr#�MS_PER_JIFFY)r;r9�stat�linerB�user�nice�systemZ_idleZiowaitZcore�prefixr*r*r+r<^s"

zCPUSampler.sample�r0r1r2r-r7r=r<r*r*r*r+r>Qs�r>c	@sXeZdZeddddd�eddddd�eddddd�eddddd�gZed	d
�dd�Zd	S)
�
MemorySampler�memory.free�bytes�instantFrA�memory.used�
memory.cached�memory.swap-usedNr8cCs�td��}dd�|D�}Wd�n1s,0Yd|d|d<d|d|d|d	<d|d
|d|d<d|d
|d|d<dS)Nz
/proc/meminfocSs,i|]$}|�dd�\}}|t|�d���qS)�:�z kB
)rFr#�strip)�.0rI�k�vr*r*r+�
<dictcomp>}rz(MemorySampler.sample.<locals>.<dictcomp>rZMemFreerPZMemTotalZMemAvailablerSZBuffersZCachedrTZ	SwapTotalZSwapFreerU)r)r;r9Zmeminfo�itemsr*r*r+r<{s
,zMemorySampler.samplerNr*r*r*r+rOss�rOc@sreZdZUdZeeeed<eddddd�gZ	e
eeed�d	d
��Z
e
eed�dd
��Zedd�dd�ZdS)�CPUTemperatureSamplerN�sensors�cpu.temperatureZcelsiusrRTrA)rrc	csJzJtjdtj|d��$}t�|d�����}Wd�n1s>0YWnty^YdS0|dkrrdd�}n.|dkr�d}n |dkr�d}n|d	vr�d}ndSt�|�D]�}|�	d
�s�q�|�r>zX|�
d
d�}tj|tj|d��$}t�|d�����}Wd�n1�s0YWnt�y0Yq�Yn0||��s>q�|Vq�dS)Nr.rrZatk0110cSs|dkS)NzCPU Temperaturer*)�labelr*r*r+�<lambda>�rz:CPUTemperatureSampler.detect_cpu_sensors.<locals>.<lambda>Zcpu_thermalZcoretemp)Zk8tempZk10tempZ_inputZ_label)r
rrrr�decoderXr�listdir�endswith�replace)rr%r.�	predicateZinput_filenameZlabel_filenamerar*r*r+�detect_cpu_sensors�s66

8

z(CPUTemperatureSampler.detect_cpu_sensors)rc
cs�zt�ttjtjB�}Wnty,YdS0|�~t�|�D]b}tj|tjtjB|d��6}t�	|�D]}t�d|�d|��VqfWd�q>1s�0Yq>Wd�n1s�0YdS)Nr�/)
r
r�
HWMON_PATHrr�O_DIRECTORYrrdr^rh)Ztop_fdZ
hwmon_nameZ	subdir_fd�sensorr*r*r+�scan_sensors�sz"CPUTemperatureSampler.scan_sensorsr8c	Cs�|jdurtt���|_|jD]f}t|��:}t|�����}|dkrVWd�dSWd�n1sj0Y|d|d|<qdS)Nrrr`)r_�listr^rmrr#rrX)r;r9Zsensor_pathrlZtemperaturer*r*r+r<�s


0zCPUTemperatureSampler.sample)r0r1r2r_rrr3r4r-r7�staticmethodr#rrhrmr=r<r*r*r*r+r^�s
�*r^c	@sXeZdZeddddd�eddddd�eddddd�ed	dddd�gZed
d�dd
�Zd
S)�DiskSampler�
disk.all.readrQr@FrA�disk.all.written�
disk.dev.readT�disk.dev.writtenNr8c
Cstd���}d}d}|D]�}|����}|d}|d}|d}	|d}
|dkrPq|�d�r\q|dd�dvrz|d	��rzq|�d
�r�d|vr�qt|	�d}t|
�d}||7}||7}||d
|<||d|<q||d<||d<Wd�n1s�0YdS)N�/proc/diskstatsr���	�9zdm-)�sdZhdZvd���Znvme�p�rsrtrqrr)rrXrFrE�isdigitr#)
r;r9�	diskstatsZall_read_bytesZall_written_bytesrI�fieldsZ	dev_major�dev_nameZnum_sectors_readZnum_sectors_written�
read_bytesZ
written_bytesr*r*r+r<�s2

zDiskSampler.samplerNr*r*r*r+rp�s�rpc@s�eZdZUeddddd�eddddd�eddddd�eddddd�ed	d
ddd�edd
ddd�gZdZeeed<e	dd�dd�Z
dS)�
CGroupSampler�cgroup.memory.usagerQrRTrA�cgroup.memory.limit�cgroup.memory.sw-usage�cgroup.memory.sw-limit�cgroup.cpu.usager?r@�cgroup.cpu.shares�countN�
cgroups_v2r8cCs�|jdurtj�d�|_|jr�d}t�|�D]�\}}}}|�|d�}|sJq,t|dd�|d|<t|d�|d|<t|d	d�|d
|<t|d�|d|<t|d
�|d|<t|dddd�}|r,|d|d|<q,n�d}t�|�D]j\}}}}|�|d�}|s�q�t|dd�|d|<t|d�|d|<t|dd�|d
|<t|d�|d|<q�d}	t�|	�D]V\}}}}|�|	d�}|�sz�qXt|d�|d|<t|d�}
|
�rX|
d|d|<�qXdS)Nz!/sys/fs/cgroup/cgroup.controllersz/sys/fs/cgroup/�zmemory.currentrr�z
memory.maxr�zmemory.swap.currentr�zmemory.swap.maxr�z
cpu.weightr�zcpu.stats
usage_usec)rrr�z/sys/fs/cgroup/memory/zmemory.usage_in_byteszmemory.limit_in_byteszmemory.memsw.usage_in_byteszmemory.memsw.limit_in_bytesz/sys/fs/cgroup/cpu/z
cpu.sharesz
cpuacct.usagei@B)r�r�path�exists�fwalkrfr,)r;r9Zcgroups_v2_pathr��_r�cgroupZ
usage_usecZmemory_pathZcpu_pathZ
usage_nsecr*r*r+r<sD

zCGroupSampler.sample)r0r1r2r-r7r�rr5r4r=r<r*r*r*r+r�s
�	r�c@s|eZdZejdejd�Zeddddd�eddddd�gZe	e
ed	�d
d��Ze	e
e
e
e
fd	�dd
��Zedd�dd�ZdS)�CGroupDiskIOs:\bread_bytes: (?P<read>\d+).*\nwrite_bytes: (?P<write>\d+))�flags�disk.cgroup.readrQr@TrA�disk.cgroup.written)r%rcCsVtjdtj|d��0}t�|d�����}|dd�Wd�S1sH0YdS)Nr�ri�)r
rrrrrcrX)r%Z	cgroup_fd�cgroup_namer*r*r+�get_cgroup_nameEszCGroupDiskIO.get_cgroup_namecCs�tjdtj|d��b}t�|d�}t�tj|�}|rdt	|�
d��}t	|�
d��}||fWd�SWd�dS1sz0YdS)N�iorir�write)rr)r
rrrr�re�searchr��IO_REr#�group)r%Zio_fdr&�match�	proc_read�
proc_writer*r*r+�get_proc_ioMszCGroupDiskIO.get_proc_ioNr8c
Cst�dtjtjB���}|d}|d}t�|�D]�}|ddks0|ddkrNq0zNtj|tj|d��(}|�|�}|�|�\}}	Wd�n1s�0YWnt	t
tfy�Yq0Yn0|�|d�|||<|�|d�|	||<q0Wd�n1s�0YdS)Nz/procr�r�r�0ryr)
r
rrrrkrd�O_PATHr�r�r�PermissionError�ProcessLookupError�get)
r;r9Zproc_fdZreadsZwritesr�Zpid_fdr�r�r�r*r*r+r<[s
0
zCGroupDiskIO.sample)r0r1r2r��compile�Sr�r-r7ror#r3r�r	r�r=r<r*r*r*r+r�>s�
r�c@s<eZdZeddddd�eddddd�gZedd�d	d
�ZdS)�NetworkSampler�network.interface.txrQr@TrA�network.interface.rxNr8cCs�td��l}|D]V}|��}|dddkr,q|ddd�}t|d�|d|<t|d�|d|<qWd�n1sz0YdS)	Nz
/proc/net/devrr{rVrWr�rxr�)rrFr#)r;r9Znetwork_samplesrIr�Zifacer*r*r+r<vs
zNetworkSampler.samplerNr*r*r*r+r�ps�r�c@s<eZdZeddddd�eddddd�gZedd�d	d
�ZdS)�MountSampler�mount.totalrQrRTrA�
mount.usedNr8c
Cs�td���}|D]�}|ddkr q|��^}}}}}d|vrJd|�d�vrJqd|vr\d|vr\qzt�|�}	Wnty�YqYn0|	j}
|
|	j}||d	|<||
|	j|d
|<qWd�n1s�0YdS)Nz/proc/mountsrriz/loop�ro�,z
revokefs-fuseZflatpakr�r�)rrFr�statvfsr�f_frsize�f_blocks�f_bfree)r;r9ZmountsrIZfs_specZfs_fileZ_fs_vfstypeZ
fs_mntoptsZ_rest�resZfrsize�totalr*r*r+r<�s"


zMountSampler.samplerNr*r*r*r+r��s�r�c@s<eZdZeddddd�eddddd�gZedd�d	d
�ZdS)�BlockSampler�block.device.readrQr@TrA�block.device.writtenNr8c
Cs�td��d}|D]N}|����^
}}}}}}}}}}}t|�d|d|<t|�d|d|<qWd�n1sr0YdS)Nrur}r�r�)rrXrFr#)r;r9rrIr�r�Zsectors_readZsectors_writtenr*r*r+r<�s

"zBlockSampler.samplerNr*r*r*r+r��s�r�)Nr)(rZloggingrr��typingrrrrrrrr	Zcockpit._vendor.systemd_ctypesr
�sysconf�
sysconf_namesZUSER_HZrGrjr3r=Z	getLoggerr0rr#rQr,r-r6r>rOr^rpr�r�r�r�r�ZSAMPLERSr*r*r*r+�<module>s@(
 "M2:2 �

Zerion Mini Shell 1.0