| Index: third_party/psutil/psutil/__init__.py
|
| diff --git a/third_party/psutil/psutil/__init__.py b/third_party/psutil/psutil/__init__.py
|
| index 93724fca1a97788acf6dcba48a57d255d329f8cd..4d7d1a4162a4013fd429af525f385985f1af411c 100644
|
| --- a/third_party/psutil/psutil/__init__.py
|
| +++ b/third_party/psutil/psutil/__init__.py
|
| @@ -1,6 +1,6 @@
|
| #!/usr/bin/env python
|
| #
|
| -# $Id: __init__.py 1142 2011-10-05 18:45:49Z g.rodola $
|
| +# $Id: __init__.py 1182 2011-10-22 11:39:15Z g.rodola $
|
| #
|
| # Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved.
|
| # Use of this source code is governed by a BSD-style license that can be
|
| @@ -11,7 +11,7 @@ processes and gather system information in a portable way by using
|
| Python.
|
| """
|
|
|
| -__version__ = "0.3.1"
|
| +__version__ = "0.4.0"
|
| version_info = tuple([int(num) for num in __version__.split('.')])
|
|
|
| __all__ = [
|
| @@ -348,9 +348,13 @@ class Process(object):
|
| return 0.0
|
| # the utilization of a single CPU
|
| single_cpu_percent = overall_percent * NUM_CPUS
|
| - # ugly hack to avoid troubles with float precision issues
|
| - if single_cpu_percent > 100.0:
|
| - return 100.0
|
| + # on posix a percentage > 100 is legitimate
|
| + # http://stackoverflow.com/questions/1032357/comprehending-top-cpu-usage
|
| + # on windows we use this ugly hack to avoid troubles with float
|
| + # precision issues
|
| + if os.name != 'posix':
|
| + if single_cpu_percent > 100.0:
|
| + return 100.0
|
| return round(single_cpu_percent, 1)
|
|
|
| def get_cpu_times(self):
|
| @@ -386,13 +390,24 @@ class Process(object):
|
| """
|
| return self._platform_impl.get_open_files()
|
|
|
| - def get_connections(self):
|
| - """Return TCP and UPD connections opened by process as a list
|
| - of namedtuples.
|
| - On BSD and OSX results for third party processes (!= os.getpid())
|
| - can differ depending on user privileges.
|
| + def get_connections(self, kind='inet'):
|
| + """Return connections opened by process as a list of namedtuples.
|
| + The kind parameter filters for connections that fit the following
|
| + criteria:
|
| +
|
| + Kind Value Connections using
|
| + inet IPv4 and IPv6
|
| + inet4 IPv4
|
| + inet6 IPv6
|
| + tcp TCP
|
| + tcp4 TCP over IPv4
|
| + tcp6 TCP over IPv6
|
| + udp UDP
|
| + udp4 UDP over IPv4
|
| + udp6 UDP over IPv6
|
| + all the sum of all the possible families and protocols
|
| """
|
| - return self._platform_impl.get_connections()
|
| + return self._platform_impl.get_connections(kind)
|
|
|
| def is_running(self):
|
| """Return whether this process is running."""
|
| @@ -675,68 +690,68 @@ def disk_partitions(all=False):
|
| """
|
| return _psplatform.disk_partitions(all)
|
|
|
| -if hasattr(_psplatform, "network_io_counters"):
|
| +def network_io_counters(pernic=False):
|
| + """Return network I/O statistics as a namedtuple including
|
| + the following attributes:
|
|
|
| - def network_io_counters(pernic=False):
|
| - """Return network I/O statistics as a namedtuple including:
|
| - - number of bytes sent
|
| - - number of bytes received
|
| - - number of packets sent
|
| - - number of packets received
|
| + - bytes_sent: number of bytes sent
|
| + - bytes_recv: number of bytes received
|
| + - packets_sent: number of packets sent
|
| + - packets_recv: number of packets received
|
|
|
| - If pernic is True return the same information for every
|
| - network interface installed on the system as a dictionary
|
| - with network interface names as the keys and the namedtuple
|
| - described above as the values.
|
| - """
|
| - from psutil._common import ntuple_net_iostat
|
| - rawdict = _psplatform.network_io_counters()
|
| - if pernic:
|
| - for nic, fields in rawdict.iteritems():
|
| - rawdict[nic] = ntuple_net_iostat(*fields)
|
| - return rawdict
|
| - else:
|
| - bytes_sent, bytes_recv, packets_sent, packets_recv = 0, 0, 0, 0
|
| - for _, fields in rawdict.iteritems():
|
| - bytes_sent += fields[0]
|
| - bytes_recv += fields[1]
|
| - packets_sent += fields[2]
|
| - packets_recv += fields[3]
|
| - return ntuple_net_iostat(bytes_sent, bytes_recv,
|
| - packets_sent, packets_recv)
|
| -
|
| -if hasattr(_psplatform, "disk_io_counters"):
|
| -
|
| - def disk_io_counters(perdisk=False):
|
| - """Return system disk I/O statistics as a namedtuple including:
|
| - - number of bytes read
|
| - - number of bytes written
|
| - - number of reads
|
| - - number of writes
|
| - - time spent reading from disk (in nanoseconds)
|
| - - time spent writing to disk (in nanoseconds)
|
| -
|
| - If perdisk is True return the same information for every
|
| - physical disk installed on the system as a dictionary
|
| - with partition names as the keys and the namedutuple
|
| - described above as the values.
|
| - """
|
| - from psutil._common import ntuple_disk_iostat
|
| - rawdict = _psplatform.disk_io_counters()
|
| - if perdisk:
|
| - for disk, fields in rawdict.iteritems():
|
| - rawdict[disk] = ntuple_disk_iostat(*fields)
|
| - return rawdict
|
| - else:
|
| - reads, writes, rbytes, wbytes, rtime, wtime = 0, 0, 0, 0, 0, 0
|
| - for _, fields in rawdict.iteritems():
|
| - reads += fields[0]
|
| - writes += fields[1]
|
| - rbytes += fields[2]
|
| - wbytes += fields[3]
|
| - rtime += fields[4]
|
| - wtime += fields[5]
|
| - return ntuple_disk_iostat(reads, writes, rbytes, wbytes, rtime, wtime)
|
| + If pernic is True return the same information for every
|
| + network interface installed on the system as a dictionary
|
| + with network interface names as the keys and the namedtuple
|
| + described above as the values.
|
| + """
|
| + from psutil._common import ntuple_net_iostat
|
| + rawdict = _psplatform.network_io_counters()
|
| + if pernic:
|
| + for nic, fields in rawdict.iteritems():
|
| + rawdict[nic] = ntuple_net_iostat(*fields)
|
| + return rawdict
|
| + else:
|
| + bytes_sent, bytes_recv, packets_sent, packets_recv = 0, 0, 0, 0
|
| + for _, fields in rawdict.iteritems():
|
| + bytes_sent += fields[0]
|
| + bytes_recv += fields[1]
|
| + packets_sent += fields[2]
|
| + packets_recv += fields[3]
|
| + return ntuple_net_iostat(bytes_sent, bytes_recv,
|
| + packets_sent, packets_recv)
|
| +
|
| +def disk_io_counters(perdisk=False):
|
| + """Return system disk I/O statistics as a namedtuple including
|
| + the following attributes:
|
| +
|
| + - read_count: number of reads
|
| + - write_count: number of writes
|
| + - read_bytes: number of bytes read
|
| + - write_bytes: number of bytes written
|
| + - read_time: time spent reading from disk (in milliseconds)
|
| + - write_time: time spent writing to disk (in milliseconds)
|
| +
|
| + If perdisk is True return the same information for every
|
| + physical disk installed on the system as a dictionary
|
| + with partition names as the keys and the namedutuple
|
| + described above as the values.
|
| + """
|
| + from psutil._common import ntuple_disk_iostat
|
| + rawdict = _psplatform.disk_io_counters()
|
| + if perdisk:
|
| + for disk, fields in rawdict.iteritems():
|
| + rawdict[disk] = ntuple_disk_iostat(*fields)
|
| + return rawdict
|
| + else:
|
| + reads, writes, rbytes, wbytes, rtime, wtime = 0, 0, 0, 0, 0, 0
|
| + for _, fields in rawdict.iteritems():
|
| + reads += fields[0]
|
| + writes += fields[1]
|
| + rbytes += fields[2]
|
| + wbytes += fields[3]
|
| + rtime += fields[4]
|
| + wtime += fields[5]
|
| + return ntuple_disk_iostat(reads, writes, rbytes, wbytes, rtime, wtime)
|
|
|
|
|
| def _deprecated(replacement):
|
|
|