From 971a738c8eaadb3706598b24071cdec0b170cafa Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Thu, 30 Dec 2021 18:06:58 +0300 Subject: [PATCH] Add more constants to `_winapi` (#6754) --- stdlib/_winapi.pyi | 63 +++++++++++++++++++++++ tests/stubtest_allowlists/win32-py310.txt | 10 ---- tests/stubtest_allowlists/win32-py37.txt | 5 -- tests/stubtest_allowlists/win32-py38.txt | 10 ---- tests/stubtest_allowlists/win32-py39.txt | 10 ---- 5 files changed, 63 insertions(+), 35 deletions(-) diff --git a/stdlib/_winapi.pyi b/stdlib/_winapi.pyi index 2c25b74cb..eba236597 100644 --- a/stdlib/_winapi.pyi +++ b/stdlib/_winapi.pyi @@ -3,10 +3,19 @@ from typing import Any, NoReturn, Sequence, overload from typing_extensions import Literal, final if sys.platform == "win32": + if sys.version_info >= (3, 7): + ABOVE_NORMAL_PRIORITY_CLASS: Literal[32768] + BELOW_NORMAL_PRIORITY_CLASS: Literal[16384] + CREATE_BREAKAWAY_FROM_JOB: Literal[16777216] + CREATE_DEFAULT_ERROR_MODE: Literal[67108864] + CREATE_NO_WINDOW: Literal[134217728] CREATE_NEW_CONSOLE: Literal[16] CREATE_NEW_PROCESS_GROUP: Literal[512] + if sys.version_info >= (3, 7): + DETACHED_PROCESS: Literal[8] DUPLICATE_CLOSE_SOURCE: Literal[1] DUPLICATE_SAME_ACCESS: Literal[2] + ERROR_ALREADY_EXISTS: Literal[183] ERROR_BROKEN_PIPE: Literal[109] ERROR_IO_PENDING: Literal[997] @@ -18,24 +27,76 @@ if sys.platform == "win32": ERROR_PIPE_BUSY: Literal[231] ERROR_PIPE_CONNECTED: Literal[535] ERROR_SEM_TIMEOUT: Literal[121] + FILE_FLAG_FIRST_PIPE_INSTANCE: Literal[524288] FILE_FLAG_OVERLAPPED: Literal[1073741824] FILE_GENERIC_READ: Literal[1179785] FILE_GENERIC_WRITE: Literal[1179926] + if sys.version_info >= (3, 8): + FILE_MAP_ALL_ACCESS: Literal[983071] + FILE_MAP_COPY: Literal[1] + FILE_MAP_EXECUTE: Literal[32] + FILE_MAP_READ: Literal[4] + FILE_MAP_WRITE: Literal[2] + if sys.version_info >= (3, 7): + FILE_TYPE_CHAR: Literal[2] + FILE_TYPE_DISK: Literal[1] + FILE_TYPE_PIPE: Literal[3] + FILE_TYPE_REMOTE: Literal[32768] + FILE_TYPE_UNKNOWN: Literal[0] + GENERIC_READ: Literal[2147483648] GENERIC_WRITE: Literal[1073741824] + if sys.version_info >= (3, 7): + HIGH_PRIORITY_CLASS: Literal[128] INFINITE: Literal[4294967295] + if sys.version_info >= (3, 8): + INVALID_HANDLE_VALUE: int # very large number + if sys.version_info >= (3, 7): + IDLE_PRIORITY_CLASS: Literal[64] + NORMAL_PRIORITY_CLASS: Literal[32] + REALTIME_PRIORITY_CLASS: Literal[256] NMPWAIT_WAIT_FOREVER: Literal[4294967295] + + if sys.version_info >= (3, 8): + MEM_COMMIT: Literal[4096] + MEM_FREE: Literal[65536] + MEM_IMAGE: Literal[16777216] + MEM_MAPPED: Literal[262144] + MEM_PRIVATE: Literal[131072] + MEM_RESERVE: Literal[8192] + NULL: Literal[0] OPEN_EXISTING: Literal[3] + PIPE_ACCESS_DUPLEX: Literal[3] PIPE_ACCESS_INBOUND: Literal[1] PIPE_READMODE_MESSAGE: Literal[2] PIPE_TYPE_MESSAGE: Literal[4] PIPE_UNLIMITED_INSTANCES: Literal[255] PIPE_WAIT: Literal[0] + if sys.version_info >= (3, 8): + PAGE_EXECUTE: Literal[16] + PAGE_EXECUTE_READ: Literal[32] + PAGE_EXECUTE_READWRITE: Literal[64] + PAGE_EXECUTE_WRITECOPY: Literal[128] + PAGE_GUARD: Literal[256] + PAGE_NOACCESS: Literal[1] + PAGE_NOCACHE: Literal[512] + PAGE_READONLY: Literal[2] + PAGE_READWRITE: Literal[4] + PAGE_WRITECOMBINE: Literal[1024] + PAGE_WRITECOPY: Literal[8] + PROCESS_ALL_ACCESS: Literal[2097151] PROCESS_DUP_HANDLE: Literal[64] + if sys.version_info >= (3, 8): + SEC_COMMIT: Literal[134217728] + SEC_IMAGE: Literal[16777216] + SEC_LARGE_PAGES: Literal[2147483648] + SEC_NOCACHE: Literal[268435456] + SEC_RESERVE: Literal[67108864] + SEC_WRITECOMBINE: Literal[1073741824] STARTF_USESHOWWINDOW: Literal[1] STARTF_USESTDHANDLES: Literal[256] STD_ERROR_HANDLE: Literal[4294967284] @@ -43,6 +104,8 @@ if sys.platform == "win32": STD_OUTPUT_HANDLE: Literal[4294967285] STILL_ACTIVE: Literal[259] SW_HIDE: Literal[0] + if sys.version_info >= (3, 8): + SYNCHRONIZE: Literal[1048576] WAIT_ABANDONED_0: Literal[128] WAIT_OBJECT_0: Literal[0] WAIT_TIMEOUT: Literal[258] diff --git a/tests/stubtest_allowlists/win32-py310.txt b/tests/stubtest_allowlists/win32-py310.txt index 4dac90ed2..d6b2eb882 100644 --- a/tests/stubtest_allowlists/win32-py310.txt +++ b/tests/stubtest_allowlists/win32-py310.txt @@ -1,14 +1,4 @@ _stat.IO_REPARSE_TAG_[A-Z_]+ -_winapi.[A-Z_]+_PRIORITY_CLASS -_winapi.CREATE_[A-Z_]+ -_winapi.DETACHED_PROCESS -_winapi.FILE_MAP_[A-Z_]+ -_winapi.FILE_TYPE_[A-Z]+ -_winapi.INVALID_HANDLE_VALUE -_winapi.MEM_[A-Z_]+ -_winapi.PAGE_[A-Z_]+ -_winapi.SEC_[A-Z_]+ -_winapi.SYNCHRONIZE _msi.CreateRecord _msi.FCICreate diff --git a/tests/stubtest_allowlists/win32-py37.txt b/tests/stubtest_allowlists/win32-py37.txt index 8a396e40a..1f1456940 100644 --- a/tests/stubtest_allowlists/win32-py37.txt +++ b/tests/stubtest_allowlists/win32-py37.txt @@ -1,8 +1,3 @@ -_winapi.[A-Z_]+_PRIORITY_CLASS -_winapi.CREATE_[A-Z_]+ -_winapi.DETACHED_PROCESS -_winapi.FILE_TYPE_[A-Z]+ - # The following methods were changed in point releases from Python 3.6 to 3.9 # as part of a security fix. These excludes can be removed when the GitHub # action workflow uses Python versions that include the fix (adding a diff --git a/tests/stubtest_allowlists/win32-py38.txt b/tests/stubtest_allowlists/win32-py38.txt index 1771429b7..75863f11c 100644 --- a/tests/stubtest_allowlists/win32-py38.txt +++ b/tests/stubtest_allowlists/win32-py38.txt @@ -1,14 +1,4 @@ _stat.IO_REPARSE_TAG_[A-Z_]+ -_winapi.[A-Z_]+_PRIORITY_CLASS -_winapi.CREATE_[A-Z_]+ -_winapi.DETACHED_PROCESS -_winapi.FILE_MAP_[A-Z_]+ -_winapi.FILE_TYPE_[A-Z]+ -_winapi.INVALID_HANDLE_VALUE -_winapi.MEM_[A-Z_]+ -_winapi.PAGE_[A-Z_]+ -_winapi.SEC_[A-Z_]+ -_winapi.SYNCHRONIZE # Exists at runtime, but missing from stubs _winapi.CreateFileMapping diff --git a/tests/stubtest_allowlists/win32-py39.txt b/tests/stubtest_allowlists/win32-py39.txt index 1771429b7..75863f11c 100644 --- a/tests/stubtest_allowlists/win32-py39.txt +++ b/tests/stubtest_allowlists/win32-py39.txt @@ -1,14 +1,4 @@ _stat.IO_REPARSE_TAG_[A-Z_]+ -_winapi.[A-Z_]+_PRIORITY_CLASS -_winapi.CREATE_[A-Z_]+ -_winapi.DETACHED_PROCESS -_winapi.FILE_MAP_[A-Z_]+ -_winapi.FILE_TYPE_[A-Z]+ -_winapi.INVALID_HANDLE_VALUE -_winapi.MEM_[A-Z_]+ -_winapi.PAGE_[A-Z_]+ -_winapi.SEC_[A-Z_]+ -_winapi.SYNCHRONIZE # Exists at runtime, but missing from stubs _winapi.CreateFileMapping