grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a MÝ_é�ã@sêdZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z ddl m Z ddl mZdd l mZdd l mZdd l mZdd l mZdd l mZddl mZddl mZddl mZddl mZddl mZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%zddl mZ&Wnle'�yðZ(zRe)e(ƒ *¡ +d¡�rÚe ,¡dd k�rÚd!Z-e-d"7Z-e-d#7Z-e.e-ƒ‚n‚WYdZ([(n dZ([(00ej/d$k�rddl0Z0ndZ0gd%¢Z1d&Z2d'Z3d(ej4vZ5e0du�r6d)Z6ne0 7d*d+d)i¡Z8e8j6Z6e&j9e j:e&j;e je&j?e j@e&jAe jBe&jCe jDe&jEe jFe&jGe jHe&jIe jJe&jKe jLe&jMe jNe&jOe2e&jPe jQi ZRe0du�ràGd,d-„d-e0j7ƒZSeTƒ UeSjV¡e0du�rüdZWdZXd.ZYd/ZZn Gd0d1„d1e0j7ƒZ[eTƒ Ue[jV¡e\ddd.d/d2d3d d4d5d6d7d8d9d:d;dd?d@dAdBdC�Z]e dDgdE¢ƒZ^e dFgdG¢ƒZ_e dHgdI¢ƒZ`e dJe`jadKƒZbe dLdMdNgƒZce dOdPdQ decja¡ƒZee dRgdS¢ƒZfedTdU�dVdW„ƒZgdXdY„ZhedZd[„ƒZid\d]„Zjd^d_„Zke&jlZld`da„Zmdbdc„Znddde„Zodfdg„Zpdhdi„Zqdjdk„Zrdldm„Zsdndo„Ztdpaudqdr„Zvd‘dsdt„Zwdudv„Zxdwdx„Zydydz„Zzd{d|„Z{da|d}d~„Z}dd€„Z~d�d‚„Zdƒd„„Z€Gd…d†„d†e�ƒZ‚e&jƒZƒe&j„Z„e&j…Z…d‡dˆ„Z†d’d‰dŠ„Z‡d‹dŒ„Zˆd�dŽ„Z‰Gd�d�„d�e�ƒZŠdS)“z Windows platform implementation.éN)Ú namedtupleé)Ú_common)Ú AccessDenied)Ú conn_tmap)Úconn_to_ntuple)Údebug)ÚENCODING)Ú ENCODING_ERRS)Ú isfile_strict)Úmemoize)Úmemoize_when_activated)Ú NoSuchProcess)Úparse_environ_block)ÚTimeoutExpired)Ú usage_percent)Úlong)Ú lru_cache)ÚPY3©Úrange)Úunicode)ÚABOVE_NORMAL_PRIORITY_CLASS)ÚBELOW_NORMAL_PRIORITY_CLASS)ÚHIGH_PRIORITY_CLASS)ÚIDLE_PRIORITY_CLASS)ÚNORMAL_PRIORITY_CLASS)ÚREALTIME_PRIORITY_CLASS)Ú_psutil_windowszdll load failedéz3this Windows version is too old (< Windows Vista); z:psutil 3.4.2 is the latest version which supports Windows z2000, XP and 2003 server)éé)Úwin_service_iterÚwin_service_getrrrrrrÚIOPRIO_VERYLOWÚ IOPRIO_LOWÚ IOPRIO_NORMALÚ IOPRIO_HIGHÚCONN_DELETE_TCBÚAF_LINKZ DELETE_TCBi+Z__pypy__éÿÿÿÿÚ AddressFamilyr)c@s$eZdZeZeZeZeZeZeZdS)ÚPriorityN) Ú__name__Ú __module__Ú __qualname__rrrrrr©r0r0ú7/usr/lib64/python3.9/site-packages/psutil/_pswindows.pyr,ms r,ér c@seZdZdZdZdZdZdS)Ú IOPriorityrrr2r N)r-r.r/r$r%r&r'r0r0r0r1r3}sr3r!éééé é é é é éééééééé)Ú num_handlesÚ ctx_switchesÚ user_timeÚ kernel_timeÚ create_timeÚ num_threadsÚ io_rcountÚ io_wcountÚ io_rbytesÚ io_wbytesÚio_count_othersÚio_bytes_othersÚnum_page_faultsÚ peak_wsetÚwsetÚpeak_paged_poolÚ paged_poolÚpeak_non_paged_poolÚnon_paged_poolÚpagefileÚ peak_pagefileÚ mem_privateÚ scputimes)ÚuserÚsystemÚidleÚ interruptÚdpcÚsvmem)ÚtotalZ availableÚpercentÚusedÚfreeÚpmem) ÚrssÚvmsrPrQrRrSrTZpeak_nonpaged_poolZ nonpaged_poolrWrXZprivateÚpfullmem)ÚussÚ pmmap_groupedÚpathrfÚ pmmap_extz addr perms ú Úpio)Z read_countZ write_countÚ read_bytesÚ write_bytesÚ other_countZ other_bytesi)ÚmaxsizecCs@d | d¡dd…¡}t |¡}|t|ƒd…}tj ||¡S)z�Convert paths using native DOS format like: "\Device\HarddiskVolume1\Windows\systemew\file.txt" into: "C:\Windows\systemew\file.txt" ú\Nr )ÚjoinÚsplitÚcextZwin32_QueryDosDeviceÚlenÚosrk)ÚsZrawdriveZ driveletterZ remainderr0r0r1Úconvert_dos_pathÀs rzcCs&tr|St|tƒr|S| tt¡SdS)zmEncode a unicode string to a byte string by using the default fs encoding + "replace" error handler. N)rÚ isinstanceÚstrÚencoder r )ryr0r0r1Ú py2_strencodeÍs  r~cCst ¡S©N)rvÚ getpagesizer0r0r0r1r€Úsr€c CsNt ¡}|\}}}}}}|}|}|} ||} t|||dd�} t||| | | ƒS)z&System virtual memory as a namedtuple.r©Zround_)rvÚ virtual_memrr`) ÚmemZtotphysZ availphysZtotpagefZ availpagefZtotvirtZfreevirtraZavailrdrcrbr0r0r1Úvirtual_memoryäsr„cCsBt ¡}|d}|d}||}t||dd�}t ||||dd¡S)z=Swap system memory as a (total, used, free, sin, sout) tuple.r2r rr�r)rvr‚rrZsswap)rƒrardrcrbr0r0r1Ú swap_memoryñs r…cCsPtrt|tƒr|jtdd�}t |¡\}}||}t||dd�}t  ||||¡S)z'Return disk usage associated with path.Ústrict)Úerrorsrr�) rr{ÚbytesÚdecoder rvÚ disk_usagerrZ sdiskusage)rkrardrcrbr0r0r1rŠs rŠcCst |¡}dd„|DƒS)zReturn disk partitions.cSsg|]}tj|Ž‘qSr0)rZ sdiskpart©Ú.0Úxr0r0r1Ú óz#disk_partitions..)rvÚdisk_partitions)ÚallÚrawlistr0r0r1r�s r�cCs<t ¡\}}}tdd„tt ¡ŽDƒŽ}t||||j|jƒS)z)Return system CPU times as a named tuple.cSsg|] }t|ƒ‘qSr0)Úsum)rŒÚnr0r0r1rŽ r�zcpu_times..)rvÚ cpu_timesrZÚzipÚ per_cpu_timesr^r_)r[r\r]Z percpu_summedr0r0r1r•s ÿr•cCs:g}t ¡D](\}}}}}t|||||ƒ}| |¡q |S)z6Return system per-CPU times as a list of named tuples.)rvr—rZÚappend)Úretr[r\r]r^r_Úitemr0r0r1r—%s  r—cCst ¡S)z0Return the number of logical CPUs in the system.)rvÚcpu_count_logicalr0r0r0r1r›.sr›cCst ¡S)z6Return the number of physical CPU cores in the system.)rvZcpu_count_physr0r0r0r1Úcpu_count_physical3srœcCs$t ¡\}}}}d}t ||||¡S)zReturn CPU statistics.r)rvÚ cpu_statsrZ scpustats)rEZ interruptsZdpcsZsyscallsZsoft_interruptsr0r0r1r�8s  ÿr�cCs(t ¡\}}d}t t|ƒ|t|ƒ¡gS)zMReturn CPU frequency. On Windows per-cpu frequency is not supported. ç)rvÚcpu_freqrZscpufreqÚfloat)ZcurrZmax_Zmin_r0r0r1rŸ@s rŸFcCs*tst ¡dat ¡}tdd„|DƒƒS)z~Return the number of processes in the system run queue averaged over the last 1, 5, and 15 minutes respectively as a tupleTcSsg|]}t|dƒ‘qS)r2)Úround)rŒÚloadr0r0r1rŽWr�zgetloadavg..)Ú_loadavg_inititializedrvZinit_loadavg_counterÚ getloadavgÚtuple)Z raw_loadsr0r0r1r¤Ls r¤c Csš|tvr(td|d dd„tDƒ¡fƒ‚t|\}}t |||¡}tƒ}|D]D}|\}}} } } } } t||| | | | t|dkr~| ndd�}| |¡qLt |ƒS)zˆReturn socket connections. If pid == -1 return system-wide connections (as opposed to connections opened by one process only). z+invalid %r kind argument; choose between %sz, cSsg|] }t|ƒ‘qSr0)Úreprr‹r0r0r1rŽer�z#net_connections..r*N)Úpid) rÚ ValueErrorrtrvÚnet_connectionsÚsetrÚ TCP_STATUSESÚaddÚlist)ÚkindÚ_pidZfamiliesÚtypesr’r™ršÚfdZfamÚtypeZladdrZraddrÚstatusr§Úntr0r0r1r©_sÿ ÿ r©cCsxi}t ¡}| ¡D]^\}}ts>t|tƒs6Jt|ƒƒ‚t|ƒ}|\}}}}tt dƒr^t   |¡}t   ||||¡||<q|S)z)Get NIC stats (isup, duplex, speed, mtu).Ú NicDuplex) rvÚ net_if_statsÚitemsrr{rr²r~ÚhasattrrrµZ snicstats)r™ZrawdictÚnamer·ZisupZduplexZspeedZmtur0r0r1r¶qs   r¶cCst ¡}tdd„| ¡DƒƒS)zsReturn network I/O statistics for every network interface installed on the system as a dict of raw tuples. cSsg|]\}}t|ƒ|f‘qSr0©r~)rŒÚkÚvr0r0r1rŽ…r�z#net_io_counters..)rvÚnet_io_countersÚdictr·©r™r0r0r1r½€sr½cCs8g}t ¡D]&}t|ƒ}t|dƒ|d<| |¡q |S)z,Return the addresses associated to each NIC.r)rvÚ net_if_addrsr­r~r˜)r™r·r0r0r1rÀˆs   rÀcCsdt ¡\}}}}|dk}t|d@ƒ}t|d@ƒ}|r8dS|s@|rHtj}n|dkrVtj}t |||¡S)zReturn battery information.ré€r6Nr*)rvÚsensors_batteryÚboolrZPOWER_TIME_UNLIMITEDZPOWER_TIME_UNKNOWNZsbattery)Z acline_statusÚflagsrbZsecsleftZ power_pluggedZ no_batteryZchargingr0r0r1r—s  rÂcCs,tt ¡ƒ}t|tƒdkr tS|a|SdS)z:The system boot time expressed in seconds since the epoch.rN)r rvÚ boot_timeÚabsÚ _last_btimer¿r0r0r1rųs  rÅcCsHg}t ¡}|D]2}|\}}}t|ƒ}t |d||d¡}| |¡q|S)z:Return currently connected users as a list of namedtuples.N)rvÚusersr~rZsuserr˜)Úretlistr’ršr[ÚhostnameZtstampr´r0r0r1rÈÁs  rÈccs*t ¡D]\}}tt|ƒt|ƒƒVqdS)z*Yields a list of WindowsService instances.N)rvZwinservice_enumerateÚWindowsServicer~)r¹Ú display_namer0r0r1r"Òsr"cCst|dƒ}| ¡d|_|S)zBOpen a Windows service and return it as a WindowsService instance.NrÌ)rËÚ _query_configÚ _display_name)r¹Zservicer0r0r1r#Øs r#c@sžeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z e j dd„ƒZ dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$S)%rËz(Represents an installed Windows service.cCs||_||_dSr)Ú_namerÎ)Úselfr¹rÌr0r0r1Ú__init__âszWindowsService.__init__cCs d|j|jf}d|jj|fS)Nz(name=%r, display_name=%r)z%s%s)rÏrÎÚ __class__r-)rÐZdetailsr0r0r1Ú__str__æsÿzWindowsService.__str__cCsd| ¡t|ƒfS)Nz <%s at %s>)rÓÚid©rÐr0r0r1Ú__repr__ëszWindowsService.__repr__cCst|tƒstS|j|jkSr)r{rËÚNotImplementedrÏ©rÐÚotherr0r0r1Ú__eq__îs zWindowsService.__eq__cCs ||k Srr0rØr0r0r1Ú__ne__õszWindowsService.__ne__cCs\| ¡�$t |j¡\}}}}Wdƒn1s20Ytt|ƒt|ƒt|ƒt|ƒd�S)N)rÌÚbinpathÚusernameÚ start_type)Ú_wrap_exceptionsrvZwinservice_query_configrÏr¾r~)rÐrÌrÜrÝrÞr0r0r1rÍøs  ÿ(üzWindowsService._query_configcCsP| ¡� t |j¡\}}Wdƒn1s.0Y|dkrDd}t||d�S)Nr)r³r§)rßrvZwinservice_query_statusrÏr¾)rÐr³r§r0r0r1Ú _query_statuss  .zWindowsService._query_statusc cs€z dVWnptyz}zXt|ƒr:td|jd|jd�‚n,|jtjtjfvrdtd|jd|jd�‚n‚WYd}~n d}~00dS)z{Ctx manager which translates bare OSError and WindowsError exceptions into NoSuchProcess and AccessDenied. Nz2service %r is not querable (not enough privileges)©r§r¹Úmsgzservice %r does not exist)) ÚOSErrorÚis_permission_errrrÏÚwinerrorrvZERROR_INVALID_NAMEZERROR_SERVICE_DOES_NOT_EXISTr©rÐÚerrr0r0r1rß s$ ÿþÿþzWindowsService._wrap_exceptionscCs|jS)z¢The service name. This string is how a service is referenced and can be passed to win_service_get() to get a new WindowsService instance. )rÏrÕr0r0r1r¹!szWindowsService.namecCs|jS)z_The service display name. The value is cached when this class is instantiated. )rÎrÕr0r0r1rÌ(szWindowsService.display_namecCs | ¡dS)zwThe fully qualified path to the service binary/exe file as a string, including command line arguments. rÜ©rÍrÕr0r0r1rÜ.szWindowsService.binpathcCs | ¡dS)z,The name of the user that owns this service.rÝrèrÕr0r0r1rÝ4szWindowsService.usernamecCs | ¡dS)zRA string which can either be "automatic", "manual" or "disabled". rÞrèrÕr0r0r1rÞ8szWindowsService.start_typecCs | ¡dS)zzThe process PID, if any, else None. This can be passed to Process class to control the service's process. r§©ràrÕr0r0r1r§@szWindowsService.pidcCs | ¡dS)zService status as a string.r³rérÕr0r0r1r³FszWindowsService.statuscCstt | ¡¡ƒS)zService long description.)r~rvZwinservice_query_descrr¹rÕr0r0r1Ú descriptionJszWindowsService.descriptioncCs>| ¡}| | ¡¡| ¡|d<| ¡|d<| ¡|d<|S)zUUtility method retrieving all the information above as a dictionary. r¹rÌrê)rÍÚupdateràr¹rÌrê)rÐÚdr0r0r1Úas_dictPs    zWindowsService.as_dictN)r-r.r/Ú__doc__rÑrÓrÖrÚrÛrÍràÚ contextlibÚcontextmanagerrßr¹rÌrÜrÝrÞr§r³rêrír0r0r0r1rËßs&  rËcCs<t|tƒsJ|ƒ‚|jtjtjfvp:t|ddƒtjtjfvS)z*Return True if this is a permission error.rår*) r{rãÚerrnoÚEPERMZEACCESÚgetattrrvZERROR_ACCESS_DENIEDZERROR_PRIVILEGE_NOT_HELD)Úexcr0r0r1rä�s ÿÿräcCsFt|tƒsJ|ƒ‚t|ƒr&t||d�S|jtjkr>t||d�S|‚dS)z3Convert OSError into NoSuchProcess or AccessDenied.©r§r¹N)r{rãrärrñZESRCHr)rôr§r¹r0r0r1Úconvert_oserror˜s    röcst ˆ¡‡fdd„ƒ}|S)zDDecorator which converts OSError into NoSuchProcess or AccessDenied.c sTzˆ|g|¢Ri|¤ŽWStyN}zt||j|jd�‚WYd}~n d}~00dS)Nrõ)rãrör§rÏ)rÐÚargsÚkwargsrç©Úfunr0r1Úwrapper¤sz wrap_exceptions..wrapper©Ú functoolsÚwraps©rúrûr0rùr1Úwrap_exceptions¢srcst ˆ¡‡fdd„ƒ}|S)z€Workaround for https://github.com/giampaolo/psutil/issues/875. See: https://stackoverflow.com/questions/4457745#4457745 c s²d}d}t|ƒD]|}zˆ|g|¢Ri|¤ŽWStyŠ}zB|}|jtkrtt |¡t|ddƒ}WYd}~qn‚WYd}~qd}~00qdˆ||f}t|j|j |d�‚dS)Nç-Cëâ6?é!r2ç{®Gáz¤?zI%s retried %s times, converted to AccessDenied as it's still returning %rrá) rÚ WindowsErrorråÚERROR_PARTIAL_COPYÚtimeÚsleepÚminrr§rÏ) rÐr÷røÚdelayÚtimesr�Ú_rçrârùr0r1rû±s    ÿz)retry_error_partial_copy..wrapperrürÿr0rùr1Úretry_error_partial_copy­sr c@sÀeZdZdZgd¢Zdd„Zdd„Zdd„Zed d „ƒZ d d „Z e ed d„ƒƒZ e e dd„ƒƒZe e dd„ƒƒZdd„Zdd„Ze dd„ƒZe dd„ƒZdd„Ze dd„ƒZe dd „ƒZe dMd"d#„ƒZe d$d%„ƒZe d&d'„ƒZe d(d)„ƒZe d*d+„ƒZe d,d-„ƒZe d.d/„ƒZe d0d1„ƒZe e d2d3„ƒƒZe d4d5„ƒZ e dNd7d8„ƒZ!e d9d:„ƒZ"e d;d<„ƒZ#e d=d>„ƒZ$e d?d@„ƒZ%e dAdB„ƒZ&e dCdD„ƒZ'e dEdF„ƒZ(e dGdH„ƒZ)e dIdJ„ƒZ*e dKdL„ƒZ+d!S)OÚProcessz1Wrapper class around underlying C implementation.)r§rÏÚ_ppidÚ_cachecCs||_d|_d|_dSr)r§rÏr)rÐr§r0r0r1rÑÌszProcess.__init__cCs|j |¡|j |¡dSr)Ú _proc_infoZcache_activateÚexerÕr0r0r1Ú oneshot_enterÓs zProcess.oneshot_entercCs|j |¡|j |¡dSr)rZcache_deactivaterrÕr0r0r1Ú oneshot_exit×s zProcess.oneshot_exitcCs$t |j¡}t|ƒttƒks J‚|S)zOReturn multiple information about this process as a raw tuple. )rvZ proc_infor§rwÚ pinfo_map©rÐr™r0r0r1rÛs zProcess._proc_infocCs,|jdkrdS|jdkrdStj | ¡¡S)zbReturn process name, which on Windows is always the final part of the executable. rzSystem Idle Processr!ZSystem)r§rxrkÚbasenamerrÕr0r0r1r¹äs   z Process.namec Cs�trbzt |j¡}Wqnty^}z2|jdkrHtd|ƒt|j|jƒ‚‚WYd}~qnd}~00n t |j¡}t szt |ƒ}|  d¡rŒt |ƒS|S)Néz%r forced into AccessDeniedrs) ÚPYPYrvZproc_exer§rrñrrrÏrr~Ú startswithrz)rÐrrçr0r0r1rðs    z Process.exec CsŽtjtjkrdztj|jdd�}Wqtty`}z(t|ƒrJtj|jdd�}n‚WYd}~qtd}~00ntj|jdd�}tr||Sdd„|DƒSdS)NT)Zuse_pebFcSsg|] }t|ƒ‘qSr0rº)rŒryr0r0r1rŽr�z#Process.cmdline..)rvZWINVERZ WINDOWS_8_1Z proc_cmdliner§rãrär)rÐr™rçr0r0r1Úcmdlines zProcess.cmdlinecCs6t |j¡}|r*ts*t|tƒs*Jt|ƒƒ‚tt|ƒƒSr) rvZ proc_environr§rr{rr²rr~)rÐZustrr0r0r1Úenvirons zProcess.environcCs4ztƒ|jWSty.t|j|jƒ‚Yn0dSr)Úppid_mapr§ÚKeyErrorrrÏrÕr0r0r1Úppid!s z Process.ppidcCs¾zt |j¡WSty¸}z’t|ƒr¢| ¡}|td|td|td|td|td|td|td|td|td |td f WYd}~S‚WYd}~n d}~00dS) NrPrQrRrSrTrUrVrWrXrY)rvZproc_memory_infor§rãrärr)rÐrçÚinfor0r0r1Ú_get_raw_meminfo's"          ö zProcess._get_raw_meminfocCs(| ¡}|d}|d}t||f|ŽS)Nr2r5)r re)rÐÚtrfrgr0r0r1Ú memory_info=szProcess.memory_infocCs,| ¡}t |j¡}|tƒ9}t||fŽSr)r"rvZproc_memory_ussr§r€rh)rÐZ basic_memrir0r0r1Úmemory_full_infoGs  zProcess.memory_full_infoc cs†zt |j¡}Wn4tyD}zt||j|jƒ‚WYd}~nFd}~00|D]6\}}}}t|ƒ}tsjt|ƒ}t |ƒ}||||fVqJdSr) rvZproc_memory_mapsr§rãrörÏrzrr~Úhex)rÐÚrawrçZaddrZpermrkrfr0r0r1Ú memory_mapsNs&zProcess.memory_mapscCs t |j¡Sr)rvÚ proc_killr§rÕr0r0r1Úkill]sz Process.killcCsT|tjkrt |j¡n8|ttdtƒƒttdtƒƒfvrHt |j|¡nt dƒ‚dS)NZ CTRL_C_EVENTZCTRL_BREAK_EVENTzPonly SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals are supported on Windows) ÚsignalÚSIGTERMrvr'r§róÚobjectrxr(r¨)rÐZsigr0r0r1Ú send_signalas  ÿÿzProcess.send_signalNcCsÞ|durtj}n t|dƒ}ttdtjƒ}|dur<|ƒ|nd}zt |j|¡}Wn:tjyvt||j|jƒ‚Yntj yŒd}Yn0d}t |jƒs |S|rÀ|ƒ|krÀt||j|jd�‚t  |¡t |ddƒ}q’dS)NièÚ monotonicrrõr2r) rvZINFINITEÚintrórZ proc_waitr§rrÏZTimeoutAbandonedÚ pid_existsrr)rÐÚtimeoutZ cext_timeoutZtimerZstop_atZ exit_coder r0r0r1Úwaitns$    z Process.waitcCs2|jdvrdSt |j¡\}}t|ƒdt|ƒS)N©rr!zNT AUTHORITY\SYSTEMrs)r§rvZ proc_usernamer~)rÐÚdomainr[r0r0r1rÝ™s zProcess.usernamec Cshzt |j¡\}}}|WStyb}z2t|ƒrL| ¡tdWYd}~S‚WYd}~n d}~00dS)NrH)rvÚ proc_timesr§rãrärr)rÐr[r\Úcreatedrçr0r0r1rH szProcess.create_timecCs| ¡tdS)NrI)rrrÕr0r0r1rI¬szProcess.num_threadscCs<t |j¡}g}|D]"\}}}t |||¡}| |¡q|Sr)rvZ proc_threadsr§rZpthreadr˜)rÐr’rÉZ thread_idÚutimeZstimeÚntupler0r0r1Úthreads°s   zProcess.threadsc Csvzt |j¡\}}}WnNtyd}z6t|ƒs0‚| ¡}|td}|td}WYd}~n d}~00t ||dd¡S)NrFrGrž) rvr4r§rãrärrrZ pcputimes)rÐr[r\r5rçrr0r0r1r•¹s "zProcess.cpu_timescCst |jd¡dS)NT©rvZproc_suspend_or_resumer§rÕr0r0r1ÚsuspendÆszProcess.suspendcCst |jd¡dS)NFr9rÕr0r0r1ÚresumeÊszProcess.resumecCs4|jdvrt|j|jƒ‚t |j¡}ttj |¡ƒS)Nr2) r§rrÏrvZproc_cwdr~rxrkÚnormpath)rÐrkr0r0r1ÚcwdÎs  z Process.cwdcCsd|jdvrgStƒ}t |j¡}|D]6}t|ƒ}t|ƒr$tsDt|ƒ}t  |d¡}|  |¡q$t |ƒS)Nr2r*) r§rªrvZproc_open_filesrzr rr~rZ popenfiler¬r­)rÐr™Zraw_file_namesZ_filer7r0r0r1Ú open_filesØs    zProcess.open_filesÚinetcCst||jd�S)N)r¯)r©r§)rÐr®r0r0r1Ú connectionsëszProcess.connectionscCs t |j¡}tdurt|ƒ}|Sr)rvZproc_priority_getr§Úenumr,©rÐÚvaluer0r0r1Únice_getïs zProcess.nice_getcCst |j|¡Sr)rvZproc_priority_setr§rBr0r0r1Únice_setöszProcess.nice_setcCs t |j¡}tdurt|ƒ}|Sr)rvZproc_io_priority_getr§rAr3rr0r0r1Ú ionice_getús zProcess.ionice_getcCs:|r tdƒ‚|ttttfvr(td|ƒ‚t |j|¡dS)Nz&value argument not accepted on Windowsz%s is not a valid priority) Ú TypeErrorr$r%r&r'r¨rvZproc_io_priority_setr§)rÐZioclassrCr0r0r1Ú ionice_setsÿ zProcess.ionice_setc Cs�zt |j¡}Wnvty†}z^t|ƒs*‚| ¡}|td|td|td|td|td|tdf}WYd}~n d}~00t|ŽS)NrJrKrLrMrNrO)rvZproc_io_countersr§rãrärrrn)rÐr™rçrr0r0r1Ú io_counters s      úzProcess.io_counterscCs t |j¡}|rtjStjSdSr)rvZproc_is_suspendedr§rZSTATUS_STOPPEDZSTATUS_RUNNING)rÐZ suspendedr0r0r1r³s zProcess.statuscCsdd„}t |j¡}||ƒS)Ncs‡fdd„tdƒDƒS)Ncsg|]}d|>ˆ@r|‘qS)rr0)rŒÚi©r�r0r1rŽ'r�zBProcess.cpu_affinity_get..from_bitmask..é@rrKr0rKr1Ú from_bitmask&sz.Process.cpu_affinity_get..from_bitmask)rvZproc_cpu_affinity_getr§)rÐrMÚbitmaskr0r0r1Úcpu_affinity_get$s zProcess.cpu_affinity_getcCsndd„}ttttƒƒƒƒ}|D]4}||vrt|ttfƒsFtd|ƒ‚qtd|ƒ‚q||ƒ}t   |j |¡dS)NcSs.|std|ƒ‚d}|D]}|d|O}q|S)Nzinvalid argument %rrr2)r¨)ZlsÚoutÚbr0r0r1Ú to_bitmask-s  z,Process.cpu_affinity_set..to_bitmaskz&invalid CPU %r; an integer is requiredzinvalid CPU %r) r­rrwr—r{r.rrGr¨rvZproc_cpu_affinity_setr§)rÐrCrRZallcpusZcpurNr0r0r1Úcpu_affinity_set+s ÿzProcess.cpu_affinity_setc Cs^zt |j¡WStyX}z2t|ƒrB| ¡tdWYd}~S‚WYd}~n d}~00dS)NrD)rvZproc_num_handlesr§rãrärrrær0r0r1rDDs zProcess.num_handlescCs| ¡td}t |d¡S)NrEr)rrrZpctxsw)rÐrEr0r0r1Únum_ctx_switchesMszProcess.num_ctx_switches)N)r?),r-r.r/rîÚ __slots__rÑrrr rr¹rrr rrrr r"r#r&r(r,r1rÝrHrIr8r•r:r;r=r>r@rDrErFrHrIr³rOrSrDrTr0r0r0r1r ÇsŽ          *                   r )r*)NN)‹rîrïrñrýrxr)ÚsysrÚ collectionsrÚrrrrrr r r r r rrrrZ_compatrrrrrrrrrrrrrvÚ ImportErrorrçr|ÚlowerrZgetwindowsversionrâÚ RuntimeErrorÚ version_inforAZ__extra__all__r(rÚbuiltin_module_namesrr)ÚIntEnumr+ZMIB_TCP_STATE_ESTABZCONN_ESTABLISHEDZMIB_TCP_STATE_SYN_SENTZ CONN_SYN_SENTZMIB_TCP_STATE_SYN_RCVDZ CONN_SYN_RECVZMIB_TCP_STATE_FIN_WAIT1ZCONN_FIN_WAIT1ZMIB_TCP_STATE_FIN_WAIT2ZCONN_FIN_WAIT2ZMIB_TCP_STATE_TIME_WAITZCONN_TIME_WAITZMIB_TCP_STATE_CLOSEDZ CONN_CLOSEZMIB_TCP_STATE_CLOSE_WAITZCONN_CLOSE_WAITZMIB_TCP_STATE_LAST_ACKZ CONN_LAST_ACKZMIB_TCP_STATE_LISTENZ CONN_LISTENZMIB_TCP_STATE_CLOSINGZ CONN_CLOSINGZMIB_TCP_STATE_DELETE_TCBZPSUTIL_CONN_NONEZ CONN_NONEr«r,ÚglobalsrëÚ __members__r$r%r&r'r3r¾rrZr`reÚ_fieldsrhrjrtrlrnrzr~r€r„r…Zdisk_io_countersrŠr�r•r—r›rœr�rŸr£r¤r©r¶r½rÀrÂrÇrÅrÈr"r#r+rËZpidsr/rrärörr r r0r0r0r1Ús4                          ÿ     ó  ê ÿÿÿ           *