2026-10-21 19:57:17 +08:00
|
|
|
# Minimal stubs for the optional ``desktop-notifier`` extra.
|
|
|
|
|
# Only the surface ``plyngent.cli.notify`` uses is declared; the real package is
|
|
|
|
|
# installed with ``pip install plyngent[notify]`` and is absent by default.
|
|
|
|
|
|
|
|
|
|
from collections.abc import Sequence
|
|
|
|
|
from enum import Enum
|
|
|
|
|
from typing import Any
|
|
|
|
|
|
|
|
|
|
class Capability(Enum):
|
|
|
|
|
APP_NAME = ...
|
|
|
|
|
TITLE = ...
|
|
|
|
|
MESSAGE = ...
|
|
|
|
|
URGENCY = ...
|
|
|
|
|
ICON = ...
|
|
|
|
|
BUTTONS = ...
|
|
|
|
|
REPLY_FIELD = ...
|
|
|
|
|
ATTACHMENT = ...
|
|
|
|
|
ON_DISPATCHED = ...
|
|
|
|
|
ON_CLICKED = ...
|
|
|
|
|
ON_DISMISSED = ...
|
|
|
|
|
SOUND = ...
|
|
|
|
|
THREAD = ...
|
|
|
|
|
TIMEOUT = ...
|
|
|
|
|
|
2026-10-24 01:48:04 +08:00
|
|
|
class Urgency(Enum):
|
|
|
|
|
Critical = ...
|
|
|
|
|
Normal = ...
|
|
|
|
|
Low = ...
|
|
|
|
|
|
2026-10-21 19:57:17 +08:00
|
|
|
class Button:
|
|
|
|
|
def __init__(
|
|
|
|
|
self,
|
|
|
|
|
title: str,
|
|
|
|
|
on_pressed: Any = None,
|
|
|
|
|
identifier: str | None = None,
|
|
|
|
|
) -> None: ...
|
|
|
|
|
|
|
|
|
|
class ReplyField:
|
|
|
|
|
def __init__(
|
|
|
|
|
self,
|
|
|
|
|
title: str = ...,
|
|
|
|
|
button_title: str = ...,
|
|
|
|
|
on_replied: Any = None,
|
|
|
|
|
) -> None: ...
|
|
|
|
|
|
|
|
|
|
class DesktopNotifier:
|
|
|
|
|
def __init__(
|
|
|
|
|
self,
|
|
|
|
|
app_name: str = ...,
|
|
|
|
|
app_icon: Any = ...,
|
|
|
|
|
notification_limit: int | None = None,
|
|
|
|
|
) -> None: ...
|
|
|
|
|
async def get_capabilities(self) -> frozenset[Capability]: ...
|
|
|
|
|
async def send(
|
|
|
|
|
self,
|
|
|
|
|
title: str,
|
|
|
|
|
message: str,
|
2026-10-24 01:48:04 +08:00
|
|
|
urgency: Urgency = ...,
|
2026-10-21 19:57:17 +08:00
|
|
|
icon: Any = ...,
|
|
|
|
|
buttons: Sequence[Button] = ...,
|
|
|
|
|
reply_field: ReplyField | None = None,
|
|
|
|
|
on_dispatched: Any = None,
|
|
|
|
|
on_clicked: Any = None,
|
|
|
|
|
on_dismissed: Any = None,
|
|
|
|
|
attachment: Any = ...,
|
|
|
|
|
sound: Any = ...,
|
|
|
|
|
thread: str | None = None,
|
|
|
|
|
timeout: int = -1, # noqa: ASYNC109 - the library's own parameter name
|
|
|
|
|
) -> str: ...
|
|
|
|
|
async def clear(self, identifier: str) -> None: ...
|
|
|
|
|
async def clear_all(self) -> None: ...
|