From 6d535bf0a31dc7a0b190b3ea5e1145c90582e42d Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Wed, 8 Feb 2023 23:10:33 +0000 Subject: [PATCH] Enable stubtest for `pyserial` (#9692) --- stubs/pyserial/@tests/stubtest_allowlist.txt | 4 ---- .../@tests/stubtest_allowlist_darwin.txt | 11 ++++++++++- .../@tests/stubtest_allowlist_linux.txt | 5 +++++ .../@tests/stubtest_allowlist_win32.txt | 18 +++++++++++++++++- stubs/pyserial/METADATA.toml | 4 ---- stubs/pyserial/serial/win32.pyi | 2 +- 6 files changed, 33 insertions(+), 11 deletions(-) diff --git a/stubs/pyserial/@tests/stubtest_allowlist.txt b/stubs/pyserial/@tests/stubtest_allowlist.txt index 3575635b7..30eebdfe4 100644 --- a/stubs/pyserial/@tests/stubtest_allowlist.txt +++ b/stubs/pyserial/@tests/stubtest_allowlist.txt @@ -67,7 +67,3 @@ serial.serialutil.SerialBase.setDTR serial.serialutil.SerialBase.setPort serial.serialutil.SerialBase.setRTS serial.serialutil.SerialBase.writeTimeout - -# Private aliases -serial.serialposix.plat -serial.tools.list_ports_posix.plat diff --git a/stubs/pyserial/@tests/stubtest_allowlist_darwin.txt b/stubs/pyserial/@tests/stubtest_allowlist_darwin.txt index 14c220d73..ac842868c 100644 --- a/stubs/pyserial/@tests/stubtest_allowlist_darwin.txt +++ b/stubs/pyserial/@tests/stubtest_allowlist_darwin.txt @@ -2,7 +2,6 @@ # ======================= serial.serialwin32 # Windows only serial.win32 # Windows only -serial.tools.list_ports_linux # Linux only serial.tools.list_ports_windows # Windows only # Error: is inconsistent @@ -15,3 +14,13 @@ serial.serialposix.Serial.read serial.serialposix.Serial.write serial.serialposix.PosixPollSerial.read serial.serialposix.VTIMESerial.read + +# Error: is missing from the stub +# =============================== +# TODO: maybe add these +serial.tools.list_ports_linux.SysFS +serial.tools.list_ports_linux.comports + +# intended to be private aliases +serial.tools.list_ports_posix.plat +serial.serialposix.plat diff --git a/stubs/pyserial/@tests/stubtest_allowlist_linux.txt b/stubs/pyserial/@tests/stubtest_allowlist_linux.txt index cf0ee3081..5813c930d 100644 --- a/stubs/pyserial/@tests/stubtest_allowlist_linux.txt +++ b/stubs/pyserial/@tests/stubtest_allowlist_linux.txt @@ -15,3 +15,8 @@ serial.serialposix.Serial.read serial.serialposix.Serial.write serial.serialposix.PosixPollSerial.read serial.serialposix.VTIMESerial.read + +# Error: is missing from the stub (intended to be private aliases) +# ================================================================ +serial.tools.list_ports_posix.plat +serial.serialposix.plat diff --git a/stubs/pyserial/@tests/stubtest_allowlist_win32.txt b/stubs/pyserial/@tests/stubtest_allowlist_win32.txt index ae6221e4b..fe525e378 100644 --- a/stubs/pyserial/@tests/stubtest_allowlist_win32.txt +++ b/stubs/pyserial/@tests/stubtest_allowlist_win32.txt @@ -2,7 +2,7 @@ # ======================= serial.serialposix # Posix only serial.tools.list_ports_osx # Mac only -serial.tools.list_ports_linux # Linux only +serial.tools.list_ports_posix # Posix only # Error: is inconsistent # ====================== @@ -10,3 +10,19 @@ serial.tools.list_ports_linux # Linux only # but at runtime they are normal arguments that don't have consistent names. serial.serialwin32.Serial.read serial.serialwin32.Serial.write + +# Missing from the stub (TODO: add these) +# ======================================= +serial.win32._SECURITY_ATTRIBUTES.\w+ +serial.win32._OVERLAPPED.\w+ +serial.win32._DCB.\w+ +serial.win32._COMSTAT.\w+ +serial.win32._COMMTIMEOUTS.\w+ +serial.win32.N11_OVERLAPPED4DOLLAR_48E.\w+ +serial.win32.N11_OVERLAPPED4DOLLAR_484DOLLAR_49E.\w+ +serial.win32.CreateEventW +serial.win32.CreateFileW +serial.tools.list_ports_linux.SysFS +serial.tools.list_ports_linux.comports +serial.tools.list_ports_windows.SP_DEVINFO_DATA.\w+ +serial.tools.list_ports_windows.GUID.\w+ diff --git a/stubs/pyserial/METADATA.toml b/stubs/pyserial/METADATA.toml index 3b70b5e8d..23f64cc8e 100644 --- a/stubs/pyserial/METADATA.toml +++ b/stubs/pyserial/METADATA.toml @@ -1,10 +1,6 @@ version = "3.5.*" [tool.stubtest] -# Skip stubtest because it crashes with `SystemExit` when trying to import `serial.__main__`. -# This has been fixed in https://github.com/python/mypy/pull/14284. -# TODO: Remove skip once mypy 1.0 is released with the fix. -skip = true ignore_missing_stub = false platforms = ["linux", "win32", "darwin"] extras = ["cp2110"] diff --git a/stubs/pyserial/serial/win32.pyi b/stubs/pyserial/serial/win32.pyi index ddb27cf39..a06edac4b 100644 --- a/stubs/pyserial/serial/win32.pyi +++ b/stubs/pyserial/serial/win32.pyi @@ -6,7 +6,7 @@ from typing_extensions import TypeAlias if sys.platform == "win32": def is_64bit() -> bool: ... - ULONG_PTR: TypeAlias = c_int64 | c_ulong + ULONG_PTR: c_int64 | c_ulong class _SECURITY_ATTRIBUTES(Structure): ... LPSECURITY_ATTRIBUTES: type[_Pointer[_SECURITY_ATTRIBUTES]]