Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion stubs/pynput/@tests/stubtest_allowlist.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
# These __init__ methods have *args, **kwargs arguments on some platforms, but not others
pynput.keyboard.Controller.__init__
pynput.mouse.Controller.__init__

# stubtest issues with non-`type` metaclasses, see https://github.com/python/mypy/issues/13316
pynput.keyboard.Controller._Key
pynput.keyboard._base.Controller._Key
pynput.keyboard._dummy.Controller._Key

# Platform specific private utils:
pynput._util.xorg_keysyms
pynput._util.xorg
pynput._util.win32_vks
pynput._util.win32
pynput._util.uinput
pynput._util.darwin_vks
pynput._util.darwin
5 changes: 5 additions & 0 deletions stubs/pynput/@tests/stubtest_allowlist_linux.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# These __init__ methods have *args, **kwargs arguments on some platforms, but not others
pynput.keyboard.Controller.__init__

# Platform specific implementation detail:
pynput.keyboard.Controller.keyboard_mapping
2 changes: 2 additions & 0 deletions stubs/pynput/@tests/stubtest_allowlist_win32.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# These __init__ methods have *args, **kwargs arguments on some platforms, but not others
pynput.keyboard.Controller.__init__
4 changes: 4 additions & 0 deletions stubs/pynput/METADATA.toml
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
version = "1.7.*"

[tool.stubtest]
ignore_missing_stub = false
platforms = ["linux", "darwin", "win32"]
10 changes: 10 additions & 0 deletions stubs/pynput/pynput/keyboard/_base.pyi
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import contextlib
import enum
import sys
from _typeshed import Self
from collections.abc import Callable, Iterable, Iterator
from typing import Any, ClassVar
Expand Down Expand Up @@ -61,6 +62,11 @@ class Key(enum.Enum):
f18: int
f19: int
f20: int
if sys.platform == "win32":
f21: int
f22: int
f23: int
f24: int
home: int
left: int
page_down: int
Expand Down Expand Up @@ -89,6 +95,10 @@ class Controller:
_KeyCode: ClassVar[type[KeyCode]] # undocumented
_Key: ClassVar[type[Key]] # undocumented

if sys.platform == "linux":
CTRL_MASK: ClassVar[int]
SHIFT_MASK: ClassVar[int]

class InvalidKeyException(Exception): ...
class InvalidCharacterException(Exception): ...

Expand Down
55 changes: 55 additions & 0 deletions stubs/pynput/pynput/mouse/_base.pyi
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import enum
import sys
from _typeshed import Self
from collections.abc import Callable
from types import TracebackType
Expand All @@ -11,6 +12,37 @@ class Button(enum.Enum):
left: int
middle: int
right: int
if sys.platform == "linux":
button8: int
button9: int
button10: int
button11: int
button12: int
button13: int
button14: int
button15: int
button16: int
button17: int
button18: int
button19: int
button20: int
button21: int
button22: int
button23: int
button24: int
button25: int
button26: int
button27: int
button28: int
button29: int
button30: int
scroll_down: int
scroll_left: int
scroll_right: int
scroll_up: int
if sys.platform == "win32":
x1: int
x2: int

class Controller:
def __init__(self) -> None: ...
Expand All @@ -29,6 +61,29 @@ class Controller:
) -> None: ...

class Listener(AbstractListener):
if sys.platform == "win32":
WM_LBUTTONDOWN: int
WM_LBUTTONUP: int
WM_MBUTTONDOWN: int
WM_MBUTTONUP: int
WM_MOUSEMOVE: int
WM_MOUSEWHEEL: int
WM_MOUSEHWHEEL: int
WM_RBUTTONDOWN: int
WM_RBUTTONUP: int
WM_XBUTTONDOWN: int
WM_XBUTTONUP: int

MK_XBUTTON1: int
MK_XBUTTON2: int

XBUTTON1: int
XBUTTON2: int

CLICK_BUTTONS: dict[int, tuple[Button, bool]]
X_BUTTONS: dict[int, dict[int, tuple[Button, bool]]]
SCROLL_BUTTONS: dict[int, tuple[int, int]]

def __init__(
self,
on_move: Callable[[int, int], bool | None] | None = ...,
Expand Down