Skip to content

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