+
    VN÷hƒ†  ã                   ór  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ]'       dM   ]'       gE   ]P<                  ! 4       ;_uu_ 4        ]P>                  ! R4       ^ RI t ^ RI!t!^ RI"t"^ RI#t#RRR4       ]'       d   ^ RI$H%t% ]PL                  PN                  t']PP                  PS                  ]'       * RR7      ]PP                  PS                  ]RR7       ! R R]4      4       4       t*R t+],3R lt- ! R R]*4      t. ! R R]*4      t/ ! R R]*4      t0 ! R R ]*4      t1 ! R! R"]*4      t2]PP                  PS                  ]'       * RR7       ! R# R$]4      4       t3]PP                  PS                  ]'       * RR7       ! R% R&]4      4       t4]PP                  PS                  ]'       * RR7       ! R' R(]4      4       t5R#   + '       g   i     ELW; i))zWindows specific tests.N)Úmock)ÚWINDOWS)ÚGITHUB_ACTIONS)ÚHAS_BATTERY)ÚIS_64BIT)ÚPYPY)ÚTOLERANCE_DISK_USAGE)ÚTOLERANCE_SYS_MEM)ÚPsutilTestCase)Úpytest)Úretry_on_failure)Úsh)Úspawn_subproc)Ú	terminateÚignore)Úconvert_oserrorzWINDOWS only©Úreasonzpywin32 not available on PYPYc                   ó   € ] tR t^5tRtR# )ÚWindowsTestCase© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ú;/usr/lib/python3/dist-packages/psutil/tests/test_windows.pyr   r   5   s   † ó 	r   r   c                óˆ   € \         P                  ! R4      '       g   \        P                  ! R4      hRV  R2p\	        V4      # )zŽCurrently not used, but available just in case. Usage:

>>> powershell(
    "Get-CIMInstance Win32_PageFileUsage | Select AllocatedBaseSize")
zpowershell.exezpowershell.exe not availablezhpowershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -Command "Ú")ÚshutilÚwhichr   Úskipr   )ÚcmdÚcmdlines   & r   Ú
powershellr%   ;   sF   € ô �<Š<Ð(×)Ò)Ü�kŠkÐ8Ó9Ð9ð	5Ø58°E¸ð	=ð ô ˆg‹;Ðr   c                óp  a€ \        RV  RV 24      P                  4       pRP                  VP                  4       R,          4      P                  4       pSe^   RV9   dO   \        ;QJ d%    . V3R lVP                  4        4       F  NK  	  5# ! V3R lVP                  4        4       4      # S! V4      # V# )z{Currently not used, but available just in case. Usage:

>>> wmic("Win32_OperatingSystem", "FreePhysicalMemory")
2134124534
z
wmic path z get Ú ºé   NNÚ,c              3   ó4   <"  € T F  pS! V4      x € K  	  R # 5i©Nr   )Ú.0ÚxÚ	converters   & €r   Ú	<genexpr>Úwmic.<locals>.<genexpr>T   s   øé € Ð<©|¨!™ 1Ÿ˜«|ùs   ƒ)r   ÚstripÚjoinÚ
splitlinesÚtupleÚsplit)ÚpathÚwhatr/   ÚoutÚdatas   &&f  r   Úwmicr;   J   s’   ø€ ô ˆz˜$˜˜u T FÐ+Ó
,×
2Ñ
2Ó
4€CØ�7‰7�3—>‘>Ó# BÕ'Ó(×.Ñ.Ó0€DØÒØ�$Œ;ß”5Ô<¨t¯z©z¬|Ó<—5Ð<�5Ô<¨t¯z©z¬|Ó<Ó<Ð<á˜T“?Ð"àˆr   c                   óž   a € ] tR t^`t o ]P
                  P                  R]P                  9  RR7      R 4       t	R t
R tR tR tR	 tR
tV tR# )ÚTestCpuAPIsÚNUMBER_OF_PROCESSORSz-NUMBER_OF_PROCESSORS env var is not availabler   c                ó~   € \        \        P                  R ,          4      pV\        P                  ! 4       8X  g   Q hR# )r>   N)ÚintÚosÚenvironÚpsutilÚ	cpu_count)ÚselfÚnum_cpuss   & r   Ú&test_cpu_count_vs_NUMBER_OF_PROCESSORSÚ2TestCpuAPIs.test_cpu_count_vs_NUMBER_OF_PROCESSORSa   s/   € ô ”r—z‘zÐ"8Õ9Ó:ˆØœ6×+Ò+Ó-Ô-Ð-Ò-r   c                óx   € \         P                  ! 4       ^,          p\        P                  ! 4       pW8X  g   Q hR# )é   N)Úwin32apiÚGetSystemInforC   rD   ©rE   Ú	sys_valueÚpsutil_values   &  r   Útest_cpu_count_vs_GetSystemInfoÚ+TestCpuAPIs.test_cpu_count_vs_GetSystemInfok   s1   € ô ×*Ò*Ó,¨QÕ/ˆ	Ü×'Ò'Ó)ˆØÔ(Ð(Ò(r   c                ó¨   € \         P                  ! 4       p\        R  VP                  4        4       4      p\        P
                  ! 4       V8X  g   Q hR# )c              3   ó8   "  € T F  qP                   x € K  	  R # 5ir,   )ÚNumberOfLogicalProcessors©r-   Úprocs   & r   r0   Ú<TestCpuAPIs.test_cpu_count_logical_vs_wmi.<locals>.<genexpr>t   s   é € ð 
Ù7J¨t×*Ö*Ó7Jùó   ‚N©ÚwmiÚWMIÚsumÚWin32_ProcessorrC   rD   )rE   ÚwÚprocss   &  r   Útest_cpu_count_logical_vs_wmiÚ)TestCpuAPIs.test_cpu_count_logical_vs_wmir   sF   € Ü�GŠG‹IˆÜñ 
Ø78×7HÑ7HÔ7Jó
ó 
ˆô ×ÒÓ! UÔ*Ð*Ò*r   c                ó¬   € \         P                  ! 4       p\        R  VP                  4        4       4      p\        P
                  ! RR7      V8X  g   Q hR# )c              3   ó8   "  € T F  qP                   x € K  	  R # 5ir,   )ÚNumberOfCoresrU   s   & r   r0   Ú:TestCpuAPIs.test_cpu_count_cores_vs_wmi.<locals>.<genexpr>{   s   é € ÐGÑ3F¨4×&Ö&Ó3FùrX   F)ÚlogicalNrY   )rE   r^   Úcoress   &  r   Útest_cpu_count_cores_vs_wmiÚ'TestCpuAPIs.test_cpu_count_cores_vs_wmiy   s?   € Ü�GŠG‹IˆÜÑG°1×3DÑ3DÔ3FÓGÓGˆÜ×Ò¨Ô.°%Ô7Ð7Ò7r   c                óz   € \         P                  ! 4       \        \         P                  ! R R7      4      8X  g   Q hR# )T)ÚpercpuN)rC   rD   ÚlenÚ	cpu_times©rE   s   &r   Útest_cpu_count_vs_cpu_timesÚ'TestCpuAPIs.test_cpu_count_vs_cpu_times~   s)   € Ü×ÒÓ!¤S¬×)9Ò)9ÀÔ)FÓ%GÔGÐGÒGr   c                ó  € \         P                  ! 4       pVP                  4       ^ ,          pVP                  \        P
                  ! 4       P                  8X  g   Q hVP                  \        P
                  ! 4       P                  8X  g   Q hR# ©é    N)	rZ   r[   r]   ÚCurrentClockSpeedrC   Úcpu_freqÚcurrentÚMaxClockSpeedÚmax)rE   r^   rV   s   &  r   Útest_cpu_freqÚTestCpuAPIs.test_cpu_freq�   sb   € Ü�GŠG‹IˆØ× Ñ Ó" 1Õ%ˆØ×%Ñ%¬¯ªÓ):×)BÑ)BÔBÐBÐBØ×!Ñ!¤V§_¢_Ó%6×%:Ñ%:Ô:Ð:Ò:r   r   N)r   r   r   r   r   ÚmarkÚskipifrA   rB   rG   rP   r`   rh   ro   ry   r   Ú__classdictcell__©Ú__classdict__s   @r   r=   r=   `   sY   ø‡ € Ø‡[�[×ÑØ b§j¡jÑ0Ø>ð ó ñ.ó	ð.ò)ò+ò8ò
H÷;ð ;r   r=   c                   ó°   a € ] tR t^ˆt o R tR tR tR tR t]	! 4       R 4       t
]	! 4       R 4       t]	! 4       R 4       tR	 tR
 tR tR tR tR tRtV tR# )ÚTestSystemAPIsc                ó  € \        R 4      p\        P                  ! RR7      P                  4       pV FJ  pRVP	                  RR4      P                  4       9   d   K*  W19  g   K2  \        P                  ! V: R24      h	  R# )zipconfig /allT)Úperniczpseudo-interfaceÚ Ú-z+ nic wasn't found in 'ipconfig /all' outputN)r   rC   Únet_io_countersÚkeysÚreplaceÚlowerr   Úfail)rE   r9   ÚnicsÚnics   &   r   Útest_nic_namesÚTestSystemAPIs.test_nic_names‰   so   € Ü�Ó!ˆÜ×%Ò%¨TÔ2×7Ñ7Ó9ˆÛˆCØ! S§[¡[°°cÓ%:×%@Ñ%@Ó%BÔBÙØŽ~Ü—k’kØ‘gÐHÐIóð ó	 r   c                óÌ   € \         P                  ! 4       P                  4       ^ ,          p\        VP                  4      \
        P                  ! 4       P                  8X  g   Q hR# rr   )rZ   r[   ÚWin32_ComputerSystemr@   ÚTotalPhysicalMemoryrC   Úvirtual_memoryÚtotal©rE   r^   s   & r   Útest_total_phymemÚ TestSystemAPIs.test_total_phymem”   sC   € Ü�GŠG‹I×*Ñ*Ó,¨QÕ/ˆÜ�1×(Ñ(Ó)¬V×-BÒ-BÓ-D×-JÑ-JÔJÐJÒJr   c                óô   € \         P                  ! 4       P                  4       ^ ,          p\        \	        VP
                  4      \        P                  ! 4       P                  ,
          4      \        8  g   Q hR# rr   )
rZ   r[   ÚWin32_PerfRawData_PerfOS_MemoryÚabsr@   ÚAvailableBytesrC   r’   Úfreer	   r”   s   & r   Útest_free_phymemÚTestSystemAPIs.test_free_phymem˜   sT   € Ü�GŠG‹I×5Ñ5Ó7¸Õ:ˆä”�A×$Ñ$Ó%¬×(=Ò(=Ó(?×(DÑ(DÕDÓEÜô ð	
ò r   c                óø  € \         P                  ! 4       P                  4       ^ ,          p\        VP                  4      \
        P                  ! 4       P                  ,
          \
        P                  ! 4       P                  8X  g   Q h\
        P                  ! 4       P                  ^ 8X  dO   \
        P                  ! 4       P                  ^ 8X  g   Q h\
        P                  ! 4       P                  ^ 8X  g   Q hR# R# rr   )rZ   r[   r˜   r@   ÚCommitLimitrC   r’   r“   Úswap_memoryr›   Úusedr”   s   & r   Útest_total_swapmemÚ!TestSystemAPIs.test_total_swapmemŸ   s´   € Ü�GŠG‹I×5Ñ5Ó7¸Õ:ˆä�—‘Ó¤×!6Ò!6Ó!8×!>Ñ!>Õ>Ü×!Ò!Ó#×)Ñ)ô*ð	
ð*ô ×ÒÓ×%Ñ%¨Ô*Ü×%Ò%Ó'×,Ñ,°Ô1Ð1Ð1Ü×%Ò%Ó'×,Ñ,°Ô1Ð1Ò1ñ +r   c                ó  € \         P                  ! 4       P                  ^ 8”  dç   \        P                  ! 4       P                  RR7      ^ ,          p\        VP                  4      ^d,          \        VP                  4      ,          p\         P                  ! 4       P                  ^ 8¼  g   Q h\        \         P                  ! 4       P                  V,
          4      ^8  g   Q h\         P                  ! 4       P                  ^d8:  g   Q hR# R# )rs   Ú_Total)ÚNameN)rC   r    r“   rZ   r[   Ú#Win32_PerfRawData_PerfOS_PagingFiler@   ÚPercentUsageÚPercentUsage_BaseÚpercentr™   )rE   r^   ÚpercentSwaps   &  r   Útest_percent_swapmemÚ#TestSystemAPIs.test_percent_swapmem©   sÂ   € Ü×ÒÓ×%Ñ%¨Ô)Ü—’“	×=Ñ=À8Ð=ÓLÈQÕOˆAä˜aŸn™nÓ-°Õ3´c¸!×:MÑ:MÓ6NÕNˆKô ×%Ò%Ó'×/Ñ/°1Ô4Ð4Ð4Ü”v×)Ò)Ó+×3Ñ3°kÕAÓBÀQÔFÐFÐFÜ×%Ò%Ó'×/Ñ/°3Ô6Ð6Ò6ñ *r   c                óÖ   € \         P                  ! 4       P                  4       pV Uu0 uF  q"P                  kK  	  pp\	        \
        P                  ! 4       4      pW48X  g   Q hR # u upi r,   )rZ   r[   ÚWin32_ProcessÚ	ProcessIdÚsetrC   Úpids)rE   r^   r.   Úwmi_pidsÚpsutil_pidss   &    r   Ú	test_pidsÚTestSystemAPIs.test_pidsÀ   sO   € ô �GŠG‹I×#Ñ#Ó%ˆÙ)*Ó+© A—K”K©ˆÐ+Üœ&Ÿ+š+›-Ó(ˆØÔ&Ð&Ò&ùò ,s   ¨A&c                ó^  € \         P                  ! R R7      p\        P                  ! 4       P	                  4       pV EFW  pV EF5  pVP
                  P                  RR4      VP                  8X  g   K1  VP                  '       g    KL  RVP                  9   d    K`  VP                  P                  R4      '       d    K„   \         P                  ! VP                  4      pTP                  \        TP                  4      8X  g   Q h\        TP                   4      pTP"                  T8X  g   Q h\%        TP"                  T,
          4      R
8”  d'   \&        P(                  ! RTP"                   RT 24      h EK>  	  \&        P(                  ! RV: 24      h	  R	#   \         d      EKn  i ; i)T©ÚallÚ\r'   ÚcdromúA:zpsutil=z, wmi=zcan't find partition Ni    )rC   Údisk_partitionsrZ   r[   ÚWin32_LogicalDiskÚdevicerˆ   ÚDeviceIDÚ
mountpointÚoptsÚ
startswithÚ
disk_usageÚFileNotFoundErrorr“   r@   ÚSizeÚ	FreeSpacer›   r™   r   rŠ   )rE   Úps_partsÚ	wmi_partsÚps_partÚwmi_partÚusageÚwmi_frees   &      r   Ú
test_disksÚTestSystemAPIs.test_disksÉ   sY  € ä×)Ò)¨dÔ3ˆÜ—G’G“I×/Ñ/Ó1ˆ	ÜˆGÜ%�Ø—>‘>×)Ñ)¨$°Ó3°x×7HÑ7HÖHØ"×-×-Ð-âØ '§,¡,Ô.ÚØ×)Ñ)×4Ñ4°T×:Ò:ÚðÜ &× 1Ò 1°'×2DÑ2DÓ E˜ð !Ÿ;™;¬#¨h¯m©mÓ*<Ô<Ð<Ð<Ü" 8×#5Ñ#5Ó6�HØ Ÿ:™:¨Ô1Ð1Ð1ä˜5Ÿ:™:¨Õ0Ó1Ð4DÔDÜ$ŸkškØ% e§j¡j \°¸°zÐBóð ó ñ- &ô0 —k’kÐ$9¸'¹Ð"EÓFÐFó3  øô -ô äðús   Ã FÆF,Æ+F,c                óø  € \         P                  ! 4        Fà  pR VP                  9   d   K  \        P                  ! VP
                  4      p\         P                  ! VP
                  4      p\        V^ ,          VP                  ,
          4      \        8  g   Q h\        V^,          VP                  ,
          4      \        8  g   Q hVP                  VP                  VP                  ,
          8X  d   Kà  Q h	  R# )r»   N)rC   r½   rÂ   rK   ÚGetDiskFreeSpaceExrÁ   rÄ   r™   r›   r   r“   r¡   )rE   ÚdiskrN   rO   s   &   r   Útest_disk_usageÚTestSystemAPIs.test_disk_usageè   s¹   € ä×*Ò*Ö,ˆDØ˜$Ÿ)™)Ô#ÙÜ ×3Ò3°D·O±OÓDˆIÜ!×,Ò,¨T¯_©_Ó=ˆLÜ�y •| l×&7Ñ&7Õ7Ó8Ô;OÔOÐOÐOä�I˜a•L <×#5Ñ#5Õ5Ó6Ô9MÔMðØMà×$Ñ$¨×(:Ñ(:¸\×=NÑ=NÕ(NÖNÐNÐNó -r   c                óŠ  € \         P                  ! 4       P                  R 4       Uu. uF/  pV'       g   K  VP                  R4      '       d   K&  VR,           NK1  	  pp\        P
                  ! RR7       Uu. uF2  pVP                  P                  R4      '       d   K&  VP                  NK4  	  ppW#8X  g   Q hR# u upi u upi )z\ r¼   rº   Tr¸   N)rK   ÚGetLogicalDriveStringsr6   rÃ   rC   r½   rÁ   )rE   r.   rN   rO   s   &   r   Útest_disk_partitionsÚ#TestSystemAPIs.test_disk_partitionsõ   s±   € ô ×4Ò4Ó6×<Ñ<¸XÔFó
áF�Üô àŸ™ d×+ô ˆA��HˆHÙFð 	ð 
ô ×+Ò+°Õ5ó
á5�Ø—<‘<×*Ñ*¨4×0ô ˆA�LŒLÙ5ð 	ð 
ð
 Ô(Ð(Ò(ùò
ùò

s   §
B;¶B;ÁB;Á7#C ÂC c                óp  € R pRpRpRpRpW2/p\         P                  ! RVP                  R7      ;_uu_ 4       p\        P                  P                  V4      V8X  g   Q h\        P                  P                  V4      V8X  g   Q hVP                  '       g   Q h RRR4       R#   + '       g   i     R# ; i)zC:\Windows\TempzC:z\Device\HarddiskVolume1z\??\C:\Windows\Tempz$\Device\HarddiskVolume1\Windows\Tempz%psutil._pswindows.cext.QueryDosDevice©Úside_effectN)r   ÚpatchÚgetrC   Ú
_pswindowsÚconvert_dos_pathÚcalled)rE   ÚwinpathÚdriveletterÚ
devicepathÚntpath1Úntpath2ÚdevicesÚms   &       r   Útest_convert_dos_path_driveÚ*TestSystemAPIs.test_convert_dos_path_drive  s¢   € Ø%ˆØˆà0ˆ
ð ,ˆà<ˆàÐ+ˆä�ZŠZØ3ÀÇÁ÷
õ 
àÜ×$Ñ$×5Ñ5°gÓ>À'ÔIÐIÐIÜ×$Ñ$×5Ñ5°gÓ>À'ÔIÐIÐIØ—8—8�8ˆO‘8÷
÷ 
÷ 
ò 
ús   ¸AB$ÂB$Â$B5	c                óö   € R pRpRp\         P                  P                  V4      V8X  g   Q h\         P                  P                  V4      V8X  g   Q h\         P                  P                  V4      V8X  g   Q hR# )z\\localhost\C$\Windows\Tempz!\??\UNC\localhost\C$\Windows\Tempz%\Device\Mup\localhost\C$\Windows\TempN)rC   rÞ   rß   )rE   rá   rä   rå   s   &   r   Útest_convert_dos_path_uncÚ(TestSystemAPIs.test_convert_dos_path_unc  sn   € à4ˆà;ˆà?ˆä× Ñ ×1Ñ1°'Ó:¸gÔEÐEÐEÜ× Ñ ×1Ñ1°'Ó:¸gÔEÐEÐEÜ× Ñ ×1Ñ1°'Ó:¸gÔEÐEÒEr   c                óN  € \        \        P                  4       4      p\        P                  ! 4       P                  4       p\        4       pV F9  pVP                  VP                  4       VP                  VP                  4       K;  	  W,          '       g   Q R V RV 24       hR# )zno common entries in z, N)	r±   ÚcextÚnet_if_statsrZ   r[   ÚWin32_NetworkAdapterÚaddr¦   ÚNetConnectionID)rE   Úps_namesÚwmi_adaptersÚ	wmi_namesÚwmi_adapters   &    r   Útest_net_if_statsÚ TestSystemAPIs.test_net_if_stats"  s†   € Ü”t×(Ñ(Ó*Ó+ˆÜ—w’w“y×5Ñ5Ó7ˆÜ“Eˆ	Û'ˆKØ�M‰M˜+×*Ñ*Ô+Ø�M‰M˜+×5Ñ5Ö6ñ (ð × Ô ð	;à" 8 *¨B¨y¨kÐ:ó	;Ú r   c                óž  € \         P                  ! 4       P                  4       pV^ ,          P                  P	                  R4      ^ ,          p\
        P
                  P                  VR4      p\
        P
                  P                  \        P                  ! 4       4      p\        W4,
          P                  4       4      pV^8:  g	   Q WC34       hR# )rs   Ú.ú%Y%m%d%H%M%SN)rZ   r[   ÚWin32_OperatingSystemÚLastBootUpTimer6   ÚdatetimeÚstrptimeÚfromtimestamprC   Ú	boot_timer™   Útotal_seconds)rE   Úwmi_osÚwmi_btime_strÚwmi_btime_dtÚ	psutil_dtÚdiffs   &     r   Útest_boot_timeÚTestSystemAPIs.test_boot_time-  s›   € Ü—’“×0Ñ0Ó2ˆØ˜q�	×0Ñ0×6Ñ6°sÓ;¸AÕ>ˆÜ×(Ñ(×1Ñ1Ø˜>ó
ˆô ×%Ñ%×3Ñ3´F×4DÒ4DÓ4FÓGˆ	Ü�LÕ,×;Ñ;Ó=Ó>ˆØ�qŒyÐ3˜9Ð3Ó3Šyr   c                ó¾   € \         P                  P                  P                  4       pVR ,          p\	        \
        P                  4       V,
          4      R8  g   Q hR# )g     @�@g      à?N)ÚctypesÚwindllÚkernel32ÚGetTickCount64r™   rî   Úuptime)rE   ÚmsÚsecss   &  r   Útest_uptimeÚTestSystemAPIs.test_uptime7  sC   € ô �]‰]×#Ñ#×2Ñ2Ó4ˆØ�F�{ˆÜ”4—;‘;“= 4Õ'Ó(¨3Ô.Ð.Ò.r   r   N)r   r   r   r   r�   r•   rœ   r¢   r¬   r   rµ   rÎ   rÓ   r×   rè   rë   r÷   r  r  r   r}   r~   s   @r   r�   r�   ˆ   sŒ   ø‡ € ò	òKò
ò2ò	7ñ. Óñ'ó ð'ñ ÓñGó ðGñ< Óñ
Oó ð
Oò)òò(
Fò	;ò4÷/ð /r   r�   c                   óÞ   a € ] tR tRt o R t]P                  P                  ]'       * RR7      R 4       t	]P                  P                  ]'       * RR7      R 4       t
R tR tR	 tR
 tRtV tR# )ÚTestSensorsBatteryiD  c                ó²   € \         P                  ! 4       R ,          '       d   \        P                  ! 4       f   Q hR# \        P                  ! 4       e   Q hR# )ÚSystemBatteriesPresentN)rK   ÚGetPwrCapabilitiesrC   Úsensors_batteryrn   s   &r   Útest_has_batteryÚ#TestSensorsBattery.test_has_batteryE  sA   € Ü×&Ò&Ó(Ð)A×BÔBÜ×)Ò)Ó+Ò7Ð7Ò7ä×)Ò)Ó+Ò3Ð3Ò3r   z
no batteryr   c                óä   € \         P                  ! 4       pVP                  R 4      ^ ,          p\        P                  ! 4       p\        VP                  VP                  ,
          4      ^8  g   Q hR# ©zselect * from Win32_BatteryN)rZ   r[   ÚqueryrC   r  r™   rª   ÚEstimatedChargeRemaining©rE   r^   Úbattery_wmiÚbattery_psutils   &   r   Útest_percentÚTestSensorsBattery.test_percentK  sZ   € ä�GŠG‹IˆØ—g‘gÐ;Ó<¸QÕ?ˆÜ×/Ò/Ó1ˆä�×&Ñ&¨×)MÑ)MÕMÓNØôð	
òr   c                óÊ   € \         P                  ! 4       pVP                  R 4      ^ ,          p\        P                  ! 4       pVP
                  VP                  ^8H  8X  g   Q hR# r  )rZ   r[   r  rC   r  Úpower_pluggedÚBatteryStatusr   s   &   r   Útest_power_pluggedÚ%TestSensorsBattery.test_power_pluggedU  sP   € ä�GŠG‹IˆØ—g‘gÐ;Ó<¸QÕ?ˆÜ×/Ò/Ó1ˆð ×+Ñ+°×0IÑ0IÈQÑ0NÔOÐOÒOr   c                óÜ   € \         P                  ! R RR7      ;_uu_ 4       p\        P                  ! 4       e   Q hVP                  '       g   Q h RRR4       R#   + '       g   i     R# ; i)ú&psutil._pswindows.cext.sensors_battery©Úreturn_valueN)rs   é€   rs   rs   )r   rÜ   rC   r  rà   ©rE   rç   s   & r   Útest_emulate_no_batteryÚ*TestSensorsBattery.test_emulate_no_battery^  sU   € Ü�ZŠZØ4Ø'÷
õ 
ð Ü×)Ò)Ó+Ò3Ð3Ð3Ø—8—8�8ˆO‘8÷
÷ 
÷ 
ò 
ús   ¡+AÁAÁA+	c                ó  € \         P                  ! R RR7      ;_uu_ 4       p\        P                  ! 4       P                  \        P
                  8X  g   Q hVP                  '       g   Q h RRR4       R#   + '       g   i     R# ; i)r+  r,  N)r)   rs   rs   rs   ©r   rÜ   rC   r  ÚsecsleftÚPOWER_TIME_UNLIMITEDrà   r/  s   & r   Útest_emulate_power_connectedÚ/TestSensorsBattery.test_emulate_power_connectedf  ói   € Ü�ZŠZØ4À<÷
õ 
àä×&Ò&Ó(×1Ñ1Ü×.Ñ.ô/ðð/ð —8—8�8ˆO‘8÷
÷ 
÷ 
ò 
úó   ¡AA5Á(A5Á5B	c                ó  € \         P                  ! R RR7      ;_uu_ 4       p\        P                  ! 4       P                  \        P
                  8X  g   Q hVP                  '       g   Q h RRR4       R#   + '       g   i     R# ; i)r+  r,  N)rs   é   rs   rs   r3  r/  s   & r   Útest_emulate_power_chargingÚ.TestSensorsBattery.test_emulate_power_chargingp  r8  r9  c                ó  € \         P                  ! R RR7      ;_uu_ 4       p\        P                  ! 4       P                  \        P
                  8X  g   Q hVP                  '       g   Q h RRR4       R#   + '       g   i     R# ; i)r+  r,  N)rs   rs   rs   éÿÿÿÿ)r   rÜ   rC   r  r4  ÚPOWER_TIME_UNKNOWNrà   r/  s   & r   Útest_emulate_secs_left_unknownÚ1TestSensorsBattery.test_emulate_secs_left_unknownz  se   € Ü�ZŠZØ4Ø&÷
õ 
ð ä×&Ò&Ó(×1Ñ1´V×5NÑ5NÔNðØNà—8—8�8ˆO‘8÷
÷ 
÷ 
ò 
úr9  r   N)r   r   r   r   r  r   r{   r|   r   r#  r(  r0  r6  r<  rA  r   r}   r~   s   @r   r  r  D  sy   ø‡ € ò4ð ‡[�[×Ñ˜Kœ°ÐÓ=ñ
ó >ð
ð ‡[�[×Ñ˜Kœ°ÐÓ=ñPó >ðPòòò÷ð r   r  c                   óš   a € ] tR tRt o ]R 4       t]R 4       tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tRtV tR# )ÚTestProcessiŠ  c                ó8   € \        4       P                  V n        R # r,   ©r   Úpid©Úclss   &r   Ú
setUpClassÚTestProcess.setUpClass‹  ó   € ä“/×%Ñ%ˆŽr   c                ó0   € \        V P                  4       R # r,   ©r   rG  rH  s   &r   ÚtearDownClassÚTestProcess.tearDownClass�  ó   € ä�#—'‘'Ör   c                óä   € \         P                  ! ^ 4      p\        P                  ! \         P                  4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; irr   )rC   ÚProcessr   ÚraisesÚAccessDeniedÚkill©rE   Úps   & r   Útest_issue_24ÚTestProcess.test_issue_24“  s=   € Ü�NŠN˜1ÓˆÜ�]Š]œ6×.Ñ.×/Õ/Ø�F‰FŒH÷ 0×/×/Ò/ús   ÁAÁA/	c                ó†  € \         P                  ! ^4      pVP                  4       R8X  g   Q h\        V4       VP	                  4        VP                  4       R8¼  g   Q h VP                  4       R,          w  r#V^ 8”  g   Q hR#   \         P                   d'    \        P                  ! 4       ^,          R9  d   h  R# i ; i)é   ÚSystemg        :Né   NN>   Úwin7Úvistaúwin-7)
rC   rS  ÚnameÚstrÚusernameÚcreate_timeÚmemory_inforU  ÚplatformÚuname)rE   rX  ÚrssÚ_vmss   &   r   Útest_special_pidÚTestProcess.test_special_pid˜  s£   € Ü�NŠN˜1ÓˆØ�v‰v‹x˜8Ô#Ð#Ð#ô 	ˆAŒØ	�
‰
ŒØ�}‰}‹ #Ô%Ð%Ð%ð	ØŸ™›¨Õ+‰IˆCð ˜”7ˆN’7øô ×"Ñ"ô 	ä�~Š~Ó Õ"Ð*DÔDØò Eð	ús   Á!B Â7C Â?C c                ó  € \         P                  ! V P                  4      p\        P                  ! \
        4      ;_uu_ 4        VP                  \        P                  4       R R R 4       R #   + '       g   i     R # ; ir,   )	rC   rS  rG  r   rT  Ú
ValueErrorÚsend_signalÚsignalÚSIGINTrW  s   & r   Útest_send_signalÚTestProcess.test_send_signal©  sB   € Ü�NŠN˜4Ÿ8™8Ó$ˆÜ�]Š]œ:×&Õ&Ø�M‰Mœ&Ÿ-™-Ô(÷ '×&×&Ò&ús   Á A-Á-A>	c                óž  € \         P                  ! \        P                  ! 4       4      pVP	                  4       p\
        P                  ! \        P                  \        P                  \        P                  ! 4       4      pVP	                  4       pWB^,           8X  g   Q h\
        P                  ! V4       VP	                  4       V8X  g   Q hR# )r)   N)rC   rS  rA   ÚgetpidÚnum_handlesrK   ÚOpenProcessÚwin32conÚPROCESS_QUERY_INFORMATIONÚFALSEÚCloseHandle)rE   rX  ÚbeforeÚhandleÚafters   &    r   Útest_num_handles_incrementÚ&TestProcess.test_num_handles_increment®  s‡   € Ü�NŠNœ2Ÿ9š9›;Ó'ˆØ—‘“ˆÜ×%Ò%Ü×.Ñ.´·±ÄÇ	Â	Ãó
ˆð —‘“ˆØ �
Ô"Ð"Ð"Ü×Ò˜VÔ$Ø�}‰}‹ &Ô(Ð(Ò(r   c                ó¼  € \         P                  ! V P                  4       P                  4      pVP	                  \
        P                  4       VP	                  \
        P                  4       VP                  4        VP                  4        \        P                  ! \         P                  4      ;_uu_ 4        VP	                  \
        P                  4       R R R 4       \        P                  ! \         P                  4      ;_uu_ 4        VP	                  \
        P                  4       R R R 4       R #   + '       g   i     Lf; i  + '       g   i     R # ; ir,   )rC   rS  r   rG  ro  rp  ÚCTRL_C_EVENTÚCTRL_BREAK_EVENTrV  Úwaitr   rT  ÚNoSuchProcessrW  s   & r   Útest_ctrl_signalsÚTestProcess.test_ctrl_signals¹  sÃ   € Ü�NŠN˜4×-Ñ-Ó/×3Ñ3Ó4ˆØ	�‰”f×)Ñ)Ô*Ø	�‰”f×-Ñ-Ô.Ø	�‰ŒØ	�‰ŒÜ�]Š]œ6×/Ñ/×0Õ0Ø�M‰Mœ&×-Ñ-Ô.÷ 1ä�]Š]œ6×/Ñ/×0Õ0Ø�M‰Mœ&×1Ñ1Ô2÷ 1Ñ0÷ 1×0úç0×0Ð0ús   Â9 D7Ä E
Ä7E	Å
E	c                óü   € \         P                  ! \        P                  4      pVP	                  R 4      '       d   \
        P                  ! R4      h\        P                  ! 4       P                  4       V8X  g   Q hR# )Ú$zrunning as service accountN)
rK   ÚGetUserNameExrx  ÚNameSamCompatibleÚendswithr   r"   rC   rS  rd  )rE   rb  s   & r   Útest_usernameÚTestProcess.test_usernameÄ  sW   € Ü×%Ò%¤h×&@Ñ&@ÓAˆØ�=‰=˜×Òô —+’+Ð:Ó;Ð;Ü�~Š~Ó×(Ñ(Ó*¨dÔ2Ð2Ò2r   c                óR  € \         P                  ! R R\        P                  ! 4       4      P	                  4       pRP                  \        P                  ! 4       P                  4       4      pV^ ,          Ru;8X  d   V^ ,          8w  d   M MVP                  RR^4      pW8X  g   Q hR# )z[ ]+r„   r   r'   N)
ÚreÚsubrK   ÚGetCommandLiner2   r3   rC   rS  r$   rˆ   rM   s   &  r   Útest_cmdlineÚTestProcess.test_cmdlineÍ  s{   € Ü—F’F˜7 C¬×)@Ò)@Ó)BÓC×IÑIÓKˆ	Ø—x‘x¤§¢Ó 0× 8Ñ 8Ó :Ó;ˆØ�Q�<˜3Ö1 ,¨q¥/×1ð
 "×)Ñ)¨#¨r°1Ó5ˆIØÔ(Ð(Ò(r   c                óV  € \         P                  ! \        P                  \        P                  \
        P                  ! 4       4      pV P                  \         P                  V4       \        P                  ! V4      p\        P                  ! 4       P                  4       pW28X  g   Q hR # r,   )rK   rw  rx  ry  rz  rA   ru  Ú
addCleanupr{  Úwin32processÚGetPriorityClassrC   rS  Únice©rE   r}  rN   rO   s   &   r   Ú	test_niceÚTestProcess.test_niceä  sp   € Ü×%Ò%Ü×.Ñ.´·±ÄÇ	Â	Ãó
ˆð 	�‰œ×,Ñ,¨fÔ5Ü ×1Ò1°&Ó9ˆ	Ü—~’~Ó'×,Ñ,Ó.ˆØÔ(Ð(Ò(r   c                ó^  € \         P                  ! \        P                  \        P                  V P
                  4      pV P                  \         P                  V4       \        P                  ! V4      p\        P                  ! V P
                  4      P                  4       pVR ,          VP                  8X  g   Q hVR,          VP                  8X  g   Q hVR,          VP                  8X  g   Q hVR,          VP                   8X  g   Q hVR,          VP"                  8X  g   Q hVR,          VP$                  8X  g   Q hVR,          VP&                  8X  g   Q hVR,          VP(                  8X  g   Q hVP*                  VP                  8X  g   Q hVP,                  VP&                  8X  g   Q hR# )	ÚPeakWorkingSetSizeÚWorkingSetSizeÚQuotaPeakPagedPoolUsageÚQuotaPagedPoolUsageÚQuotaPeakNonPagedPoolUsageÚQuotaNonPagedPoolUsageÚPagefileUsageÚPeakPagefileUsageN)rK   rw  rx  ry  rz  rG  r–  r{  r—  ÚGetProcessMemoryInforC   rS  rf  Ú	peak_wsetÚwsetÚpeak_paged_poolÚ
paged_poolÚpeak_nonpaged_poolÚnonpaged_poolÚpagefileÚpeak_pagefileri  Úvmsrš  s   &   r   Útest_memory_infoÚTestProcess.test_memory_infoí  s  € Ü×%Ò%Ü×.Ñ.´·±ÀÇÁó
ˆð 	�‰œ×,Ñ,¨fÔ5Ü ×5Ò5°fÓ=ˆ	Ü—~’~ d§h¡hÓ/×;Ñ;Ó=ˆØÐ-Õ.°,×2HÑ2HÔHÐHÐHØÐ)Õ*¨l×.?Ñ.?Ô?Ð?Ð?àÐ/Õ0Ø×+Ñ+ô,ð	
ð,ð Ð.Õ/°<×3JÑ3JÔJÐJÐJàÐ2Õ3Ø×.Ñ.ô/ð	
ð/ð Ð.Õ/°<×3MÑ3MÔMð	
ØMà˜Õ)¨\×-BÑ-BÔBÐBÐBØÐ,Õ-°×1KÑ1KÔKÐKÐKà×Ñ <×#4Ñ#4Ô4Ð4Ð4Ø×Ñ <×#8Ñ#8Ô8Ð8Ò8r   c                ó~  € \         P                  ! \        P                  \        P                  V P
                  4      pV P                  \         P                  V4       \        P                  ! V P
                  4      pVP                  4        VP                  4       p\        P                  ! V4      pW48X  g   Q hR # r,   )rK   rw  rx  ry  rz  rG  r–  r{  rC   rS  r   r„  r—  ÚGetExitCodeProcess)rE   r}  rX  rO   rN   s   &    r   Ú	test_waitÚTestProcess.test_wait  s   € Ü×%Ò%Ü×.Ñ.´·±ÀÇÁó
ˆð 	�‰œ×,Ñ,¨fÔ5Ü�NŠN˜4Ÿ8™8Ó$ˆØ	�‰ŒØ—v‘v“xˆÜ ×3Ò3°FÓ;ˆ	ØÔ(Ð(Ò(r   c                óz  € R  p\         P                  ! \        P                  \        P                  V P
                  4      pV P                  \         P                  V4       V! \        P                  ! V4      ^ ,          4      p\        P                  ! V P
                  4      P                  4       pWC8X  g   Q hR# )c                 ór   € \        ^@4       Uu. uF  p^V,          V ,          '       g   K  VNK  	  up# u upi )é@   )Úrange)r.   Úis   & r   Úfrom_bitmaskÚ3TestProcess.test_cpu_affinity.<locals>.from_bitmask  s,   € Ü$ RœyÓ9™y˜!¨Q°!­V°q¯L©L—A�A™yÑ9Ð9ùÒ9s   Ž4«4N)rK   rw  rx  ry  rz  rG  r–  r{  r—  ÚGetProcessAffinityMaskrC   rS  Úcpu_affinity)rE   r»  r}  rN   rO   s   &    r   Útest_cpu_affinityÚTestProcess.test_cpu_affinity  sŠ   € ò	:ô ×%Ò%Ü×.Ñ.´·±ÀÇÁó
ˆð 	�‰œ×,Ñ,¨fÔ5Ù Ü×/Ò/°Ó7¸Õ:ó
ˆ	ô —~’~ d§h¡hÓ/×<Ñ<Ó>ˆØÔ(Ð(Ò(r   c                ó~  € \         P                  ! \        P                  \        P                  \
        P                  ! 4       4      pV P                  \         P                  V4       \        P                  ! V4      p\        P                  ! 4       P                  4       pVP                  VR ,          8X  g   Q hVP                  VR,          8X  g   Q hVP                   VR,          8X  g   Q hVP"                  VR,          8X  g   Q hVP$                  VR,          8X  g   Q hVP&                  VR,          8X  g   Q hR# )ÚReadOperationCountÚWriteOperationCountÚReadTransferCountÚWriteTransferCountÚOtherOperationCountÚOtherTransferCountN)rK   rw  rx  ry  rz  rA   ru  r–  r{  r—  ÚGetProcessIoCountersrC   rS  Úio_countersÚ
read_countÚwrite_countÚ
read_bytesÚwrite_bytesÚother_countÚother_bytesrš  s   &   r   Útest_io_countersÚTestProcess.test_io_counters!  s   € Ü×%Ò%Ü×.Ñ.´·±ÄÇ	Â	Ãó
ˆð 	�‰œ×,Ñ,¨fÔ5Ü ×5Ò5°fÓ=ˆ	Ü—~’~Ó'×3Ñ3Ó5ˆØ×&Ñ&¨)Ð4HÕ*IÔIÐIÐIØ×'Ñ'¨9Ð5JÕ+KÔKÐKÐKØ×&Ñ&¨)Ð4GÕ*HÔHÐHÐHØ×'Ñ'¨9Ð5IÕ+JÔJÐJÐJØ×'Ñ'¨9Ð5JÕ+KÔKÐKÐKØ×'Ñ'¨9Ð5IÕ+JÔJÐJÒJr   c                óþ  € ^ RI p^ RIpRpVP                  P                  P	                  V^ V P
                  4      pV P                  VP                  P                  P                  V4       VP                  P                  4       pVP                  P                  P                  W1P                  ! V4      4       VP                  p\        P                  ! V P
                  4      P                  4       pWe8X  g   Q hR# )rs   Né   )r  Úctypes.wintypesr  r  rw  rG  r–  r{  ÚwintypesÚDWORDÚGetProcessHandleCountÚbyrefÚvaluerC   rS  rv  )rE   r  ry  r}  ÚhndcntrN   rO   s   &      r   Útest_num_handlesÚTestProcess.test_num_handles/  s»   € ÛÛà$)Ð!Ø—‘×'Ñ'×3Ñ3Ø% q¨$¯(©(ó
ˆð 	�‰˜Ÿ™×.Ñ.×:Ñ:¸FÔCà—‘×&Ñ&Ó(ˆØ�‰×Ñ×4Ñ4Ø—L’L Ó(ô	
ð —L‘Lˆ	Ü—~’~ d§h¡hÓ/×;Ñ;Ó=ˆØÔ(Ð(Ò(r   c                ó  € \        4       pR Vn        \        P                  ! RVR7      ;_uu_ 4        \        P                  ! R4      ;_uu_ 4       p\        P
                  ! 4       p\        P                  ! \        P                  4      ;_uu_ 4        VP                  4        RRR4       RRR4       RRR4       XP                  ^8¼  g   Q hR#   + '       g   i     L5; i  + '       g   i     L@; i  + '       g   i     LK; i)i+  z psutil._psplatform.cext.proc_cwdrÚ   z
time.sleepN)ÚOSErrorÚwinerrorr   rÜ   rC   rS  r   rT  rU  ÚcwdÚ
call_count)rE   Úexcrç   rX  s   &   r   Útest_error_partial_copyÚ#TestProcess.test_error_partial_copyA  s�   € ä‹iˆØˆŒÜ�ZŠZÐ:È×LÖLÜ—’˜L×)Ô)¨QÜ—N’NÓ$�Ü—]’]¤6×#6Ñ#6×7Õ7Ø—E‘E”G÷ 8÷ *÷ Mð
 �|‰|˜qÔ Ð Ò ÷ 8×7ú÷ *×)ú÷ M×Lús<   ²C7ÁAC$	ÂCÂ$C$	Â,C7ÃC!ÃC$	Ã$C4Ã/C7Ã7D	c                ó<  € \         P                  ! 4       R,          R,           p\         P                  P                  V4      p\        P
                  ! \         P                  4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)r)   iŸ† Nr?  )rC   r²   Ú_psplatformrS  r   rT  r…  Úexe)rE   rG  rV   s   &  r   Útest_exeÚTestProcess.test_exeL  s\   € ô �kŠk‹m˜BÕ %Õ'ˆÜ×!Ñ!×)Ñ)¨#Ó.ˆÜ�]Š]œ6×/Ñ/×0Õ0Ø�H‰HŒJ÷ 1×0×0Ò0ús   Á/B
Â
B	r   N)r   r   r   r   ÚclassmethodrJ  rO  rY  rk  rr  r  r†  r�  r“  r›  r°  r´  r¿  rÐ  rÛ  rã  rè  r   r}   r~   s   @r   rD  rD  Š  s|   ø‡ € Øñ&ó ð&ð ñó ðòò
ò")ò
	)ò	3ò3ò	)ò.)ò9ò6	)ò)òKò)ò$	!÷ð r   rD  c                   óÖ   a € ] tR tRt o Rt]R 4       t]R 4       tR t]	P                  P                  ]RR7      R 4       tR	 tR
 t]! 4       R 4       t]! 4       R 4       tR tRtV tR# )ÚTestProcessWMIiU  z%Compare Process API results with WMI.c                ó8   € \        4       P                  V n        R # r,   rF  rH  s   &r   rJ  ÚTestProcessWMI.setUpClassX  rL  r   c                ó0   € \        V P                  4       R # r,   rN  rH  s   &r   rO  ÚTestProcessWMI.tearDownClass\  rQ  r   c                óô   € \         P                  ! 4       P                  V P                  R 7      ^ ,          p\        P
                  ! V P                  4      pVP                  4       VP                  8X  g   Q hR# ©©r°   N)rZ   r[   r¯   rG  rC   rS  rb  ÚCaption©rE   r^   rX  s   &  r   Ú	test_nameÚTestProcessWMI.test_name`  sN   € Ü�GŠG‹I×#Ñ#¨d¯h©hÐ#Ó7¸Õ:ˆÜ�NŠN˜4Ÿ8™8Ó$ˆØ�v‰v‹x˜1Ÿ9™9Ô$Ð$Ò$r   z!unreliable path on GITHUB_ACTIONSr   c                ó,  € \         P                  ! 4       P                  V P                  R 7      ^ ,          p\        P
                  ! V P                  4      pVP                  4       P                  4       VP                  P                  4       8X  g   Q hR# rò  )	rZ   r[   r¯   rG  rC   rS  rç  r‰   ÚExecutablePathrõ  s   &  r   rè  ÚTestProcessWMI.test_exef  sc   € ô �GŠG‹I×#Ñ#¨d¯h©hÐ#Ó7¸Õ:ˆÜ�NŠN˜4Ÿ8™8Ó$ˆð �u‰u‹w�}‰}‹ !×"2Ñ"2×"8Ñ"8Ó":Ô:Ð:Ò:r   c                ó2  € \         P                  ! 4       P                  V P                  R 7      ^ ,          p\        P
                  ! V P                  4      pRP                  VP                  4       4      VP                  P                  RR4      8X  g   Q hR# )ró  r„   r   r'   N)
rZ   r[   r¯   rG  rC   rS  r3   r$   ÚCommandLinerˆ   rõ  s   &  r   r“  ÚTestProcessWMI.test_cmdlinep  sd   € Ü�GŠG‹I×#Ñ#¨d¯h©hÐ#Ó7¸Õ:ˆÜ�NŠN˜4Ÿ8™8Ó$ˆØ�x‰x˜Ÿ	™	›Ó$¨¯©×(=Ñ(=¸cÀ2Ó(FÔFÐFÒFr   c                ó  € \         P                  ! 4       P                  V P                  R 7      ^ ,          p\        P
                  ! V P                  4      pVP                  4       w  r4pV RV 2pVP                  4       V8X  g   Q hR# )ró  rº   N)rZ   r[   r¯   rG  rC   rS  ÚGetOwnerrd  )rE   r^   rX  ÚdomainÚ_rd  s   &     r   r�  ÚTestProcessWMI.test_usernameu  sj   € Ü�GŠG‹I×#Ñ#¨d¯h©hÐ#Ó7¸Õ:ˆÜ�NŠN˜4Ÿ8™8Ó$ˆØŸj™j›lÑˆ�8Ø�X˜R ˜zÐ*ˆØ�z‰z‹|˜xÔ'Ð'Ò'r   c                ó  € \         P                  ! 4       P                  V P                  R 7      ^ ,          p\        P
                  ! V P                  4      pVP                  4       P                  pV\        VP                  4      8X  g   Q hR# rò  )
rZ   r[   r¯   rG  rC   rS  rf  ri  r@   rŸ  )rE   r^   rX  ri  s   &   r   Útest_memory_rssÚTestProcessWMI.test_memory_rss|  s`   € ä�GŠG‹I×#Ñ#¨d¯h©hÐ#Ó7¸Õ:ˆÜ�NŠN˜4Ÿ8™8Ó$ˆØ�m‰m‹o×!Ñ!ˆØ”c˜!×*Ñ*Ó+Ô+Ð+Ò+r   c                óf  € \         P                  ! 4       P                  V P                  R 7      ^ ,          p\        P
                  ! V P                  4      pVP                  4       P                  p\        VP                  4      pW4VR,          09  d   \        P                  ! RV RV 24      hR# )ró  rÓ  zwmi=z	, psutil=N)rZ   r[   r¯   rG  rC   rS  rf  r¯  r@   ÚPageFileUsager   rŠ   )rE   r^   rX  r¯  Ú	wmi_usages   &    r   Útest_memory_vmsÚTestProcessWMI.test_memory_vmsƒ  sˆ   € ä�GŠG‹I×#Ñ#¨d¯h©hÐ#Ó7¸Õ:ˆÜ�NŠN˜4Ÿ8™8Ó$ˆØ�m‰m‹o×!Ñ!ˆô
 ˜Ÿ™Ó(ˆ	Ø )¨dÕ"2Ð3Ô3Ü—+’+  Y K¨y¸¸Ð>Ó?Ð?ñ 4r   c                óŠ  € \         P                  ! 4       P                  V P                  R 7      ^ ,          p\        P
                  ! V P                  4      p\        VP                  P                  R4      ^ ,          4      p\        P                  ! R\        P                  ! VP                  4       4      4      pW48X  g   Q hR# )ró  rú   rû   N)rZ   r[   r¯   rG  rC   rS  rc  ÚCreationDater6   ÚtimeÚstrftimeÚ	localtimere  )rE   r^   rX  Úwmic_createÚpsutil_creates   &    r   Útest_create_timeÚTestProcessWMI.test_create_time�  s„   € Ü�GŠG‹I×#Ñ#¨d¯h©hÐ#Ó7¸Õ:ˆÜ�NŠN˜4Ÿ8™8Ó$ˆÜ˜!Ÿ.™.×.Ñ.¨sÓ3°AÕ6Ó7ˆÜŸšØœDŸNšN¨1¯=©=«?Ó;ó
ˆð Ô+Ð+Ò+r   r   N)r   r   r   r   Ú__doc__rê  rJ  rO  rö  r   r{   r|   r   rè  r“  r�  r   r  r	  r  r   r}   r~   s   @r   rì  rì  U  s¦   ø‡ € Ù/àñ&ó ð&ð ñó ðò%ð ‡[�[×ÑØÐBð ó ñ;óð;òGò
(ñ Óñ,ó ð,ñ Óñ
@ó ð
@÷,ð ,r   rì  c                   óh   a € ] tR tRt o Rt]R 4       t]R 4       tR tR t	R t
R tR	 tR
 tRtV tR# )ÚTestDualProcessImplementationi�  a[  Certain APIs on Windows have 2 internal implementations, one
based on documented Windows APIs, another one based
NtQuerySystemInformation() which gets called as fallback in
case the first fails because of limited permission error.
Here we test that the two methods return the exact same value,
see:
https://github.com/giampaolo/psutil/issues/304.
c                ó8   € \        4       P                  V n        R # r,   rF  rH  s   &r   rJ  Ú(TestDualProcessImplementation.setUpClass¨  rL  r   c                ó0   € \        V P                  4       R # r,   rN  rH  s   &r   rO  Ú+TestDualProcessImplementation.tearDownClass¬  rQ  r   c                ó\  € \         P                  ! V P                  4      P                  4       p\        P
                  ! R \        R7      ;_uu_ 4       p\         P                  ! V P                  4      P                  4       p\        V4      \        V4      8X  g   Q h\        \        V4      4       FF  pW,          ^ 8¼  g   Q hW4,          ^ 8¼  g   Q h\        W,          W4,          ,
          4      R8  d   KF  Q h	  VP                  '       g   Q h RRR4       R#   + '       g   i     R# ; i)z(psutil._psplatform.cext.proc_memory_inforÚ   i   N)rC   rS  rG  rf  r   rÜ   ÚPermissionErrorrl   r¹  r™   rà   )rE   Úmem_1ÚfunÚmem_2rº  s   &    r   r°  Ú.TestDualProcessImplementation.test_memory_info°  sÚ   € Ü—’˜tŸx™xÓ(×4Ñ4Ó6ˆÜ�ZŠZØ6Ü'÷
õ 
ð Ü—N’N 4§8¡8Ó,×8Ñ8Ó:ˆEÜ�u“:¤ U£Ô+Ð+Ð+Üœ3˜u›:Ö&�Ø•x 1”}Ð$�}Ø•x 1”}Ð$�}Ü˜5�8 e¥hÕ.Ó/°#Ö5Ð5Ð5ñ 'ð —:—:�:Ð‘:÷
÷ 
÷ 
ò 
ús   ÁBDÃ7DÄDÄD+	c                óx  € \         P                  ! V P                  4      P                  4       p\        P
                  ! R \        R7      ;_uu_ 4       p\         P                  ! V P                  4      P                  4       V8X  g   Q hVP                  '       g   Q h RRR4       R#   + '       g   i     R# ; i)ú"psutil._psplatform.cext.proc_timesrÚ   N)rC   rS  rG  re  r   rÜ   r  rà   )rE   Úctimer  s   &  r   r  Ú.TestDualProcessImplementation.test_create_time¾  s€   € Ü—’˜tŸx™xÓ(×4Ñ4Ó6ˆÜ�ZŠZØ0Ü'÷
õ 
ð Ü—>’> $§(¡(Ó+×7Ñ7Ó9¸UÔBÐBÐBØ—:—:�:Ð‘:÷
÷ 
÷ 
ò 
úó   ÁAB(ÂB(Â(B9	c                ó  € \         P                  ! V P                  4      P                  4       p\        P
                  ! R \        R7      ;_uu_ 4       p\         P                  ! V P                  4      P                  4       pVP                  '       g   Q h\        VP                  VP                  ,
          4      R8  g   Q h\        VP                  VP                  ,
          4      R8  g   Q h RRR4       R#   + '       g   i     R# ; i)r"  rÚ   g{®Gáz„?N)rC   rS  rG  rm   r   rÜ   r  rà   r™   ÚuserÚsystem)rE   Úcpu_times_1r  Úcpu_times_2s   &   r   Útest_cpu_timesÚ,TestDualProcessImplementation.test_cpu_timesÇ  s¿   € Ü—n’n T§X¡XÓ.×8Ñ8Ó:ˆÜ�ZŠZØ0Ü'÷
õ 
ð Ü Ÿ.š.¨¯©Ó2×<Ñ<Ó>ˆKØ—:—:�:Ð�:Ü�{×'Ñ'¨+×*:Ñ*:Õ:Ó;¸dÔBÐBÐBÜ�{×)Ñ)¨K×,>Ñ,>Õ>Ó?À$ÔFÐFÑF÷
÷ 
÷ 
ò 
ús   ÁBC;Ã;D	c                óê  € \         P                  ! V P                  4      P                  4       p\        P
                  ! R \        R7      ;_uu_ 4       p\         P                  ! V P                  4      P                  4       p\        \        V4      4       F(  p\        W,          W4,          ,
          4      ^8  d   K(  Q h	  VP                  '       g   Q h RRR4       R#   + '       g   i     R# ; i)z(psutil._psplatform.cext.proc_io_countersrÚ   N)rC   rS  rG  rÉ  r   rÜ   r  r¹  rl   r™   rà   )rE   Úio_counters_1r  Úio_counters_2rº  s   &    r   rÐ  Ú.TestDualProcessImplementation.test_io_countersÒ  s©   € ÜŸš t§x¡xÓ0×<Ñ<Ó>ˆÜ�ZŠZØ6Ü'÷
õ 
ð Ü"ŸNšN¨4¯8©8Ó4×@Ñ@ÓBˆMÜœ3˜}Ó-Ö.�Ü˜=Õ+¨mÕ.>Õ>Ó?À!ÖCÐCÐCñ /à—:—:�:Ð‘:÷
÷ 
÷ 
ò 
ús   ÁA&C!Â>C!ÃC!Ã!C2	c                óx  € \         P                  ! V P                  4      P                  4       p\        P
                  ! R \        R7      ;_uu_ 4       p\         P                  ! V P                  4      P                  4       V8X  g   Q hVP                  '       g   Q h RRR4       R#   + '       g   i     R# ; i)z(psutil._psplatform.cext.proc_num_handlesrÚ   N)rC   rS  rG  rv  r   rÜ   r  rà   )rE   rv  r  s   &  r   rÛ  Ú.TestDualProcessImplementation.test_num_handlesÝ  s€   € Ü—n’n T§X¡XÓ.×:Ñ:Ó<ˆÜ�ZŠZØ6Ü'÷
õ 
ð Ü—>’> $§(¡(Ó+×7Ñ7Ó9¸[ÔHÐHÐHØ—:—:�:Ð‘:÷
÷ 
÷ 
ò 
úr%  c                óV  € \         P                  ! 4        F:  p \        P                  VR R7      p\        P                  VRR7      pW#8X  g   Q hK<  	  R#   \         dH   p\        T4      p\        T\         P                  \         P                  34      '       g   h  Rp?K�  Rp?ii ; i)T)Úuse_pebFN)	rC   r²   rî   Úproc_cmdlinerÞ  r   Ú
isinstancerU  r…  )rE   rG  ÚaÚbÚerrs   &    r   r“  Ú*TestDualProcessImplementation.test_cmdlineæ  s•   € Ü—;’;–=ˆCð
Ü×%Ñ% c°4Ð%Ó8�Ü×%Ñ% c°5Ð%Ó9�ð ”v�’vó !øô ô Ü% cÓ*�Ü!Øœ&×-Ñ-¬v×/CÑ/CÐD÷ò ð õûðús   š.AÁB(Á!<B#Â#B(r   N)r   r   r   r   r  rê  rJ  rO  r°  r  r+  rÐ  rÛ  r“  r   r}   r~   s   @r   r  r  �  sV   ø‡ € ñð ñ&ó ð&ð ñó ðòòò	Gò	ò÷ð r   r  c                   ó~   a a€ ] tR tRt oRt]R 4       tRR.tV 3R ltV 3R lt	R t
R	 tR
 tR tR tR tRtVtV ;t# )ÚRemoteProcessTestCaseiõ  zÇCertain functions require calling ReadProcessMemory.
This trivially works when called on the current process.
Check that this works on other processes, especially when they
have a different bitness.
c                 ó2  € R p \         P                   ! R4       Fz  p\        P                  ! VRV .\        P                  \        P                  R7      pVP                  4       w  r4VP                  4        V\        \        '       * 4      8X  g   Kx  Vu # 	  R# )z6import sys; sys.stdout.write(str(sys.maxsize > 2**32))zC:\Python*\python.exeú-c)ÚargsÚstdoutÚstderrN)	ÚglobÚ
subprocessÚPopenÚPIPEÚSTDOUTÚcommunicater„  rc  r   )ÚcodeÚfilenamerV   Úoutputr  s        r   Úfind_other_interpreterÚ,RemoteProcessTestCase.find_other_interpreterý  sy   € ð Hˆô Ÿ	š	Ð":Ö;ˆHÜ×#Ò#Ø  dÐ+Ü!—‘Ü!×(Ñ(ôˆDð
 ×(Ñ(Ó*‰IˆFØ�I‰IŒKØœ¤œ\Ó*Ö*Ø’ó <r   r>  zimport sys; sys.stdin.read()c                óˆ  <€ \         SV `  4        V P                  4       pVf   \        P                  ! R4      h\
        '       d   \        P                  V n        Wn	        MWn        \        P                  V n	        \        P                  P                  4       p\        \        P                  ! 4       4      VR&   V P                  V P                  .V P                   ,           V\"        P$                  R7      V n        V P                  V P                  .V P                   ,           V\"        P$                  R7      V n        R # )Nz0could not find interpreter with opposite bitnessÚTHINK_OF_A_NUMBER)ÚenvÚstdin)ÚsuperÚsetUprK  r   r"   r   ÚsysÚ
executableÚpython64Úpython32rA   rB   Úcopyrc  ru  r   Ú	test_argsrC  rE  Úproc32Úproc64)rE   Úother_pythonrO  Ú	__class__s   &  €r   rR  ÚRemoteProcessTestCase.setUp  så   ø€ Ü‰‰Œà×2Ñ2Ó4ˆØÒÜ—+’+ØBóð ÷ ‹8ÜŸN™NˆDŒMØ(�Mà(ŒMÜŸN™NˆDŒMä�j‰j�o‰oÓˆÜ#&¤r§y¢y£{Ó#3ˆÐÑ Ø×(Ñ(Ø�]‰]ˆO˜dŸn™nÕ,°#¼Z¿_¹_ð )ó 
ˆŒð ×(Ñ(Ø�]‰]ˆO˜dŸn™nÕ,°#¼Z¿_¹_ð )ó 
ˆŽr   c                óŒ   <€ \         SV `  4        V P                  P                  4        V P                  P                  4        R # r,   )rQ  ÚtearDownrY  rG  rZ  )rE   r\  s   &€r   r_  ÚRemoteProcessTestCase.tearDown)  s.   ø€ Ü‰ÑÔØ�‰×ÑÔ!Ø�‰×ÑÖ!r   c                óê   € \         P                  ! V P                  P                  4      p\	        VP                  4       4      ^8X  g   Q hVP                  4       R,          V P                  8X  g   Q hR# ©é   r(   N)rC   rS  rY  rG  rl   r$   rX  rW  s   & r   Útest_cmdline_32Ú%RemoteProcessTestCase.test_cmdline_32.  óM   € Ü�NŠN˜4Ÿ;™;Ÿ?™?Ó+ˆÜ�1—9‘9“;Ó 1Ô$Ð$Ð$Ø�y‰y‹{˜2� $§.¡.Ô0Ð0Ò0r   c                óê   € \         P                  ! V P                  P                  4      p\	        VP                  4       4      ^8X  g   Q hVP                  4       R,          V P                  8X  g   Q hR# rb  )rC   rS  rZ  rG  rl   r$   rX  rW  s   & r   Útest_cmdline_64Ú%RemoteProcessTestCase.test_cmdline_643  rf  r   c                ó®   € \         P                  ! V P                  P                  4      pVP	                  4       \
        P                  ! 4       8X  g   Q hR # r,   )rC   rS  rY  rG  rà  rA   ÚgetcwdrW  s   & r   Útest_cwd_32Ú!RemoteProcessTestCase.test_cwd_328  ó2   € Ü�NŠN˜4Ÿ;™;Ÿ?™?Ó+ˆØ�u‰u‹wœ"Ÿ)š)›+Ô%Ð%Ò%r   c                ó®   € \         P                  ! V P                  P                  4      pVP	                  4       \
        P                  ! 4       8X  g   Q hR # r,   )rC   rS  rZ  rG  rà  rA   rk  rW  s   & r   Útest_cwd_64Ú!RemoteProcessTestCase.test_cwd_64<  rn  r   c                óä   € \         P                  ! V P                  P                  4      pVP	                  4       pR V9   g   Q hVR ,          \        \        P                  ! 4       4      8X  g   Q hR# )rN  N)rC   rS  rY  rG  rB   rc  rA   ru  )rE   rX  Úes   &  r   Útest_environ_32Ú%RemoteProcessTestCase.test_environ_32@  sP   € Ü�NŠN˜4Ÿ;™;Ÿ?™?Ó+ˆØ�I‰I‹KˆØ" aÔ'Ð'Ð'ØÐ$Õ%¬¬R¯YªY«[Ó)9Ô9Ð9Ò9r   c                ó´   € \         P                  ! V P                  P                  4      p VP	                  4        R #   \         P
                   d     R # i ; ir,   )rC   rS  rZ  rG  rB   rU  rW  s   & r   Útest_environ_64Ú%RemoteProcessTestCase.test_environ_64F  s>   € Ü�NŠN˜4Ÿ;™;Ÿ?™?Ó+ˆð	Ø�I‰IŽKøÜ×"Ñ"ô 	Úð	ús   ¬> ¾AÁA)rY  rZ  rV  rU  )r   r   r   r   r  ÚstaticmethodrK  rX  rR  r_  rd  rh  rl  rp  rt  rw  r   r}   Ú__classcell__)r\  r   s   @@r   r<  r<  õ  sX   ù‡ € ñð ñ ó ð ð" Ð5Ð6€Iõ
õ0"ò
1ò
1ò
&ò&ò:÷ò r   r<  c                   ó,   a € ] tR tRt o R tR tRtV tR# )ÚTestServicesiS  c                ó$  € 0 Rmp0 Rmp0 Rmp\         P                  ! 4        EFé  pVP                  4       R8X  d   K  VP                  4       p\	        VR,          \
        4      '       g   Q hVR,          P                  4       '       g   Q h\	        VR,          \
        4      '       g   Q h\	        VR,          \
        4      '       g   Q hVR,          V9   g   Q hVR,          e   \         P                  ! VR,          4       \	        VR,          \
        4      '       g   Q h\	        VR,          \
        4      '       g   Q h\	        VR	,          \
        4      '       g   Q hVR	,          V9   g   Q hVR,          V9   g   Q h\	        VR
,          \
        4      '       g   Q hVP                  4       pVe/   \         P                  ! V4      pVP                  4       '       g   Q h\         P                  ! VP                  4       4      pW78X  d   EKê  Q h	  R# )ÚrunningÚWaaSMedicSvcrb  Údisplay_namerd  ÚstatusrG  NÚbinpathÚ
start_typeÚdescription>   ÚstopÚpauseÚstartÚpausedr~  ÚstoppedÚcontinue>   ÚmanualÚdisabledÚ	automatic>   rˆ  r~  r‰  Ústop_pendingÚpause_pendingÚstart_pendingÚcontinue_pending)rC   Úwin_service_iterrb  Úas_dictr6  rc  r2   rS  rG  Ú
is_runningÚwin_service_get)rE   Úvalid_statusesÚvalid_start_typesÚservr:   rG  rX  Úss   &       r   Útest_win_service_iterÚ"TestServices.test_win_service_iterU  s«  € ò
ˆò @Ðò
ˆô ×+Ò+×-ˆDØ�y‰y‹{˜nÔ,ñ Ø—<‘<“>ˆDÜ˜d 6�l¬C×0Ò0Ð0Ð0Ø˜•<×%Ñ%×'Ò'Ð'Ð'Ü˜d >Õ2´C×8Ò8Ð8Ð8Ü˜d :Õ.´×4Ò4Ð4Ð4Ø˜•> ^Ô3Ð3Ð3Ø�E�{Ò&Ü—’˜t E�{Ô+Ü˜d 9�o¬s×3Ò3Ð3Ð3Ü˜d :Õ.´×4Ò4Ð4Ð4Ü˜d <Õ0´#×6Ò6Ð6Ð6Ø˜Õ%Ð):Ô:Ð:Ð:Ø˜•> ^Ô3Ð3Ð3Ü˜d =Õ1´3×7Ò7Ð7Ð7Ø—(‘(“*ˆCØŠÜ—N’N 3Ó'�Ø—|‘|—~’~Ð%�~ä×&Ò& t§y¡y£{Ó3ˆAà—9Ð�9ó7 .r   c           	     ó*  € \         P                  P                  P                  p\         P                  P                  P                  p\        \         P                  ! 4       4      P                  4       p\        P                  ! \         P                  4      ;_uu_ 4       p\         P                  ! VR ,           4       RRR4       XP                  P                  VR ,           8X  g   Q h\         P                  ! V4      p\        ^ R^ 4      pWn        \        P                   ! RVR7      ;_uu_ 4        \        P                  ! \         P                  4      ;_uu_ 4        VP#                  4        RRR4       RRR4       \        P                   ! RVR7      ;_uu_ 4        \        P                  ! \         P                  4      ;_uu_ 4        VP%                  4        RRR4       RRR4       \        ^ R^ 4      pW&n        \        P                   ! RVR7      ;_uu_ 4        \        P                  ! \         P&                  4      ;_uu_ 4        VP#                  4        RRR4       RRR4       \        P                   ! RVR7      ;_uu_ 4        \        P                  ! \         P&                  4      ;_uu_ 4        VP%                  4        RRR4       RRR4       VP                  4       \)        V4      9   g   Q hVP+                  4       \)        V4      9   g   Q hVP                  4       \-        V4      9   g   Q hVP+                  4       \-        V4      9   g   Q hR#   + '       g   i     EL«; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELÆ; i  + '       g   i     ELÒ; i  + '       g   i     ELm; i  + '       g   i     ELy; i  + '       g   i     EL'; i  + '       g   i     EL3; i)z???NÚmsgz/psutil._psplatform.cext.winservice_query_statusrÚ   z/psutil._psplatform.cext.winservice_query_config)rC   ræ  rî   ÚERROR_SERVICE_DOES_NOT_EXISTÚERROR_ACCESS_DENIEDÚnextr’  rb  r   rT  r…  r•  rÙ  rÞ  rß  r   rÜ   r�  rd  rU  rc  r€  Úrepr)rE   rž  rŸ  rb  ÚcmÚservicerâ  s   &      r   Útest_win_service_getÚ!TestServices.test_win_service_get†  sÅ  € ä×Ñ×#Ñ#×@Ñ@ð 	%ô %×0Ñ0×5Ñ5×IÑIÐä”F×+Ò+Ó-Ó.×3Ñ3Ó5ˆÜ�]Š]œ6×/Ñ/×0Ô0°BÜ×"Ò" 4¨%¥<Ô0÷ 1à�x‰x�}‰}  u¥Ô,Ð,Ð,ô ×(Ò(¨Ó.ˆÜ�a˜ Ó"ˆØ3ŒÜ�ZŠZØ=È3÷
ö 
ô —’œv×3Ñ3×4Õ4Ø—‘Ô ÷ 5÷
ô
 �ZŠZØ=È3÷
ö 
ô —’œv×3Ñ3×4Õ4Ø× Ñ Ô"÷ 5÷
ô �a˜ Ó"ˆØ*ŒÜ�ZŠZØ=È3÷
ö 
ô —’œv×2Ñ2×3Õ3Ø—‘Ô ÷ 4÷
ô
 �ZŠZØ=È3÷
ö 
ô —’œv×2Ñ2×3Õ3Ø× Ñ Ô"÷ 4÷
ð �|‰|‹~¤ W£Ô-Ð-Ð-Ø×#Ñ#Ó%¬¨W«Ô5Ð5Ð5Ø�|‰|‹~¤ g£Ô.Ð.Ð.Ø×#Ñ#Ó%¬¨g«Ô6Ð6Ò6÷K 1×0Ð0ú÷ 5×4Ð4ú÷
÷ 
ð 
ú÷ 5×4Ð4ú÷
÷ 
ð 
ú÷ 4×3Ð3ú÷
÷ 
ð 
ú÷ 4×3Ð3ú÷
÷ 
ð 
úsœ   Â!M!Ä4-N	Å!M5	Å2N	Æ"-N1ÇN	Ç N1È#-OÉO	É!OÊ-PÊ>O-	ËPÍ!M2	Í5NÎ 	N	Î	N	ÎN.Î(	N1Î1O	ÏOÏ	OÏO*	Ï-O>Ï8	PÐP	r   N)r   r   r   r   rš  r¤  r   r}   r~   s   @r   r|  r|  S  s   ø‡ € ò/÷b,7ð ,7r   r|  )6r  r  rþ   rB  rA   rg  r�  r    rp  rC  rS  r  ÚwarningsÚunittestr   rC   r   Úpsutil.testsr   r   r   r   r   r	   r
   r   r   r   r   r   Úcatch_warningsÚsimplefilterrK   rx  r—  rZ   Úpsutil._pswindowsr   ræ  rî   r{   r|   r   r%   r@   r;   r=   r�   r  rD  rì  r  r<  r|  r   r   r   Ú<module>r¬     sù  ðñ ã Û Û Û 	Û Û 	Û Û Û Û 
Û Û Ý ã Ý Ý 'Ý $Ý !Ý Ý -Ý *Ý 'Ý Ý )Ý Ý &Ý "ç
—4Ø	×	 Ò	 ×	"Õ	"Ø×Ò˜hÔ'ÛÛÛÛ÷ 
#÷ Ý1ð ×Ñ×Ñ€ð ‡�×Ñ˜”K¨ÐÓ7Ø‡�×Ñ�DÐ!@ÐÓAô	�nó 	ó Bó 8ð	òð  #ô ô,%;�/ô %;ôPt/�_ô t/ôx>˜ô >ôLH�/ô HôVB,�_ô B,ðP ‡�×Ñ˜”K¨ÐÓ7ôT Nó Tó 8ðTðn ‡�×Ñ˜”K¨ÐÓ7ôU˜Nó Uó 8ðUðz ‡�×Ñ˜”K¨ÐÓ7ô^7�>ó ^7ó 8ò^7÷[ 
#×	"Ð	"ús   Â4#H%È%H6	