Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/psutil-8.0.0-py3.11-linux-x86_64.egg/psutil/_ntuples.py: 69%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

339 statements  

1# Copyright (c) 2009, Giampaolo Rodola". All rights reserved. 

2# Use of this source code is governed by a BSD-style license that can be 

3# found in the LICENSE file. 

4 

5from __future__ import annotations 

6 

7import warnings 

8from collections import namedtuple 

9from typing import TYPE_CHECKING 

10from typing import NamedTuple 

11 

12if TYPE_CHECKING: 

13 import socket 

14 

15 from ._enums import BatteryTime 

16 from ._enums import ConnectionStatus 

17 from ._enums import NicDuplex 

18 from ._enums import ProcessIOPriority 

19 

20from ._common import AIX 

21from ._common import BSD 

22from ._common import FREEBSD 

23from ._common import LINUX 

24from ._common import MACOS 

25from ._common import NETBSD 

26from ._common import OPENBSD 

27from ._common import SUNOS 

28from ._common import WINDOWS 

29 

30# =================================================================== 

31# --- system functions 

32# =================================================================== 

33 

34 

35# psutil.swap_memory() 

36class sswap(NamedTuple): 

37 total: int 

38 used: int 

39 free: int 

40 percent: float 

41 sin: int 

42 sout: int 

43 

44 

45# psutil.disk_usage() 

46class sdiskusage(NamedTuple): 

47 total: int 

48 used: int 

49 free: int 

50 percent: float 

51 

52 

53# psutil.disk_io_counters() 

54class sdiskio(NamedTuple): 

55 read_count: int 

56 write_count: int 

57 read_bytes: int 

58 write_bytes: int 

59 if not (NETBSD or OPENBSD): 

60 read_time: int 

61 write_time: int 

62 if LINUX: 

63 read_merged_count: int 

64 write_merged_count: int 

65 busy_time: int 

66 if FREEBSD: 

67 busy_time: int 

68 

69 

70# psutil.disk_partitions() 

71class sdiskpart(NamedTuple): 

72 device: str 

73 mountpoint: str 

74 fstype: str 

75 opts: str 

76 

77 

78# psutil.net_io_counters() 

79class snetio(NamedTuple): 

80 bytes_sent: int 

81 bytes_recv: int 

82 packets_sent: int 

83 packets_recv: int 

84 errin: int 

85 errout: int 

86 dropin: int 

87 dropout: int 

88 

89 

90# psutil.users() 

91class suser(NamedTuple): 

92 name: str 

93 terminal: str | None 

94 host: str | None 

95 started: float 

96 pid: int | None 

97 

98 

99# psutil.net_connections() and psutil.Process.net_connections() 

100class addr(NamedTuple): 

101 ip: str 

102 port: int 

103 

104 

105# psutil.net_connections() 

106class sconn(NamedTuple): 

107 fd: int 

108 family: socket.AddressFamily 

109 type: socket.SocketKind 

110 laddr: addr | tuple | str 

111 raddr: addr | tuple | str 

112 status: ConnectionStatus 

113 pid: int | None 

114 

115 

116# psutil.net_if_addrs() 

117class snicaddr(NamedTuple): 

118 family: socket.AddressFamily 

119 address: str | None 

120 netmask: str | None 

121 broadcast: str | None 

122 ptp: str | None 

123 

124 

125# psutil.net_if_stats() 

126class snicstats(NamedTuple): 

127 isup: bool 

128 duplex: NicDuplex 

129 speed: int 

130 mtu: int 

131 flags: str 

132 

133 

134# psutil.cpu_times() 

135class scputimes(NamedTuple): 

136 user: float 

137 system: float 

138 idle: float 

139 if LINUX or MACOS or BSD: 

140 nice: float 

141 if LINUX: 

142 iowait: float 

143 irq: float 

144 softirq: float 

145 steal: float 

146 guest: float 

147 guest_nice: float 

148 if BSD: 

149 irq: float 

150 if SUNOS or AIX: 

151 iowait: float 

152 if WINDOWS: 

153 irq: float 

154 dpc: float 

155 

156 @property 

157 def interrupt(self): 

158 msg = "'interrupt' field is deprecated, use 'irq' instead" 

159 warnings.warn(msg, DeprecationWarning, stacklevel=2) 

160 return self.irq 

161 

162 

163# psutil.cpu_stats() 

164class scpustats(NamedTuple): 

165 ctx_switches: int 

166 interrupts: int 

167 soft_interrupts: int 

168 syscalls: int 

169 

170 

171# psutil.cpu_freq() 

172class scpufreq(NamedTuple): 

173 current: float 

174 min: float | None 

175 max: float | None 

176 

177 

178# psutil.sensors_temperatures() 

179class shwtemp(NamedTuple): 

180 label: str 

181 current: float | None 

182 high: float | None 

183 critical: float | None 

184 

185 

186# psutil.sensors_battery() 

187class sbattery(NamedTuple): 

188 percent: float 

189 secsleft: int | BatteryTime 

190 power_plugged: bool | None 

191 

192 

193# psutil.sensors_fans() 

194class sfan(NamedTuple): 

195 label: str 

196 current: int 

197 

198 

199if LINUX or WINDOWS or MACOS or BSD: 

200 

201 # psutil.heap_info() 

202 class pheap(NamedTuple): 

203 heap_used: int 

204 mmap_used: int 

205 if WINDOWS: 

206 heap_count: int 

207 

208 

209# psutil.virtual_memory() 

210class svmem(NamedTuple): 

211 total: int 

212 available: int 

213 percent: float 

214 used: int 

215 free: int 

216 if LINUX: 

217 active: int 

218 inactive: int 

219 buffers: int 

220 cached: int 

221 shared: int 

222 slab: int 

223 elif BSD: 

224 active: int 

225 inactive: int 

226 buffers: int 

227 cached: int 

228 shared: int 

229 wired: int 

230 elif WINDOWS: 

231 cached: int 

232 wired: int 

233 elif MACOS: 

234 active: int 

235 inactive: int 

236 wired: int 

237 

238 

239# =================================================================== 

240# --- Process class 

241# =================================================================== 

242 

243 

244# psutil.Process.cpu_times() 

245class pcputimes(NamedTuple): 

246 user: float 

247 system: float 

248 children_user: float 

249 children_system: float 

250 if LINUX: 

251 iowait: float 

252 

253 

254# psutil.Process.open_files() 

255class popenfile(NamedTuple): 

256 path: str 

257 fd: int 

258 if LINUX: 

259 position: int 

260 mode: str 

261 flags: int 

262 

263 

264# psutil.Process.threads() 

265class pthread(NamedTuple): 

266 id: int 

267 user_time: float 

268 system_time: float 

269 

270 

271# psutil.Process.uids() 

272class puids(NamedTuple): 

273 real: int 

274 effective: int 

275 saved: int 

276 

277 

278# psutil.Process.gids() 

279class pgids(NamedTuple): 

280 real: int 

281 effective: int 

282 saved: int 

283 

284 

285# psutil.Process.io_counters() 

286class pio(NamedTuple): 

287 read_count: int 

288 write_count: int 

289 read_bytes: int 

290 write_bytes: int 

291 if LINUX: 

292 read_chars: int 

293 write_chars: int 

294 elif WINDOWS: 

295 other_count: int 

296 other_bytes: int 

297 

298 

299# psutil.Process.ionice() 

300class pionice(NamedTuple): 

301 ioclass: ProcessIOPriority 

302 value: int 

303 

304 

305# psutil.Process.ctx_switches() 

306class pctxsw(NamedTuple): 

307 voluntary: int 

308 involuntary: int 

309 

310 

311# psutil.Process.page_faults() 

312class ppagefaults(NamedTuple): 

313 minor: int 

314 major: int 

315 

316 

317# psutil.Process().memory_footprint() 

318if LINUX or MACOS or WINDOWS: 

319 

320 class pfootprint(NamedTuple): 

321 uss: int 

322 if LINUX: 

323 pss: int 

324 swap: int 

325 

326 

327# psutil.Process.net_connections() 

328class pconn(NamedTuple): 

329 fd: int 

330 family: socket.AddressFamily 

331 type: socket.SocketKind 

332 laddr: addr | tuple | str 

333 raddr: addr | tuple | str 

334 status: ConnectionStatus 

335 

336 

337# psutil.Process.memory_maps(grouped=True) 

338class pmmap_grouped(NamedTuple): 

339 path: str 

340 rss: int 

341 if LINUX: 

342 size: int 

343 pss: int 

344 shared_clean: int 

345 shared_dirty: int 

346 private_clean: int 

347 private_dirty: int 

348 referenced: int 

349 anonymous: int 

350 swap: int 

351 elif BSD: 

352 private: int 

353 ref_count: int 

354 shadow_count: int 

355 elif SUNOS: 

356 anonymous: int 

357 locked: int 

358 

359 

360# psutil.Process.memory_maps(grouped=False) 

361class pmmap_ext(NamedTuple): 

362 addr: str 

363 perms: str 

364 path: str 

365 rss: int 

366 if LINUX: 

367 size: int 

368 pss: int 

369 shared_clean: int 

370 shared_dirty: int 

371 private_clean: int 

372 private_dirty: int 

373 referenced: int 

374 anonymous: int 

375 swap: int 

376 elif BSD: 

377 private: int 

378 ref_count: int 

379 shadow_count: int 

380 elif SUNOS: 

381 anonymous: int 

382 locked: int 

383 

384 

385# =================================================================== 

386# --- Process memory_info() / memory_info_ex() / memory_full_info() 

387# =================================================================== 

388 

389if LINUX: 

390 

391 # psutil.Process().memory_info() 

392 class pmem(NamedTuple): 

393 rss: int 

394 vms: int 

395 shared: int 

396 text: int 

397 data: int 

398 

399 @property 

400 def lib(self): 

401 # It has always been 0 since Linux 2.6. 

402 msg = "'lib' field is deprecated and will be removed" 

403 warnings.warn(msg, DeprecationWarning, stacklevel=2) 

404 return 0 

405 

406 @property 

407 def dirty(self): 

408 # It has always been 0 since Linux 2.6. 

409 msg = "'dirty' field is deprecated and will be removed" 

410 warnings.warn(msg, DeprecationWarning, stacklevel=2) 

411 return 0 

412 

413 # psutil.Process().memory_info_ex() 

414 pmem_ex = namedtuple( 

415 "pmem_ex", 

416 pmem._fields 

417 + ( 

418 "peak_rss", 

419 "peak_vms", 

420 "rss_anon", 

421 "rss_file", 

422 "rss_shmem", 

423 "swap", 

424 "hugetlb", 

425 ), 

426 ) 

427 

428 # psutil.Process().memory_full_info() 

429 pfullmem = namedtuple("pfullmem", pmem._fields + ("uss", "pss", "swap")) 

430 

431elif WINDOWS: 

432 

433 # psutil.Process.memory_info() 

434 class pmem( # noqa: SLOT002 

435 namedtuple("pmem", ("rss", "vms", "peak_rss", "peak_vms")) 

436 ): 

437 def __new__(cls, rss, vms, peak_rss, peak_vms, _deprecated=None): 

438 inst = super().__new__(cls, rss, vms, peak_rss, peak_vms) 

439 inst.__dict__["_deprecated"] = _deprecated or {} 

440 return inst 

441 

442 def __getattr__(self, name): 

443 depr = self.__dict__["_deprecated"] 

444 if name in depr: 

445 msg = f"pmem.{name} is deprecated" 

446 if name in { 

447 "paged_pool", 

448 "nonpaged_pool", 

449 "peak_paged_pool", 

450 "peak_nonpaged_pool", 

451 }: 

452 msg += "; use memory_info_ex() instead" 

453 elif name == "num_page_faults": 

454 msg += "; use page_faults() instead" 

455 warnings.warn(msg, DeprecationWarning, stacklevel=2) 

456 return depr[name] 

457 

458 msg = f"{self.__class__.__name__} object has no attribute {name!r}" 

459 raise AttributeError(msg) 

460 

461 # psutil.Process.memory_info_ex() 

462 pmem_ex = namedtuple( 

463 "pmem_ex", 

464 pmem._fields 

465 + ( 

466 "virtual", 

467 "peak_virtual", 

468 "paged_pool", 

469 "nonpaged_pool", 

470 "peak_paged_pool", 

471 "peak_nonpaged_pool", 

472 ), 

473 ) 

474 

475 # psutil.Process.memory_full_info() 

476 pfullmem = namedtuple("pfullmem", pmem._fields + ("uss",)) 

477 

478elif MACOS: 

479 

480 # psutil.Process.memory_info() 

481 class pmem(NamedTuple): 

482 rss: int 

483 vms: int 

484 

485 # psutil.Process.memory_info_ex() 

486 class pmem_ex(NamedTuple): 

487 rss: int 

488 vms: int 

489 peak_rss: int 

490 rss_anon: int 

491 rss_file: int 

492 wired: int 

493 compressed: int 

494 phys_footprint: int 

495 

496 # psutil.Process.memory_full_info() 

497 pfullmem = namedtuple("pfullmem", pmem._fields + ("uss",)) 

498 

499elif BSD: 

500 

501 # psutil.Process.memory_info() 

502 class pmem(NamedTuple): 

503 rss: int 

504 vms: int 

505 text: int 

506 data: int 

507 stack: int 

508 peak_rss: int 

509 

510 # psutil.Process.memory_info_ex() 

511 pmem_ex = pmem 

512 

513 # psutil.Process.memory_full_info() 

514 pfullmem = pmem 

515 

516elif SUNOS or AIX: 

517 

518 # psutil.Process.memory_info() 

519 class pmem(NamedTuple): 

520 rss: int 

521 vms: int 

522 

523 # psutil.Process.memory_info_ex() 

524 pmem_ex = pmem 

525 

526 # psutil.Process.memory_full_info() 

527 pfullmem = pmem