Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/psutil/__pycache__/_psosx.cpython-35.pyc



Cs[6D@sdZddlZddlZddlZddlZddlmZddlmZddl	m
Z
ddl	mZddl	mZ
dd	l	mZdd
l
mZddl
mZddl
mZdd
l
mZddl
mZddl
mZddl
mZddl
mZddlmZddlmZddlmZgZejdZejZe
j e
j!e
j"e
j#e
j$e
j%e
j&e
j'e
j(e
j)e
j*e
j+e
j,e
j-e
j.e
j/e
j0e
j1e
j2e
j3e
j4e
j5e
j6e
j7iZ8e
j9e
j:e
j;e
j<e
j=e
j>e
j?e
j@e
jAe
jBiZCeDddddddddddddd d!d"d#d$d%d&d'd(d)ZEeDd*dd+dd,dd-dd.dd/dd0d!d1d#ZFed2d3d4d5d6gZGed7d8d9d:d;d<d=d>d?gZHed@d,d-d.d/gZIedAeIjJdnZKedCdDZLedEdFdGjMeLjJZNdHdIZOdJdKZPdLdMZQdNdOZRdPdQZSdRdSZTdTdUZUdVdWZVejWZWe
jXZXdXdYdZZYd[d\ZZe
j[Z[ej\Z\d]d^d_Z]d`daZ^dbdcZ_dddeZ`dfdgZaejbZbdhdiZcejddjdkZeGdldmdmefZgdS)ozmacOS platform implementation.N)AF_INET)
namedtuple)_common)_psposix)_psutil_osx)
_psutil_posix)AF_INET6)	conn_tmap)
isfile_strict)memoize_when_activated)parse_environ_block)sockfam_to_enum)socktype_to_enum)
usage_percent)AccessDenied)
NoSuchProcess)
ZombieProcessSC_PAGE_SIZEppidruideuidsuidrgidegidsgidttynrctimestatus	name
cpuutimecpustimerssvmspfaultspageins
numthreadsvolctxsw	scputimesusernicesystemidlesvmemtotalZ	availablepercentusedfreeactiveinactivewiredpmempfullmemuss
pmmap_groupedz7path rss private swapped dirtied ref_count shadow_depth	pmmap_extzaddr perms  c	Csktj\}}}}}||}|||}t|||dd}t||||||||S)z&System virtual memory as a namedtuple.round_r)cextZvirtual_memrr6)r7r;r<r=r:Zavailr9r8rF
/_psosx.pyvirtual_memoryxs
rHcCsLtj\}}}}}t||dd}tj||||||S)z=Swap system memory as a (total, used, free, sin, sout) tuple.rDr)rEZswap_memrrZsswap)r7r9r:sinZsoutr8rFrFrGswap_memorysrJcCs+tj\}}}}t||||S)z(Return system CPU times as a namedtuple.)rE	cpu_timesr1)r2r3r4r5rFrFrGrKsrKcCsUg}xHtjD]:}|\}}}}t||||}|j|qW|S)z(Return system CPU times as a named tuple)rE
per_cpu_timesr1append)retZcpu_tr2r3r4r5itemrFrFrGrLsrLcCs
tjS)z0Return the number of logical CPUs in the system.)rEcpu_count_logicalrFrFrFrGrPsrPcCs
tjS)z1Return the number of physical CPUs in the system.)rEZcpu_count_physrFrFrFrGcpu_count_physicalsrQcCs1tj\}}}}}tj||||S)N)rE	cpu_statsrZ	scpustats)Zctx_switchesZ
interruptsZsoft_interruptsZsyscallsZtrapsrFrFrGrRsrRcCs+tj\}}}tj|||gS)zReturn CPU frequency.
    On macOS per-cpu frequency is not supported.
    Also, the returned frequency never changes, see:
    https://arstechnica.com/civis/viewtopic.php?f=19&t=465002
    )rEcpu_freqrZscpufreq)ZcurrZmin_Zmax_rFrFrGrSsrSFc	Csg}tj}x|D]~}|\}}}}|dkrCd}|srtjj|stjj|rrqtj||||}|j|qW|S)z8Return mounted disk partitions as a list of namedtuples.Znone)	rEdisk_partitionsospathisabsexistsrZ	sdiskpartrM)	allretlistZ
partitions	partitionZdeviceZ
mountpointZfstypeZoptsntuplerFrFrGrUs
&rUcCsytj\}}}Wntk
r1dSYnX|dk}|rPtj}n"|dkrhtj}n
|d}tj|||S)zReturn battery information.Nr<)rEsensors_batteryNotImplementedErrorrZPOWER_TIME_UNLIMITEDZPOWER_TIME_UNKNOWNZsbattery)r8ZminsleftZ
power_pluggedZsecsleftrFrFrGr`s
	
r`inetc
Csg}xtD]w}yt|j|}Wntk
rFwYqX|rx7|D]/}t||g}|jtj|qTWqW|S)z System-wide network connections.)pidsProcessconnectionsrlistrMrZsconn)kindrNpidZconscrFrFrGnet_connectionss

rjcCstj}i}x|D]}y7tj|}tj|}tj|\}}Wn:tk
r}z|jtjkrWYdd}~XqXt	t
drt
j|}t
j||||||<qW|S)z)Get NIC stats (isup, duplex, speed, mtu).N	NicDuplex)
net_io_counterskeys
cext_posixZ
net_if_mtuZnet_if_flagsZnet_if_duplex_speedOSErrorerrnoZENODEVhasattrrrkZ	snicstats)namesrNr'ZmtuZisupduplexZspeederrrFrFrGnet_if_statss
 rucCs
tjS)z:The system boot time expressed in seconds since the epoch.)rE	boot_timerFrFrFrGrvsrvc	Csg}tj}xo|D]g}|\}}}}}|dkrCq|sLqtj||p^d|pgd||}|j|qW|S)z:Return currently connected users as a list of namedtuples.~N)rEusersrZsuserrM)	r[rawlistrOr2ZttyhostnameZtstamprhntrFrFrGrx!s
'rxcCsvtj}d|krry$tdj|jddWn3tk
rPYn"tk
rq|jddYnX|S)Nr)rErcrdcreate_timeinsertrr)ZlsrFrFrGrc5s

rccs%tjfdd}|S)z`Decorator which translates bare OSError exceptions into
    NoSuchProcess and AccessDenied.
    csy|||SWntk
r}z_|jtjkrPt|j|j|jtjtjfkrt|j|jWYdd}~Xn0t	j
k
rt|j|j|jYnXdS)N)
rorpESRCHrrh_nameEPERMZEACCESrrEZZombieProcessErrorr_ppid)selfargskwargsrt)funrFrGwrapperLsz wrap_exceptions.<locals>.wrapper)	functoolswraps)rrrF)rrGwrap_exceptionsHs!rccsy	dVWnttfk
r}zt|tsE|jtjkry|j}Wntk
ro|YqX|tjkrt	|j
|j|jqt
|j
|jnWYdd}~XnXdS)zThere are some poor C APIs which incorrectly raise ESRCH when
    the process is still alive or it's a zombie, or even RuntimeError
    (those who don't set errno). This is here in order to solve:
    https://github.com/giampaolo/psutil/issues/1044
    N)roRuntimeError
isinstancerpr~r%rr
STATUS_ZOMBIErrhrrr)procrtr%rFrFrGcatch_zombie[s	!
rc@s#eZdZdZdddgZddZeddZed	d
ZddZ	d
dZ
eddZeddZ
eddZeddZeddZeddZeddZeddZedd Zed!d"Zed#d$Zed%d&Zed'd(Zed)d*Zed+d,Zed-d.Zed/d0d1Zed2d3Zed4d5d6Zed7d8Zed9d:Z ed;d<Z!ed=d>Z"ed?d@Z#d4S)Ardz1Wrapper class around underlying C implementation.rhrrcCs||_d|_d|_dS)N)rhrr)rrhrFrFrG__init__zs		zProcess.__init__cCs4tj|j}t|ttks0t|S)N)rEZproc_kinfo_oneshotrhlenkinfo_proc_mapAssertionError)rrNrFrFrG_get_kinfo_procszProcess._get_kinfo_procc
CsHt|tj|j}WdQRXt|ttksDt|S)N)rrEZproc_pidtaskinfo_oneshotrhrpidtaskinfo_mapr)rrNrFrFrG_get_pidtaskinfos
zProcess._get_pidtaskinfocCs|jj|jjdS)N)rZcache_activater)rrFrFrG
oneshot_enters
zProcess.oneshot_entercCs|jj|jjdS)N)rZcache_deactivater)rrFrFrGoneshot_exits
zProcess.oneshot_exitcCs4|jtd}|dk	r$|Stj|jS)Nr')rrrEZ	proc_namerh)rr'rFrFrGr'szProcess.namec	Cs(t|tj|jSWdQRXdS)N)rrEZproc_exerh)rrFrFrGexes
zProcess.exec	Cs(t|tj|jSWdQRXdS)N)rrEZproc_cmdlinerh)rrFrFrGcmdlines
zProcess.cmdlinec
Cs.t|ttj|jSWdQRXdS)N)rr
rEZproc_environrh)rrFrFrGenvirons
zProcess.environcCs|jtd|_|jS)Nr)rrr)rrFrFrGrszProcess.ppidc	Cs(t|tj|jSWdQRXdS)N)rrEZproc_cwdrh)rrFrFrGcwds
zProcess.cwdcCs7|j}tj|td|td|tdS)Nrrr)rrpuidsr)rrawtuplerFrFrGuidss
zProcess.uidscCs7|j}tj|td|td|tdS)Nrrr)rrrr)rrrFrFrGgidss
zProcess.gidscCsI|jtd}tj}y||SWntk
rDdSYnXdS)Nr!)rrrZget_terminal_mapKeyError)rZtty_nrZtmaprFrFrGterminals
zProcess.terminalcCs?|j}t|td|td|td|tdS)Nr+r,r-r.)rr>r)rrrFrFrGmemory_infoszProcess.memory_infocCs/|j}tj|j}t||fS)N)rrEZproc_memory_ussrhr?)rZ	basic_memr@rFrFrGmemory_full_infoszProcess.memory_full_infocCs2|j}tj|td|tdddS)Nr)r*g)rrZ	pcputimesr)rrrFrFrGrKs
zProcess.cpu_timescCs|jtdS)Nr#)rr)rrFrFrGr|szProcess.create_timecCs$|jtd}tj|dS)Nr0r)rrrZpctxsw)rZvolrFrFrGnum_ctx_switchesszProcess.num_ctx_switchescCs|jtdS)Nr/)rr)rrFrFrGnum_threadsszProcess.num_threadscCs|jdkrgSg}t|tj|j}WdQRXx?|D]7\}}t|rFtj||}|j|qFW|S)Nr)rhrrEZproc_open_filesrrZ	popenfilerM)rfilesryrWfdr]rFrFrG
open_filess
zProcess.open_filesrbcCs0|tkr8td|djddtDft|\}}t|tj|j||}WdQRXg}x|D]}|\}}}	}
}}t|}t|}t	|	}	|t
tfkr|
rtj
|
}
|rtj
|}tj|||	|
||}
|j|
qW|S)Nz+invalid %r kind argument; choose between %sz, cSsg|]}t|qSrF)repr).0xrFrFrG
<listcomp>s	z'Process.connections.<locals>.<listcomp>)r

ValueErrorjoinrrEZproc_connectionsrhTCP_STATUSESrrrr	raddrZpconnrM)rrgfamiliestypesryrNrOrZfamtypeladdrraddrr%r{rFrFrGres(&


zProcess.connectionsc	Cs;|jdkrdSt|tj|jSWdQRXdS)Nr)rhrrEZproc_num_fds)rrFrFrGnum_fdss
zProcess.num_fdsNcCstj|j||jS)N)rZwait_pidrhr)rtimeoutrFrFrGwait!szProcess.waitc	Cs(t|tj|jSWdQRXdS)N)rrngetpriorityrh)rrFrFrGnice_get%s
zProcess.nice_getc
Cs+t|tj|j|SWdQRXdS)N)rrnsetpriorityrh)rvaluerFrFrGnice_set*s
zProcess.nice_setcCs$|jtd}tj|dS)Nr%?)rr
PROC_STATUSESget)rcoderFrFrGr%/szProcess.statuscCsXtj|j}g}x9|D]1\}}}tj|||}|j|qW|S)N)rEZproc_threadsrhrZpthreadrM)rryr[Z	thread_idutimeZstimer]rFrFrGthreads5szProcess.threadscCstj|jS)N)rEZproc_memory_mapsrh)rrFrFrGmemory_maps>szProcess.memory_maps)$__name__
__module____qualname____doc__	__slots__rrrrrrrr'rrrrrrrrrrrKr|rrrrerrrrr%rrrFrFrFrGrdusB	
	
	rd)r@)hr
contextlibrprrVsocketrcollectionsrrTrrrrErrnr	r
rrr
rrr_exceptionsrrrZ__extra__all__sysconfZPAGESIZEZAF_LINKZTCPS_ESTABLISHEDZCONN_ESTABLISHEDZ
TCPS_SYN_SENTZ
CONN_SYN_SENTZTCPS_SYN_RECEIVEDZ
CONN_SYN_RECVZTCPS_FIN_WAIT_1ZCONN_FIN_WAIT1ZTCPS_FIN_WAIT_2ZCONN_FIN_WAIT2ZTCPS_TIME_WAITZCONN_TIME_WAITZTCPS_CLOSEDZ
CONN_CLOSEZTCPS_CLOSE_WAITZCONN_CLOSE_WAITZ
TCPS_LAST_ACKZ
CONN_LAST_ACKZTCPS_LISTENZCONN_LISTENZTCPS_CLOSINGZCONN_CLOSINGZPSUTIL_CONN_NONEZ	CONN_NONErZSIDLZSTATUS_IDLEZSRUNZSTATUS_RUNNINGZSSLEEPZSTATUS_SLEEPINGZSSTOPZSTATUS_STOPPEDZSZOMBrrdictrrr1r6r>_fieldsr?rArrBrHrJrKrLrPrQrRrS
disk_usageZdisk_io_countersrUr`rlZnet_if_addrsrjrurvrxrcZ
pid_existsrcontextmanagerrobjectrdrFrFrFrG<module>s			
	

					
Back to Directory File Manager