Models
All models are frozen dataclasses with __slots__ for memory efficiency.
UnitInfo
systemd_client.models.UnitInfo
dataclass
Summary information about a systemd unit (from list-units).
Source code in src/systemd_client/models.py
| @dataclass(frozen=True, slots=True)
class UnitInfo:
"""Summary information about a systemd unit (from list-units)."""
name: str
description: str
load_state: LoadState
active_state: ActiveState
sub_state: SubState
unit_file_state: UnitFileState | None = None
|
UnitStatus
systemd_client.models.UnitStatus
dataclass
Detailed status of a systemd unit (from show/status).
Source code in src/systemd_client/models.py
| @dataclass(frozen=True, slots=True)
class UnitStatus:
"""Detailed status of a systemd unit (from show/status)."""
name: str
description: str
load_state: LoadState
active_state: ActiveState
sub_state: SubState
unit_file_state: UnitFileState | None = None
fragment_path: str | None = None
active_enter_timestamp: datetime | None = None
active_exit_timestamp: datetime | None = None
inactive_enter_timestamp: datetime | None = None
inactive_exit_timestamp: datetime | None = None
main_pid: int | None = None
exec_main_status: int | None = None
result: str | None = None
triggered_by: list[str] = field(default_factory=list)
documentation: list[str] = field(default_factory=list)
properties: dict[str, str] = field(default_factory=dict)
|
JournalEntry
systemd_client.models.JournalEntry
dataclass
A single journal log entry.
Source code in src/systemd_client/models.py
| @dataclass(frozen=True, slots=True)
class JournalEntry:
"""A single journal log entry."""
message: str
priority: JournalPriority
timestamp: datetime | None = None
monotonic_timestamp: int | None = None
unit: str | None = None
syslog_identifier: str | None = None
pid: int | None = None
uid: int | None = None
boot_id: str | None = None
hostname: str | None = None
cursor: str | None = None
fields: dict[str, str] = field(default_factory=dict)
|
EnableResult
systemd_client.models.EnableResult
dataclass
Result of enable/disable/mask/unmask operations.
Source code in src/systemd_client/models.py
| @dataclass(frozen=True, slots=True)
class EnableResult:
"""Result of enable/disable/mask/unmask operations."""
changes: list[tuple[str, str, str]] = field(default_factory=list)
carries_install_info: bool = False
|