ó éíòRc@s¢dZddlZddlZddlZddlZddlZddlZddlmZddlm Z m Z m Z ddl Tddl mZmZmZmZddd d d d gZyejƒZWn'ek r÷dZejd eƒnXyejƒZWn'ek r1dZejdeƒnXyejƒdZWn'ek rodZejdeƒnXdZeejej egƒZ!ddlm"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(e)d„ƒZ*d„Z+ejZe,ddj-dddddgƒƒZ.d„Z/d„Z0d„Z1d„Z2e,d d!ƒZ3d"„Z4d#„Z5d$„Z6ej7Z7ej8Z8ej9Z:ej;Z<d%„Z=d&e>fd'„ƒYZ?dS((s Windows platform implementation.iÿÿÿÿN(tERROR_ACCESS_DENIED(t AccessDeniedt NoSuchProcesstTimeoutExpired(t*(tPY3txrangetlongtwrapstABOVE_NORMAL_PRIORITY_CLASStBELOW_NORMAL_PRIORITY_CLASStHIGH_PRIORITY_CLASStIDLE_PRIORITY_CLASStNORMAL_PRIORITY_CLASStREALTIME_PRIORITY_CLASSs&couldn't determine platform's NUM_CPUSs'couldn't determine platform's BOOT_TIMEis*couldn't determine platform's TOTAL_PHYMEMi(R R R R R RtINFINITEcCs tj|ƒS(N(t_psutil_mswindowstwin32_QueryDosDevice(ts((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyt_win32_QueryDosDevice=scCsmtr(t|tƒ r(|jdƒ}ndj|jdƒd ƒ}t|ƒ}tjj||t |ƒƒS(Ntutf8s\i( Rt isinstancetstrtdecodetjointsplitRtostpathtlen(Rtrawdrivet driveletter((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyt_convert_raw_pathAs  tvmemt ttotalt availabletpercenttusedtfreec Csotjƒ}|\}}}}}}|}|}|} ||} t|||ddƒ} t||| | | ƒS(s&System virtual memory as a namedtuple.t_roundi(Rtget_virtual_memt usage_percenttnt_virtmem_info( tmemttotphyst availphysttotpageft availpagefttotvirttfreevirtR"tavailR&R%R$((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytvirtual_memoryTs  cCsXtjƒ}|d}|d}||}t||ddƒ}t||||ddƒS(s=Swap system memory as a (total, used, free, sin, sout) tuple.iiR'ii(RR(R)tnt_swapmeminfo(R+R"R&R%R$((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyt swap_memory`s     cCsytj|ƒ\}}WnOtk rjtjƒd}tjj|ƒsdtt j d|ƒ‚n‚nX||}t ||ddƒ}t ||||ƒS(s'Return disk usage associated with path.isNo such file or directory: '%s'R'( Rtget_disk_usaget WindowsErrortsystexc_infoRRtexiststOSErrorterrnotENOENTR)t nt_diskinfo(RR"R&terrR%R$((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyR6is  cCs,tj|ƒ}g|D]}t|Œ^qS(sReturn disk partitions.(Rtget_disk_partitionst nt_partition(talltrawlisttx((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytdisk_partitionsvstcputimessuser system idlecCs`d\}}}x>tjƒD]0}||d7}||d7}||d7}qWt|||ƒS(s)Return system CPU times as a named tuple.iii(iii(Rtget_system_cpu_timest_cputimes_ntuple(tusertsystemtidletcpu_time((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRG~s cCsOg}xBtjƒD]4}|\}}}t|||ƒ}|j|ƒqW|S(s6Return system per-CPU times as a list of named tuples.(RRGRHtappend(trettcpu_tRIRJRKtitem((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytget_system_per_cpu_timesˆs cCsXg}tjƒ}x?|D]7}|\}}}t|d||ƒ}|j|ƒqW|S(s:Return currently connected users as a list of namedtuples.N(Rtget_system_userstnt_usertNoneRM(tretlistRCRPRIthostnamettstamptnt((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRR‘s  cstˆƒ‡fd†ƒ}|S(sqDecorator which translates bare OSError and WindowsError exceptions into NoSuchProcess and AccessDenied. csyˆ|||ŽSWnutk r‹tjƒd}|jtkr[t|j|jƒ‚n|jtjkr…t |j|jƒ‚n‚nXdS(Ni( R;R8R9R<tACCESS_DENIED_SETRtpidt _process_nametESRCHR(tselftargstkwargsR?(tfun(sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytwrapper¦s (R(R`Ra((R`sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytwrap_exceptions¢s tProcessc BsEeZdZddgZd„Zed„ƒZed„ƒZed„ƒZed„ƒZ d„Z ed „ƒZ e d d j d d ddddddddg ƒƒZed„ƒZe ddƒZe ddƒZd„Zed„ƒZed3d„ƒZed„ƒZed„ƒZed„ƒZed „ƒZed!„ƒZed"„ƒZed#„ƒZed$„ƒZed%„ƒZed&d'„ƒZed(„ƒZ ed)„ƒZ!e"e#d*ƒréed+„ƒZ$ed,„ƒZ%ned-„ƒZ&ed.„ƒZ'ed/„ƒZ(ed0„ƒZ)ed1„ƒZ*ed2„ƒZ+RS(4s1Wrapper class around underlying C implementation.RZR[cCs||_d|_dS(N(RZRTR[(R]RZ((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyt__init__¹s cCstj|jƒS(s4Return process name as a string of limited len (15).(Rtget_process_nameRZ(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRe½scCsttj|jƒƒS(N(RRtget_process_exeRZ(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRfÂscCstj|jƒS(s.Return process cmdline as a list of arguments.(Rtget_process_cmdlineRZ(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRgÉscCstj|jƒS(sReturn process parent pid.(Rtget_process_ppidRZ(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRhÎscCs^ytj|jƒSWnCtk rYtjƒd}|jtkrStj|jƒS‚nXdS(Ni( Rtget_process_memory_infoRZR;R8R9R<RYtget_process_memory_info_2(R]R?((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyt_get_raw_meminfoÓs cCs!|jƒ}t|d|dƒS(s1Returns a tuple or RSS/VMS memory usage in bytes.ii(Rkt nt_meminfo(R]tt((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytget_memory_infoÜs tmeminfoR!tnum_page_faultst peak_wsettwsettpeak_paged_poolt paged_pooltpeak_nonpaged_poolt nonpaged_pooltpagefilet peak_pagefiletprivatecCs|j|jƒŒS(N(t _nt_ext_memRk(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytget_ext_memory_infoñstmmapspath rsssaddr perms path rssccsçytj|jƒ}Wn„tk rœtjƒd}|jtjtjt fkrlt |j|j ƒ‚n|jtj kr–t |j|j ƒ‚n‚nGXxC|D];\}}}}t|ƒ}t|ƒ}||||fVq¤WdS(Ni(Rtget_process_memory_mapsRZR;R8R9R<tEPERMtEACCESRRR[R\RRthex(R]trawR?taddrtpermRtrss((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytget_memory_mapsøs   cCstj|jƒS(s*Terminates the process with the given PID.(Rt kill_processRZ(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyR† scCsb|dkrt}nt|dƒ}tj|j|ƒ}|tkr^t|j|jƒ‚n|S(Niè( RTRtintRt process_waitRZt WAIT_TIMEOUTRR[(R]ttimeoutRN((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRˆs   cCs#|jdkrdStj|jƒS(s1Return the name of the user that owns the processiisNT AUTHORITY\SYSTEM(ii(RZRtget_process_username(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyR‹scCsq|jdkrtSytj|jƒSWnCtk rltjƒd}|jtkrftj |jƒS‚nXdS(Niii(ii( RZt BOOT_TIMERtget_process_create_timeR;R8R9R<RYtget_process_create_time_2(R]R?((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyR"s cCstj|jƒS(N(Rtget_process_num_threadsRZ(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyR/scCsUtj|jƒ}g}x6|D].\}}}t|||ƒ}|j|ƒqW|S(N(Rtget_process_threadsRZt nt_threadRM(R]RCRUt thread_idtutimetstimetntuple((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyR3s cCskytj|jƒ}WnHtk r`tjƒd}|jtkrZtj|jƒ}qa‚nXt |ŒS(Ni( Rtget_process_cpu_timesRZR;R8R9R<RYtget_process_cpu_times_2t nt_cputimes(R]RNR?((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyt get_cpu_times<s cCstj|jƒS(N(Rtsuspend_processRZ(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRšHscCstj|jƒS(N(Rtresume_processRZ(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyR›LscCsI|jdkr't|j|jƒ‚ntj|jƒ}tjj|ƒS(Nii(ii(RZRR[Rtget_process_cwdRRtnormpath(R]R((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRœPscCsƒ|jdkrgSg}tj|jƒ}xQ|D]I}t|ƒ}t|ƒr2||kr2t|dƒ}|j|ƒq2q2W|S(Niiiÿÿÿÿ(ii(RZRtget_process_open_filesRt isfile_strictt nt_openfileRM(R]RUtraw_file_namestfileR•((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytget_open_filesYs  tinetcCsŒ|tkrGtd|djgtD]}t|ƒ^q"ƒfƒ‚nt|\}}tj|j||ƒ}g|D]}t|Œ^qvS(Ns+invalid %r kind argument; choose between %ss, (t conn_tmapt ValueErrorRtreprRtget_process_connectionsRZt nt_connection(R]tkindRDtfamiliesttypesRNtconn((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytget_connectionsjs  5cCstj|jƒS(N(Rtget_process_priorityRZ(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytget_process_nicesscCstj|j|ƒS(N(Rtset_process_priorityRZ(R]tvalue((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytset_process_nicewstget_process_io_prioritycCstj|jƒS(N(RR´RZ(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytget_process_ionice}scCsG|rtdƒ‚n|dkr4td|ƒ‚ntj|j|ƒS(Ns?set_process_ionice() on Windows takes only 1 argument (2 given)iiis9value must be 2 (normal), 1 (low) or 0 (very low); got %r(iii(t TypeErrorR¦Rtset_process_io_priorityRZ(R]R²t_((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytset_process_ionices   cCskytj|jƒ}WnHtk r`tjƒd}|jtkrZtj|jƒ}qa‚nXt |ŒS(Ni( Rtget_process_io_countersRZR;R8R9R<RYtget_process_io_counters_2tnt_io(R]RNR?((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRº‹s cCs$tj|jƒ}|rtStSdS(N(Rtis_process_suspendedRZtSTATUS_STOPPEDtSTATUS_RUNNING(R]t suspended((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytget_process_status—scCs%d„}tj|jƒ}||ƒS(NcSs+gtdƒD]}d|>|@r |^q S(Ni@i(R(RDti((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyt¡s(Rtget_process_cpu_affinityRZ(R]t from_bitmasktbitmask((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRÄŸs cCswd„}ttttƒƒƒƒ}x-|D]%}||kr+td|ƒ‚q+q+W||ƒ}tj|j|ƒdS(NcSsB|std|ƒ‚nd}x|D]}|d|O}q&W|S(Nsinvalid argument %rii(R¦(tltouttb((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyt to_bitmask§s  sinvalid CPU %r(tlisttrangeRRQR¦Rtset_process_cpu_affinityRZ(R]R²RÊtallcpustcpuRÆ((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRÍ¥s    cCs^ytj|jƒSWnCtk rYtjƒd}|jtkrStj|jƒS‚nXdS(Ni( Rtget_process_num_handlesRZR;R8R9R<RYtget_process_num_handles_2(R]R?((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytget_num_handlesºs cCsttj|jƒŒS(N(tnt_ctxswRtget_process_num_ctx_switchesRZ(R]((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytget_num_ctx_switchesÄsN(,t__name__t __module__t__doc__t __slots__RdRbReRfRgRhRkRnt namedtupleRRzR{tnt_mmap_groupedt nt_mmap_extR…R†RTRˆR‹RRRR™RšR›RœR£R®R°R³thasattrRRµR¹RºRÁRÄRÍRÒRÕ(((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pyRc´sb              (@RØR<RR8tplatformtwarningsRRt psutil._errorRRRtpsutil._commontpsutil._compatRRRRt__extra__all__t get_num_cpustNUM_CPUSt ExceptionRTtwarntRuntimeWarningtget_system_boot_timeRŒR(t TOTAL_PHYMEMR‰t frozensetR~RRYR R R R R RRtmemoizeRRRÚRR*R3R5R6RERHRGRQRRt get_pid_listt pid_existstget_network_io_counterstnetwork_io_counterstget_disk_io_counterstdisk_io_countersRbtobjectRc(((sF/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psmswindows.pytsd       "    4