Skip to main content

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'

NetworkRoute

class NetworkRoute:
    routeType: str
    localAddress: str
    localPort: int
    remoteAddress: str
    remotePort: int
  • 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

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 TemperatureSensor format
def cpuInfo() -> CpuInfo
  • returns the cpu base information, enclosed in the CpuInfo data structure
def ramSize() -> RamSize
  • returns ram size as specified in the RamSize data 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 None in 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 VramSize data 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 ClockSource struct
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 None if it's not possible to retrieve data

Project details


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.4.4.tar.gz (23.9 kB view hashes)

Uploaded Source

Built Distribution

sysutil_lib-0.4.4-py3-none-any.whl (22.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page