hyb
2025-12-23 10f3a1daddfbc7fa3dd2069197d83e8b6ef19176
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
Ë
Iñúh<Šãó —dZddlZddlZddlZddlZddlZddlZddlZddlZddl    Z    ddl
Z
ddl Z ddl Z ddl mZddlZddlmZddlmZddlmZddlmZddlmZdd    lmZdd
lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZer>es<e j<«5e j>d«ddl Z ddl!Z!ddl"Z"ddl#Z#ddd«erddl$m%Z%ejLjNZ'ejPjSe d¬«ejPjSed¬«Gd„de«««Z*d„Z+e,fd„Z-Gd„de*«Z.Gd„de*«Z/Gd„de*«Z0Gd „d!e*«Z1Gd"„d#e*«Z2ejPjSe d¬«Gd$„d%e««Z3ejPjSe d¬«Gd&„d'e««Z4ejPjSe d¬«Gd(„d)e««Z5y#1swYŒ8xYw)*zWindows 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©Úreasonzpywin32 not available on PYPYcó —eZdZy)ÚWindowsTestCaseN)Ú__name__Ú
__module__Ú __qualname__©óúLH:\Change_password\venv_build\Lib\site-packages\psutil/tests/test_windows.pyrr5s„ð    rrcóx—tjd«stjd«Sd|›d}t    |«S)zšCurrently not used, but available just in case. Usage:
 
    >>> powershell(
        "Get-CIMInstance Win32_PageFileUsage | Select AllocatedBaseSize")
    zpowershell.exezpowershell.exe not availablezhpowershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -Command "ú")ÚshutilÚwhichr Úskipr)ÚcmdÚcmdlines  rÚ
powershellr$;sC€ô <‰<Ð(Ô )܏{‰{Ð9Ó:Ð:ð    5Ø58°E¸ð    =ð ô ˆg‹;Ðrcó‡—td|›d|›«j«}dj|j«dd«j«}‰.d|vr"t    ˆfd„|j «D««S‰|«S|S)z‡Currently not used, but available just in case. Usage:
 
    >>> wmic("Win32_OperatingSystem", "FreePhysicalMemory")
    2134124534
    z
wmic path z get ÚéNú,c3ó.•K—|] }‰|«–—Œy­w©Nr)Ú.0ÚxÚ    converters  €rú    <genexpr>zwmic.<locals>.<genexpr>Tsøèø€Ò<¨!™ 1ŸÑ<ùsƒ)rÚstripÚjoinÚ
splitlinesÚtupleÚsplit)ÚpathÚwhatr-ÚoutÚdatas  `  rÚwmicr8Js}ø€ô ˆz˜$˜˜u T FÐ +Ó
4€CØ 7‰73—>‘>Ó# A BÐ'Ó (× .Ñ .Ó 0€DØÐØ $‰;ÜÓ<¨t¯z©z«|Ô<Ó<Ð <á˜T“?Ð "àˆ rcóˆ—eZdZejj dejvd¬«d„«Zd„Z    d„Z
d„Z d„Z d    „Z y
) Ú TestCpuAPIsÚNUMBER_OF_PROCESSORSz-NUMBER_OF_PROCESSORS env var is not availablercón—ttjd«}|tj«k(sJ‚y)Nr;)ÚintÚosÚenvironÚpsutilÚ    cpu_count)ÚselfÚnum_cpuss  rÚ&test_cpu_count_vs_NUMBER_OF_PROCESSORSz2TestCpuAPIs.test_cpu_count_vs_NUMBER_OF_PROCESSORSas/€ô”r—z‘zÐ"8Ñ9Ó:ˆØœ6×+Ñ+Ó-Ò-Ð-Ñ-rcóh—tj«d}tj«}||k(sJ‚y)Né)Úwin32apiÚ GetSystemInfor@rA©rBÚ    sys_valueÚ psutil_values   rÚtest_cpu_count_vs_GetSystemInfoz+TestCpuAPIs.test_cpu_count_vs_GetSystemInfoks3€ô×*Ñ*Ó,¨QÑ/ˆ    Ü×'Ñ'Ó)ˆ ؘLÒ(Ð(Ñ(rcóž—tj«}td„|j«D««}t    j
«|k(sJ‚y)Nc3ó4K—|]}|j–—Œy­wr*)ÚNumberOfLogicalProcessors©r+Úprocs  rr.z<TestCpuAPIs.test_cpu_count_logical_vs_wmi.<locals>.<genexpr>tsèø€ò
Ø/3ˆD× *Õ *ñ
ùó‚©ÚwmiÚWMIÚsumÚWin32_Processorr@rA)rBÚwÚprocss   rÚtest_cpu_count_logical_vs_wmiz)TestCpuAPIs.test_cpu_count_logical_vs_wmirsF€Ü G‰G‹IˆÜñ
Ø78×7HÑ7HÓ7Jô
ó
ˆô×ÑÓ! UÒ*Ð*Ñ*rcó¢—tj«}td„|j«D««}t    j
d¬«|k(sJ‚y)Nc3ó4K—|]}|j–—Œy­wr*)Ú NumberOfCoresrPs  rr.z:TestCpuAPIs.test_cpu_count_cores_vs_wmi.<locals>.<genexpr>{sèø€ÒG¨4D×&Õ&ÑGùrRF)ÚlogicalrS)rBrXÚcoress   rÚtest_cpu_count_cores_vs_wmiz'TestCpuAPIs.test_cpu_count_cores_vs_wmiys?€Ü G‰G‹IˆÜÑG°1×3DÑ3DÓ3FÔGÓGˆÜ×ѨÔ.°%Ò7Ð7Ñ7rcóp—tj«ttjd¬««k(sJ‚y)NT)Úpercpu)r@rAÚlenÚ    cpu_times©rBs rÚtest_cpu_count_vs_cpu_timesz'TestCpuAPIs.test_cpu_count_vs_cpu_times~s)€Ü×ÑÓ!¤S¬×)9Ñ)9ÀÔ)FÓ%GÒGÐGÑGrcó—tj«}|j«d}|jt    j
«j k(sJ‚|jt    j
«jk(sJ‚y©Nr)    rTrUrWÚCurrentClockSpeedr@Úcpu_freqÚcurrentÚ MaxClockSpeedÚmax)rBrXrQs   rÚ test_cpu_freqzTestCpuAPIs.test_cpu_freqsb€Ü G‰G‹IˆØ× Ñ Ó" 1Ñ%ˆØ×%Ñ%¬¯©Ó):×)BÑ)BÒBÐBÐBØ×!Ñ!¤V§_¡_Ó%6×%:Ñ%:Ò:Ð:Ñ:rN)rrrr ÚmarkÚskipifr>r?rDrLrZr`rfrnrrrr:r:`sQ„Ø ‡[[×ÑØ b§j¡jÐ0Ø>ðóñ.ó    ð.ò )ò+ò8ò
Hó;rr:cóœ—eZdZd„Zd„Zd„Zd„Zd„Ze«d„«Z    e«d„«Z
e«d„«Z d    „Z d
„Z d „Zd „Zd „Zd„Zy)ÚTestSystemAPIscóò—td«}tjd¬«j«}|D]C}d|j    dd«j «vrŒ&||vsŒ+t j|›d«cSy)Nz ipconfig /allT)Úperniczpseudo-interfaceú ú-z+ nic wasn't found in 'ipconfig /all' output)rr@Únet_io_countersÚkeysÚreplaceÚlowerr Úfail)rBr6ÚnicsÚnics    rÚtest_nic_nameszTestSystemAPIs.test_nic_names‰sv€ÜÓ!ˆÜ×%Ñ%¨TÔ2×7Ñ7Ó9ˆØò    ˆCØ! S§[¡[°°cÓ%:×%@Ñ%@Ó%BÑBØØ˜#Š~Ü—{‘{ؐgÐHÐIóòñ        rcóº—tj«j«d}t|j«t j «jk(sJ‚yrh)rTrUÚWin32_ComputerSystemr=ÚTotalPhysicalMemoryr@Úvirtual_memoryÚtotal©rBrXs  rÚtest_total_phymemz TestSystemAPIs.test_total_phymem”sC€Ü G‰G‹I× *Ñ *Ó ,¨QÑ /ˆÜ1×(Ñ(Ó)¬V×-BÑ-BÓ-D×-JÑ-JÒJÐJÑJrcóڗtj«j«d}tt    |j
«t j«jz
«tksJ‚yrh)
rTrUÚWin32_PerfRawData_PerfOS_MemoryÚabsr=ÚAvailableBytesr@r‚Úfreer
r„s  rÚtest_free_phymemzTestSystemAPIs.test_free_phymem˜sT€Ü G‰G‹I× 5Ñ 5Ó 7¸Ñ :ˆä ”A×$Ñ$Ó%¬×(=Ñ(=Ó(?×(DÑ(DÑDÓ EÜò  ð    
ñ  rcóÈ—tj«j«d}t|j«t j «jz
t j«jk(sJ‚t j«jdk(rGt j«jdk(sJ‚t j«jdk(sJ‚yyrh) rTrUr‡r=Ú CommitLimitr@r‚rƒÚ swap_memoryrŠÚusedr„s  rÚtest_total_swapmemz!TestSystemAPIs.test_total_swapmemŸs´€Ü G‰G‹I× 5Ñ 5Ó 7¸Ñ :ˆä — ‘ Ó ¤×!6Ñ!6Ó!8×!>Ñ!>Ñ >Ü×!Ñ!Ó#×)Ñ)ò *ð    
ð *ô × Ñ Ó × %Ñ %¨Ò *Ü×%Ñ%Ó'×,Ñ,°Ò1Ð 1Ð1Ü×%Ñ%Ó'×,Ñ,°Ò1Ð 1Ñ1ð +rcóÜ—tj«jdkDrËtj«j d¬«d}t |j«dzt |j«z }tj«jdk\sJ‚ttj«j|z
«dksJ‚tj«jdksJ‚yy)NrÚ_Total)ÚNameédrF) r@rŽrƒrTrUÚ#Win32_PerfRawData_PerfOS_PagingFiler=Ú PercentUsageÚPercentUsage_BaseÚpercentrˆ)rBrXÚ percentSwaps   rÚtest_percent_swapmemz#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ð *rcó̗tj«j«}|Dchc]}|j’Œ}}t    t j ««}||k(sJ‚ycc}wr*)rTrUÚ Win32_ProcessÚ    ProcessIdÚsetr@Úpids)rBrXr,Úwmi_pidsÚ psutil_pidss     rÚ    test_pidszTestSystemAPIs.test_pidsÀsR€ô G‰G‹I× #Ñ #Ó %ˆØ)*Ö+ AA—K“KÐ+ˆÐ+Üœ&Ÿ+™+›-Ó(ˆ ؘ;Ò&Ð&Ñ&ùò,s§A!có—tjd¬«}tj«j    «}|D]8}|D]}|j
j dd«|jk(sŒ.|jsŒBd|jvrŒR|jjd«rŒo    tj|j«}|jt|j«k(sJ‚t|j «}|j"|k(sJ‚t%|j"|z
«dkDr)t'j(d|j"›d    |›«ccSŒ t'j(d
|›«cSy#t$rYŒJwxYw) NT©Úallú\r&ÚcdromúA:i zpsutil=z, wmi=zcan't find partition )r@Údisk_partitionsrTrUÚWin32_LogicalDiskÚdeviceryÚDeviceIDÚ
mountpointÚoptsÚ
startswithÚ
disk_usageÚFileNotFoundErrorrƒr=ÚSizeÚ    FreeSpacerŠrˆr r{)rBÚps_partsÚ    wmi_partsÚps_partÚwmi_partÚusageÚwmi_frees       rÚ
test_diskszTestSystemAPIs.test_disksÉsa€ä×)Ñ)¨dÔ3ˆÜ—G‘G“I×/Ñ/Ó1ˆ    Øó    HˆGØ%ó HØ—>‘>×)Ñ)¨$°Ó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Ü%Ÿ{™{Ø% e§j¡j \°¸°zÐBó ôòð- Hô0—{‘{Ð%:¸7¸+Ð#FÓGÒGñ3    Høô-òãðúsÂ+E8Å8    FÆFcó°—tj«D]¿}d|jvrŒtj|j
«}tj |j
«}t|d|jz
«tksJ‚t|d|jz
«tksJ‚|j|j|jz
k(rŒ¿J‚y)Nr§rr') r@r©r®rGÚGetDiskFreeSpaceExr­r°rˆrŠr    rƒr)rBÚdiskrJrKs    rÚtest_disk_usagezTestSystemAPIs.test_disk_usageèsÀ€ä×*Ñ*Ó,ò        Oˆ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ñ        OrcóB—tj«jd«Dcgc]}|r|jd«s|dz‘Œ}}t    j
d¬«Dcgc])}|j jd«s |j ‘Œ+}}||k(sJ‚ycc}wcc}w)Nz\r¨r¦Tr¤)rGÚGetLogicalDriveStringsr3r¯r@r©r­)rBr,rJrKs    rÚtest_disk_partitionsz#TestSystemAPIs.test_disk_partitionsõs¡€ô×4Ñ4Ó6×<Ñ<¸XÓFö
àÙ˜Ÿ™ dÔ+𠐋Hð
ˆ    ð
ô×+Ñ+°Ô5ö
àØ—<‘<×*Ñ*¨4Ô0ð L‹Lð
ˆ ð
ð
˜LÒ(Ð(Ñ(ùò
ùò
 
s ¦BÁ.Bcó:—d}d}d}d}d}||i}tjd|j¬«5}tjj |«|k(sJ‚tjj |«|k(sJ‚|j sJ‚    ddd«y#1swYyxYw)NzC:\Windows\TempzC:z\Device\HarddiskVolume1z\??\C:\Windows\Tempz$\Device\HarddiskVolume1\Windows\Tempz%psutil._pswindows.cext.QueryDosDevice©Ú side_effect)rÚpatchÚgetr@Ú
_pswindowsÚconvert_dos_pathÚcalled)rBÚwinpathÚ driveletterÚ
devicepathÚntpath1Úntpath2ÚdevicesÚms        rÚtest_convert_dos_path_drivez*TestSystemAPIs.test_convert_dos_path_drives€Ø%ˆØˆ à0ˆ
ð,ˆà<ˆà˜{Ð+ˆä Z‰ZØ 3ÀÇÁô
ð    à Ü×$Ñ$×5Ñ5°gÓ>À'ÒIÐ IÐIÜ×$Ñ$×5Ñ5°gÓ>À'ÒIÐ IÐIØ—8’8ˆO‘8÷     ÷    ñ    ús °ABÂBcóè—d}d}d}tjj|«|k(sJ‚tjj|«|k(sJ‚tjj|«|k(sJ‚y)Nz\\localhost\C$\Windows\Tempz!\??\UNC\localhost\C$\Windows\Tempz%\Device\Mup\localhost\C$\Windows\Temp)r@rÇrÈ)rBrÊrÍrÎs    rÚtest_convert_dos_path_uncz(TestSystemAPIs.test_convert_dos_path_uncsn€à4ˆà;ˆà?ˆä× Ñ ×1Ñ1°'Ó:¸gÒEÐEÐEÜ× Ñ ×1Ñ1°'Ó:¸gÒEÐEÐEÜ× Ñ ×1Ñ1°'Ó:¸gÒEÐEÑErcó4—ttj««}tj«j «}t«}|D]8}|j |j«|j |j«Œ:||zs Jd|›d|›«‚y)Nzno common entries in z, )    ržÚcextÚ net_if_statsrTrUÚWin32_NetworkAdapterÚaddr“ÚNetConnectionID)rBÚps_namesÚ wmi_adaptersÚ    wmi_namesÚ wmi_adapters     rÚtest_net_if_statsz TestSystemAPIs.test_net_if_stats"sЀܔt×(Ñ(Ó*Ó+ˆÜ—w‘w“y×5Ñ5Ó7ˆ Ü“Eˆ    Ø'ò    7ˆKØ M‰M˜+×*Ñ*Ô +Ø M‰M˜+×5Ñ5Õ 6ð    7ð yÒ  ð    ;à " 8 *¨B¨y¨kÐ :ó    ;Ù  rcó€—tj«j«}|djj    d«d}t
j
j |d«}t
j
jtj««}t||z
j««}|dks    J||f«‚y)Nrú.ú %Y%m%d%H%M%SrF) rTrUÚWin32_OperatingSystemÚLastBootUpTimer3ÚdatetimeÚstrptimeÚ fromtimestampr@Ú    boot_timerˆÚ total_seconds)rBÚwmi_osÚ wmi_btime_strÚ wmi_btime_dtÚ    psutil_dtÚdiffs      rÚtest_boot_timezTestSystemAPIs.test_boot_time-sŸ€Ü—‘“×0Ñ0Ó2ˆØ˜q™    ×0Ñ0×6Ñ6°sÓ;¸AÑ>ˆ Ü×(Ñ(×1Ñ1Ø ˜>ó
ˆ ô×%Ñ%×3Ñ3´F×4DÑ4DÓ4FÓGˆ    ÜL 9Ñ,×;Ñ;Ó=Ó>ˆØqŠyÐ3˜9 lÐ3Ó3‰yrcó¨—tjjj«}|dz }t    t
j «|z
«dksJ‚y)Ng@@gà?)ÚctypesÚwindllÚkernel32ÚGetTickCount64rˆrÕÚuptime)rBÚmsÚsecss   rÚ test_uptimezTestSystemAPIs.test_uptime7sC€ô]‰]× #Ñ #× 2Ñ 2Ó 4ˆØF‰{ˆÜ”4—;‘;“= 4Ñ'Ó(¨3Ò.Ð.Ñ.rN)rrrr~r…r‹rršr r¢rºr¾rÁrÑrÓrÞrîr÷rrrrrrrˆs„„ò    òKò
ò2ò    7ñ.Óñ'óð'ñÓñHóðHñ<Óñ
Oóð
Oò )òò(
Fò    ;ò4ó/rrrcóº—eZdZd„Zej
j e d¬«d„«Zej
j e d¬«d„«Z    d„Z
d„Z d„Z d    „Z y
) ÚTestSensorsBatterycóŒ—tj«drtj«€J‚ytj«J‚y)NÚSystemBatteriesPresent)rGÚGetPwrCapabilitiesr@Úsensors_batteryres rÚtest_has_batteryz#TestSensorsBattery.test_has_batteryEs>€Ü × &Ñ &Ó (Ð)AÒ BÜ×)Ñ)Ó+Ð7Ð 7Ñ7ä×)Ñ)Ó+Ð3Ð 3Ñ3rz
no batteryrcóʗtj«}|jd«d}tj«}t |j |jz
«dksJ‚y)Núselect * from Win32_Batteryrr')rTrUÚqueryr@rýrˆr˜ÚEstimatedChargeRemaining©rBrXÚ battery_wmiÚbattery_psutils    rÚ test_percentzTestSensorsBattery.test_percentKsZ€ä G‰G‹IˆØ—g‘gÐ;Ó<¸QÑ?ˆ Ü×/Ñ/Ó1ˆä ×&Ñ&¨×)MÑ)MÑMÓ NØò ð    
ñ rcó¸—tj«}|jd«d}tj«}|j
|j dk(k(sJ‚y)Nrré)rTrUrr@rýÚ power_pluggedÚ BatteryStatusrs    rÚtest_power_pluggedz%TestSensorsBattery.test_power_pluggedUsP€ä G‰G‹IˆØ—g‘gÐ;Ó<¸QÑ?ˆ Ü×/Ñ/Ó1ˆð×+Ñ+° ×0IÑ0IÈQÑ0NÒOÐOÑOrcó¦—tjdd¬«5}tj«J‚|jsJ‚    ddd«y#1swYyxYw)Nú&psutil._pswindows.cext.sensors_battery)ré€rr©Ú return_value)rrÅr@rýrÉ©rBrÐs  rÚtest_emulate_no_batteryz*TestSensorsBattery.test_emulate_no_battery^sN€Ü Z‰ZØ 4Ø'ô
ð    ðÜ×)Ñ)Ó+Ð3Ð 3Ð3Ø—8’8ˆO‘8÷     ÷    ñ    ús ˜%AÁAcóܗtjdd¬«5}tj«jtj
k(sJ‚|j sJ‚    ddd«y#1swYyxYw)Nr )r'rrrr©rrÅr@rýÚsecsleftÚPOWER_TIME_UNLIMITEDrÉrs  rÚtest_emulate_power_connectedz/TestSensorsBattery.test_emulate_power_connectedfób€Ü Z‰ZØ 4À<ô
ð    à ä×&Ñ&Ó(×1Ñ1Ü×.Ñ.ò/ð ð/ð—8’8ˆO‘8÷    ÷    ñ    úó ˜AA"Á"A+cóܗtjdd¬«5}tj«jtj
k(sJ‚|j sJ‚    ddd«y#1swYyxYw)Nr )rérrrrrs  rÚtest_emulate_power_chargingz.TestSensorsBattery.test_emulate_power_chargingprrcóܗtjdd¬«5}tj«jtj
k(sJ‚|j sJ‚    ddd«y#1swYyxYw)Nr )rrréÿÿÿÿr)rrÅr@rýrÚPOWER_TIME_UNKNOWNrÉrs  rÚtest_emulate_secs_left_unknownz1TestSensorsBattery.test_emulate_secs_left_unknownzs^€Ü Z‰ZØ 4Ø&ô
ð    ðä×&Ñ&Ó(×1Ñ1´V×5NÑ5NÒNð ØNà—8’8ˆO‘8÷    ÷    ñ    úrN)rrrrþr rorprrr rrrr rrrrùrùDsq„ò4ð  ‡[[×јK˜° ÐÓ=ñ
ó>ð
ð ‡[[×јK˜° ÐÓ=ñPó>ðPòòòórrùcó†—eZdZed„«Zed„«Zd„Zd„Zd„Zd„Z    d„Z
d„Z d    „Z d
„Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zy)Ú TestProcesscó6—t«j|_yr*©rÚpid©Úclss rÚ
setUpClasszTestProcess.setUpClass‹ó€ä“/×%Ñ%ˆrcó.—t|j«yr*©rr%r&s rÚ tearDownClasszTestProcess.tearDownClassó€ä#—'‘'Õrcó¾—tjd«}tjtj«5|j «ddd«y#1swYyxYwrh)r@ÚProcessr ÚraisesÚ AccessDeniedÚkill©rBÚps  rÚ test_issue_24zTestProcess.test_issue_24“s@€Ü N‰N˜1Ó ˆÜ ]‰]œ6×.Ñ.Ó /ñ    Ø F‰FŒH÷    ÷    ñ    ús ¹AÁAcóZ—tjd«}|j«dk(sJ‚t|«|j    «|j «dk\sJ‚    |j «dd\}}|dkDsJ‚y#tj$rtj«ddvr‚YywxYw)NéÚSystemgrrr'>úwin-7Úwin7Úvista)
r@r/ÚnameÚstrÚusernameÚ create_timeÚ memory_infor1ÚplatformÚuname)rBr4ÚrssÚ_vmss    rÚtest_special_pidzTestProcess.test_special_pid˜s§€Ü N‰N˜1Ó ˆØv‰v‹x˜8Ò#Ð#Ð#ô     ˆAŒØ    
‰
Œ ؏}‰}‹ #Ò%Ð%Ð%ð    ØŸ ™ ›¨¨Ð+‰IˆCð ˜’7ˆN‘7øô ×"Ñ"ò    ä~‰~Ó Ñ"Ð*DÑDØñEð    úsÁA:Á:-B*Â)B*cóܗtj|j«}tjt
«5|j tj«ddd«y#1swYyxYwr*)    r@r/r%r r0Ú
ValueErrorÚ send_signalÚsignalÚSIGINTr3s  rÚtest_send_signalzTestProcess.test_send_signal©sE€Ü N‰N˜4Ÿ8™8Ó $ˆÜ ]‰]œ:Ó &ñ    )Ø M‰Mœ&Ÿ-™-Ô (÷    )÷    )ñ    )ús ¹ A"Á"A+có„—tjtj««}|j    «}t j tjtjtj««}|j    «}||dzk(sJ‚t j|«|j    «|k(sJ‚y)Nr') r@r/r>ÚgetpidÚ num_handlesrGÚ OpenProcessÚwin32conÚPROCESS_QUERY_INFORMATIONÚFALSEÚ CloseHandle)rBr4ÚbeforeÚhandleÚafters     rÚtest_num_handles_incrementz&TestProcess.test_num_handles_increment®s‰€Ü N‰Nœ2Ÿ9™9›;Ó 'ˆØ—‘“ˆÜ×%Ñ%Ü × .Ñ .´·±ÄÇ    Á    Ã ó
ˆð— ‘ “ˆØ˜ ™
Ò"Ð"Ð"Ü×јVÔ$؏}‰}‹ &Ò(Ð(Ñ(rcóv—tj|j«j«}|j    t
j «|j    t
j«|j«|j«tjtj«5|j    t
j «ddd«tjtj«5|j    t
j«ddd«y#1swYŒUxYw#1swYyxYwr*) r@r/rr%rHrIÚ CTRL_C_EVENTÚCTRL_BREAK_EVENTr2Úwaitr r0Ú NoSuchProcessr3s  rÚtest_ctrl_signalszTestProcess.test_ctrl_signals¹sÌ€Ü N‰N˜4×-Ñ-Ó/×3Ñ3Ó 4ˆØ     ‰ ”f×)Ñ)Ô*Ø     ‰ ”f×-Ñ-Ô.Ø    ‰ŒØ    ‰ŒÜ ]‰]œ6×/Ñ/Ó 0ñ    /Ø M‰Mœ&×-Ñ-Ô .÷    /ä ]‰]œ6×/Ñ/Ó 0ñ    3Ø M‰Mœ&×1Ñ1Ô 2÷    3ð    3÷    /ð    /ú÷    3ð    3úsÂ/ D#Ã: D/Ä#D,Ä/D8cóä—tjtj«}|j    d«rt j d«Stj«j«|k(sJ‚y)Nú$zrunning as service account)
rGÚ GetUserNameExrPÚNameSamCompatibleÚendswithr r!r@r/r>)rBr<s  rÚ test_usernamezTestProcess.test_usernameÄsT€Ü×%Ñ%¤h×&@Ñ&@ÓAˆØ =‰=˜Ô ô—;‘;Ð;Ó<Ð <܏~‰~Ó×(Ñ(Ó*¨dÒ2Ð2Ñ2rcó0—tjddtj««j    «}dj t j«j««}|ddcxk(r|dk7rnn|jddd«}||k(sJ‚y)Nz[ ]+rurrr&r)
ÚreÚsubrGÚGetCommandLiner/r0r@r/r#ryrIs   rÚ test_cmdlinezTestProcess.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ؘLÒ(Ð(Ñ(rcóJ—tjtjtjt j ««}|jtj|«tj|«}tj«j«}||k(sJ‚yr*)rGrOrPrQrRr>rMÚ
addCleanuprSÚ win32processÚGetPriorityClassr@r/Únice©rBrUrJrKs    rÚ    test_nicezTestProcess.test_niceäsr€Ü×%Ñ%Ü × .Ñ .´·±ÄÇ    Á    Ã ó
ˆð     ‰œ×,Ñ,¨fÔ5Ü ×1Ñ1°&Ó9ˆ    Ü—~‘~Ó'×,Ñ,Ó.ˆ ؘyÒ(Ð(Ñ(rcóî—tjtjtj|j
«}|j tj|«tj|«}tj|j
«j«}|d|jk(sJ‚|d|jk(sJ‚|d|jk(sJ‚|d|j k(sJ‚|d|j"k(sJ‚|d|j$k(sJ‚|d|j&k(sJ‚|d|j(k(sJ‚|j*|jk(sJ‚|j,|j&k(sJ‚y)    NÚPeakWorkingSetSizeÚWorkingSetSizeÚQuotaPeakPagedPoolUsageÚQuotaPagedPoolUsageÚQuotaPeakNonPagedPoolUsageÚQuotaNonPagedPoolUsageÚ PagefileUsageÚPeakPagefileUsage)rGrOrPrQrRr%rjrSrkÚGetProcessMemoryInfor@r/r@Ú    peak_wsetÚwsetÚpeak_paged_poolÚ
paged_poolÚpeak_nonpaged_poolÚ nonpaged_poolÚpagefileÚ peak_pagefilerCÚvmsrns    rÚtest_memory_infozTestProcess.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Ñ8rcót—tjtjtj|j
«}|j tj|«tj|j
«}|j«|j«}tj|«}||k(sJ‚yr*)rGrOrPrQrRr%rjrSr@r/rr[rkÚGetExitCodeProcess)rBrUr4rKrJs     rÚ    test_waitzTestProcess.test_waits€Ü×%Ñ%Ü × .Ñ .´·±ÀÇÁó
ˆð     ‰œ×,Ñ,¨fÔ5Ü N‰N˜4Ÿ8™8Ó $ˆØ     ‰ Œ Ø—v‘v“xˆ Ü ×3Ñ3°FÓ;ˆ    Ø˜yÒ(Ð(Ñ(rcóh—d„}tjtjtj|j
«}|j tj|«|tj|«d«}tj|j
«j«}||k(sJ‚y)NcóP—td«Dcgc] }d|z|zsŒ |‘Œc}Scc}w)Né@r')Úrange)r,Úis  rÚ from_bitmaskz3TestProcess.test_cpu_affinity.<locals>.from_bitmasks$€Ü$ R›yÖ9˜!¨Q°!©V°q«L’AÒ9Ð 9ùÒ9sŽ #œ#r) rGrOrPrQrRr%rjrSrkÚGetProcessAffinityMaskr@r/Ú cpu_affinity)rBrŒrUrJrKs     rÚtest_cpu_affinityzTestProcess.test_cpu_affinitysŒ€ò    :ô×%Ñ%Ü × .Ñ .´·±ÀÇÁó
ˆð     ‰œ×,Ñ,¨fÔ5Ù Ü × /Ñ /°Ó 7¸Ñ :ó
ˆ    ô—~‘~ d§h¡hÓ/×<Ñ<Ó>ˆ ؘyÒ(Ð(Ñ(rcó,—tjtjtjt j ««}|jtj|«tj|«}tj«j«}|j|dk(sJ‚|j|dk(sJ‚|j |dk(sJ‚|j"|dk(sJ‚|j$|dk(sJ‚|j&|dk(sJ‚y)NÚReadOperationCountÚWriteOperationCountÚReadTransferCountÚWriteTransferCountÚOtherOperationCountÚOtherTransferCount)rGrOrPrQrRr>rMrjrSrkÚGetProcessIoCountersr@r/Ú io_countersÚ
read_countÚ write_countÚ
read_bytesÚ write_bytesÚ other_countÚ other_bytesrns    rÚtest_io_counterszTestProcess.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ÑJrcóú—ddl}ddl}d}|jjj    |d|j
«}|j |jjj|«|jj«}|jjj||j|««|j}tj|j
«j«}||k(sJ‚y)Nré)rðÚctypes.wintypesrñròrOr%rjrSÚwintypesÚDWORDÚGetProcessHandleCountÚbyrefÚvaluer@r/rN)rBrðrQrUÚhndcntrJrKs       rÚtest_num_handleszTestProcess.test_num_handles/sÁ€ÛÛà$)Ð!Ø—‘×'Ñ'×3Ñ3Ø % q¨$¯(©(ó
ˆð     ‰˜Ÿ ™ ×.Ñ.×:Ñ:¸FÔCà—‘×&Ñ&Ó(ˆØ ‰ ×Ñ×4Ñ4Ø LF—L‘L Ó(ô    
ð—L‘Lˆ    Ü—~‘~ d§h¡hÓ/×;Ñ;Ó=ˆ ؘyÒ(Ð(Ñ(rcó¬—t«}d|_tjd|¬«5tjd«5}t    j
«}t jtj«5|j«ddd«ddd«ddd«jdk\sJ‚y#1swYŒ+xYw#1swYŒ/xYw#1swYŒ3xYw)Ni+z psutil._psplatform.cext.proc_cwdrÃz
time.sleeprF) ÚOSErrorÚwinerrorrrÅr@r/r r0r1ÚcwdÚ
call_count)rBÚexcrÐr4s    rÚtest_error_partial_copyz#TestProcess.test_error_partial_copyAs§€ä‹iˆØˆŒ Ü Z‰ZÐ:ÈÔ Lñ    Ü—‘˜LÓ)ð ¨QÜ—N‘NÓ$Ü—]‘]¤6×#6Ñ#6Ó7ñØ—E‘E”G÷÷ ÷    ð
|‰|˜qҠРѠ÷ðú÷ ð ú÷    ð    ús:©C
¿8B>Á7B2ÂB>ÂC
Â2B; Â7B>Â>C    ÃC
Ccó—tj«ddz}tjj|«}t    j
tj «5|j«ddd«y#1swYyxYw)NriŸ†)r@rŸÚ _psplatformr/r r0r\Úexe)rBr%rQs   rÚtest_exezTestProcess.test_exeLs_€ôk‰k‹m˜BÑ %Ñ'ˆÜ×!Ñ!×)Ñ)¨#Ó.ˆÜ ]‰]œ6×/Ñ/Ó 0ñ    Ø H‰HŒJ÷    ÷    ñ    ús ÁA7Á7BN)rrrÚ classmethodr(r,r5rErKrWr]rcrhrorƒr†rrŸr©r°r´rrrr"r"Šst„Øñ&óð&ðñóðòò
ò")ò
    )ò    3ò3ò    )ò.)ò9ò6    )ò )ò Kò)ò$    !órr"có—eZdZdZed„«Zed„«Zd„Zejje d¬«d„«Z d„Z d    „Ze«d
„«Ze«d „«Zd „Zy )ÚTestProcessWMIz%Compare Process API results with WMI.có6—t«j|_yr*r$r&s rr(zTestProcessWMI.setUpClassXr)rcó.—t|j«yr*r+r&s rr,zTestProcessWMI.tearDownClass\r-rcóâ—tj«j|j¬«d}t    j
|j«}|j «|jk(sJ‚y©N©rr)rTrUrœr%r@r/r<ÚCaption©rBrXr4s   rÚ    test_namezTestProcessWMI.test_name`sN€Ü G‰G‹I× #Ñ #¨d¯h©hÐ #Ó 7¸Ñ :ˆÜ N‰N˜4Ÿ8™8Ó $ˆØv‰v‹x˜1Ÿ9™9Ò$Ð$Ñ$rz!unreliable path on GITHUB_ACTIONSrcó—tj«j|j¬«d}t    j
|j«}|j «j«|jj«k(sJ‚yr»)    rTrUrœr%r@r/r³rzÚExecutablePathr¾s   rr´zTestProcessWMI.test_exefsc€ô G‰G‹I× #Ñ #¨d¯h©hÐ #Ó 7¸Ñ :ˆÜ N‰N˜4Ÿ8™8Ó $ˆðu‰u‹w}‰}‹ !×"2Ñ"2×"8Ñ"8Ó":Ò:Ð:Ñ:rcó —tj«j|j¬«d}t    j
|j«}dj |j««|jjdd«k(sJ‚y)Nr¼rrurr&)
rTrUrœr%r@r/r0r#Ú CommandLineryr¾s   rrhzTestProcessWMI.test_cmdlinepsd€Ü G‰G‹I× #Ñ #¨d¯h©hÐ #Ó 7¸Ñ :ˆÜ N‰N˜4Ÿ8™8Ó $ˆØx‰x˜Ÿ    ™    › Ó$¨¯ © ×(=Ñ(=¸cÀ2Ó(FÒFÐFÑFrcó—tj«j|j¬«d}t    j
|j«}|j «\}}}|›d|›}|j«|k(sJ‚y)Nr¼rr¦)rTrUrœr%r@r/ÚGetOwnerr>)rBrXr4ÚdomainÚ_r>s      rrczTestProcessWMI.test_usernameusl€Ü G‰G‹I× #Ñ #¨d¯h©hÐ #Ó 7¸Ñ :ˆÜ N‰N˜4Ÿ8™8Ó $ˆØŸj™j›lш8ؐX˜R ˜zÐ*ˆØz‰z‹|˜xÒ'Ð'Ñ'rcó —tj«j|j¬«d}t    j
|j«}|j «j}|t|j«k(sJ‚yr»)
rTrUrœr%r@r/r@rCr=rr)rBrXr4rCs    rÚtest_memory_rsszTestProcessWMI.test_memory_rss|s`€ä G‰G‹I× #Ñ #¨d¯h©hÐ #Ó 7¸Ñ :ˆÜ N‰N˜4Ÿ8™8Ó $ˆØm‰m‹o×!Ñ!ˆØ”c˜!×*Ñ*Ó+Ò+Ð+Ñ+rcóJ—tj«j|j¬«d}t    j
|j«}|j «j}t|j«}|||dzhvrtjd|›d|›«Sy)Nr¼rr¡zwmi=z    , psutil=) rTrUrœr%r@r/r@r‚r=Ú PageFileUsager r{)rBrXr4r‚Ú    wmi_usages     rÚtest_memory_vmszTestProcessWMI.test_memory_vmsƒsŠ€ä G‰G‹I× #Ñ #¨d¯h©hÐ #Ó 7¸Ñ :ˆÜ N‰N˜4Ÿ8™8Ó $ˆØm‰m‹o×!Ñ!ˆô
˜Ÿ™Ó(ˆ    Ø y )¨dÑ"2Ð3Ñ 3Ü—;‘;  i [°    ¸#¸Ð?Ó@Ð @ð 4rcón—tj«j|j¬«d}t    j
|j«}t |jjd«d«}tjdtj|j«««}||k(sJ‚y)Nr¼rràrá) rTrUrœr%r@r/r=Ú CreationDater3ÚtimeÚstrftimeÚ    localtimer?)rBrXr4Ú wmic_createÚ psutil_creates     rÚtest_create_timezTestProcessWMI.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¯=©=«?Ó;ó
ˆ ð˜mÒ+Ð+Ñ+rN)rrrÚ__doc__rµr(r,r¿r rorprr´rhrcr rÉrÍrÕrrrr·r·Usž„Ù/àñ&óð&ðñóðò%ð  ‡[[×ÑØÐBðóñ;óð;òGò
(ñÓñ,óð,ñ Óñ
Aóð
Aó,rr·cóT—eZdZdZed„«Zed„«Zd„Zd„Zd„Z    d„Z
d„Z d    „Z y
) ÚTestDualProcessImplementationawCertain 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ó6—t«j|_yr*r$r&s rr(z(TestDualProcessImplementation.setUpClass¨r)rcó.—t|j«yr*r+r&s rr,z+TestDualProcessImplementation.tearDownClass¬r-rcóô—tj|j«j«}t    j
dt ¬«5}tj|j«j«}t|«t|«k(sJ‚tt|««D]/}||dk\sJ‚||dk\sJ‚t||||z
«dkrŒ/J‚|jsJ‚    ddd«y#1swYyxYw)Nz(psutil._psplatform.cext.proc_memory_inforÃri) r@r/r%r@rrÅÚPermissionErrorrcrŠrˆrÉ)rBÚmem_1ÚfunÚmem_2r‹s     rrƒz.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›:Ó&ò 6Ø˜Q‘x 1’}Ð$}ؘQ‘x 1’}Ð$}ܘ5 ™8 e¨A¡hÑ.Ó/°#Ó5Ð5Ð5ð 6ð—:’:Ð ‘:÷
    ÷
    ñ
    úsÁ    B    C.ÃC.Ã.C7có@—tj|j«j«}t    j
dt ¬«5}tj|j«j«|k(sJ‚|jsJ‚    ddd«y#1swYyxYw)Nú"psutil._psplatform.cext.proc_timesrÃ)r@r/r%r?rrÅrÜrÉ)rBÚctimerÞs   rrÕz.TestDualProcessImplementation.test_create_time¾sy€Ü—‘˜tŸx™xÓ(×4Ñ4Ó6ˆÜ Z‰ZØ 0Ü'ô
ð    ðÜ—>‘> $§(¡(Ó+×7Ñ7Ó9¸UÒBÐ BÐBØ—:’:Ð ‘:÷     ÷    ñ    úó Á    ABÂBcóÒ—tj|j«j«}t    j
dt ¬«5}tj|j«j«}|jsJ‚t|j|jz
«dksJ‚t|j|jz
«dksJ‚    ddd«y#1swYyxYw)NrárÃg{®Gáz„?) r@r/r%rdrrÅrÜrÉrˆÚuserÚsystem)rBÚ cpu_times_1rÞÚ cpu_times_2s    rÚtest_cpu_timesz,TestDualProcessImplementation.test_cpu_timesÇs¼€Ü—n‘n T§X¡XÓ.×8Ñ8Ó:ˆ Ü Z‰ZØ 0Ü'ô
ð    GðÜ Ÿ.™.¨¯©Ó2×<Ñ<Ó>ˆKØ—:’:Ð :ܐ{×'Ñ'¨+×*:Ñ*:Ñ:Ó;¸dÒBÐ BÐBܐ{×)Ñ)¨K×,>Ñ,>Ñ>Ó?À$ÒFÐ FÑF÷    G÷    Gñ    Gús Á    B
CÃC&cóš—tj|j«j«}t    j
dt ¬«5}tj|j«j«}tt|««D]}t||||z
«dkrŒJ‚|jsJ‚    ddd«y#1swYyxYw)Nz(psutil._psplatform.cext.proc_io_countersrÃrF) r@r/r%r˜rrÅrÜrŠrcrˆrÉ)rBÚ io_counters_1rÞÚ io_counters_2r‹s     rrŸz.TestDualProcessImplementation.test_io_countersÒs­€ÜŸ™ t§x¡xÓ0×<Ñ<Ó>ˆ Ü Z‰ZØ 6Ü'ô
ð    ðÜ"ŸN™N¨4¯8©8Ó4×@Ñ@ÓBˆMÜœ3˜}Ó-Ó.ò DÜ˜=¨Ñ+¨m¸AÑ.>Ñ>Ó?À!ÓCÐCÐCð Dà—:’:Ð ‘:÷    ÷    ñ    úsÁ    ACÂ&CÃC
có@—tj|j«j«}t    j
dt ¬«5}tj|j«j«|k(sJ‚|jsJ‚    ddd«y#1swYyxYw)Nz(psutil._psplatform.cext.proc_num_handlesrÃ)r@r/r%rNrrÅrÜrÉ)rBrNrÞs   rr©z.TestDualProcessImplementation.test_num_handlesÝsy€Ü—n‘n T§X¡XÓ.×:Ñ:Ó<ˆ Ü Z‰ZØ 6Ü'ô
ð    ðÜ—>‘> $§(¡(Ó+×7Ñ7Ó9¸[ÒHÐ HÐHØ—:’:Ð ‘:÷     ÷    ñ    úrãcó:—tj«D]8}    tj|d¬«}tj|d¬«}||k(rŒ8J‚y#t$r@}t |«}t |tjtjf«s‚Yd}~Œ€d}~wwxYw)NT)Úuse_pebF)    r@rŸrÕÚ proc_cmdliner«rÚ
isinstancer1r\)rBr%ÚaÚbÚerrs     rrhz*TestDualProcessImplementation.test_cmdlineæs—€Ü—;‘;“=ò     ˆCð
Ü×%Ñ% c°4Ð%Ó8Ü×%Ñ% c°5Ð%Ó9ð˜A“v vñ     øôò Ü% cÓ*Ü!Øœ&×-Ñ-¬v×/CÑ/CÐDôðôûð ús™.AÁ    BÁ6BÂBN) rrrrÖrµr(r,rƒrÕrérŸr©rhrrrrØr؝sN„ñðñ&óð&ðñóðò òò    Gò    òó rrØcóh‡—eZdZdZed„«ZddgZˆfd„Zˆfd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „ZˆxZS) ÚRemoteProcessTestCasez×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ó—d}tjd«D]s}tj|d|gtjtj¬«}|j «\}}|j «|tt «k(sŒq|cSy)Nz6import sys; sys.stdout.write(str(sys.maxsize > 2**32))zC:\Python*\python.exeú-c)ÚargsÚstdoutÚstderr)    ÚglobÚ
subprocessÚPopenÚPIPEÚSTDOUTÚ communicater[r=r)ÚcodeÚfilenamerQÚoutputrÇs     rÚfind_other_interpreterz,RemoteProcessTestCase.find_other_interpreterýs€€ðHˆôŸ    ™    Ð":Ó;ò         ˆHÜ×#Ñ#Ø  dÐ+Ü!—‘Ü!×(Ñ(ôˆDð
×(Ñ(Ó*‰IˆFAØ I‰IŒKØœ¤˜\Ó*Ó*Ø’ñ         rrøzimport sys; sys.stdin.read()cóf•—t‰|«|j«}|€tjd«St
rt j|_||_    n||_t j|_    tjj«}ttj««|d<|j|jg|j z|t"j$¬«|_|j|jg|j z|t"j$¬«|_y)Nz0could not find interpreter with opposite bitnessÚTHINK_OF_A_NUMBER)ÚenvÚstdin)ÚsuperÚsetUprr r!rÚsysÚ
executableÚpython64Úpython32r>r?Úcopyr=rMrÚ    test_argsrýrÿÚproc32Úproc64)rBÚ other_pythonrÚ    __class__s   €rr zRemoteProcessTestCase.setUpsçø€Ü ‰‰ Œà×2Ñ2Ó4ˆ Ø Ð Ü—;‘;ØBóð õ ÜŸN™NˆDŒMØ(ˆDMà(ˆDŒMÜŸN™NˆDŒMäj‰jo‰oÓˆÜ#&¤r§y¡y£{Ó#3ˆÐ Ñ Ø×(Ñ(Ø ]‰]ˆO˜dŸn™nÑ ,°#¼Z¿_¹_ð)ó
ˆŒ ð×(Ñ(Ø ]‰]ˆO˜dŸn™nÑ ,°#¼Z¿_¹_ð)ó
ˆ rcóŠ•—t‰|«|jj«|jj«yr*)r
ÚtearDownrrr)rBrs €rrzRemoteProcessTestCase.tearDown)s.ø€Ü ‰ÑÔØ  ‰ ×ÑÔ!Ø  ‰ ×ÑÕ!rcó֗tj|jj«}t    |j ««dk(sJ‚|j «dd|j k(sJ‚y©Nér')r@r/rr%rcr#rr3s  rÚtest_cmdline_32z%RemoteProcessTestCase.test_cmdline_32.óO€Ü N‰N˜4Ÿ;™;Ÿ?™?Ó +ˆÜ1—9‘9“;Ó 1Ò$Ð$Ð$؏y‰y‹{˜1˜2ˆ $§.¡.Ò0Ð0Ñ0rcó֗tj|jj«}t    |j ««dk(sJ‚|j «dd|j k(sJ‚yr)r@r/rr%rcr#rr3s  rÚtest_cmdline_64z%RemoteProcessTestCase.test_cmdline_643rrcó¤—tj|jj«}|j    «t j «k(sJ‚yr*)r@r/rr%r­r>Úgetcwdr3s  rÚ test_cwd_32z!RemoteProcessTestCase.test_cwd_328ó2€Ü N‰N˜4Ÿ;™;Ÿ?™?Ó +ˆØu‰u‹wœ"Ÿ)™)›+Ò%Ð%Ñ%rcó¤—tj|jj«}|j    «t j «k(sJ‚yr*)r@r/rr%r­r>r r3s  rÚ test_cwd_64z!RemoteProcessTestCase.test_cwd_64<r"rcó̗tj|jj«}|j    «}d|vsJ‚|dt t j««k(sJ‚y)Nr)r@r/rr%r?r=r>rM)rBr4Úes   rÚtest_environ_32z%RemoteProcessTestCase.test_environ_32@sP€Ü N‰N˜4Ÿ;™;Ÿ?™?Ó +ˆØ I‰I‹KˆØ" aÑ'Ð'Ð'ØÐ$Ñ%¬¬R¯Y©Y«[Ó)9Ò9Ð9Ñ9rcóª—tj|jj«}    |j    «y#tj
$rYywxYwr*)r@r/rr%r?r1r3s  rÚtest_environ_64z%RemoteProcessTestCase.test_environ_64Fs>€Ü N‰N˜4Ÿ;™;Ÿ?™?Ó +ˆð    Ø I‰IKøÜ×"Ñ"ò    Ù ð    ús«<¼AÁA)rrrrÖÚ staticmethodrrr rrrr!r$r'r)Ú __classcell__)rs@rröröõsQø„ñð ñ óð ð"Ð5Ð6€Iô
ô0"ò
1ò
1ò
&ò&ò:ö rröcó—eZdZd„Zd„Zy)Ú TestServicescó —hd£}hd£}hd£}tj«D]j}|j«dk(rŒ|j«}t    |dt
«sJ‚|dj «sJ‚t    |dt
«sJ‚t    |dt
«sJ‚|d|vsJ‚|d    tj|d    «t    |d
t
«sJ‚t    |dt
«sJ‚t    |d t
«sJ‚|d |vsJ‚|d|vsJ‚t    |d t
«sJ‚|j«}|'tj|«}|j«sJ‚tj|j««}||k(rŒkJ‚y) N>ÚstopÚpauseÚstartÚpausedÚrunningÚstoppedÚcontinue>ÚmanualÚdisabledÚ    automatic>r2r3r4Ú stop_pendingÚ pause_pendingÚ start_pendingÚcontinue_pendingÚ WaaSMedicSvcr<Ú display_namer>Ústatusr%ÚbinpathÚ
start_typeÚ description) r@Úwin_service_iterr<Úas_dictrñr=r/r/r%Ú
is_runningÚwin_service_get)rBÚvalid_statusesÚvalid_start_typesÚservr7r%r4Úss        rÚtest_win_service_iterz"TestServices.test_win_service_iterUs˜€ò
ˆò@Ðò
ˆô×+Ñ+Ó-ó    ˆD؏y‰y‹{˜nÒ,ðØ—<‘<“>ˆDܘd 6™l¬CÔ0Ð 0Ð0ؘ‘<×%Ñ%Ô'Ð 'Ð'ܘd >Ñ2´CÔ8Ð 8Ð8ܘd :Ñ.´Ô4Ð 4Ð4ؘ‘> ^Ñ3Ð 3Ð3ؐE‰{Ð&Ü—‘˜t E™{Ô+ܘd 9™o¬sÔ3Ð 3Ð3ܘd :Ñ.´Ô4Ð 4Ð4ܘd <Ñ0´#Ô6Ð 6Ð6ؘ Ñ%Ð):Ñ:Ð :Ð:ؘ‘> ^Ñ3Ð 3Ð3ܘd =Ñ1´3Ô7Ð 7Ð7Ø—(‘(“*ˆC؈ܗN‘N 3Ó'Ø—|‘|”~Ð%~ä×&Ñ& t§y¡y£{Ó3ˆAà˜1”9Ð 9ñ7    rcóÖ—tjjj}tjjj}t tj ««j«}tjtj«5}tj|dz«ddd«jj|dzk(sJ‚tj|«}tddd«}||_tj d|¬«5tjtj«5|j#«ddd«ddd«tj d|¬«5tjtj«5|j%«ddd«ddd«tddd«}||_tj d|¬«5tjtj&«5|j#«ddd«ddd«tj d|¬«5tjtj&«5|j%«ddd«ddd«|j«t)|«vsJ‚|j+«t)|«vsJ‚|j«t-|«vsJ‚|j+«t-|«vsJ‚y#1swYŒJxYw#1swYŒ¼xYw#1swYŒÁxYw#1swYŒzxYw#1swYŒxYw#1swYŒ$xYw#1swYŒ)xYw#1swYŒáxYw#1swYŒåxYw)Nz???rÚmsgz/psutil._psplatform.cext.winservice_query_statusrÃz/psutil._psplatform.cext.winservice_query_config)r@r²rÕÚERROR_SERVICE_DOES_NOT_EXISTÚERROR_ACCESS_DENIEDÚnextrCr<r r0r\rFr§r«r¬rrÅr?r>r1r=r>Úrepr)rBrNrOr<ÚcmÚservicer¯s       rÚtest_win_service_getz!TestServices.test_win_service_get†sº€ä × Ñ × #Ñ #× @Ñ @ð    %ô%×0Ñ0×5Ñ5×IÑIÐä”F×+Ñ+Ó-Ó.×3Ñ3Ó5ˆÜ ]‰]œ6×/Ñ/Ó 0ð    1°BÜ × "Ñ " 4¨%¡<Ô 0÷    1àx‰x}‰}  u¡ Ò,Ð,Ð,ô×(Ñ(¨Ó.ˆÜa˜ Ó"ˆØ3ˆŒ Ü Z‰ZØ =È3ô
ñ    !ô—‘œv×3Ñ3Ó4ñ !Ø—‘Ô ÷ !÷    !ô
Z‰ZØ =È3ô
ñ    #ô—‘œv×3Ñ3Ó4ñ #Ø× Ñ Ô"÷ #÷    #ôa˜ Ó"ˆØ*ˆŒ Ü Z‰ZØ =È3ô
ñ    !ô—‘œv×2Ñ2Ó3ñ !Ø—‘Ô ÷ !÷    !ô
Z‰ZØ =È3ô
ñ    #ô—‘œv×2Ñ2Ó3ñ #Ø× Ñ Ô"÷ #÷    #ð|‰|‹~¤ W£Ñ-Ð-Ð-Ø×#Ñ#Ó%¬¨W«Ñ5Ð5Ð5؏|‰|‹~¤ g£Ñ.Ð.Ð.Ø×#Ñ#Ó%¬¨g«Ñ6Ð6Ñ6÷K    1ñ    1ú÷ !ñ !ú÷    !ñ    !ú÷ #ñ #ú÷    #ñ    #ú÷ !ñ !ú÷    !ñ    !ú÷ #ð #ú÷    #ð    #úsœÂK8Ä$LÄ:LÅ LÅ2$L,ÆLÆ'L,Ç"$MÈL9ÈMÈ>$MÉ"MÉ3MË8LÌL    Ì
LÌLÌL)    Ì$L,Ì,L6Ì9M    Ì>MÍMÍM    ÍMÍM(N)rrrrKrTrrrr-r-Ss „ò/ób,7rr-)6rÖrðrärür>rArerrIrýr rÐÚwarningsÚunittestrr@rÚ psutil.testsrrrrr    r
r r r rrrÚcatch_warningsÚ simplefilterrGrPrkrTÚpsutil._pswindowsrr²rÕrorprr$r=r8r:rrrùr"r·rØrör-rrrú<module>r[sþðñã ÛÛ Û    ÛÛ    Û Û ÛÛ
Û ÛÝã ÝÝ'Ý$Ý!ÝÝ-Ý*Ý'ÝÝ)ÝÝ&Ý"á
‘4Ø     ˆ×     Ñ     Ó    "ñ؈×јhÔ'ÛÛÛÛ÷ ñ Ý1ð×Ñ×Ñ€ð‡×јK¨ÐÓ7؇×ѐDÐ!@ÐÓAô    nó    óBó8ð    ò ð #óô,%;/ô%;ôPt/_ôt/ôx>˜ô>ôLH/ôHôVB,_ô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  #G9Ç9H