Linux system information library
Project description
sysutil-lib
- Linux system information library
Warning
- this library is ment to be used only in linux systems
- it is possible to write code using it on other systems, but it will not allow to run the code, raising an exception before execution
Other implementations
- this library is also available for Rust
- check it out at crates.io
Importation
import sysutil
Data structures
ProcessorUsage
class ProcessorUsage:
total: float
user: float
nice: float
system: float
idle: float
iowait: float
interrupt: float
soft_interrupt: float
- data structure which encloses the different parameters relative to processor usage
CpuUsage
class CpuUsage:
average: ProcessorUsage
processors: [ProcessorUsage]
- contains the average CPU usage, and the specific usage for each processor
CpuInfo
class CpuInfo:
modelName: str
cores: int
threads: int
dies: int
governors: [str]
maxFrequencyMHz: float
clockBoost: bool
architecture: str
byteOrder: str
- contains base information relative to the CPU
SchedulerPolicy
class SchedulerPolicy:
name: str
scalingGovernor: str
scalingDriver: str
minimumScalingMHz: float
maximumScalingMHz: float
- contains scheduler information relative to a processor in your system
RamSize
class RamSize:
gb: float
gib: float
- contains total ram size, both in GB (1000^3 bytes) and GiB (1024^3 bytes)
NetworkRate
class NetworkRate:
download: float
upload: float
- contains total upload and download network rate (in bytes)
TemperatureSensor
class TemperatureSensor:
label: str
temperature: float
- contains sensor name (label) and the recorded temperature
Battery
class Battery:
capacity: int
status: str
- contains capacity and status of battery
VramSize
class VramSize:
gb: float
gib: float
- contains total gpu's vram size, both in GB (1000^3 bytes) and GiB (1024^3 bytes)
RouteType
class RouteType:
TCP = 'tcp'
TCP6 = 'tcp6'
UDP = 'udp'
UDP6 = 'udp6'
RouteStatus
class RouteStatus:
ESTABLISHED = 'established'
SYN_SENT = 'syn sent'
SYN_RECEIVED = 'syn received'
FIN_WAIT1 = 'fin wait 1'
FIN_WAIT2 = 'fin wait 2'
TIME_WAIT = 'time wait'
CLOSED = 'closed'
CLOSE_WAIT = 'close wait'
LAST_ACKNOWLEDGEMENT = 'last acknowledgement'
LISTENING = 'listening'
CLOSING = 'closing'
NEW_SYN_RECEIVED = 'new syn received'
NetworkRoute
class NetworkRoute:
routeType: str
localAddress: str
localPort: int
remoteAddress: str
remotePort: int
routeStatus: str
- represents a network route
CPU
class CPU:
info: CpuInfo
averageUsage: ProcessorUsage
perProcessorUsage: [ProcessorUsage]
schedulerPolicies: [SchedulerPolicy]
- encloses all cpu data available in the library
Methods
cpu = CPU()
- standard constructor
cpu = CPU()
cpu.update()
update()method updates usages and scheduler status
Clocksource
class ClockSource:
current: str
available: [str]
- contains current clock source and the available ones
Bios
class Bios:
vendor: str
release: str
version: str
date: str
- contains information relative to the installed bios
Motherboard
class Motherboard:
name: str
vendor: str
version: str
bios: Bios
- contains information relative to the motherboard and the installed bios
GpuMetrics
class GpuMetrics:
temperatureEdge: int
temperatureHotspot: int
temperatureMem: int
temperatureVrgfx: int
temperatureVrsoc: int
temperatureVrmem: int
averageSocketPower: int
averageGfxclkFrequency: int
averageSockclkFrequency: int
averageUclkFrequency: int
currentGfxclk: int
currentSockclk: int
throttleStatus: int
currentFanSpeed: int
pcieLinkWidth: int
pcieLinkSpeed: int
- encloses gpu metrics parameters
Bytesize
class ByteSize:
__bytes: int
- Bytes size data structure implementing methods to convert in various size orders
NvmeDevice
class NvmeDevice:
device: str
pcieAddress: str
model: str
linkSpeedGTs: float
pcieLanes: int
size: ByteSize
partitions: [StoragePartition]
- Contains NVME device information
StoragePartition
class StoragePartition:
device: str
mountPoint: str
filesystem: str
size: ByteSize
startPoint: str
- Encloses device name, size and startpoint relative to a partition
StorageDevice
class StorageDevice:
model: str
device: str
size: ByteSize
partitions: [StoragePartition]
- Contains information relative to a storage device in the system
Frequency
class Frequency:
_khz: float
- Contains frequency value in kHz, implements conversion methods for kHz, MHz, GHz
ProcessorFrequency
class ProcessorFrequency:
processorID: str
frequency: Frequency
- Contains processor id and its frequency
CpuFrequency
class CpuFrequency:
average: Frequency
processors: [ProcessorFrequency]
- Contains cpu frequency, both average and processor wise
Backlight
class Backlight:
brightness: int
maxBrightness: int
- Holds information about backlight
Load
class Load:
oneMinute: int
fiveMinutes: int
fifteenMinutes: int
- holds load values
IPv4
class IPv4:
address: str
interface: str
broadcast: str
cidr: int
netmask: str
- contains the various parameters for an IPv4 address in the system
BusInput
class BusInput:
bus: int
vendor: int
product: int
version: int
name: str
physicalPath: str
sysfsPath: str
uniqueIdentifier: str
handles: [str]
properties: int
events: int
keys: [str]
miscellaneousEvents: int
led: int
- contains the information regarding a bus input
Functions
def cpuUsage() -> CpuUsage
- returns the cpu usage, both average and processor-wise, all the values are percentage
def cpuFrequency() -> CpuFrequency
- returns CPU frequency, both average and processor wise
def ramUsage() -> float
- returns ram usage percentage
def networkRate() -> NetworkRate
- returns network rate (download and upload), expressed in bytes
def temperatureSensors() -> [TemperatureSensor]
- returns every temperature sensor in
TemperatureSensorformat
def cpuInfo() -> CpuInfo
- returns the cpu base information, enclosed in the
CpuInfodata structure
def ramSize() -> RamSize
- returns ram size as specified in the
RamSizedata structure
def schedulerInfo() -> [SchedulerPolicy]
- returns scheduler information for each processor
def gpuUsage() -> float
- returns gpu usage percentage
- yet tested only on AMD 7000 series GPUs, returns
Nonein case it's not capable to retrieve information
def batteryInfo() -> Battery
- returns battery status and capacity
def vramSize() -> VramSize
- returns vram size as specified in the
VramSizedata structure
def vramUsage() -> float
- returns vram usage percentage
def networkRoutes() -> [NetworkRoute]
- returns a list containing each internal network route
def clockSource() -> ClockSource
- returns the currently active clock source and the different ones available, enclosed in
ClockSourcestruct
def biosInfo() -> Bios
- returns information about the currently installed BIOS
def motherboardInfo() -> Motherboard
- returns information about the motherboard
def gpuMetrics() -> GpuMetrics
- returns metrics parameters from the amdgpu driver
def nvmeDevices() -> [NvmeDevices]
- Returns a vector containing all NVME devices found in the system
def storageDevices() -> [StorageDevices]
- Returns a vector containing all storage devices (NVME excluded) in the system
def getBacklight() -> Backlight
- Returns the current backlight brightness and the maximum possible value or
Noneif it's not possible to retrieve data
def getLoad() -> Load
- returns the load for the past one, five and fifteen minutes
def getIPv4() -> [IPv4]
- returns a list of
IPv4object; each one is related to an IPv4 address in the system
def busInput() -> [BusInput]
- returns a list of
BusInputobjects, representing the bus inputs found in procfs
def exportJson() -> dict
- returns a
dictcontaining all the information whichsysutilcan provide
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sysutil_lib-0.6.0.tar.gz
(27.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sysutil_lib-0.6.0.tar.gz.
File metadata
- Download URL: sysutil_lib-0.6.0.tar.gz
- Upload date:
- Size: 27.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2a77afc0d9fb325b4575bad777650f31caea0c83681ccb74b9ec20488e9750a
|
|
| MD5 |
4ba96ffba7b18a85957e5fe995625a07
|
|
| BLAKE2b-256 |
0d587e716ab37a9507800743726eb7172399c42f84b68483116c62e885580055
|
File details
Details for the file sysutil_lib-0.6.0-py3-none-any.whl.
File metadata
- Download URL: sysutil_lib-0.6.0-py3-none-any.whl
- Upload date:
- Size: 25.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8c69a92116c2a7329717083fdd69931e1172da217622b875853f1067ea3b3d4
|
|
| MD5 |
8d07b099f25ef41effc042b84247f7b0
|
|
| BLAKE2b-256 |
0adea6f5a68102c633775a1d37d2ad4d1c755bf28dffa82d2bd9c91609696ae6
|