hyb
2025-12-30 5e753a15ff53faab2261a53367e44d38caf87041
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
Ë
IñúhÆ<ãób—dZddlZddlZddlZddlmZddlmZddlmZddlmZddlmZddlm    Z    dd    l
m Z dd
l
m Z dd l
m Z dd l
mZdd l
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
m Z ejBjDZ"ejF«Z$dZ%d „Z&Gd!„d"e«Z'Gd#„d$e'«Z(ejRjUe     d%¬&«Gd'„d(e««Z+Gd)„d*e«Z,y)+a©Tests for detecting function memory leaks (typically the ones
implemented in C). It does so by calling a function many times and
checking whether process memory usage keeps increasing between
calls or over time.
Note that this may produce false positives (especially on Windows
for some reason).
PyPy appears to be completely unstable for this framework, probably
because of how its JIT handles memory, so tests are skipped.
éN)ÚLINUX)ÚMACOS)ÚOPENBSD)ÚPOSIX)ÚSUNOS)ÚWINDOWS)ÚAARCH64)ÚHAS_CPU_AFFINITY)Ú HAS_CPU_FREQ)Ú HAS_ENVIRON)Ú
HAS_IONICE)ÚHAS_MEMORY_MAPS)ÚHAS_NET_IO_COUNTERS)ÚHAS_PROC_CPU_NUM)ÚHAS_PROC_IO_COUNTERS)Ú
HAS_RLIMIT)ÚHAS_SENSORS_BATTERY)ÚHAS_SENSORS_FANS)ÚHAS_SENSORS_TEMPERATURES)ÚTestMemoryLeak)Úcreate_sockets)Ú
get_testfn)Úprocess_namespace)Úpytest)Úskip_on_access_denied)Ú spawn_subproc)Úsystem_namespace)Ú    terminateécó —d„}|S)zsDecorator for those Linux functions which are implemented in pure
    Python, and which we want to run faster.
    cóB‡—tj‰«ˆfd„«}|S)Ncóæ•—trI|jj}    t|j_‰|g|¢­i|¤Ž||j_S‰|g|¢­i|¤ŽS#||j_wxYw©N)rÚ    __class__ÚtimesÚ    FEW_TIMES)ÚselfÚargsÚkwargsÚbeforeÚfuns    €úMH:\Change_password\venv_build\Lib\site-packages\psutil/tests/test_memleaks.pyÚwrapperz5fewtimes_if_linux.<locals>.decorator.<locals>.wrapper=siø€åØŸ™×-Ñ-ð2Ü+4D—N‘NÔ(Ù˜tÐ5 dÒ5¨fÑ5à+1D—N‘NÕ(á˜4Ð1 $Ò1¨&Ñ1Ð1øð,2D—N‘NÕ(ús Ÿ AÁA0)Ú    functoolsÚwraps)r+r-s` r,Ú    decoratorz$fewtimes_if_linux.<locals>.decorator<s%ø€Ü    ‰˜Ó    ó        2ó
ð        2ðˆó©)r0s r,Úfewtimes_if_linuxr37s€ò
ð Ðr1cóø—eZdZdZeZd„Ze«d„«Ze«d„«Z    e«d„«Z
e«d„«Z e jje d¬«e«d    „««Ze jje d¬«e«d
„««Ze«d „«Zd „Zd „Ze jje d¬«d„«Ze jje d¬«d„«Ze jje d¬«e«d„««Ze jjed¬«d„«Ze«d„«Ze«ee¬«d„««Ze jje d¬«d„«Z e jje d¬«e«d„««Z!e«d„«Z"e«ee¬«d„««Z#e«d„«Z$e«e jje% d¬«d„««Z&e«d„«Z'e«d„«Z(e jje d¬«e«d „««Z)d!„Z*e«d"„«Z+e jje, d¬«d#„«Z-e jje, d¬«d$„«Z.e«d%„«Z/e jje0 d¬«e«d&„««Z1e jje2 d'¬«e jje3 d¬«d(„««Z4e jje2 d'¬«e jje3 d¬«d)„««Z5e«e jjed*¬«d+„««Z6e jje7 d¬«d,„«Z8e jje d¬«d-„«Z9y.)/ÚTestProcessObjectLeaksz$Test leaks of Process class methods.cól—td«}|j||j|jz«yr#)rÚtest_class_coverageÚgettersÚsetters©r'Únss  r,Ú test_coveragez$TestProcessObjectLeaks.test_coverageXs)€Ü ˜tÓ $ˆØ
×јt R§Z¡Z°"·*±*Ñ%<Õ=r1cóN—|j|jj«yr#)ÚexecuteÚprocÚname©r's r,Ú    test_namez TestProcessObjectLeaks.test_name\ó€à  ‰ T—Y‘Y—^‘^Õ$r1cóN—|j|jj«yr#)r>r?ÚcmdlinerAs r,Ú test_cmdlinez#TestProcessObjectLeaks.test_cmdline`ó€à  ‰ T—Y‘Y×&Ñ&Õ'r1cóN—|j|jj«yr#)r>r?ÚexerAs r,Útest_exezTestProcessObjectLeaks.test_exedó€à  ‰ T—Y‘Y—]‘]Õ#r1cóN—|j|jj«yr#)r>r?ÚppidrAs r,Ú    test_ppidz TestProcessObjectLeaks.test_ppidhrCr1z
POSIX only©ÚreasoncóN—|j|jj«yr#)r>r?ÚuidsrAs r,Ú    test_uidsz TestProcessObjectLeaks.test_uidsló€ð      ‰ T—Y‘Y—^‘^Õ$r1cóN—|j|jj«yr#)r>r?ÚgidsrAs r,Ú    test_gidsz TestProcessObjectLeaks.test_gidsqrTr1cóN—|j|jj«yr#)r>r?ÚstatusrAs r,Ú test_statusz"TestProcessObjectLeaks.test_statusvó€à  ‰ T—Y‘Y×%Ñ%Õ&r1cóN—|j|jj«yr#)r>r?ÚnicerAs r,Ú    test_nicez TestProcessObjectLeaks.test_nicezs€Ø  ‰ T—Y‘Y—^‘^Õ$r1cóZ‡‡—tj«Š‰jˆˆfd„«y)Ncó:•—‰jj‰«Sr#)r?r])Únicenessr's€€r,ú<lambda>z6TestProcessObjectLeaks.test_nice_set.<locals>.<lambda>sø€˜TŸY™YŸ^™^¨HÓ5€r1)Úthisprocr]r>)r'ras`@r,Ú test_nice_setz$TestProcessObjectLeaks.test_nice_set}sù€Ü—=‘=“?ˆØ  ‰ Ô5Õ6r1ú not supportedcóN—|j|jj«yr#)r>r?ÚionicerAs r,Ú test_ionicez"TestProcessObjectLeaks.test_ionicer[r1có,‡‡—tr*tj«Š‰jˆˆfd„«y‰jˆfd„«t    j
t jtj«dd«}‰jt|«y)Ncó:•—‰jj‰«Sr#)r?rg)r'Úvalues€€r,rbz8TestProcessObjectLeaks.test_ionice_set.<locals>.<lambda>‰sø€ §¡×!1Ñ!1°%Ó!8€r1cóV•—‰jjtj«Sr#)r?rgÚpsutilÚIOPRIO_CLASS_NONErAs€r,rbz8TestProcessObjectLeaks.test_ionice_set.<locals>.<lambda>‹sø€ §¡×!1Ñ!1´&×2JÑ2JÓ!K€r1éÿÿÿÿr) rrcrgr>r.ÚpartialÚcextÚproc_ioprio_setÚosÚgetpidÚ execute_w_excÚOSError)r'r+rks` @r,Útest_ionice_setz&TestProcessObjectLeaks.test_ionice_set…s^ù€å Ü—O‘OÓ%ˆEØ L‰LÔ8Õ 9à L‰LÓKÔ LÜ×#Ñ#¤D×$8Ñ$8¼"¿)¹)»+ÀrÈ1ÓMˆCØ × Ñ œw¨Õ ,r1cóN—|j|jj«yr#)r>r?Ú io_countersrAs r,Útest_io_countersz'TestProcessObjectLeaks.test_io_countersó€ð      ‰ T—Y‘Y×*Ñ*Õ+r1zworthless on POSIXcó’—tj«j«|j|jj«yr#)rmÚProcessÚusernamer>r?rAs r,Ú test_usernamez$TestProcessObjectLeaks.test_username”s-€ô    ‰Ó×!Ñ!Ô#Ø  ‰ T—Y‘Y×'Ñ'Õ(r1cóN—|j|jj«yr#)r>r?Ú create_timerAs r,Útest_create_timez'TestProcessObjectLeaks.test_create_timešó€à  ‰ T—Y‘Y×*Ñ*Õ+r1)Úonly_ifcóN—|j|jj«yr#)r>r?Ú num_threadsrAs r,Útest_num_threadsz'TestProcessObjectLeaks.test_num_threadsžr{r1ú WINDOWS onlycóN—|j|jj«yr#)r>r?Ú num_handlesrAs r,Útest_num_handlesz'TestProcessObjectLeaks.test_num_handles£rƒr1cóN—|j|jj«yr#)r>r?Únum_fdsrAs r,Ú test_num_fdsz#TestProcessObjectLeaks.test_num_fds§ó€ð      ‰ T—Y‘Y×&Ñ&Õ'r1cóN—|j|jj«yr#)r>r?Únum_ctx_switchesrAs r,Útest_num_ctx_switchesz,TestProcessObjectLeaks.test_num_ctx_switches¬ó€à  ‰ T—Y‘Y×/Ñ/Õ0r1cóN—|j|jj«yr#)r>r?ÚthreadsrAs r,Ú test_threadsz#TestProcessObjectLeaks.test_threads°rr1cóN—|j|jj«yr#)r>r?Ú    cpu_timesrAs r,Útest_cpu_timesz%TestProcessObjectLeaks.test_cpu_timesµs€à  ‰ T—Y‘Y×(Ñ(Õ)r1cóN—|j|jj«yr#)r>r?Úcpu_numrAs r,Ú test_cpu_numz#TestProcessObjectLeaks.test_cpu_num¹rr1cóN—|j|jj«yr#)r>r?Ú memory_inforAs r,Útest_memory_infoz'TestProcessObjectLeaks.test_memory_info¾rƒr1cóN—|j|jj«yr#)r>r?Úmemory_full_inforAs r,Útest_memory_full_infoz,TestProcessObjectLeaks.test_memory_full_infoÂr“r1cóN—|j|jj«yr#)r>r?ÚterminalrAs r,Ú test_terminalz$TestProcessObjectLeaks.test_terminalÆs€ð      ‰ T—Y‘Y×'Ñ'Õ(r1có‚—trtn |j}|j|jj
|¬«y)N©r%)rr&r%r>r?Úresume©r'r%s  r,Ú test_resumez"TestProcessObjectLeaks.test_resumeËs)€Ý"•    ¨¯
©
ˆØ  ‰ T—Y‘Y×%Ñ%¨Uˆ Õ3r1cóN—|j|jj«yr#)r>r?ÚcwdrAs r,Útest_cwdzTestProcessObjectLeaks.test_cwdÏrKr1cóN—|j|jj«yr#)r>r?Ú cpu_affinityrAs r,Útest_cpu_affinityz(TestProcessObjectLeaks.test_cpu_affinityÓs€à  ‰ T—Y‘Y×+Ñ+Õ,r1c󌇇—tj«Š‰jˆˆfd„«‰jtˆfd„«y)Ncó:•—‰jj‰«Sr#©r?r¯)Úaffinityr's€€r,rbz>TestProcessObjectLeaks.test_cpu_affinity_set.<locals>.<lambda>Úsø€˜TŸY™Y×3Ñ3°HÓ=€r1có<•—‰jjdg«S©Nror³rAs€r,rbz>TestProcessObjectLeaks.test_cpu_affinity_set.<locals>.<lambda>Ûsø€¨t¯y©y×/EÑ/EÀrÀdÓ/K€r1)rcr¯r>ruÚ
ValueError)r'r´s`@r,Útest_cpu_affinity_setz,TestProcessObjectLeaks.test_cpu_affinity_set×s/ù€ä×(Ñ(Ó*ˆØ  ‰ Ô=Ô>Ø ×Ñœ:Ó'KÕLr1có —tt«d«5|j|jj«ddd«y#1swYyxYw)NÚw)Úopenrr>r?Ú
open_filesrAs r,Útest_open_filesz&TestProcessObjectLeaks.test_open_filesÝs9€ä ”*“, Ó $ñ    /Ø L‰L˜Ÿ™×-Ñ-Ô .÷    /÷    /ñ    /ús •&AÁA cóN—|j|jj«yr#)r>r?Ú memory_mapsrAs r,Útest_memory_mapsz'TestProcessObjectLeaks.test_memory_mapsâr{r1z
LINUX onlycó.‡—‰jˆfd„«y)NcóV•—‰jjtj«Sr#©r?ÚrlimitrmÚ RLIMIT_NOFILErAs€r,rbz4TestProcessObjectLeaks.test_rlimit.<locals>.<lambda>êsø€˜TŸY™Y×-Ñ-¬f×.BÑ.BÓC€r1©r>rAs`r,Ú test_rlimitz"TestProcessObjectLeaks.test_rlimitçsø€ð      ‰ ÓCÕDr1c󶇇—tjtj«Š‰j    ˆˆfd„«‰j t tfˆfd„«y)NcóX•—‰jjtj‰«Sr#rÃ)Úlimitr's€€r,rbz8TestProcessObjectLeaks.test_rlimit_set.<locals>.<lambda>ðsø€˜TŸY™Y×-Ñ-¬f×.BÑ.BÀEÓJ€r1có:•—‰jjd«Sr¶)r?rÄrAs€r,rbz8TestProcessObjectLeaks.test_rlimit_set.<locals>.<lambda>ñsø€¸$¿)¹)×:JÑ:JÈ2Ó:N€r1)rcrÄrmrÅr>rurvr·)r'rÊs`@r,Útest_rlimit_setz&TestProcessObjectLeaks.test_rlimit_setìs<ù€ô—‘¤× 4Ñ 4Ó5ˆØ  ‰ ÔJÔKØ ×ÑœG¤ZÐ0Ó2NÕOr1zworthless on WINDOWSc󄇇—t«5trdndЉjˆˆfd„«ddd«y#1swYyxYw)NÚinetÚallcó:•—‰jj‰«Sr#)r?Únet_connections)Úkindr's€€r,rbz=TestProcessObjectLeaks.test_net_connections.<locals>.<lambda>ýsø€ §¡×!:Ñ!:¸4Ó!@€r1)rrr>)r'rÒs`@r,Útest_net_connectionsz+TestProcessObjectLeaks.test_net_connectionsós:ù€ôÓ ñ    BÝ"‘6¨ˆDØ L‰LÔ@Ô A÷    B÷    Bñ    Bús 6¶?cóN—|j|jj«yr#)r>r?ÚenvironrAs r,Ú test_environz#TestProcessObjectLeaks.test_environÿrGr1có(—|jd„«y)NcóP—tjtj««Sr#)rqÚ    proc_inforsrtr2r1r,rbz7TestProcessObjectLeaks.test_proc_info.<locals>.<lambda>s€œTŸ^™^¬B¯I©I«KÓ8€r1rÆrAs r,Útest_proc_infoz%TestProcessObjectLeaks.test_proc_infos€à  ‰ Ñ8Õ9r1N):Ú__name__Ú
__module__Ú __qualname__Ú__doc__rcr?r<r3rBrFrJrNrÚmarkÚskipifrrSrWrZr^rdr rhrwrrzrr‚rrr‡rr‹rŽr’r–r™rrœrŸr¢r¥rªr­r
r°r¸r½rrÀrrrÇrÌrÓr rÖrÚr2r1r,r5r5Ss„Ù.à €Dò>ñÓñ%óð%ñÓñ(óð(ñÓñ$óð$ñÓñ%óð%ð ‡[[×јE˜    ¨,ÐÓ7ÙÓñ%óó8ð%ð ‡[[×јE˜    ¨,ÐÓ7ÙÓñ%óó8ð%ñÓñ'óð'ò%ò7ð ‡[[×јJ˜¨ÐÓ?ñ'ó@ð'ð ‡[[×јJ˜¨ÐÓ?ñ-ó@ð-ð ‡[[×ÑÐ0Ð0¸ÐÓIÙÓñ,óóJð,ð ‡[[×јÐ&:ÐÓ;ñ)ó<ð)ñ
Óñ,óð,ñÓÙ 7Ô+ñ,ó,óð,ð ‡[[×јG˜ ¨NÐÓ;ñ,ó<ð,ð ‡[[×јE˜    ¨,ÐÓ7ÙÓñ(óó8ð(ñÓñ1óð1ñÓÙ 7Ô+ñ(ó,óð(ñÓñ*óð*ñÓØ ‡[[×ÑÐ,Ð,°_ÐÓEñ(óFóð(ñÓñ,óð,ñÓñ1óð1ð ‡[[×јE˜    ¨,ÐÓ7ÙÓñ)óó8ð)ò4ñÓñ$óð$ð ‡[[×ÑÐ,Ð,°_ÐÓEñ-óFð-ð ‡[[×ÑÐ,Ð,°_ÐÓEñMóFðMñ
Óñ/óð/ð ‡[[×јOÐ+°OÐÓDÙÓñ,óóEð,ð ‡[[×јE˜    ¨,ÐÓ7Ø ‡[[×јJ˜¨ÐÓ?ñEó@ó8ðEð ‡[[×јE˜    ¨,ÐÓ7Ø ‡[[×јJ˜¨ÐÓ?ñPó@ó8ðPñ
Óð ‡[[×јÐ(>ÐÓ?ñBó@óðBð ‡[[×јK˜°ÐÓ@ñ(óAð(ð ‡[[×јG˜ ¨NÐÓ;ñ:ó<ñ:r1r5cóv‡—eZdZdZeˆfd„«Zeˆfd„«Zd„Zerd„Z    d„Z
d„Z d„Z d    „Z d
„ZˆxZSˆxZS) ÚTestTerminatedProcessLeakszñRepeat the tests above looking for leaks occurring when dealing
    with terminated processes raising NoSuchProcess exception.
    The C functions are still invoked but will follow different code
    paths. We'll check those code paths.
    có•—t‰|«t«|_t    j
|jj «|_|jj«|jj«yr#)
ÚsuperÚ
setUpClassrÚsubprmr}Úpidr?ÚkillÚwait©Úclsr$s €r,råz%TestTerminatedProcessLeaks.setUpClasssIø€ä ‰ÑÔÜ “?ˆŒÜ—>‘> #§(¡(§,¡,Ó/ˆŒØ ‰ ‰ ŒØ ‰ ‰ r1cóL•—t‰|«t|j«yr#)räÚ tearDownClassrrærês €r,ríz(TestTerminatedProcessLeaks.tearDownClasssø€ä ‰ÑÔܐ#—(‘(Õr1cóF—    |«y#tj$rYywxYwr#)rmÚ NoSuchProcess)r'r+s  r,ÚcallzTestTerminatedProcessLeaks.calls$€ð    Ù EøÜ×#Ñ#ò    Ù ð    ús ‚
Š Ÿ cóN—|j|jj«yr#)r>r?rèrAs r,Ú    test_killz$TestTerminatedProcessLeaks.test_kill$ó€Ø L‰L˜Ÿ™Ÿ™Õ (r1cóN—|j|jj«yr#)r>r?rrAs r,Útest_terminatez)TestTerminatedProcessLeaks.test_terminate's€Ø L‰L˜Ÿ™×,Ñ,Õ -r1cóN—|j|jj«yr#)r>r?ÚsuspendrAs r,Ú test_suspendz'TestTerminatedProcessLeaks.test_suspend*s€Ø L‰L˜Ÿ™×*Ñ*Õ +r1cóN—|j|jj«yr#)r>r?r¨rAs r,rªz&TestTerminatedProcessLeaks.test_resume-s€Ø L‰L˜Ÿ™×)Ñ)Õ *r1cóN—|j|jj«yr#)r>r?rérAs r,Ú    test_waitz$TestTerminatedProcessLeaks.test_wait0rór1có2‡—ˆfd„}‰j|«y)Ncóv•—    tj‰jj«S#t$rYywxYwr#)rqrÙr?rçÚProcessLookupErrorrAs€r,rðz7TestTerminatedProcessLeaks.test_proc_info.<locals>.call5s1ø€ðÜŸ>™>¨$¯)©)¯-©-Ó8Ð8øÜ)òÙðús ƒ(,¬    8·8rÆ)r'rðs` r,rÚz)TestTerminatedProcessLeaks.test_proc_info3sø€ô ð L‰L˜Õ r1)rÛrÜrÝrÞÚ classmethodrårírðrròrõrørªrûrÚÚ __classcell__)r$s@r,rârâs]ø„ñð óóððóóðòñ ò    )ò    .ò    ,ò    +ò    )ö    ó#r1rârˆrOcó—eZdZd„Zd„Zy)ÚTestProcessDualImplementationcó(—|jd„«y)NcóT—tjtj«d¬«S)NT©Úuse_peb©rqÚ proc_cmdlinersrtr2r1r,rbzETestProcessDualImplementation.test_cmdline_peb_true.<locals>.<lambda>As€œT×.Ñ.¬r¯y©y«{ÀDÐ.ÓI€r1rÆrAs r,Útest_cmdline_peb_truez3TestProcessDualImplementation.test_cmdline_peb_true@s€Ø  ‰ ÑIÕJr1có(—|jd„«y)NcóT—tjtj«d¬«S)NFrrr2r1r,rbzFTestProcessDualImplementation.test_cmdline_peb_false.<locals>.<lambda>Ds€œT×.Ñ.¬r¯y©y«{ÀEÐ.ÓJ€r1rÆrAs r,Útest_cmdline_peb_falsez4TestProcessDualImplementation.test_cmdline_peb_falseCs€Ø  ‰ ÑJÕKr1N)rÛrÜrÝr    r r2r1r,rr>s„òKóLr1rcóÞ—eZdZdZd„Ze«d„«Ze«d„«Ze«d„«Ze«d„«Z    e«d„«Z
e«e jjexred¬    «e jje d
¬    «d „«««Ze jje d ¬    «d „«Zd„Ze jjed¬    «d„«Zd„Zd„Zd„Ze jjexrej8j;d« d¬    «e«d„««Ze«d„«Ze«e jje  d
¬    «d„««Z!e«e jjexrejD«dk7d¬    «d„««Z#d„Z$d„Z%e«e jje& d
¬    «d„««Z'e«e jje( d
¬    «d„««Z)e«e jje* d
¬    «d „««Z+e«d!„«Z,d"„Z-d#„Z.erd$„Z/d%„Z0d&„Z1d'„Z2d(„Z3y)y))*ÚTestModuleFunctionsLeaksz&Test leaks of psutil module functions.cóP—t«}|j||j«yr#)rr7rÏr:s  r,r<z&TestModuleFunctionsLeaks.test_coverageOs€Ü Ó ˆØ
×јt R§V¡VÕ,r1có(—|jd„«y)Ncó.—tjd¬«S)NT©Úlogical©rmÚ    cpu_countr2r1r,rbz9TestModuleFunctionsLeaks.test_cpu_count.<locals>.<lambda>Ws€œV×-Ñ-°dÔ;€r1rÆrAs r,Útest_cpu_countz'TestModuleFunctionsLeaks.test_cpu_countUs€à  ‰ Ñ;Õ<r1có(—|jd„«y)Ncó.—tjd¬«S)NFrrr2r1r,rbz?TestModuleFunctionsLeaks.test_cpu_count_cores.<locals>.<lambda>[s€œV×-Ñ-°eÔ<€r1rÆrAs r,Útest_cpu_count_coresz-TestModuleFunctionsLeaks.test_cpu_count_coresYs€à  ‰ Ñ<Õ=r1cóB—|jtj«yr#)r>rmr˜rAs r,r™z'TestModuleFunctionsLeaks.test_cpu_times]ó€à  ‰ ”V×%Ñ%Õ&r1có(—|jd„«y)Ncó.—tjd¬«S)NT)Úpercpu)rmr˜r2r1r,rbz=TestModuleFunctionsLeaks.test_per_cpu_times.<locals>.<lambda>cs€œV×-Ñ-°TÔ:€r1rÆrAs r,Útest_per_cpu_timesz+TestModuleFunctionsLeaks.test_per_cpu_timesas€à  ‰ Ñ:Õ;r1cóB—|jtj«yr#)r>rmÚ    cpu_statsrAs r,Útest_cpu_statsz'TestModuleFunctionsLeaks.test_cpu_statserr1zskipped due to #1892rOrecóB—|jtj«yr#)r>rmÚcpu_freqrAs r,Ú test_cpu_freqz&TestModuleFunctionsLeaks.test_cpu_freqis€ð
      ‰ ”V—_‘_Õ%r1rˆcój—tj«|jtj«yr#)rmÚ
getloadavgr>rAs r,Útest_getloadavgz(TestModuleFunctionsLeaks.test_getloadavgps €ä×ÑÔØ  ‰ ”V×&Ñ&Õ'r1cóB—|jtj«yr#)r>rmÚvirtual_memoryrAs r,Útest_virtual_memoryz,TestModuleFunctionsLeaks.test_virtual_memoryws€Ø  ‰ ”V×*Ñ*Õ+r1z&worthless on SUNOS (uses a subprocess)cóB—|jtj«yr#)r>rmÚ swap_memoryrAs r,Útest_swap_memoryz)TestModuleFunctionsLeaks.test_swap_memory{s€à  ‰ ”V×'Ñ'Õ(r1có\—trtn |j}|jd„|¬«y)NcóP—tjtj««Sr#)rmÚ
pid_existsrsrtr2r1r,rbz:TestModuleFunctionsLeaks.test_pid_exists.<locals>.<lambda>s€œV×.Ñ.¬r¯y©y«{Ó;€r1r§©rr&r%r>r©s  r,Útest_pid_existsz(TestModuleFunctionsLeaks.test_pid_existss €Ý"•    ¨¯
©
ˆØ  ‰ Ñ;À5ˆ ÕIr1có\—trtn |j}|jd„|¬«y)Ncó,—tjd«S)Nú.)rmÚ
disk_usager2r1r,rbz:TestModuleFunctionsLeaks.test_disk_usage.<locals>.<lambda>‡s€œV×.Ñ.¨sÓ3€r1r§r2r©s  r,Útest_disk_usagez(TestModuleFunctionsLeaks.test_disk_usage…s €Ý"•    ¨¯
©
ˆØ  ‰ Ñ3¸5ˆ ÕAr1cóB—|jtj«yr#)r>rmÚdisk_partitionsrAs r,Útest_disk_partitionsz-TestModuleFunctionsLeaks.test_disk_partitions‰s€Ø  ‰ ”V×+Ñ+Õ,r1z/proc/diskstatsz3/proc/diskstats not available on this Linux versioncó(—|jd„«y)Ncó.—tjd¬«S©NF)Únowrap)rmÚdisk_io_countersr2r1r,rbz@TestModuleFunctionsLeaks.test_disk_io_counters.<locals>.<lambda>’s€œV×4Ñ4¸EÔB€r1rÆrAs r,Útest_disk_io_countersz.TestModuleFunctionsLeaks.test_disk_io_countersŒs€ð       ‰ ÑBÕCr1cóB—|jtj«yr#)r>rmÚpidsrAs r,Ú    test_pidsz"TestModuleFunctionsLeaks.test_pids–s€à  ‰ ”V—[‘[Õ!r1có(—|jd„«y)Ncó.—tjd¬«Sr>)rmÚnet_io_countersr2r1r,rbz?TestModuleFunctionsLeaks.test_net_io_counters.<locals>.<lambda>Ÿs€œV×3Ñ3¸5ÔA€r1rÆrAs r,Útest_net_io_countersz-TestModuleFunctionsLeaks.test_net_io_countersœs€ð      ‰ ÑAÕBr1rzneed root accesscó’—tjd¬«t«5|jd„«ddd«y#1swYyxYw)NrÏ©rÒcó.—tjd¬«S)NrÏrJ)rmrÑr2r1r,rbz?TestModuleFunctionsLeaks.test_net_connections.<locals>.<lambda>§s€¤×!7Ñ!7¸UÔ!C€r1)rmrÑrr>rAs r,rÓz-TestModuleFunctionsLeaks.test_net_connections¡s>€ô    ×Ñ EÕ*Ü Ó ñ    EØ L‰LÑCÔ D÷    E÷    Eñ    Eús    ¡=½Acón—trdn |j}|jtj|¬«y)Ni@)Ú    tolerance)rrMr>rmÚ net_if_addrs)r'rMs  r,Útest_net_if_addrsz*TestModuleFunctionsLeaks.test_net_if_addrs©s%€å!(‘I¨d¯n©nˆ    Ø  ‰ ”V×(Ñ(°Iˆ Õ>r1cóB—|jtj«yr#)r>rmÚ net_if_statsrAs r,Útest_net_if_statsz*TestModuleFunctionsLeaks.test_net_if_stats®s€Ø  ‰ ”V×(Ñ(Õ)r1cóB—|jtj«yr#)r>rmÚsensors_batteryrAs r,Útest_sensors_batteryz-TestModuleFunctionsLeaks.test_sensors_battery³s€ð      ‰ ”V×+Ñ+Õ,r1cóB—|jtj«yr#)r>rmÚsensors_temperaturesrAs r,Útest_sensors_temperaturesz2TestModuleFunctionsLeaks.test_sensors_temperatures¸s€ð      ‰ ”V×0Ñ0Õ1r1cóB—|jtj«yr#)r>rmÚ sensors_fansrAs r,Útest_sensors_fansz*TestModuleFunctionsLeaks.test_sensors_fans½s€ð      ‰ ”V×(Ñ(Õ)r1cóB—|jtj«yr#)r>rmÚ    boot_timerAs r,Útest_boot_timez'TestModuleFunctionsLeaks.test_boot_timeÄrr1cóB—|jtj«yr#)r>rmÚusersrAs r,Ú
test_usersz#TestModuleFunctionsLeaks.test_usersÈs€Ø  ‰ ”V—\‘\Õ"r1có(—|jd„«y)Ncó,—tjd«S)NF)rmÚ
_set_debugr2r1r,rbz9TestModuleFunctionsLeaks.test_set_debug.<locals>.<lambda>Ìs€œV×.Ñ.¨uÓ5€r1rÆrAs r,Útest_set_debugz'TestModuleFunctionsLeaks.test_set_debugËs€Ø  ‰ Ñ5Õ6r1cóB—|jtj«yr#)r>rqÚwinservice_enumeraterAs r,Útest_win_service_iterz.TestModuleFunctionsLeaks.test_win_service_iterÒs€Ø L‰Lœ×2Ñ2Õ 3r1có—yr#r2rAs r,Útest_win_service_getz-TestModuleFunctionsLeaks.test_win_service_getÕs€Ø r1c󄇗ttj««j«Š|j    ˆfd„«y)Ncó.•—tj‰«Sr#)rqÚwinservice_query_config©r@s€r,rbzFTestModuleFunctionsLeaks.test_win_service_get_config.<locals>.<lambda>Ú󸀤×!=Ñ!=¸dÓ!C€r1©ÚnextrmÚwin_service_iterr@r>©r'r@s @r,Útest_win_service_get_configz4TestModuleFunctionsLeaks.test_win_service_get_configØó,ø€Üœ×/Ñ/Ó1Ó2×7Ñ7Ó9ˆDØ L‰LÓCÕ Dr1c󄇗ttj««j«Š|j    ˆfd„«y)Ncó.•—tj‰«Sr#)rqÚwinservice_query_statusrns€r,rbzFTestModuleFunctionsLeaks.test_win_service_get_status.<locals>.<lambda>Þror1rprss @r,Útest_win_service_get_statusz4TestModuleFunctionsLeaks.test_win_service_get_statusÜrur1c󄇗ttj««j«Š|j    ˆfd„«y)Ncó.•—tj‰«Sr#)rqÚwinservice_query_descrrns€r,rbzKTestModuleFunctionsLeaks.test_win_service_get_description.<locals>.<lambda>âsø€¤×!<Ñ!<¸TÓ!B€r1rprss @r,Ú test_win_service_get_descriptionz9TestModuleFunctionsLeaks.test_win_service_get_descriptionàs,ø€Üœ×/Ñ/Ó1Ó2×7Ñ7Ó9ˆDØ L‰LÓBÕ Cr1N)4rÛrÜrÝrÞr<r3rrr™rr"rrßràrr    r r%rr(r+rr.r3r8r;rrsÚpathÚexistsrArDrrHÚgetuidrÓrOrRrrUrrXrr[r^rarerhrjrtryr}r2r1r,rrLs'„Ù0ò-ñ Óñ=óð=ñÓñ>óð>ñÓñ'óð'ñÓñ<óð<ñÓñ'óð'ñÓà ‡[[×јÒ) 'Ð2HÐÓIØ ‡[[×јLÐ(°ÐÓAñ&óBóJóð&ð ‡[[×јG˜ ¨NÐÓ;ñ(ó<ð(ò ,ð ‡[[×јÐ&NÐÓOñ)óPð)òJò Bò-ð ‡[[×ÑØ Ò7b—g‘g—n‘nÐ%6Ó7Ð7ØDðóñÓñDóó    ð
Dñ
Óñ"óð"ñ
ÓØ ‡[[×ÑÐ/Ð/¸ÐÓHñCóIóðCñÓØ ‡[[×јÒ2 ) "§)¡)£+°Ñ"2Ð;MÐÓNñEóOóðEò ?ò
*ñ
ÓØ ‡[[×ÑÐ/Ð/¸ÐÓHñ-óIóð-ñÓØ ‡[[×ÑÐ4Ð4¸_ÐÓMñ2óNóð2ñÓØ ‡[[×ÑÐ,Ð,°_ÐÓEñ*óFóð*ñ
Óñ'óð'ò#ò7ñò    4ò    ò    Eò    Eó    Dð%r1r)-rÞr.rsrmrrrrrrÚ psutil.testsr    r
r r r rrrrrrrrrrrrrrrrrÚ _psplatformrqr}rcr&r3r5rârßràrrr2r1r,ú<module>rƒsóðñóÛ    ã ÝÝÝÝÝÝÝ Ý)Ý%Ý$Ý#Ý(Ý,Ý)Ý-Ý#Ý,Ý)Ý1Ý'Ý'Ý#Ý*ÝÝ.Ý&Ý)Ý"à ×Ñ×Ñ€Ø ˆ6>‰>Ó €Ø €    òô8r:˜^ôr:ôj3Ð!7ô3ðl‡×јK¨ÐÓ7ôL NóLó8ðLôVD˜~õVDr1