+
    iA  c            	       s   ^ RI t ^ RIt^ RIt^ RIt^ RIHtHtHtHtH	t	H
t
HtHt ^ RIHt ]P                  ! ]P                   R,          4      tR]^ 8  d   ]M^d,          tRt]]]3,          t]P,                  ! ]4      tRR R llt ! R	 R
]
4      t ! R R4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t  ! R R]4      t! ! R R]4      t" ! R R]4      t# ! R R]4      t$]$] ]!]]]]]#]".	t%R# )     N)AnyCallableDefaultDictIterableList
NamedTupleOptionalTuple)HandleZ
SC_CLK_TCK  z/sys/class/hwmonc                s    V ^8  d   QhR\         R\        R\        \         ,          R\        R\        \         ,          /# )   rootfdstatfiledefaultkeyreturn)intstrr   bytes)formats   "4/usr/lib/python3.14/site-packages/cockpit/samples.py__annotate__r      s;      #  x} RW bjknbo     c                 s    \         P                  ! V\         P                  V R 7      p \         P                  ! TR4      p \         P                  ! T4       T'       d8   TP                  T4      \        T4      ,           pTP                  RT4      pYWT p \        T4      ;'       g    T#   \         d     R# i ; i  \
         dW   pTP                  \        P                  8w  d   \        P                  RY4        Rp?\         P                  ! T4       R# Rp?ii ; i  \         P                  ! T4       i ; i  \         d     R# i ; i)dir_fdN   zFailed to read %s: %ss   
)osopenO_RDONLYFileNotFoundErrorreadOSErrorerrnoZENODEVloggerZwarningZcloseZindexZlenr   Z
ValueError)	r   r   r   r   fddataZeZstartZends	   &&&&     r   read_int_filer%      s    WWXr{{6:wwr4  	


3#c(*jj&#4y##G#)  
  77ell"NN2H@
 	  sR   'B- B? D> *D> -B<;B<?D 
5D?D# D  D# #D;>EEc                   s,   a  ] tR t^7t o V 3R ltRtV tR# )SampleDescriptionc                sJ   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[;R&   # )r   nameZunitsZ	semantics	instanced)r   boolr   __classdict__   "r   r   ZSampleDescription.__annotate__7   s1     
I J  N  O	 r    N)__name__
__module____qualname____firstlineno____annotate_func____static_attributes____classdictcell__r+      @r   r&   r&   7   s      r   r&   c                   s>   a  ] tR t^>t o V 3R lR ltV 3R ltRtV tR# )Samplerc                $   < V ^8  d   QhRS[ RR/# r   samplesr   NSamplesr*   r,   r   r   Sampler.__annotate__A   s     " "g "$ "r   c                s    \         h)N)ZNotImplementedError)selfr:   s   &&r   sampleZSampler.sampleA   s    !!r   c                6   < V ^8  d   Qh/ S[ S[,          ;R&   # )r   descriptions)r   r&   r*   r,   r   r   r=   >   s     ()) r   r-   N)r.   r/   r0   r1   r?   r2   r3   r4   r5   r6   r   r7   r7   >   s     " "  r   r7   c                   s   a  ] tR t^Et o ]! RRRRR7      ]! RRRRR7      ]! RRRRR7      ]! RRRRR7      ]! R	RRR
R7      ]! RRRR
R7      ]! RRRR
R7      ]! RRRR
R7      .tV 3R lR ltRtV tR# )
CPUSamplerzcpu.basic.nicemilliseccounterFr(   zcpu.basic.userzcpu.basic.systemzcpu.basic.iowaitzcpu.core.niceTzcpu.core.userzcpu.core.systemzcpu.core.iowaitc                r8   r9   r;   r*   r,   r   r   ZCPUSampler.__annotate__R   s     M Mg M$ Mr   c           	     s   \        R 4      ;_uu_ 4       pV EFM  pVP                  R4      '       g   K  VP                  4       R,          w  rErgrVR,          ;'       g    Rp
V
'       d   Rp\        V4      \        ,          W R2,          V
&   \        V4      \        ,          W R2,          V
&   \        V4      \        ,          W R2,          V
&   \        V	4      \        ,          W R	2,          V
&   K  R
p\        V4      \        ,          W R2&   \        V4      \        ,          W R2&   \        V4      \        ,          W R2&   \        V	4      \        ,          W R	2&   EKP  	  RRR4       R#   + '       g   i     R# ; i)z
/proc/statcpu:Ni   N:i   NNNzcpu.corez.nicez.userz.systemz.iowaitz	cpu.basic)r   
startswithsplitr   MS_PER_JIFFY)r>   r:   ZstatlinerF   ZuserZniceZsystemZ_idleZiowaitZcoreZprefix   &&          r   r?   ZCPUSampler.sampleR   sA   ,4u--9=b9I642w$'F69$i,6NGhe,-d369$i,6NGhe,-d38;Fl8RGhg./58;Fl8RGhg./5(F03D	L0HGhe,-03D	L0HGhe,-25f+2LGhg./25f+2LGhg./!   s   AE3*C?E33F	r-   N	r.   r/   r0   r1   r&   rA   r?   r3   r4   r5   r6   r   rB   rB   E   s     *J	US*J	US,j)uU,j)uU/:yDQ/:yDQ+ZdS+ZdS
LM Mr   rB   c            
       s   a  ] tR t^gt o ]! RRRRR7      ]! RRRRR7      ]! RRRRR7      ]! RRRRR7      .tV 3R	 lR
 ltRtV tR# )MemorySamplermemory.freer   instantFrE   memory.usedmemory.cachedmemory.swap-usedc                r8   r9   r;   r*   r,   r   r   ZMemorySampler.__annotate__o   s     V Vg V$ Vr   c                s   \        R 4      ;_uu_ 4       pV UUUu/ uF1  q3P                  R^4      w  rEV\        VP                  R4      4      bK3  	  ppppRRR4       RXR,          ,          VR&   RVR,          VR,          ,
          ,          VR	&   RVR
,          VR,          ,           ,          VR&   RVR,          VR,          ,
          ,          VR&   R# u upppi   + '       g   i     L; i)z/proc/meminfo:z kB
Nr   ZMemFreerN   ZMemTotalZMemAvailablerP   ZBuffersZCachedrQ   Z	SwapTotalZSwapFreerR   )r   rH   r   strip)r>   r:   ZmeminforJ   ZkZvZitemss   &&     r   r?   ZMemorySampler.sampleo   s    /""g:Ac'$zzZ]_`OadaQAGGG,--Q'Ec # "&i(8!8!%z):U>=R)R!S#'5+;eHo+M#N &*eK.@5CT.T&U"# d #"s   C7CCCC-	r-   NrL   r5   r6   r   rM   rM   g   sQ     -)uM-)uM/7IO,gyER	LV Vr   rM   c                   s   a  ] tR t^yt o Rt]! RRRRR7      .t]V 3R lR l4       t]V 3R	 lR
 l4       t	V 3R lR lt
V 3R ltRtV tR# )CPUTemperatureSamplerNcpu.temperatureZcelsiusrO   TrE   c                s6   < V ^8  d   QhRS[ RS[S[,          /# )r   r   r   )r   r   r   r*   r,   r   r   "CPUTemperatureSampler.__annotate__   s     (! (!3 (!8C= (!r   c              #  st  "    \         P                  ! R \        P                  V R7      ;_uu_ 4       p\        P                  ! VR4      P                  4       P                  4       pRRR4       XR8X  d   R pM TR8X  d   RpMTR8X  d   RpMTR
9   d   RpMR# \        P                  ! T 4       F  pTP                  R4      '       g   K  T'       d    TP                  RR	4      p\         P                  ! T\        P                  T R7      ;_uu_ 4       p\        P                  ! TR4      P                  4       P                  4       pRRR4       T! X4      '       g   K  Tx  K  	  R#   + '       g   i     EL; i  \         d     R# i ; i  + '       g   i     LP; i  \         d     EK  i ; i5i)r'   r   r   NZatk0110c                 s    V R 8H  # )zCPU Temperaturer-   )labels   &r   Z<lambda>Z:CPUTemperatureSampler.detect_cpu_sensors.<locals>.<lambda>   s
    uPaGar   Zcpu_thermalZcoretempZ_inputZ_label)Zk8tempZk10temp)r	   r   r   r   r   decoderT   r   listdirZendswithreplace)r   r#   r'   Z	predicateZinput_filenameZlabel_filenamerX   s   &      r   detect_cpu_sensorsZ(CPUTemperatureSampler.detect_cpu_sensors   sZ    	VR[[@@Bwwr4(//1779 A
 99aI]"IZI**I  !jj0N!**844%3%;%;Hh%ON^R[[PPTV "D 1 8 8 : @ @ B Q
 !''  ! 1+ A@@  		6 QP( s   F8/F  4E,'F  /A$F8AF%4F
F%F8 F8,E=	7F  ;F8=F   FF8FF8F"F%!F8"F%%F50F84F55F8c                s0   < V ^8  d   QhRS[ S[,          /# )r   r   )r   r   r*   r,   r   r   rW      s     
D 
D(3- 
Dr   c               #  sR  "    \         P                  ! \        \        P                  \        P
                  ,          4      p T ;_uu_ 4        \        P                  ! T 4       F|  p\         P                  ! T\        P                  \        P
                  ,          T R7      ;_uu_ 4       p\        P                  T4       F  p\         RT RT 2x  K  	  R R R 4       K~  	  R R R 4       R #   \         d     R # i ; i  + '       g   i     K  ; i  + '       g   i     R # ; i5i)Nr   /)
r	   r   
HWMON_PATHr   r   O_DIRECTORYr   rZ   rU   r\   )Ztop_fdZ
hwmon_nameZ	subdir_fdsensors       r   scan_sensorsZ"CPUTemperatureSampler.scan_sensors   s     	[[R[[2>>-IJF V jj0
[[R[[2>>-IRXYY]f"7"J"J9"U!+Aj\6(CC #V ZY 1 V ! 		
 ZYY VVsY   D'>C- 
D'AD*-C?D#
D'-C<8D';C<<D'?D
	DD$		D'c                r8   r9   r;   r*   r,   r   r   rW      s     
I 
Ig 
I$ 
Ir   c                s   V P                   f#   \        \        P                  4       4      V n         V P                    Fm  p\	        V4      ;_uu_ 4       p\        VP                  4       P                  4       4      pV^ 8X  d    R R R 4        R #  R R R 4       XR,          VR,          V&   Ko  	  R #   + '       g   i     L); i)Nr
   rV   )sensorsZlistrU   ra   r   r   r   rT   )r>   r:   Zsensor_pathr`   Ztemperatures   &&   r   r?   ZCPUTemperatureSampler.sample   s    << 5 B B DEDL<<Kk""f!&++-"5"5"78!# #"# #
 7BD6HG%&{3 (""s   0B00C c                sF   < V ^8  d   Qh/ S[ S[S[,          ,          ;R&   # )r   rb   )r   r   r   r*   r,   r   r   rW   y   s     d3i ' r   )rb   )r.   r/   r0   r1   rb   r&   rA   staticmethodr\   ra   r?   r2   r3   r4   r5   r6   r   rU   rU   y   sa     #'G 	+Y	TRL (! (!T 
D 
D
I 
IA  r   rU   c            
       s   a  ] tR t^t o ]! RRRRR7      ]! RRRRR7      ]! RRRRR7      ]! R	RRRR7      .tV 3R
 lR ltRtV tR# )DiskSamplerdisk.all.readr   rD   FrE   disk.all.writtendisk.dev.readTdisk.dev.writtenc                r8   r9   r;   r*   r,   r   r   ZDiskSampler.__annotate__   s     '< '<g '<$ '<r   c                s   \        R 4      ;_uu_ 4       p^ p^ pV F  pVP                  4       P                  4       pV^ ,          pV^,          pV^,          p	V^	,          p
VR8X  d   KN  VP                  R4      '       d   Kg  VR,          R9   d    VR,          P	                  4       '       d   K  VP                  R4      '       d
   RV9   d   K  \        V	4      R,          p\        V
4      R,          pW;,          pWL,          pWR,          V&   WR,          V&   EK  	  W1R	&   WAR
&   RRR4       R#   + '       g   i     R# ; i)/proc/diskstats9zdm-:Nr   NZnvmeZp   rg   rh   re   rf   N)ZsdZhdZvd)r   rT   rH   rG   Zisdigitr   )r>   r:   	diskstatsZall_read_bytesZall_written_bytesrJ   fieldsZ	dev_majordev_nameZnum_sectors_readZnum_sectors_writtenZ
read_bytesZwritten_bytess   &&           r   r?   ZDiskSampler.sample   s2   #$$	N !!++-"1I	!!9#)!9 &,Qi# # &&u-- B<#55(2,:N:N:P:P &&v..3(? !12S8
 #$7 83 >,!2!5?(28E*+H5? "B (6O$*;&'M %$$$s   A+D0 AD0A D00E	r-   NrL   r5   r6   r   rd   rd      sP     /7IO,gyER/7IN,gyDQ	L'< '<r   rd   c                   s   a  ] tR t^t o ]! RRRRR7      ]! RRRRR7      ]! RRRRR7      ]! RRRRR7      ]! R	R
RRR7      ]! RRRRR7      .tRtV 3R lR ltV 3R ltRt	V t
R# )CGroupSamplercgroup.memory.usager   rO   TrE   cgroup.memory.limitcgroup.memory.sw-usagecgroup.memory.sw-limitcgroup.cpu.usagerC   rD   cgroup.cpu.sharesZcountNc                r8   r9   r;   r*   r,   r   r   CGroupSampler.__annotate__  s     +O +Og +O$ +Or   c                sv   V P                   f%   \        P                  P                  R4      V n         V P                   '       d   Rp\        P                  ! V4       F  w  p rEVP                  VR4      pV'       g   K#  \        VR^ 4      VR,          V&   \        VR4      VR,          V&   \        VR^ 4      VR	,          V&   \        VR
4      VR,          V&   \        VR4      VR,          V&   \        VR^ RR7      pV'       g   K  VR,          VR,          V&   K  	  R # Rp\        P                  ! V4       F}  w  p rEVP                  VR4      pV'       g   K#  \        VR^ 4      VR,          V&   \        VR4      VR,          V&   \        VR^ 4      VR	,          V&   \        VR4      VR,          V&   K  	  Rp	\        P                  ! V	4       Fb  w  p rEVP                  V	R4      pV'       g   K#  \        VR4      VR,          V&   \        VR4      p
V
'       g   KO  V
R,          VR,          V&   Kd  	  R # )Nz!/sys/fs/cgroup/cgroup.controllersz/sys/fs/cgroup/Z zmemory.currentrq   z
memory.maxrr   zmemory.swap.currentrs   zmemory.swap.maxrt   z
cpu.weightrv   zcpu.stats
   usage_usec)r   r
   ru   z/sys/fs/cgroup/memory/zmemory.usage_in_byteszmemory.limit_in_byteszmemory.memsw.usage_in_byteszmemory.memsw.limit_in_bytesz/sys/fs/cgroup/cpu/z
cpu.shareszcpuacct.usagei@B )
cgroups_v2r   pathZexistsZfwalkr[   r%   )r>   r:   Zcgroups_v2_pathry   _r   cgroupZ
usage_usecZmemory_pathZcpu_pathZ
usage_nsecs   &&         r   r?   ZCGroupSampler.sample  s   ??" ggnn-PQDO???/O&(hh&?"aor:9FvO_ab9c-.v69Fv|9\-.v6<I&Rgij<k01&9<I&Rc<d01&97DV\7Z+,V4*6:qmT
::Dt:KG./7 '@ 3K&(hh{&;"ak269FvOfhi9j-.v69FvOf9g-.v6<I&Roqr<s01&9<I&Ro<p01&9 '< -H&(hhx&8"ah37DV\7Z+,V4*6?C
::Dw:NG./7 '9r   c                r@   )r   rx   )r   r)   r*   r,   r   r   rw      s      % r   )rx   )r.   r/   r0   r1   r&   rA   rx   r?   r2   r3   r4   r5   r6   r   rp   rp      s     /)tT/)tT2GYRVW2GYRVW,j)tT-w	TRL "&J+O +O  r   rp   c                   s   a  ] tR tRt o ]P
                  ! R]P                  R7      t]! RRRRR7      ]! R	RRRR7      .t	]
V 3R
 lR l4       t]
V 3R lR l4       tV 3R lR ltRtV tR# )CGroupDiskIOi2  s:   \bread_bytes: (?P<read>\d+).*\nwrite_bytes: (?P<write>\d+))Zflagsdisk.cgroup.readr   rD   TrE   disk.cgroup.writtenc                s&   < V ^8  d   QhRS[ RS[/# r   r#   r   )r   r   r*   r,   r   r   CGroupDiskIO.__annotate__:  s     # #C #C #r   c                s   \         P                  ! R \        P                  V R7      ;_uu_ 4       p\        P                  ! VR4      P                  4       P                  4       pVR,          uuRRR4       #   + '       g   i     R# ; i)r{   r   i   :i   NNN)r	   r   r   r   r   rY   rT   )r#   Z	cgroup_fdcgroup_names   &  r   get_cgroup_nameZCGroupDiskIO.get_cgroup_name9  sU    [[2;;r::i'')T299;AACK r?	 ;:::s   <A77B	c                s<   < V ^8  d   QhRS[ RS[S[ S[ 3,          /# r   )r   r   r*   r,   r   r   r   B  s#       c3h r   c                s   \         P                  ! R \        P                  V R7      ;_uu_ 4       p\        P                  ! VR4      p\
        P                  ! \        P                  V4      pV'       dB   \        VP                  R4      4      p\        VP                  R4      4      pWE3uuRRR4       # RuuRRR4       #   + '       g   i     R# ; i)Zior   i   r   ZwriteN)r    r    )r	   r   r   r   r   reZsearchr|   IO_REr   Zgroup)r#   Zio_fdr$   Zmatch	proc_read
proc_writes   &     r   get_proc_ioZCGroupDiskIO.get_proc_ioA  s    [[r{{266%775$'DIIl00$7EF 34	 W!56
 , 76  7666s   A;C6CC	c                r8   r9   r;   r*   r,   r   r   r   O  s     N Ng N$ Nr   c           
     s   \         P                  ! R \        P                  \        P                  ,          4      ;_uu_ 4       pVR,          pVR,          p\        P
                  ! V4       F  pV^ ,          R8  g   V^ ,          R8  d   K!   \         P                  ! V\        P                  VR7      ;_uu_ 4       pV P                  V4      pV P                  V4      w  rRRR4       TP                  X^ 4      X,           Y7&   TP                  T^ 4      X	,           YG&   K  	  RRR4       R#   + '       g   i     LT; i  \        \        \        3 d     K  i ; i  + '       g   i     R# ; i)z/procr}   r~   Z0rj   r   N)r	   r   r   r   r_   rZ   ZO_PATHr   r   r   ZPermissionErrorZProcessLookupErrorZget)
r>   r:   Zproc_fdZreadsZwritesry   Zpid_fdr   r   r   s
   &&        r   r?   ZCGroupDiskIO.sampleO  s   [["++">??7./E23F

7+7S=DGcMT299WEE&*&:&:6&B040@0@0H-	 F &+YY{A%>%J"&,jja&@:&M# ,	 @? FE *?<NO  @??sU   A
E/E=%D."E*:E.D>9E=E>EE	EE	EE/	r-   N)r.   r/   r0   r1   r   ZcompileZSr   r&   rA   rc   r   r   r?   r3   r4   r5   r6   r   r|   r|   2  sv     JJU]_]a]abE,gyDQ/)tTL
 # #  N Nr   r|   c                   b   a  ] tR tRt o ]! RRRRR7      ]! RRRRR7      .tV 3R lR	 ltR
tV tR# )NetworkSamplerid  network.interface.txr   rD   TrE   network.interface.rxc                r8   r9   r;   r*   r,   r   r   ZNetworkSampler.__annotate__j  s     H Hg H$ Hr   c                sN   \        R 4      ;_uu_ 4       pV Fn  pVP                  4       pV^ ,          R,          R8w  d   K*  V^ ,          RR p\        V^,          4      VR,          V&   \        V^	,          4      VR,          V&   Kp  	  RRR4       R#   + '       g   i     R# ; i)z/proc/net/devrS   Nr   r   rl   )r   rH   r   )r>   r:   Znetwork_samplesrJ   rn   Zifaces   &&    r   r?   ZNetworkSampler.samplej  s    /""o' !9R=C'q	#29<VAY./69<VAY./6 ( #"""s   A5BB$	r-   NrL   r5   r6   r   r   r   d  s8     0'9PTU0'9PTUL
H Hr   r   c                   r   )MountSamplerix  mount.totalr   rO   TrE   
mount.usedc                r8   r9   r;   r*   r,   r   r   ZMountSampler.__annotate__~  s     N Ng N$ Nr   c                s   \        R 4      ;_uu_ 4       pV F  pV^ ,          R8w  d   K  VP                  4       vrErgpRV9   d   RVP                  R4      9   d   KE  RV9   d
   RV9   d   KU   \        P                  ! V4      p	T	P
                  p
YP                  ,          pYR,          T&   YT	P                  ,          ,
          TR,          T&   K  	  R	R	R	4       R	#   \         d     K  i ; i  + '       g   i     R	# ; i)
z/proc/mountsr]   z/loopZroZ,zrevokefs-fuseZflatpakr   r   N)r   rH   r   Zstatvfsr    Zf_frsizeZf_blocksZf_bfree)r>   r:   ZmountsrJ   Zfs_specZfs_fileZ_fs_vfstypeZ
fs_mntoptsZ_restZresZfrsizeZtotalrK   r   r?   ZMountSampler.sample~  s    .!!V7c>DHJJLA+E g%$*2B2B32G*G"g-)w2F**W-C -27&w/16#++9M1M%g.+  "!"  # "!!s1   AC/-CAC/C,	(C/+C,	,C//D 	r-   NrL   r5   r6   r   r   r   x  s4     -)tL,dKL
N Nr   r   c                   r   )BlockSampleri  block.device.readr   rD   TrE   block.device.writtenc                r8   r9   r;   r*   r,   r   r   ZBlockSampler.__annotate__  s     W Wg W$ Wr   c                s4   \        R 4      ;_uu_ 4       pV Fa  pVP                  4       P                  4       v
 rE rF  rGp\        V4      R,          VR,          V&   \        V4      R,          VR,          V&   Kc  	  RRR4       R#   + '       g   i     R# ; i)ri   rk   r   r   N)r   rT   rH   r   )r>   r:   rm   rJ   rz   ro   Zsectors_readZsectors_writtens   &&      r   r?   ZBlockSampler.sample  s    #$$	!UYU_U_UaUgUgUiRAAQ1PQ9<\9JS9P+,X6<?<PSV<V./9 " %$$$s   A(BB	r-   NrL   r5   r6   r   r   r     s7     -w	TR0'9PTUL
W Wr   r   )Nr   )&r!   Zloggingr   r   Ztypingr   r   r   r   r   r   r   r   Zcockpit._vendor.systemd_ctypesr	   ZsysconfZsysconf_namesZUSER_HZrI   r^   r   r<   Z	getLoggerr.   r"   r%   r&   r7   rB   rM   rU   rd   rp   r|   r   r   r   ZSAMPLERSr-   r   r   <module>r      s2     	 	 Z Z Z 1
**R%%l3
47Q;wS9
 c3h
			8	$<
 " "M MDVG V$JIG JIZ/<' /<d7OG 7Ot/N7 /NdHW H(N7 N@W7 W" 
r   