diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2017-01-24 17:14:36 +0100 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2017-01-24 17:14:36 +0100 |
commit | 167e3938c15f3b1dcc7b20685f73df3d3077f276 (patch) | |
tree | 840a7011ed70b956c8cd6b065dcff07ef4f02f0d | |
parent | de07c1c88c8650dd1c5db9fecfa79d93e247e9fa (diff) | |
download | psutil-167e3938c15f3b1dcc7b20685f73df3d3077f276.tar.gz |
fiz ZeroDivionError on cpu_freq()
-rw-r--r-- | psutil/__init__.py | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/psutil/__init__.py b/psutil/__init__.py index 97f1df97..5b248476 100644 --- a/psutil/__init__.py +++ b/psutil/__init__.py @@ -1876,24 +1876,33 @@ if hasattr(_psplatform, "cpu_freq"): each CPU. If not a list with one element is returned. """ ret = _psplatform.cpu_freq() - # XXX - from pprint import pprint as pp - pp(ret) if percpu: return ret else: - num_cpus = len(ret) - if num_cpus == 1: + num_cpus = float(len(ret)) + if num_cpus == 0: + return [] + elif num_cpus == 1: return ret[0] - currs, mins, maxs = [], [], [] - for cpu in ret: - currs.append(cpu.current) - mins.append(cpu.min) - maxs.append(cpu.max) - return _common.scpufreq( - sum(currs) / num_cpus, - sum(mins) / num_cpus, - sum(maxs) / num_cpus) + else: + currs, mins, maxs = [], [], [] + for cpu in ret: + currs.append(cpu.current) + mins.append(cpu.min) + maxs.append(cpu.max) + try: + current = sum(currs) / num_cpus, + except ZeroDivisionError: + current = 0.0 + try: + min_ = sum(mins) / num_cpus, + except ZeroDivisionError: + min_ = 0.0 + try: + max_ = sum(maxs) / num_cpus, + except ZeroDivisionError: + max_ = 0.0 + return _common.scpufreq(current, min_, max_) __all__.append("cpu_freq") |