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



Cs[v3@sdZddlZddlZddlZddlZddljjZddl	m
Z
ddlmZddl
mZddl
mZddl
mZdd	l
mZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddl m!Z!ddl m"Z"ddl m#Z#gZ$erej%ej&ej'ej(ej)ej*ej+ej,ej-ej.ej/ej0ej1ej2iZ3neserZej%ej&ej)ej*ej+ej,ej4ej.ej-ej.ej'ej5ej6ej(iZ3n`erej%ej&ej7ej(ej8ej.ej+ej,ej-ej.ej4ej9ej:ej;iZ3ej<ej=ej>ej?ej@ejAejBejCejDejEejFejGejHejIejJejKejLejMejNejOejPejQejRejSiZTerhejUdZVnejUdZVejWZWeXddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIZYe
dJdKdLdMdNdOdPdQdRdSdTdUgZZe
dVdWdXdYdZd[gZ[e
d\d<d>d]d^d_gZ\e\Z]e
d`dWdYdadbgZ^e
dcddZ_e
dedfZ`ere
dgdhdidjdkdldmdngZane
dgdhdidjdkgZadodpZbdqdrZcdsdtZdeeedurTdvduZfndwduZfdxef_gdydzZheserd{d|Zind}d|Zid~dZjdxddZkejlZlejmZmejnZnejoZoddZpddZqerddZrddZsddZteddZuddZvesGerVddZwn	ejwZwddZxejyddZzGddde{Z|dS)z5FreeBSD, OpenBSD and NetBSD platforms implementation.N)
namedtuple)AF_INET)_common)_psposix)_psutil_bsd)
_psutil_posix)AF_INET6)	conn_tmap)FREEBSD)memoize)memoize_when_activated)NETBSD)OPENBSD)sockfam_to_enum)socktype_to_enum)
usage_percent)which)AccessDenied)
NoSuchProcess)
ZombieProcessSC_PAGESIZESC_PAGE_SIZEppidstatusreal_uid
effective_uid	saved_uidreal_gid
effective_gid	saved_gidttynrcreate_time	ctx_switches_vol
ctx_switches_unvol
read_io_countwrite_io_count
	user_timesys_timech_user_timech_sys_timerssvmsmemtextmemdatamemstackcpunumnamesvmemtotalZ	availablepercentusedfreeactiveinactivebufferscachedsharedwired	scputimesusernicesystemidleirqpmemtextdatastack	pcputimes
children_userchildren_system
pmmap_groupedz*path rss, private, ref_count, shadow_count	pmmap_extz6addr, perms path rss, private, ref_count, shadow_countsdiskioZ
read_countZwrite_countZ
read_bytesZwrite_bytesZ	read_timeZ
write_timeZ	busy_timecCstj}|\}}}}}}}}trtddm}	xc|	D][}
|
jdr{t|
jdd}qI|
jdrIt|
jdd}qIWWdQRX|||}|||}t|||dd}
t|||
||||||||S)	z&System virtual memory as a namedtuple.z
/proc/meminforbsBuffers:ris
MemShared:Nround_)	cextZvirtual_memropen
startswithintsplitrrI)ZmemrJrMrNrOrSrQrPrRflineZavailrLrKrm
/_psbsd.pyvirtual_memorys
%rocCsLtj\}}}}}t||dd}tj||||||S)z@System swap memory as (total, used, free, sin, sout) namedtuple.rer)rfZswap_memrrZsswap)rJrLrMsinZsoutrKrmrmrnswap_memorysrqcCs1tj\}}}}}t|||||S)z+Return system per-CPU times as a namedtuple)rf	cpu_timesrT)rUrVrWrXrYrmrmrnrrsrr
per_cpu_timescCs[g}xNtjD]@}|\}}}}}t|||||}|j|qW|S)z'Return system CPU times as a namedtuple)rfrsrTappend)retZcpu_trUrVrWrXrYitemrmrmrnrsscCsAtdkrtgStjr.tddt_tgS)z'Return system CPU times as a namedtuplerz&supported only starting from FreeBSD 8T)cpu_count_logicalrrrs
__called__NotImplementedErrorrmrmrmrnrss
		FcCs
tjS)z0Return the number of logical CPUs in the system.)rfrwrmrmrmrnrwsrwcCstdkrdSdS)Nr)rwrmrmrmrncpu_count_physicalsrzc
Csd}tj}|dk	r|jd}|dkr|d|d}tj|}zt|jdpwd}Wd|jX|stdkrdS|S)z1Return the number of physical CPUs in the system.Nz	</groups>rr*zgroup/children/group/cpu)	rfZcpu_count_physrfindET
fromstringlenfindallclearrw)rusindexrootrmrmrnrzsc	Cstr$tj\}}}}}ntrtj\}}}}}}}tdd=}x3|D]+}|jdrdt|jd}qdWWdQRXn'trtj\}}}}}}}t	j
||||S)z*Return various CPU stats as a named tuple.z
/proc/statrdsintrrN)rrf	cpu_statsrrgrhrirjrrZ	scpustats)	ZctxswZintrsZ
soft_intrsZsyscallsZtrapsZfaultsZforksrkrlrmrmrnrs!
$!rc	Cs^g}tj}xE|D]=}|\}}}}tj||||}|j|qW|S)zReturn mounted disk partitions as a list of namedtuples.
    'all' argument is ignored, see:
    https://github.com/giampaolo/psutil/issues/906
    )rfdisk_partitionsrZ	sdiskpartrt)	allretlistZ
partitions	partitionZdeviceZ
mountpointZfstypeZoptsntuplermrmrnr<s
rcCstj}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_speedOSErrorerrnoZENODEVhasattrrrZ	snicstats)namesrurGZmtuZisupduplexZspeederrrmrmrnnet_if_statsWs
 rcCstrg}xtD]}}yt|j|}Wnttfk
rRwYqXx=|D]5}t|}|j||jtj	|qZWqW|S|tj
krtd|djddt
Dft
|\}}t
}trtjd}ntj}x|D]}|\}	}
}}}
}}|
|kr||kryt|}Wntk
rttj}YnX|
ttfkr|rtj|}|
rtj|
}
t|
}
t|}tj	|	|
|||
||}|j|qWt|S)z System-wide network connections.z+invalid %r kind argument; choose between %sz, cSsg|]}t|qSrm)repr).0xrmrmrn
<listcomp>}s	z#net_connections.<locals>.<listcomp>rr{)rpidsProcessconnectionsrrlistrtrZsconnr

ValueErrorjoinsetrrfnet_connectionsTCP_STATUSESKeyErrorPSUTIL_CONN_NONErr	addrrradd)kindrupidZconsconnfamiliestypesrawlistrvfdfamtypeladdrraddrrntrmrmrnrksJ

&	

!rcCsytj\}}}Wntk
r1dSYnX|dk}|rPtj}n"|dkrhtj}n
|d}tj|||S)zReturn battery info.Nr<r{)rfsensors_batteryryrZPOWER_TIME_UNLIMITEDZPOWER_TIME_UNKNOWNZsbattery)rKZminsleftZ
power_pluggedZsecsleftrmrmrnrs
	
rcCs
tjS)z:The system boot time expressed in seconds since the epoch.)rf	boot_timermrmrmrnrsrc	Csg}tj}xr|D]j}|\}}}}}|dkrFd}|dkrUqtj||pgd|||}|j|qW|S)z:Return currently connected users as a list of namedtuples.rN~r{)rfusersrZsuserrt)	rrrvrUZttyhostnameZtstamprrrmrmrnrs
!rcCsJytdjWn+tk
r,dSYntk
rAdSYnXdSdS)NrFT)rrGrrrmrmrmrn
_pid_0_existss

	rcCs;tj}tr7d|kr7tr7|jdd|S)z7Returns a list of PIDs currently running on the system.r)rfrrrinsert)rurmrmrnrsrcCs*tj|}|s"|tkSdSdS)zReturn True if pid exists.TN)r
pid_existsr)rexistsrmrmrnrs
rcs%tjfdd}|S)z`Decorator which translates bare OSError exceptions into
    NoSuchProcess and AccessDenied.
    csy|||SWntk
r}z|jdkrbdtkr_t|j|jn|jtjkrt|jst|j|jnt	|j|j|j
|jtjtjfkrt|j|jWYdd}~XnXdS)Nr)
rrrr_namerESRCHrrr_ppidEPERMEACCES)selfargskwargsr)funrmrnwrappersz wrap_exceptions.<locals>.wrapper)	functoolswraps)rrrm)rrnwrap_exceptionss!rccsy	dVWntk
r}z|jtjtjfkr{t|js`t|j|jnt|j|j|j	|jtj
tjfkrt|j|jWYdd}~XnXdS)z8Same as above, for routines relying on reading /proc fs.N)
EnvironmentErrorrENOENTrrrrrrrrrr)instrrmrmrnwrap_exceptions_procfss	rc@seZdZdZdddgZddZeddZd	d
ZddZ	e
d
dZe
ddZe
ddZ
e
ddZe
ddZe
ddZe
ddZe
ddZere
ddZe
dd ZeZe
d!d"Ze
d#d$Ze
d%d&Ze
d'd(Ze
d)d*d+Ze
d,d-d.Ze
d/d0Ze
d1d2Ze
d3d4Ze
d5d6Z e
d7d8Z!e"d9d:Z#e"d9d;Z$d<d=Z%e&e'd>r1e
d?d@Z(ne%Z(e&e'dAr[e
dBdCZ)ne%Z)ere
dDdEZ*e
dFdGZ+e
dHdIZ,d,S)Jrz1Wrapper class around underlying C implementation.rrrcCs||_d|_d|_dS)N)rrr)rrrmrmrn__init__(s		zProcess.__init__cCstj|j}|S)z;Retrieves multiple process info in one shot as a raw tuple.)rfZproc_oneshot_infor)rrurmrmrnoneshot-szProcess.oneshotcCs|jjdS)N)rZcache_activate)rrmrmrn
oneshot_enter4szProcess.oneshot_entercCs|jjdS)N)rZcache_deactivate)rrmrmrnoneshot_exit7szProcess.oneshot_exitcCs4|jtd}|dk	r$|Stj|jS)NrG)rkinfo_proc_maprfZ	proc_namer)rrGrmrmrnrG:szProcess.namec
Cstrtj|jStrZ|jdkr/dSt|tjd|jSWdQRXn$|j}|rzt	|dSdSdS)Nrz/proc/%s/exe)
rrfZproc_exerrrosreadlinkcmdliner)rrrmrmrnexe?s
zProcess.execCstr|jdkrgStrytj|jSWqtk
r}z_|jtjkrt|jst	|j|j
qt|j|j
|jnWYdd}~XqXntj|jSdS)Nr)
rrrrfZproc_cmdlinerrEINVALrrrrr)rrrmrmrnrUszProcess.cmdlinecCsI|jtd}tj}y||SWntk
rDdSYnXdS)Nr')rrrZget_terminal_mapr)rZtty_nrZtmaprmrmrnterminalks
zProcess.terminalcCs|jtd|_|jS)Nr)rrr)rrmrmrnrtszProcess.ppidcCs7|j}tj|td|td|tdS)Nrrr)rrZpuidsr)rrawtuplermrmrnuidsys
zProcess.uidscCs7|j}tj|td|td|tdS)Nr!r#r%)rrZpgidsr)rrrmrmrngidss
zProcess.gidscCsB|j}tj|td|td|td|tdS)Nr3r5r7r9)rrr^r)rrrmrmrnrrszProcess.cpu_timescCs|jtdS)NrE)rr)rrmrmrncpu_numszProcess.cpu_numcCsJ|j}t|td|td|td|td|tdS)Nr;r=r?rArC)rrZr)rrrmrmrnmemory_infoszProcess.memory_infocCs|jtdS)Nr))rr)rrmrmrnr)szProcess.create_timecCs3ttdrtj|jSt|jSdS)Nproc_num_threads)rrfrrrthreads)rrmrmrnnum_threadsszProcess.num_threadscCs,|j}tj|td|tdS)Nr+r-)rrZpctxswr)rrrmrmrnnum_ctx_switchesszProcess.num_ctx_switchescCshtj|j}g}x9|D]1\}}}tj|||}|j|qWtrd|j|S)N)rfZproc_threadsrrZpthreadrtrrG)rrrZ	thread_idutimeZstimerrmrmrnrs
zProcess.threadsZinetcCsd|tkr8td|djddtDftrpt|\}}t}tj|j}x|D]}|\}}}	}
}}}
||krp|	|krpyt|}Wnt	k
rttj
}YnX|ttfkr|
rt
j|
}
|rt
j|}t|}t|	}	t
j|||	|
||}|j|qpW|jt|St|\}}tj|j||}g}x|D]}|\}}}	}
}}|ttfkr|
rt
j|
}
|rt
j|}t|}t|	}	t|}t
j|||	|
||}|j|qWtr`|j|S)Nz+invalid %r kind argument; choose between %sz, cSsg|]}t|qSrm)r)rrrmrmrnrs	z'Process.connections.<locals>.<listcomp>)r
rrrrrfrrrrrrr	rrrrZpconnrrGrZproc_connectionsrtr)rrrrrurrvrrrrrrrrrmrmrnrsV&	






zProcess.connectionsNcCstj|j||jS)N)rZwait_pidrr)rtimeoutrmrmrnwaitszProcess.waitcCstj|jS)N)rgetpriorityr)rrmrmrnnice_getszProcess.nice_getcCstj|j|S)N)rsetpriorityr)rvaluermrmrnnice_setszProcess.nice_setcCs$|jtd}tj|dS)Nr?)rr
PROC_STATUSESget)rcodermrmrnrszProcess.statuscCs2|j}tj|td|tdddS)Nr/r1rr{r{)rrZpior)rrrmrmrnio_countersszProcess.io_countersc
Cstr|jdkrdStrJt|tjd|jSWdQRXn=ttdrotj|jpndSt	t
r~dnddS)z)Return process current working directory.rNz/proc/%s/cwdproc_open_filesz&supported only starting from FreeBSD 8r)rrrrrrrrfZproc_cwdryr)rrmrmrncwds
zProcess.cwdZmmapz*path rss, private, ref_count, shadow_countz6addr, perms path rss, private, ref_count, shadow_countcCs
tdS)N)ry)rrmrmrn_not_implemented/szProcess._not_implementedrcCs#tj|j}dd|DS)z8Return files opened by process as a list of namedtuples.cSs(g|]\}}tj||qSrm)rZ	popenfile)rpathrrmrmrnr9s	z&Process.open_files.<locals>.<listcomp>)rfrr)rrrmrmrn
open_files5szProcess.open_filesproc_num_fdscCs&tj|j}tr"|j|S)z=Return the number of file descriptors opened by this process.)rfrrrrG)rrurmrmrnnum_fds@s
zProcess.num_fdscCstj|jS)N)rfZproc_cpu_affinity_getr)rrmrmrncpu_affinity_getPszProcess.cpu_affinity_getcCstttt}x0|D](}||kr"td||fq"Wytj|j|Wnvtk
r}zV|j	t	j
t	jfkrx0|D](}||krtd||fqWWYdd}~XnXdS)Nz#invalid CPU #%i (choose between %s))tuplerangerrsrrfZproc_cpu_affinity_setrrrrZEDEADLK)rZcpusZallcpusZcpurrmrmrncpu_affinity_setTs

zProcess.cpu_affinity_setcCstj|jS)N)rfZproc_memory_mapsr)rrmrmrnmemory_mapsmszProcess.memory_maps)-__name__
__module____qualname____doc__	__slots__rr
rrrrrGrrrrrrrrrrrZmemory_full_infor)rrrrrrrrrrrZnt_mmap_groupedZnt_mmap_extrrrfrrrrrrmrmrmrnr#s\		
6	
r)}r
contextlibrrrZxml.etree.ElementTreeZetreeZElementTreer}collectionsrsocketrrrrrrfrrr	r
rrr
rrrrrZ_compatr_exceptionsrrrZ__extra__all__ZSIDLZSTATUS_IDLEZSRUNZSTATUS_RUNNINGZSSLEEPZSTATUS_SLEEPINGZSSTOPZSTATUS_STOPPEDZSZOMBZ
STATUS_ZOMBIEZSWAITZSTATUS_WAITINGZSLOCKZ
STATUS_LOCKEDrZSDEADZ
STATUS_WAKINGZSONPROCZSACTIVEZSDYINGZSTATUS_DEADZ
SSUSPENDEDZSTATUS_SUSPENDEDZTCPS_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_CLOSINGrZ	CONN_NONErsysconfZPAGESIZEZAF_LINKdictrrIrTrZZpfullmemr^rarbrcrorqrrrrsrxrwrzrr
disk_usageZdisk_io_countersrZnet_if_addrsrrrrrrrrrcontextmanagerrobjectrrmrmrmrn<module>s		
		#				6

	
Back to Directory File Manager