Changelog
### 5.9.6
```
=====
2023-10-15
**Enhancements**
- 1703_: `cpu_percent()`_ and `cpu_times_percent()`_ are now thread safe,
meaning they can be called from different threads and still return
meaningful and independent results. Before, if (say) 10 threads called
``cpu_percent(interval=None)`` at the same time, only 1 thread out of 10
would get the right result.
- 2266_: if `Process`_ class is passed a very high PID, raise `NoSuchProcess`_
instead of OverflowError. (patch by Xuehai Pan)
- 2246_: drop python 3.4 & 3.5 support. (patch by Matthieu Darbois)
- 2290_: PID reuse is now pre-emptively checked for `Process.ppid()`_ and
`Process.parents()`_.
- 2312_: use ``ruff`` Python linter instead of ``flake8 + isort``. It's an
order of magnitude faster + it adds a ton of new code quality checks.
**Bug fixes**
- 2195_, [Linux]: no longer print exception at import time in case /proc/stat
can't be read due to permission error. Redirect it to ``PSUTIL_DEBUG``
instead.
- 2241_, [NetBSD]: can't compile On NetBSD 10.99.3/amd64. (patch by Thomas
Klausner)
- 2245_, [Windows]: fix var unbound error on possibly in `swap_memory()`_
(patch by student_2333)
- 2268_: ``bytes2human()`` utility function was unable to properly represent
negative values.
- 2252_, [Windows]: `disk_usage()`_ fails on Python 3.12+. (patch by
Matthieu Darbois)
- 2284_, [Linux]: `Process.memory_full_info()`_ may incorrectly raise
`ZombieProcess`_ if it's determined via ``/proc/pid/smaps_rollup``. Instead
we now fallback on reading ``/proc/pid/smaps``.
- 2287_, [OpenBSD], [NetBSD]: `Process.is_running()`_ erroneously return
``False`` for zombie processes, because creation time cannot be determined.
- 2288_, [Linux]: correctly raise `ZombieProcess`_ on `Process.exe()`_,
`Process.cmdline()`_ and `Process.memory_maps()`_ instead of returning a
"null" value.
- 2290_: differently from what stated in the doc, PID reuse is not
pre-emptively checked for `Process.nice()`_ (set), `Process.ionice()`_,
(set), `Process.cpu_affinity()`_ (set), `Process.rlimit()`_
(set), `Process.parent()`_.
- 2308_, [OpenBSD]: `Process.threads()`_ always fail with AccessDenied (also as
root).
```
Links
- PyPI: https://pypi.org/project/psutil
- Changelog: https://data.safetycli.com/changelogs/psutil/
- Repo: https://github.com/giampaolo/psutil
This PR updates psutil from 5.9.5 to 5.9.6.
Changelog
### 5.9.6 ``` ===== 2023-10-15 **Enhancements** - 1703_: `cpu_percent()`_ and `cpu_times_percent()`_ are now thread safe, meaning they can be called from different threads and still return meaningful and independent results. Before, if (say) 10 threads called ``cpu_percent(interval=None)`` at the same time, only 1 thread out of 10 would get the right result. - 2266_: if `Process`_ class is passed a very high PID, raise `NoSuchProcess`_ instead of OverflowError. (patch by Xuehai Pan) - 2246_: drop python 3.4 & 3.5 support. (patch by Matthieu Darbois) - 2290_: PID reuse is now pre-emptively checked for `Process.ppid()`_ and `Process.parents()`_. - 2312_: use ``ruff`` Python linter instead of ``flake8 + isort``. It's an order of magnitude faster + it adds a ton of new code quality checks. **Bug fixes** - 2195_, [Linux]: no longer print exception at import time in case /proc/stat can't be read due to permission error. Redirect it to ``PSUTIL_DEBUG`` instead. - 2241_, [NetBSD]: can't compile On NetBSD 10.99.3/amd64. (patch by Thomas Klausner) - 2245_, [Windows]: fix var unbound error on possibly in `swap_memory()`_ (patch by student_2333) - 2268_: ``bytes2human()`` utility function was unable to properly represent negative values. - 2252_, [Windows]: `disk_usage()`_ fails on Python 3.12+. (patch by Matthieu Darbois) - 2284_, [Linux]: `Process.memory_full_info()`_ may incorrectly raise `ZombieProcess`_ if it's determined via ``/proc/pid/smaps_rollup``. Instead we now fallback on reading ``/proc/pid/smaps``. - 2287_, [OpenBSD], [NetBSD]: `Process.is_running()`_ erroneously return ``False`` for zombie processes, because creation time cannot be determined. - 2288_, [Linux]: correctly raise `ZombieProcess`_ on `Process.exe()`_, `Process.cmdline()`_ and `Process.memory_maps()`_ instead of returning a "null" value. - 2290_: differently from what stated in the doc, PID reuse is not pre-emptively checked for `Process.nice()`_ (set), `Process.ionice()`_, (set), `Process.cpu_affinity()`_ (set), `Process.rlimit()`_ (set), `Process.parent()`_. - 2308_, [OpenBSD]: `Process.threads()`_ always fail with AccessDenied (also as root). ```Links
- PyPI: https://pypi.org/project/psutil - Changelog: https://data.safetycli.com/changelogs/psutil/ - Repo: https://github.com/giampaolo/psutil