chore(deps): update dependency psutil to v7 - autoclosed #145
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==5.9.5→==7.2.2Release Notes
giampaolo/psutil (psutil)
v7.2.2Compare Source
=====
2026-01-28
Enhancements
Process.wait()_ now usespidfd_open()+poll()forwaiting, resulting in no busy loop and faster response times. Requires
Linux >= 5.3 and Python >= 3.9. Falls back to traditional polling if
unavailable.
Process.wait()_ now useskqueue()for waiting,resulting in no busy loop and faster response times.
Bug fixes
Fedorov)
Process.memory_full_info()andProcess.threads()._ andProcess.environ()_ may fail with ``OSError: [Errno 0] Undefined error`` (from ``sysctl(KERN_PROCARGS2)``). They now raiseAccessDenied`_ instead.v7.2.1Compare Source
=====
2025-12-29
Bug fixes
heap_info()_ does not detect small allocations(<= 1K). In order to fix that, we now flush internal jemalloc cache before
fetching the metrics.
v7.2.0Compare Source
=====
2025-12-23
Enhancements
heap_info()_ andheap_trim()_ functions, providing directaccess to the platform's native C heap allocator (glibc, mimalloc,
libmalloc). Useful to create tools to detect memory leaks.
now live under
tests/instead ofpsutil/tests.Bug fixes
include.
net_if_stats()_ due to missingPy_CLEAR.Compatibility notes
import psutil.testsno longer works (but it was never documented tobegin with).
v7.1.3Compare Source
=====
2025-11-02
Enhancements
clang-formaton all C and header files. It is now themandatory formatting style for all C sources.
raise the appropriate exception (
ZombieProcess_).sprintf/snprintf/sprintf_scalls withstr_format(). Replacestrlcat/strlcpywith safestr_copy/str_append. This unifies string handling across platforms and reducesunsafe usage of standard string functions, improving robustness.
Bug fixes
disk_usage()_ could truncate values on 32-bit platforms,potentially reporting incorrect total/free/used space for drives larger than
4GB.
Process.status()_ incorrectly returns "running" for 99%of the processes.
net_if_addrs()_.Previously, the MAC address buffer was incorrectly updated using a fixed
increment and
sprintf_s, which could overflow or misformat thestring if the MAC length or formatting changed. Also, the final '\n' was
inserted unnecessarily.
v7.1.2Compare Source
=====
2025-10-25
Enhancements
32-bit CPython is still supported, but psutil must now be built from source.
2565_: produce wheels for free-thread cPython 3.13 and 3.14 (patch by
Lysandros Nikolaou)
Bug fixes
Process.cmdline()_ andProcess.environ()_ may incorrectlyraise
NoSuchProcess_ instead ofZombieProcess_.free()inProcess.environ()_ when it failsinternally. This posed a risk of segfault.
which were (not so) sporadically spotted on CI.
Compatibility notes
v7.1.1Compare Source
=====
2025-10-19
Enhancements
Bug fixes
Process.cmdline()_ does not handle spaces properly. (patchby Ben Raz)
Compatibility notes
v7.1.0Compare Source
=====
2025-09-17
Enhancements
maintained from 2009 to 2013.
dprintCLI tool to format .yml and .md files.Bug fixes
Process.memory_maps(),Process.exe()andProcess.open_files()_ doesnot properly handle UNC paths. Paths such as
\\??\\C:\\Windows\\Tempand'\\Device\\HarddiskVolume1\\Windows\\Temp'are now converted toC:\\Windows\\Temp. (patch by Ben Peddell)special characters in their name.
Process.cwd()_ sometimes fail withFileNotFoundErrordueto a race condition.
Process.create_time(), which is used to univocallyidentify a process over time, is subject to system clock updates, and as such
can lead to
Process.is_running()returning a wrong result. A monotoniccreation time is now used instead. (patch by Jonathan Kohler)
Process.children()_ may raisePermissionError. It willnow raise
AccessDenied_ instead.boot_time()_ is off by 45 seconds (C precision issue).Process.create_time()_ doesnot reflect system clock updates.
Process.children()_ andProcess.parent()_ may not be able to return the right information.net_connections()_.boot_time()_ didn't take into account the time spentduring suspend / hibernation.
Process.memory_maps()_ may crash withIndexErroronRISCV64 due to a malformed
/proc/{PID}/smapsfile. (patch by JulienStephan)
trigger a segfault.
virtual_memory()_ "used" memory does not match recentversions of
freeCLI utility. (patch by Isaac K. Ko)psutil.sensors_battery()reports a negative amount forseconds left.
WindowsService.description()method may fail withERROR_NOT_FOUND. Now it returns an empty string instead.cpu_freq()_ segfault on ARM architectures.Compatibility notes
v7.0.0Compare Source
=====
2025-02-13
Enhancements
net_if_addrs()_ also returns thebroadcastaddressinstead of
None.2.7 is psutil 6.1.X. Install it with:
pip2 install psutil==6.1.*.Process.memory_info_ex()method. It wasdeprecated in psutil 4.0.0, released 8 years ago. Substitute is
Process.memory_full_info().Bug fixes
Process.memory_maps()for processes that use hundreds of GBs of memory.
virtual_memory()_ now relies onhost_statistics64instead of
host_statistics. This is the same approach used byvm_statCLI tool, and should grant more accurate results.
Compatibility notes
Process.memory_info_ex()method.v6.1.1Compare Source
=====
2024-12-19
Enhancements
Bug fixes
/proc/PID does, resulting in FileNotFoundError.
users()_ may return "localhost" instead of the actual IPaddress of the user logged in.
v6.1.0Compare Source
=====
2024-10-17
Enhancements
process_iter(). We now determineprocess unique identity by using process "fast" create time method. This
will considerably speedup those apps which use
process_iter()only once,e.g. to look for a process with a certain name.
make install-sysdepstarget to install the necessary systemdependencies (python-dev, gcc, etc.) on all supported UNIX flavors.
make install-pydeps-testandmake install-pydeps-devtargets. They can be used to install dependencies meant for running tests and
for local development. They can also be installed via
pip install .[test]and
pip install .[dev].python3 -m psutil.testseven ifpytestmodule is not installed. This is useful for production environments that
don't have pytest installed, but still want to be able to test psutil
installation.
Bug fixes
Python 3.13. (patch by Sam Gross)
IndexErrormay occur when reading /proc/pid/stat andfield 40 (blkio_ticks) is missing.
Process.open_files()_ forsome edge cases.
Process.num_fds()_ andProcess.open_files()_ may failwith
NoSuchProcess_ for PID 0. Instead, we now return "null" values (0 and[] respectively).
v6.0.0Compare Source
======
2024-06-18
Enhancements
maxfileandmaxpathfields were removed from the namedtuplereturned by
disk_partitions()_. Reason: on network filesystems (NFS) thiscan potentially take a very long time to complete.
process_iter()_ no longer pre-emptively checks whether PIDs havebeen reused. This makes
process_iter()_ around 20x times faster.psutil.process_iter.cache_clear()API can be used the clearprocess_iter()_ internal cache.Process.connections()_ was renamed toProcess.net_connections()_.The old name is still available, but it's deprecated (triggers a
DeprecationWarning) and will be removed in the future.Bug fixes
Process.cmdline()_ sometimes fail with EBUSY. It usuallyhappens for long cmdlines with lots of arguments. In this case retry getting
the cmdline for up to 50 times, and return an empty list as last resort.
by Shade Gladden)
pid_exists()_ disagrees withProcess_ onwhether a pid exists when ERROR_ACCESS_DENIED.
pid_exists()_ erroneously return True if the argument isa thread ID (TID) instead of a PID (process ID).
MNT_constants.
Porting notes
Version 6.0.0 introduces some changes which affect backward compatibility:
disk_partitions()_' no longer hasmaxfileandmaxpathfields.process_iter()_ no longer pre-emptively checks whether PIDs havebeen reused. If you want to check for PID reusage you are supposed to use
Process.is_running()_ against the yieldedProcess_ instances. That willalso automatically remove reused PIDs from
process_iter()_ internal cache.Process.connections()_ was renamed toProcess.net_connections()_.The old name is still available, but it's deprecated (triggers a
DeprecationWarning) and will be removed in the future.v5.9.8Compare Source
=====
2024-01-19
Enhancements
net_connections()_ returned list in C instead ofPython, and avoid to retrieve unnecessary connection types unless explicitly
asked. E.g., on an IDLE system with few IPv6 connections this will run around
4 times faster. Before all connection types (TCP, UDP, UNIX) were retrieved
internally, even if only a portion was returned.
Bug fixes
net_connections()_ implementation was broken.It could either leak memory or core dump.
Process.cwd()_ will return anempty string instead of raising
NoSuchProcess_.cpu_freq()now returns fixed values forminandmaxfrequencies in all Apple Silicon chips.
v5.9.7Compare Source
=====
2023-12-17
Enhancements
raw-string-in-exception, which helps providingclearer tracebacks when exceptions are raised by psutil.
Bug fixes
PyErr_SetExcFromWindowsErrWithFilenameObjectcPython API.v5.9.6Compare Source
=====
2023-10-15
Enhancements
cpu_percent()_ andcpu_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 10would get the right result.
Process_ class is passed a very high PID, raiseNoSuchProcess_instead of OverflowError. (patch by Xuehai Pan)
Process.ppid()_ andProcess.parents()_.ruffPython linter instead offlake8 + isort. It's anorder of magnitude faster + it adds a ton of new code quality checks.
Bug fixes
can't be read due to permission error. Redirect it to
PSUTIL_DEBUGinstead.
Klausner)
swap_memory()_(patch by student_2333)
bytes2human()utility function was unable to properly representnegative values.
disk_usage()_ fails on Python 3.12+. (patch byMatthieu Darbois)
Process.memory_full_info()_ may incorrectly raiseZombieProcess_ if it's determined via/proc/pid/smaps_rollup. Insteadwe now fallback on reading
/proc/pid/smaps.Process.is_running()_ erroneously returnFalsefor zombie processes, because creation time cannot be determined.ZombieProcess_ onProcess.exe(),Process.cmdline()andProcess.memory_maps()_ instead of returning a"null" value.
pre-emptively checked for
Process.nice()_ (set),Process.ionice(),(set),
Process.cpu_affinity()(set),Process.rlimit()_(set),
Process.parent()_.Process.threads()_ always fail with AccessDenied (also asroot).
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.