* Thu Nov 01 2018 Arun Persaud <arun@gmx.de>
- update to version 5.4.8:
* Enhancements
+ 1197: [Linux] cpu_freq() is now implemented by parsing
/proc/cpuinfo in case /sys/devices/system/cpu/* filesystem is
not available.
+ 1310: [Linux] psutil.sensors_temperatures() now parses
/sys/class/thermal in case /sys/class/hwmon fs is not available
(e.g. Raspberry Pi). (patch by Alex Manuskin)
+ 1320: [Posix] better compilation support when using g++ instead
of gcc. (patch by Jaime Fullaondo)
* Bug fixes
+ 715: do not print exception on import time in case cpu_times()
fails.
+ 1004: [Linux] Process.io_counters() may raise ValueError.
+ 1277: [OSX] available and used memory (psutil.virtual_memory())
metrics are not accurate.
+ 1294: [Windows] psutil.Process().connections() may sometimes
fail with intermittent 0xC0000001. (patch by Sylvain Duchesne)
+ 1307: [Linux] disk_partitions() does not honour PROCFS_PATH.
+ 1320: [AIX] system CPU times (psutil.cpu_times()) were being
reported with ticks unit as opposed to seconds. (patch by Jaime
Fullaondo)
+ 1332: [OSX] psutil debug messages are erroneously printed all
the time. (patch by Ilya Yanok)
+ 1346: [SunOS] net_connections() returns an empty list. (patch by
Oleksii Shevchuk)
* Sat Aug 18 2018 arun@gmx.de
- update to version 5.4.7:
* Enhancements
+ 1286: [macOS] psutil.OSX constant is now deprecated in favor of
new psutil.MACOS.
+ 1309: [Linux] added psutil.STATUS_PARKED constant for
Process.status().
+ 1321: [Linux] add disk_io_counters() dual implementation relying
on /sys/block filesystem in case /proc/diskstats is not
available. (patch by Lawrence Ye)
* Bug fixes
+ 1209: [macOS] Process.memory_maps() may fail with EINVAL due to
poor task_for_pid() syscall. AccessDenied is now raised instead.
+ 1278: [macOS] Process.threads() incorrectly return microseconds
instead of seconds. (patch by Nikhil Marathe)
+ 1279: [Linux, macOS, BSD] net_if_stats() may return ENODEV.
+ 1294: [Windows] psutil.Process().connections() may sometime fail
with MemoryError. (patch by sylvainduchesne)
+ 1305: [Linux] disk_io_stats() may report inflated r/w bytes
values.
+ 1309: [Linux] Process.status() is unable to recognize "idle" and
"parked" statuses (returns '?').
+ 1313: [Linux] disk_io_counters() can report inflated IO counters
due to erroneously counting base disk device and its
partition(s) twice.
+ 1323: [Linux] sensors_temperatures() may fail with ValueError.
* Wed Jun 13 2018 toddrme2178@gmail.com
- Update to 5.4.6
* 1258_: [Windows] Process.username() may cause a segfault (Python interpreter
crash). (patch by Jean-Luc Migot)
* 1273_: net_if_addr() namedtuple's name has been renamed from "snic" to
"snicaddr".
* 1274_: [Linux] there was a small chance Process.children() may swallow
AccessDenied exceptions.
* Sat Apr 14 2018 arun@gmx.de
- update to version 5.4.5:
* Bug fixes
+ 1268: setup.py's extra_require parameter requires latest
setuptools version, breaking quite a lot of installations.
- changes from version 5.4.4:
* Enhancements
+ 1239: [Linux] expose kernel "slab" memory for
psutil.virtual_memory(). (patch by Maxime Mouial)
* Bug fixes
+ 694: [SunOS] cmdline() could be truncated at the 15th character
when reading it from /proc. An extra effort is made by reading
it from process address space first. (patch by Georg Sauthoff)
+ 771: [Windows] cpu_count() (both logical and physical) return a
wrong (smaller) number on systems using process groups (> 64
cores).
+ 771: [Windows] cpu_times(percpu=True) return fewer CPUs on
systems using process groups (> 64 cores).
+ 771: [Windows] cpu_stats() and cpu_freq() may return incorrect
results on systems using process groups (> 64 cores).
+ 1193: [SunOS] Return uid/gid from /proc/pid/psinfo if there
aren't enough permissions for /proc/pid/cred. (patch by Georg
Sauthoff)
+ 1194: [SunOS] Return nice value from psinfo as getpriority()
doesn't support real-time processes. (patch by Georg Sauthoff)
+ 1194: [SunOS] Fix double free in psutil_proc_cpu_num(). (patch
by Georg Sauthoff)
+ 1194: [SunOS] Fix undefined behavior related to strict-aliasing
rules and warnings. (patch by Georg Sauthoff)
+ 1210: [Linux] cpu_percent() steal time may remain stuck at 100%
due to Linux erroneously reporting a decreased steal time
between calls. (patch by Arnon Yaari)
+ 1216: fix compatibility with python 2.6 on Windows (patch by Dan
Vinakovsky)
+ 1222: [Linux] Process.memory_full_info() was erroneously summing
"Swap:" and "SwapPss:". Same for "Pss:" and "SwapPss". Not
anymore.
+ 1224: [Windows] Process.wait() may erroneously raise
TimeoutExpired.
+ 1238: [Linux] sensors_battery() may return None in case battery
is not listed as "BAT0" under /sys/class/power_supply.
+ 1240: [Windows] cpu_times() float loses accuracy in a long
running system. (patch by stswandering)
+ 1245: [Linux] sensors_temperatures() may fail with IOError "no
such file".
+ 1255: [FreeBSD] swap_memory() stats were erroneously represented
in KB. (patch by Denis Krienbühl)
* Backward compatibility
+ 771: [Windows] cpu_count(logical=False) on Windows XP and Vista
is no longer supported and returns None.
* Wed Jan 03 2018 arun@gmx.de
- specfile:
* update copyright year
- update to version 5.4.3:
* Enhancements
+ 775: disk_partitions() on Windows return mount points.
* Bug fixes
+ 1193: pids() may return False on OSX.
* Thu Dec 21 2017 mihai.dinca@suse.com
- build python3 subpackage (FATE#324435, bsc#1073879)
* Thu Dec 07 2017 arun@gmx.de
- update to version 5.4.2:
* Enhancements
+ 1173: introduced PSUTIL_DEBUG environment variable which can be
set in order to print useful debug messages on stderr (useful in
case of nasty errors).
+ 1177: added support for sensors_battery() on OSX. (patch by
Arnon Yaari)
+ 1183: Process.children() is 2x faster on UNIX and 2.4x faster on
Linux.
+ 1188: deprecated method Process.memory_info_ex() now warns by
using FutureWarning instead of DeprecationWarning.
* Bug fixes
+ 1152: [Windows] disk_io_counters() may return an empty dict.
+ 1169: [Linux] users() "hostname" returns username
instead. (patch by janderbrain)
+ 1172: [Windows] make test does not work.
+ 1179: [Linux] Process.cmdline() is now able to splits cmdline
args for misbehaving processes which overwrite /proc/pid/cmdline
and use spaces instead of null bytes as args separator.
+ 1181: [OSX] Process.memory_maps() may raise ENOENT.
+ 1187: [OSX] pids() does not return PID 0 on recent OSX versions.
* Fri Nov 10 2017 arun@gmx.de
- update to version 5.4.1:
* Enhancements
+ 1164: [AIX] add support for Process.num_ctx_switches(). (patch
by Arnon Yaari)
+ 1053: abandon Python 3.3 support (psutil still works but it's no
longer tested).
* Bug fixes
+ 1150: [Windows] when a process is terminate()d now the exit code
is set to SIGTERM instead of 0. (patch by Akos Kiss)
+ 1151: python -m psutil.tests fail
+ 1154: [AIX] psutil won't compile on AIX 6.1.0. (patch by Arnon
Yaari)
+ 1167: [Windows] net_io_counter() packets count now include also
non-unicast packets. (patch by Matthew Long)
* Sun Oct 22 2017 arun@gmx.de
- update to version 5.4.0:
* Enhancements
+ 1123: [AIX] added support for AIX platform. (patch by Arnon
Yaari)
* Bug fixes
+ 1009: [Linux] sensors_temperatures() may crash with IOError.
+ 1012: [Windows] disk_io_counters()'s read_time and write_time
were expressed in tens of micro seconds instead of milliseconds.
+ 1127: [OSX] invalid reference counting in Process.open_files()
may lead to segfault. (patch by Jakub Bacic)
+ 1129: [Linux] sensors_fans() may crash with IOError. (patch by
Sebastian Saip)
+ 1131: [SunOS] fix compilation warnings. (patch by Arnon Yaari)
+ 1133: [Windows] can't compile on newer versions of Visual Studio
2017 15.4. (patch by Max Bélanger)
+ 1138: [Linux] can't compile on CentOS 5.0 and RedHat 5.0. (patch
by Prodesire)
* Mon Sep 25 2017 michael@stroeder.com
- update to version 5.3.1
* *Enhancements**
- 1124_: documentation moved to http://psutil.readthedocs.io
* *Big fixes**
- 1105_: [FreeBSD] psutil does not compile on FreeBSD 12.
- 1125_: [BSD] net_connections() raises TypeError.
* *Compatibility notes**
- 1120_: .exe files for Windows are no longer uploaded on PYPI as per PEP-527;
only wheels are provided.
* Fri Sep 08 2017 michael@stroeder.com
- update to version 5.3.0
* *Enhancements**
- 802_: disk_io_counters() and net_io_counters() numbers no longer wrap
(restart from 0). Introduced a new "nowrap" argument.
- 928_: psutil.net_connections() and psutil.Process.connections() "laddr" and
"raddr" are now named tuples.
- 1015_: swap_memory() now relies on /proc/meminfo instead of sysinfo() syscall
so that it can be used in conjunction with PROCFS_PATH in order to retrieve
memory info about Linux containers such as Docker and Heroku.
- 1022_: psutil.users() provides a new "pid" field.
- 1025_: process_iter() accepts two new parameters in order to invoke
Process.as_dict(): "attrs" and "ad_value". With this you can iterate over all
processes in one shot without needing to catch NoSuchProcess and do list/dict
comprehensions.
- 1040_: implemented full unicode support.
- 1051_: disk_usage() on Python 3 is now able to accept bytes.
- 1058_: test suite now enables all warnings by default.
- 1060_: source distribution is dynamically generated so that it only includes
relevant files.
- 1079_: [FreeBSD] net_connections()'s fd number is now being set for real
(instead of -1). (patch by Gleb Smirnoff)
- 1091_: [SunOS] implemented Process.environ(). (patch by Oleksii Shevchuk)
* *Bug fixes**
- 989_: [Windows] boot_time() may return a negative value.
- 1007_: [Windows] boot_time() can have a 1 sec fluctuation between calls; the
value of the first call is now cached so that boot_time() always returns the
same value if fluctuation is <= 1 second.
- 1013_: [FreeBSD] psutil.net_connections() may return incorrect PID. (patch
by Gleb Smirnoff)
- 1014_: [Linux] Process class can mask legitimate ENOENT exceptions as
NoSuchProcess.
- 1016_: disk_io_counters() raises RuntimeError on a system with no disks.
- 1017_: net_io_counters() raises RuntimeError on a system with no network
cards installed.
- 1021_: [Linux] open_files() may erroneously raise NoSuchProcess instead of
skipping a file which gets deleted while open files are retrieved.
- 1029_: [OSX, FreeBSD] Process.connections('unix') on Python 3 doesn't
properly handle unicode paths and may raise UnicodeDecodeError.
- 1033_: [OSX, FreeBSD] memory leak for net_connections() and
Process.connections() when retrieving UNIX sockets (kind='unix').
- 1040_: fixed many unicode related issues such as UnicodeDecodeError on
Python 3 + UNIX and invalid encoded data on Windows.
- 1042_: [FreeBSD] psutil won't compile on FreeBSD 12.
- 1044_: [OSX] different Process methods incorrectly raise AccessDenied for
zombie processes.
- 1046_: [Windows] disk_partitions() on Windows overrides user's SetErrorMode.
- 1047_: [Windows] Process username(): memory leak in case exception is thrown.
- 1048_: [Windows] users()'s host field report an invalid IP address.
- 1050_: [Windows] Process.memory_maps memory() leaks memory.
- 1055_: cpu_count() is no longer cached; this is useful on systems such as
Linux where CPUs can be disabled at runtime. This also reflects on
Process.cpu_percent() which no longer uses the cache.
- 1058_: fixed Python warnings.
- 1062_: disk_io_counters() and net_io_counters() raise TypeError if no disks
or NICs are installed on the system.
- 1063_: [NetBSD] net_connections() may list incorrect sockets.
- 1064_: [NetBSD] swap_memory() may segfault in case of error.
- 1065_: [OpenBSD] Process.cmdline() may raise SystemError.
- 1067_: [NetBSD] Process.cmdline() leaks memory if process has terminated.
- 1069_: [FreeBSD] Process.cpu_num() may return 255 for certain kernel
processes.
- 1071_: [Linux] cpu_freq() may raise IOError on old RedHat distros.
- 1074_: [FreeBSD] sensors_battery() raises OSError in case of no battery.
- 1075_: [Windows] net_if_addrs(): inet_ntop() return value is not checked.
- 1077_: [SunOS] net_if_addrs() shows garbage addresses on SunOS 5.10.
(patch by Oleksii Shevchuk)
- 1077_: [SunOS] net_connections() does not work on SunOS 5.10. (patch by
Oleksii Shevchuk)
- 1079_: [FreeBSD] net_connections() didn't list locally connected sockets.
(patch by Gleb Smirnoff)
- 1085_: cpu_count() return value is now checked and forced to None if <= 1.
- 1087_: Process.cpu_percent() guard against cpu_count() returning None and
assumes 1 instead.
- 1093_: [SunOS] memory_maps() shows wrong 64 bit addresses.
- 1094_: [Windows] psutil.pid_exists() may lie. Also, all process APIs relying
on OpenProcess Windows API now check whether the PID is actually running.
- 1098_: [Windows] Process.wait() may erroneously return sooner, when the PID
is still alive.
- 1099_: [Windows] Process.terminate() may raise AccessDenied even if the
process already died.
- 1101_: [Linux] sensors_temperatures() may raise ENODEV.
* *Porting notes**
- 1039_: returned types consolidation:
- Windows / Process.cpu_times(): fields #3 and #4 were int instead of float
- Linux / FreeBSD: connections('unix'): raddr is now set to "" instead of
None
- OpenBSD: connections('unix'): laddr and raddr are now set to "" instead of
None
- 1040_: all strings are encoded by using OS fs encoding.
- 1040_: the following Windows APIs on Python 2 now return a string instead of
unicode:
- Process.memory_maps().path
- WindowsService.bin_path()
- WindowsService.description()
- WindowsService.display_name()
- WindowsService.username()
* Tue Jul 11 2017 toddrme2178@gmail.com
- Fix various rpmlint warnings and errors
* Sat Apr 29 2017 michael@stroeder.com
- update to version 5.2.2
* *Bug fixes**
- 1000_: fixed some setup.py warnings.
- 1002_: [SunOS] remove C macro which will not be available on new Solaris
versions. (patch by Danek Duvall)
- 1004_: [Linux] Process.io_counters() may raise ValueError.
- 1006_: [Linux] cpu_freq() may return None on some Linux versions does not
support the function; now the function is not declared instead.
- 1009_: [Linux] sensors_temperatures() may raise OSError.
- 1010_: [Linux] virtual_memory() may raise ValueError on Ubuntu 14.04.
- 981_: [Linux] cpu_freq() may return an empty list.
- 993_: [Windows] Process.memory_maps() on Python 3 may raise
UnicodeDecodeError.
- 996_: [Linux] sensors_temperatures() may not show all temperatures.
- 997_: [FreeBSD] virtual_memory() may fail due to missing sysctl parameter on
FreeBSD 12.
* Thu Mar 16 2017 jmatejek@suse.com
- update for singlespec
* Wed Mar 15 2017 michael@stroeder.com
- update to version 5.2.0
* *Enhancements**
- 971_: [Linux] Add psutil.sensors_fans() function. (patch by Nicolas Hennion)
- 976_: [Windows] Process.io_counters() has 2 new fields: *other_count* and
* other_bytes*.
- 976_: [Linux] Process.io_counters() has 2 new fields: *read_chars* and
* write_chars*.
* *Bug fixes**
- 872_: [Linux] can now compile on Linux by using MUSL C library.
- 985_: [Windows] Fix a crash in `Process.open_files` when the worker thread for `NtQueryObject` times out.
- 986_: [Linux] Process.cwd() may raise NoSuchProcess instead of ZombieProcess.
* Wed Feb 08 2017 michael@stroeder.com
- update to version 5.1.3
5.1.3
=====
* *Bug fixes**
- 971_: [Linux] sensors_temperatures() didn't work on CentOS 7.
- 973_: cpu_percent() may raise ZeroDivisionError.
5.1.2
=====
* 2017-02-03*
* *Bug fixes**
- 966_: [Linux] sensors_battery().power_plugged may erroneously return None on
Python 3.
- 968_: [Linux] disk_io_counters() raises TypeError on python 3.
- 970_: [Linux] sensors_battery()'s name and label fields on Python 3 are bytes
instead of str.
5.1.1
=====
* 2017-02-03*
* *Enhancements**
- 966_: [Linux] sensors_battery().percent is a float and is more precise.
* *Bug fixes**
- 964_: [Windows] Process.username() and psutil.users() may return badly
decoding character on Python 3.
- 965_: [Linux] disk_io_counters() may miscalculate sector size and report the
wrong number of bytes read and written.
- 966_: [Linux] sensors_battery() may fail with "no such file error".
- 966_: [Linux] sensors_battery().power_plugged may lie.
5.1.0
=====
* *Enhancements**
- 357_: added psutil.Process.cpu_num() (what CPU a process is on).
- 371_: added psutil.sensors_temperatures() (Linux only).
- 941_: added psutil.cpu_freq() (CPU frequency).
- 955_: added psutil.sensors_battery() (Linux, Windows, only).
- 956_: cpu_affinity([]) can now be used as an alias to set affinity against
all eligible CPUs.
* *Bug fixes**
- 687_: [Linux] pid_exists() no longer returns True if passed a process thread
ID.
- 948_: cannot install psutil with PYTHONOPTIMIZE=2.
- 950_: [Windows] Process.cpu_percent() was calculated incorrectly and showed
higher number than real usage.
- 951_: [Windows] the uploaded wheels for Python 3.6 64 bit didn't work.
- 959_: psutil exception objects could not be pickled.
- 960_: Popen.wait() did not return the correct negative exit status if process
is ``kill()``ed by a signal.
- 961_: [Windows] WindowsService.description() may fail with
ERROR_MUI_FILE_NOT_FOUND.
5.0.1
=====
* *Enhancements**
- 939_: tar.gz distribution went from 1.8M to 258K.
- 811_: [Windows] provide a more meaningful error message if trying to use
psutil on unsupported Windows XP.
* *Bug fixes**
- 609_: [SunOS] psutil does not compile on Solaris 10.
- 936_: [Windows] fix compilation error on VS 2013 (patch by Max Bélanger).
- 940_: [Linux] cpu_percent() and cpu_times_percent() was calculated
incorrectly as "iowait", "guest" and "guest_nice" times were not properly
taken into account.
- 944_: [OpenBSD] psutil.pids() was omitting PID 0.
* Tue Nov 08 2016 toddrme2178@gmail.com
- update to version 5.0.0:
* Enhncements
+ 799: new Process.oneshot() context manager making Process
methods around +2x faster in general and from +2x to +6x faster
on Windows.
+ 943: better error message in case of version conflict on import.
* Bug fixes
+ 932: [NetBSD] net_connections() and Process.connections() may
fail without raising an exception.
+ 933: [Windows] memory leak in cpu_stats() and
WindowsService.description().
* Sat Nov 05 2016 michael@stroeder.com
- Update to version 4.4.2:
* 931: psutil no longer compiles on Solaris.
* Tue Oct 25 2016 michael@stroeder.com
- Update to version 4.4.1:
* 927: Popen.__del__() may cause maximum recursion depth error.
- Update to version 4.4.0:
Enhancements
* 887: [Linux] virtual_memory()'s 'available' and 'used'
values are more precise and match "free" cmdline utility.
"available" also takes into account LCX containers
preventing "available" to overflow "total".
* 891: procinfo.py script has been updated and provides a
lot more info.
Bug fixes
* 825: [Linux] cpu_affinity; fix possible double close and
use of unopened socket.
* 885: ValueError is raised if a negative integer is passed
to cpu_percent() functions.
* 892: [Linux] Process.cpu_affinity([-1]) raise SystemError
with no error set; now ValueError is raised.
* Sat Sep 24 2016 michael@stroeder.com
- update to version 4.3.1:
* #881: "make install" now works also when using a virtual env.
* #854: Process.as_dict() raises ValueError if passed an erroneous attrs name.
* #857: [SunOS] Process cpu_times(), cpu_percent(), threads() amd
memory_maps() may raise RuntimeError if attempting to query a 64bit
process with a 32bit python. "Null" values are returned as a fallback.
* #858: Process.as_dict() should not return memory_info_ex() because it's
deprecated.
* #863: [Windows] memory_map truncates addresses above 32 bits
* #866: [Windows] win_service_iter() and services in general are not able
to handle unicode service names / descriptions.
* #869: [Windows] Process.wait() may raise TimeoutExpired with wrong
timeout unit (ms instead of sec).
* #870: [Windows] Handle leak inside psutil_get_process_data.