All Versions
87
Latest Version
Avg Release Cycle
46 days
Latest Release
-

Changelog History
Page 7

  • v2.1.3 Changes

    2014-09-26

    • ๐Ÿง 536_, [Linux], [critical]: fix "undefined symbol: CPU_ALLOC" compilation error.
  • v2.1.2 Changes

    2014-09-21

    โœจ Enhancements

    • ๐Ÿšš 407_: project moved from Google Code to Github; code moved from Mercurial to Git.
    • โœ… 492_: use tox to run tests on multiple Python versions. (patch by msabramo)
    • ๐Ÿ 505_, [Windows]: distribution as wheel packages.
    • 511_: add ps.py_ script.

    ๐Ÿ› Bug fixes

    • ๐Ÿ 340_, [Windows]: Process.open_files()_ no longer hangs. (patch by Jeff Tang)
    • ๐Ÿ 501_, [Windows]: disk_io_counters()_ may return negative values.
    • ๐Ÿง 503_, [Linux]: in rare conditions Process.exe(), Process.open_files() and Process.connections()_ can raise OSError(ESRCH) instead of NoSuchProcess_.
    • ๐Ÿง 504_, [Linux]: can't build RPM packages via setup.py
    • ๐Ÿง 506_, [Linux], [critical]: Python 2.4 support was broken.
    • ๐Ÿง 522_, [Linux]: Process.cpu_affinity()_ might return EINVAL. (patch by David Daeschler)
    • ๐Ÿ 529_, [Windows]: Process.exe()_ may raise unhandled WindowsError exception for PIDs 0 and 4. (patch by Jeff Tang)
    • ๐Ÿง 530_, [Linux]: disk_io_counters()_ may crash on old Linux distros (< 2.6.5) (patch by Yaolong Huang)
    • ๐Ÿง 533_, [Linux]: Process.memory_maps()_ may raise TypeError on old Linux distros.
  • v2.1.1 Changes

    2014-04-30

    ๐Ÿ› Bug fixes

    • ๐Ÿ 446_, [Windows]: fix encoding error when using net_io_counters()_ on Python 3. (patch by Szigeti Gabor Niif)
    • ๐Ÿ 460_, [Windows]: net_io_counters()_ wraps after 4G.
    • ๐Ÿง 491_, [Linux]: net_connections()_ exceptions. (patch by Alexander Grothe)
  • v2.1.0 Changes

    2014-04-08

    โœจ Enhancements

    • 387_: system-wide open connections a-la netstat (add net_connections()_).

    ๐Ÿ› Bug fixes

    • 421_, [SunOS], [critical]: psutil does not compile on SunOS 5.10. (patch by Naveed Roudsari)
    • ๐Ÿง 489_, [Linux]: disk_partitions()_ return an empty list.
  • v2.0.0 Changes

    2014-03-10

    โœจ Enhancements

    • ๐Ÿ 424_, [Windows]: installer for Python 3.X 64 bit.
    • 427_: number of logical CPUs and physical cores (cpu_count()_).
    • 447_: wait_procs()_ timeout parameter is now optional.
    • 452_: make Process_ instances hashable and usable with set() s.
    • โœ… 453_: tests on Python < 2.7 require unittest2 module.
    • โœ… 459_: add a Makefile for running tests and other repetitive tasks (also on Windows).
    • โฑ 463_: make timeout parameter of cpu_percent* functions default to 0.0 'cause it's a common trap to introduce slowdowns.
    • ๐Ÿ“š 468_: move documentation to readthedocs.com.
    • 477_: Process.cpu_percent()_ is about 30% faster. (suggested by crusaderky)
    • ๐Ÿง 478_, [Linux]: almost all APIs are about 30% faster on Python 3.X.
    • ๐Ÿ—„ 479_: long deprecated psutil.error module is gone; exception classes now live in psutil namespace only.

    ๐Ÿ› Bug fixes

    • 193_: psutil.Popen_ constructor can throw an exception if the spawned process terminates quickly.
    • ๐Ÿ 340_, [Windows]: Process.open_files()_ no longer hangs. (patch by [email protected])
    • ๐Ÿง 443_, [Linux]: fix a potential overflow issue for Process.cpu_affinity()_ (set) on systems with more than 64 CPUs.
    • ๐Ÿ 448_, [Windows]: Process.children()_ and Process.ppid()_ memory leak (patch by Ulrich Klank).
    • 457_, [POSIX]: pid_exists()_ always returns True for PID 0.
    • 461_: namedtuples are not pickle-able.
    • ๐Ÿง 466_, [Linux]: Process.exe()_ improper null bytes handling. (patch by Gautam Singh)
    • 470_: wait_procs()_ might not wait. (patch by crusaderky)
    • ๐Ÿ 471_, [Windows]: Process.exe()_ improper unicode handling. (patch by [email protected])
    • 473_: psutil.Popen_ wait() method does not set returncode attribute.
    • ๐Ÿ 474_, [Windows]: Process.cpu_percent()_ is no longer capped at 100%.
    • ๐Ÿง 476_, [Linux]: encoding error for Process.name()_ and Process.cmdline()_.

    API changes

    For the sake of consistency a lot of psutil APIs have been renamed. In most cases accessing the old names will work but it will cause a ๐Ÿ—„ DeprecationWarning.

    • psutil.* module level constants have being replaced by functions:

    +-----------------------+----------------------------------+ | Old name | Replacement | +=======================+==================================+ | psutil.NUM_CPUS | psutil.cpu_count() | +-----------------------+----------------------------------+ | psutil.BOOT_TIME | psutil.boot_time() | +-----------------------+----------------------------------+ | psutil.TOTAL_PHYMEM | virtual_memory.total | +-----------------------+----------------------------------+

    • ๐Ÿ“‡ Renamed psutil.* functions:

    +------------------------+-------------------------------+ | Old name | Replacement | +========================+===============================+ | psutil.get_pid_list() | psutil.pids() | +------------------------+-------------------------------+ | psutil.get_users() | psutil.users() | +------------------------+-------------------------------+ | psutil.get_boot_time() | psutil.boot_time() | +------------------------+-------------------------------+

    • All Process_ get_* methods lost the get_ prefix. E.g. get_ext_memory_info() was renamed to memory_info_ex(). Assuming p = psutil.Process():

    +--------------------------+----------------------+ | Old name | Replacement | +==========================+======================+ | p.get_children() | p.children() | +--------------------------+----------------------+ | p.get_connections() | p.connections() | +--------------------------+----------------------+ | p.get_cpu_affinity() | p.cpu_affinity() | +--------------------------+----------------------+ | p.get_cpu_percent() | p.cpu_percent() | +--------------------------+----------------------+ | p.get_cpu_times() | p.cpu_times() | +--------------------------+----------------------+ | p.get_ext_memory_info() | p.memory_info_ex() | +--------------------------+----------------------+ | p.get_io_counters() | p.io_counters() | +--------------------------+----------------------+ | p.get_ionice() | p.ionice() | +--------------------------+----------------------+ | p.get_memory_info() | p.memory_info() | +--------------------------+----------------------+ | p.get_memory_maps() | p.memory_maps() | +--------------------------+----------------------+ | p.get_memory_percent() | p.memory_percent() | +--------------------------+----------------------+ | p.get_nice() | p.nice() | +--------------------------+----------------------+ | p.get_num_ctx_switches() | p.num_ctx_switches() | +--------------------------+----------------------+ | p.get_num_fds() | p.num_fds() | +--------------------------+----------------------+ | p.get_num_threads() | p.num_threads() | +--------------------------+----------------------+ | p.get_open_files() | p.open_files() | +--------------------------+----------------------+ | p.get_rlimit() | p.rlimit() | +--------------------------+----------------------+ | p.get_threads() | p.threads() | +--------------------------+----------------------+ | p.getcwd() | p.cwd() | +--------------------------+----------------------+

    • All Process_ set_* methods lost the set_ prefix. Assuming p = psutil.Process():

    +----------------------+---------------------------------+ | Old name | Replacement | +======================+=================================+ | p.set_nice() | p.nice(value) | +----------------------+---------------------------------+ | p.set_ionice() | p.ionice(ioclass, value=None) | +----------------------+---------------------------------+ | p.set_cpu_affinity() | p.cpu_affinity(cpus) | +----------------------+---------------------------------+ | p.set_rlimit() | p.rlimit(resource, limits=None) | +----------------------+---------------------------------+

    • Except for pid, all Process_ class properties have been turned into methods. This is the only case which there are no aliases. Assuming p = psutil.Process():

    +---------------+-----------------+ | Old name | Replacement | +===============+=================+ | p.name | p.name() | +---------------+-----------------+ | p.parent | p.parent() | +---------------+-----------------+ | p.ppid | p.ppid() | +---------------+-----------------+ | p.exe | p.exe() | +---------------+-----------------+ | p.cmdline | p.cmdline() | +---------------+-----------------+ | p.status | p.status() | +---------------+-----------------+ | p.uids | p.uids() | +---------------+-----------------+ | p.gids | p.gids() | +---------------+-----------------+ | p.username | p.username() | +---------------+-----------------+ | p.create_time | p.create_time() | +---------------+-----------------+

    • timeout parameter of cpu_percent* functions defaults to 0.0 instead of 0.1.
    • ๐Ÿ—„ long deprecated psutil.error module is gone; exception classes now live in "psutil" namespace only.
    • Process_ instances' retcode attribute returned by wait_procs()_ has been renamed to returncode for consistency with subprocess.Popen.
  • v1.2.1 Changes

    2013-11-25

    ๐Ÿ› Bug fixes

    • ๐Ÿ 348_, [Windows], [critical]: fixed "ImportError: DLL load failed" occurring on module import on Windows XP.
    • 425_, [SunOS], [critical]: crash on import due to failure at determining BOOT_TIME.
    • ๐Ÿง 443_, [Linux]: Process.cpu_affinity()_ can't set affinity on systems with more than 64 cores.
  • v1.2.0 Changes

    2013-11-20

    โœจ Enhancements

    • 439_: assume os.getpid() if no argument is passed to Process_ class constructor.
    • 440_: new wait_procs()_ utility function which waits for multiple processes to terminate.

    ๐Ÿ› Bug fixes

    • ๐Ÿ 348_, [Windows]: fix "ImportError: DLL load failed" occurring on module import on Windows XP / Vista.
  • v1.1.3 Changes

    2013-11-07

    ๐Ÿ› Bug fixes

    • ๐Ÿง 442_, [Linux], [critical]: psutil won't compile on certain version of Linux because of missing prlimit(2) syscall.
  • v1.1.2 Changes

    2013-10-22

    ๐Ÿ› Bug fixes

    • ๐Ÿง 442_, [Linux], [critical]: psutil won't compile on Debian 6.0 because of missing prlimit(2) syscall.
  • v1.1.1 Changes

    2013-10-08

    ๐Ÿ› Bug fixes

    • ๐Ÿง 442_, [Linux], [critical]: psutil won't compile on kernels < 2.6.36 due to missing prlimit(2) syscall.