Skip to content

Commit

Permalink
Fix psutil.cpu_* functions
Browse files Browse the repository at this point in the history
Use an `@overload` to correctly type the `percpu` argument and
use the right return types
  • Loading branch information
alanhdu committed Aug 30, 2024
1 parent a04697f commit 66d3d26
Showing 1 changed file with 19 additions and 6 deletions.
25 changes: 19 additions & 6 deletions stubs/psutil/psutil/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -121,12 +121,14 @@ if sys.platform == "win32":
)

if sys.platform == "linux":
from ._pslinux import pfullmem, pmem, sensors_battery as sensors_battery, svmem
from ._pslinux import pfullmem, pmem, scputimes, sensors_battery as sensors_battery, svmem
elif sys.platform == "darwin":
from ._psosx import pfullmem, pmem, sensors_battery as sensors_battery, svmem
from ._psosx import pfullmem, pmem, scputimes, sensors_battery as sensors_battery, svmem
elif sys.platform == "win32":
from ._pswindows import pfullmem, pmem, sensors_battery as sensors_battery, svmem
from ._pswindows import pfullmem, pmem, scputimes, sensors_battery as sensors_battery, svmem
else:
scputimes = Incomplete

class pmem(Any): ...
class pfullmem(Any): ...
class svmem(Any): ...
Expand Down Expand Up @@ -241,16 +243,27 @@ def wait_procs(
procs: Iterable[Process], timeout: float | None = None, callback: Callable[[Process], object] | None = None
) -> tuple[list[Process], list[Process]]: ...
def cpu_count(logical: bool = True) -> int: ...
def cpu_times(percpu: bool = False): ...
@overload
def cpu_freq(percpu: Literal[False] = ...) -> scpufreq: ...
@overload
def cpu_freq(percpu: Literal[True]) -> list[scpufreq]: ...
@overload
def cpu_times(percpu: Literal[False] = ...) -> scputimes: ...
@overload
def cpu_times(percpu: Literal[True]) -> list[scputimes]: ...
@overload
def cpu_percent(interval: float | None = None, percpu: Literal[False] = False) -> float: ...
@overload
def cpu_percent(interval: float | None, percpu: Literal[True]) -> list[float]: ...
@overload
def cpu_percent(*, percpu: Literal[True]) -> list[float]: ...
def cpu_times_percent(interval: float | None = None, percpu: bool = False): ...
@overload
def cpu_times_percent(interval: float | None = None, percpu: Literal[False] = False) -> scputimes: ...
@overload
def cpu_times_percent(interval: float | None, percpu: Literal[True]) -> list[scputimes]: ...
@overload
def cpu_times_percent(*, percpu: Literal[True]) -> list[scputimes]: ...
def cpu_stats() -> scpustats: ...
def cpu_freq(percpu: bool = False) -> scpufreq: ...
def getloadavg() -> tuple[float, float, float]: ...
def virtual_memory() -> svmem: ...
def swap_memory() -> sswap: ...
Expand Down

0 comments on commit 66d3d26

Please sign in to comment.