Ë
    |¾�j[  ã                   óŽ   — d dl Z d dlZd dlmZ d dlmZ  ej                  e«      Z G d„ d«      Z	 G d„ d«      Z
 G d„ d	e«      Zy)
é    N)ÚPlugin)Ú
AdbLoggingc                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTotalCPUStatc                 ó�   — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        y ©N©
ÚuserÚniceÚsystemÚidleÚiowaitÚirqÚsoftirqÚstealstolenÚguestÚ
guest_nice)Úselfr
   r   r   r   r   r   r   r   r   r   s              ú]/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/ppadb/plugins/device/cpustat.pyÚ__init__zTotalCPUStat.__init__
   sI   € ØˆŒ	ØˆŒ	ØˆŒØˆŒ	ØˆŒØˆŒØˆŒØ&ˆÔØˆŒ
Ø$ˆ�ó    c                 ó  — | j                   | j                  z   | j                  z   | j                  z   | j                  z   | j
                  z   | j                  z   | j                  z   | j                  z   | j                  z   S r   r	   ©r   s    r   ÚtotalzTotalCPUStat.total   sŠ   € Ø�y‰y˜4Ÿ9™9Ñ$ t§{¡{Ñ2°T·Y±YÑ>ÀÇÁÑLÈtÏxÉxÑWÐZ^×ZfÑZfÑfÐim×iyÑiyÑyð  }A÷  }Gñ  }Gñ  Gð  JN÷  JYñ  JYñ  Yð  	Yr   c                 ó†  — t        dddddddddd«
      }| j                  |j                  z   |_        | j                  |j                  z   |_        | j                  |j                  z   |_        | j                  |j                  z   |_        | j
                  |j
                  z   |_        | j                  |j                  z   |_        | j                  |j                  z   |_        | j                  |j                  z   |_        | j                  |j                  z   |_	        | j                  |j                  z   |_
        |S ©Nr   ©r   r
   r   r   r   r   r   r   r   r   r   ©r   ÚotherÚsummarys      r   Ú__add__zTotalCPUStat.__add__   só   € Ü˜q ! Q¨¨1¨a°°A°q¸!Ó<ˆà—y‘y 5§:¡:Ñ-ˆŒØ—y‘y 5§:¡:Ñ-ˆŒØŸ™ u§|¡|Ñ3ˆŒØ—y‘y 5§:¡:Ñ-ˆŒØŸ™ u§|¡|Ñ3ˆŒØ—h‘h §¡Ñ*ˆŒØŸ,™,¨¯©Ñ6ˆŒØ"×.Ñ.°×1BÑ1BÑBˆÔØŸ
™
 U§[¡[Ñ0ˆŒØ!Ÿ_™_¨u×/?Ñ/?Ñ?ˆÔàˆr   c                 ó†  — t        dddddddddd«
      }| j                  |j                  z
  |_        | j                  |j                  z
  |_        | j                  |j                  z
  |_        | j                  |j                  z
  |_        | j
                  |j
                  z
  |_        | j                  |j                  z
  |_        | j                  |j                  z
  |_        | j                  |j                  z
  |_        | j                  |j                  z
  |_	        | j                  |j                  z
  |_
        |S r   r   ©r   r   Úresults      r   Ú__sub__zTotalCPUStat.__sub__)   só   € Ü˜a  A q¨!¨Q°°1°a¸Ó;ˆà—i‘i %§*¡*Ñ,ˆŒØ—i‘i %§*¡*Ñ,ˆŒØŸ™ e§l¡lÑ2ˆŒØ—i‘i %§*¡*Ñ,ˆŒØŸ™ e§l¡lÑ2ˆŒØ—X‘X §	¡	Ñ)ˆŒ
ØŸ™¨¯©Ñ5ˆŒØ!×-Ñ-°×0AÑ0AÑAˆÔØ—z‘z E§K¡KÑ/ˆŒØ ŸO™O¨e×.>Ñ.>Ñ>ˆÔàˆr   c                 ód   — t        | «      }dj                  d„ |j                  «       D «       «      S )Nú, c              3   ó&   K  — | ]	  }d |z  –— Œ y­w©z%s: %sN© ©Ú.0Úitems     r   ú	<genexpr>z'TotalCPUStat.__str__.<locals>.<genexpr>;   ó   è ø€ ÒC¨T˜ D�ÑCùó   ‚©ÚvarsÚjoinÚitems©r   Úattrss     r   Ú__str__zTotalCPUStat.__str__9   ó&   € Ü�T“
ˆØ�y‰yÑC°U·[±[³]ÔCÓCÐCr   N)Ú__name__Ú
__module__Ú__qualname__r   r   r!   r%   r7   r*   r   r   r   r   	   s   „ ò
%òYòò ó Dr   r   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚProcessCPUStatc                 ó.   — || _         || _        || _        y r   )ÚnameÚutimeÚstime)r   r?   r@   rA   s       r   r   zProcessCPUStat.__init__?   s   € ØˆŒ	ØˆŒ
Øˆ�
r   c                 ó¬   — t        | j                  dd«      }| j                  |j                  z   |_        | j                  |j                  z   |_        |S r   ©r=   r?   r@   rA   r   s      r   r!   zProcessCPUStat.__add__D   sA   € Ü  §¡¨A¨qÓ1ˆØŸ
™
 U§[¡[Ñ0ˆŒØŸ
™
 U§[¡[Ñ0ˆŒØˆr   c                 ó¬   — t        | j                  dd«      }| j                  |j                  z
  |_        | j                  |j                  z
  |_        |S r   rC   r#   s      r   r%   zProcessCPUStat.__sub__J   sA   € Ü §	¡	¨1¨aÓ0ˆØ—z‘z E§K¡KÑ/ˆŒØ—z‘z E§K¡KÑ/ˆŒØˆr   c                 ód   — t        | «      }dj                  d„ |j                  «       D «       «      S )Nr'   c              3   ó&   K  — | ]	  }d |z  –— Œ y­wr)   r*   r+   s     r   r.   z)ProcessCPUStat.__str__.<locals>.<genexpr>R   r/   r0   r1   r5   s     r   r7   zProcessCPUStat.__str__P   r8   r   c                 ó4   — | j                   | j                  z   S r   )r@   rA   r   s    r   r   zProcessCPUStat.totalT   s   € Ø�z‰z˜DŸJ™JÑ&Ð&r   N)r9   r:   r;   r   r!   r%   r7   r   r*   r   r   r=   r=   >   s   „ òò
òòDó'r   r=   c                   óV   — e Zd Z ej                  d«      Zd„ Zd	d„Zd„ Zd„ Z	d„ Z
d„ Zy)
ÚCPUStatz`cpu\s+([\d]+)\s([\d]+)\s([\d]+)\s([\d]+)\s([\d]+)\s([\d]+)\s([\d]+)\s([\d]+)\s([\d]+)\s([\d]+)\sc                 ó"   — | j                  «       S r   )Úget_total_cpur   s    r   Ú	cpu_timeszCPUStat.cpu_times\   s   € Ø×!Ñ!Ó#Ð#r   c                 óä   — | j                  «       }t        j                  |«       | j                  «       }||z
  }t        |j                  |j
                  z   |j                  «       z  dz  d«      S )Néd   é   )rL   ÚtimeÚsleepÚroundr
   r   r   )r   ÚintervalÚcpu_times_startÚcpu_times_endÚdiffs        r   Úcpu_percentzCPUStat.cpu_percent_   sZ   € ØŸ.™.Ó*ˆÜ�
‰
�8ÔØŸ™Ó(ˆà˜Ñ.ˆÜ�t—y‘y 4§;¡;Ñ.°$·*±*³,Ñ>À#ÑEÀqÓIÐIr   c                 óf   — | j                  d«      }t        j                  d|«      }t        |«      S )Nzls /sys/devices/system/cpuz	cpu[0-9+])ÚshellÚreÚfindallÚlen©r   r$   Úmatchs      r   Ú	cpu_countzCPUStat.cpu_countg   s+   € Ø—‘Ð8Ó9ˆÜ—
‘
˜<¨Ó0ˆÜ�5‹zÐr   c                 ó  — | j                  d«      }| j                  j                  |«      }|s2t        |j	                  «       «      dk7  rt
        j                  d«       y t        t        d„ |j	                  «       «      Ž S )Nzcat /proc/staté
   z-Can't get the total cpu usage from /proc/statc                 ó   — t        | «      S r   )Úint)Úxs    r   ú<lambda>z'CPUStat.get_total_cpu.<locals>.<lambda>s   s
   € ¬3¨q«6€ r   )	rY   Útotal_cpu_patternÚsearchr\   ÚgroupsÚloggerÚerrorr   Úmapr]   s      r   rK   zCPUStat.get_total_cpul   se   € Ø—‘Ð,Ó-ˆØ×&Ñ&×-Ñ-¨fÓ5ˆÙœ˜UŸ\™\›^Ó,°Ò2Ü�L‰LÐHÔIØäœSÑ!1°5·<±<³>ÓBÐCÐCr   c                 óð   — | j                  dj                  |«      «      j                  «       }d|v rt        ddd«      S |j	                  «       }t        |d   t        |d   «      t        |d   «      «      S )Nzcat /proc/{}/statúNo such file or directoryÚ r   é   é   é   )rY   ÚformatÚstripr=   Úsplitrc   )r   Úpidr$   r4   s       r   Úget_pid_cpuzCPUStat.get_pid_cpuu   sj   € Ø—‘Ð/×6Ñ6°sÓ;Ó<×BÑBÓDˆà&¨&Ñ0Ü! " a¨Ó+Ð+à—L‘L“NˆEÜ! %¨¡(¬C°°b±	«N¼CÀÀbÁ	»NÓKÐKr   c           	      ód  — | j                  dj                  |«      «      }t        t        d„ |j	                  d«      «      «      }i }|D ]c  }| j                  dj                  ||«      «      }d|vsŒ)|j	                  «       }t        |d   t        |d   «      t        |d   «      «      ||<   Œe |S )	Nzls /proc/{}/taskc                 ó"   — | j                  «       S r   )rs   )Úlines    r   re   z,CPUStat.get_all_thread_cpu.<locals>.<lambda>€   s   €  T§Z¡Z£\€ r   ú
zcat /proc/{}/task/{}/statrm   ro   rp   rq   )rY   rr   Úlistrk   rt   r=   rc   )r   ru   r$   ÚtidsÚthread_resultÚtidr4   s          r   Úget_all_thread_cpuzCPUStat.get_all_thread_cpu~   s®   € Ø—‘Ð.×5Ñ5°cÓ:Ó;ˆÜ”CÑ1°6·<±<ÀÓ3EÓFÓGˆàˆØò 	^ˆCØ—Z‘ZÐ ;× BÑ BÀ3ÈÓ LÓMˆFà*°&Ò8ØŸ™›�Ü%3°E¸!±H¼cÀ%ÈÁ)»nÌcÐRWÐXZÑR[ËnÓ%]�˜cÒ"ð	^ð Ðr   N)ro   )r9   r:   r;   rZ   Úcompilerf   rL   rW   r_   rK   rv   r   r*   r   r   rI   rI   X   s8   „ Ø"˜Ÿ
™
ØjólÐò$óJòò
DòLór   rI   )rZ   rP   Úppadb.pluginsr   Úppadb.utils.loggerr   Ú
get_loggerr9   ri   r   r=   rI   r*   r   r   ú<module>r„      sF   ðÛ 	Û å  Ý )à	ˆ×	Ñ	˜xÓ	(€÷2Dñ 2D÷j'ñ 'ô42ˆfõ 2r   