From 12c61e7ddc7b24f74fafaeae108ac2cb64a8b5c5 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Wed, 28 May 2025 11:42:32 +0200 Subject: [PATCH 1/4] Update to Python 3.14.0b2 Add some missing constants --- stdlib/argparse.pyi | 1 - stdlib/concurrent/futures/interpreter.pyi | 4 +--- stdlib/multiprocessing/util.pyi | 13 ++++++++----- stdlib/string/templatelib.pyi | 3 +++ stdlib/zipfile/__init__.pyi | 18 ++++++++++++++---- 5 files changed, 26 insertions(+), 13 deletions(-) diff --git a/stdlib/argparse.pyi b/stdlib/argparse.pyi index 95ad6c7da8eb..d3f3a3a5b9ef 100644 --- a/stdlib/argparse.pyi +++ b/stdlib/argparse.pyi @@ -286,7 +286,6 @@ class HelpFormatter: indent_increment: int = 2, max_help_position: int = 24, width: int | None = None, - prefix_chars: str = "-", color: bool = False, ) -> None: ... else: diff --git a/stdlib/concurrent/futures/interpreter.pyi b/stdlib/concurrent/futures/interpreter.pyi index c1a29e6b0552..9c1078983d8c 100644 --- a/stdlib/concurrent/futures/interpreter.pyi +++ b/stdlib/concurrent/futures/interpreter.pyi @@ -1,7 +1,7 @@ import sys from collections.abc import Callable, Mapping from concurrent.futures import ThreadPoolExecutor -from typing import Final, Literal, Protocol, overload, type_check_only +from typing import Literal, Protocol, overload, type_check_only from typing_extensions import ParamSpec, Self, TypeAlias, TypeVar, TypeVarTuple, Unpack _Task: TypeAlias = tuple[bytes, Literal["function", "script"]] @@ -37,8 +37,6 @@ if sys.version_info >= (3, 14): class ExecutionFailed(InterpreterError): def __init__(self, excinfo: _ExcInfo) -> None: ... # type: ignore[override] - UNBOUND: Final = 2 - class WorkerContext(ThreadWorkerContext): # Parent class doesn't have `shared` argument, @overload # type: ignore[override] diff --git a/stdlib/multiprocessing/util.pyi b/stdlib/multiprocessing/util.pyi index d5b6384afd5e..f587bd665f56 100644 --- a/stdlib/multiprocessing/util.pyi +++ b/stdlib/multiprocessing/util.pyi @@ -9,6 +9,7 @@ __all__ = [ "debug", "info", "sub_warning", + "warn", "get_logger", "log_to_stderr", "get_temp_dir", @@ -25,11 +26,12 @@ __all__ = [ _T = TypeVar("_T") _R_co = TypeVar("_R_co", default=Any, covariant=True) -NOTSET: Final[int] -SUBDEBUG: Final[int] -DEBUG: Final[int] -INFO: Final[int] -SUBWARNING: Final[int] +NOTSET: Final = 0 +SUBDEBUG: Final = 5 +DEBUG: Final = 10 +INFO: Final = 20 +SUBWARNING: Final = 25 +WARNING: Final = 30 LOGGER_NAME: Final[str] DEFAULT_LOGGING_FORMAT: Final[str] @@ -37,6 +39,7 @@ DEFAULT_LOGGING_FORMAT: Final[str] def sub_debug(msg: object, *args: object) -> None: ... def debug(msg: object, *args: object) -> None: ... def info(msg: object, *args: object) -> None: ... +def warn(msg: object, *args: object) -> None: ... def sub_warning(msg: object, *args: object) -> None: ... def get_logger() -> Logger: ... def log_to_stderr(level: _LoggingLevel | None = None) -> Logger: ... diff --git a/stdlib/string/templatelib.pyi b/stdlib/string/templatelib.pyi index 01b95377a49c..324447f5f34c 100644 --- a/stdlib/string/templatelib.pyi +++ b/stdlib/string/templatelib.pyi @@ -1,4 +1,5 @@ from collections.abc import Iterator +from types import GenericAlias from typing import Any, Literal, final __all__ = ["Interpolation", "Template"] @@ -11,6 +12,7 @@ class Template: # TODO: consider making `Template` generic on `TypeVarTuple` def __new__(cls, *args: str | Interpolation) -> Template: ... def __iter__(self) -> Iterator[str | Interpolation]: ... def __add__(self, other: Template | str) -> Template: ... + def __class_getitem__(cls, item: Any, /) -> GenericAlias: ... @property def values(self) -> tuple[Any, ...]: ... # Tuple of interpolation values, which can have any type @@ -26,3 +28,4 @@ class Interpolation: def __new__( cls, value: Any, expression: str, conversion: Literal["a", "r", "s"] | None = None, format_spec: str = "" ) -> Interpolation: ... + def __class_getitem__(cls, item: Any, /) -> GenericAlias: ... diff --git a/stdlib/zipfile/__init__.pyi b/stdlib/zipfile/__init__.pyi index fa610aacc4cd..8569a7528473 100644 --- a/stdlib/zipfile/__init__.pyi +++ b/stdlib/zipfile/__init__.pyi @@ -17,6 +17,7 @@ __all__ = [ "ZIP_DEFLATED", "ZIP_BZIP2", "ZIP_LZMA", + "ZIP_ZSTANDARD", "is_zipfile", "ZipInfo", "ZipFile", @@ -364,10 +365,19 @@ else: def is_zipfile(filename: StrOrBytesPath | _SupportsReadSeekTell) -> bool: ... -ZIP_STORED: Final[int] -ZIP_DEFLATED: Final[int] ZIP64_LIMIT: Final[int] ZIP_FILECOUNT_LIMIT: Final[int] ZIP_MAX_COMMENT: Final[int] -ZIP_BZIP2: Final[int] -ZIP_LZMA: Final[int] + +ZIP_STORED: Final = 0 +ZIP_DEFLATED: Final = 8 +ZIP_BZIP2: Final = 12 +ZIP_LZMA: Final = 14 +ZIP_ZSTANDARD: Final = 93 + +DEFAULT_VERSION: Final[int] +ZIP64_VERSION: Final[int] +BZIP2_VERSION: Final[int] +LZMA_VERSION: Final[int] +ZSTANDARD_VERSION: Final[int] +MAX_EXTRACT_VERSION: Final[int] From c735068e86c39ecc8590d70b8b3191d83f17ac0b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 28 May 2025 09:44:22 +0000 Subject: [PATCH 2/4] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/argparse.pyi | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/stdlib/argparse.pyi b/stdlib/argparse.pyi index d3f3a3a5b9ef..312093c0aa55 100644 --- a/stdlib/argparse.pyi +++ b/stdlib/argparse.pyi @@ -281,12 +281,7 @@ class HelpFormatter: if sys.version_info >= (3, 14): def __init__( - self, - prog: str, - indent_increment: int = 2, - max_help_position: int = 24, - width: int | None = None, - color: bool = False, + self, prog: str, indent_increment: int = 2, max_help_position: int = 24, width: int | None = None, color: bool = False ) -> None: ... else: def __init__( From 40b567e53b4555e1696f2320861c8bf6e23fbb67 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Wed, 28 May 2025 11:46:23 +0200 Subject: [PATCH 3/4] Add version guards --- stdlib/multiprocessing/util.pyi | 11 ++++++++--- stdlib/zipfile/__init__.pyi | 10 +++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/stdlib/multiprocessing/util.pyi b/stdlib/multiprocessing/util.pyi index f587bd665f56..b1963075b9ac 100644 --- a/stdlib/multiprocessing/util.pyi +++ b/stdlib/multiprocessing/util.pyi @@ -1,3 +1,4 @@ +import sys import threading from _typeshed import ConvertibleToInt, Incomplete, Unused from collections.abc import Callable, Iterable, Mapping, MutableMapping, Sequence @@ -9,7 +10,6 @@ __all__ = [ "debug", "info", "sub_warning", - "warn", "get_logger", "log_to_stderr", "get_temp_dir", @@ -23,6 +23,9 @@ __all__ = [ "SUBWARNING", ] +if sys.version_info >= (3, 14): + __all__ += ["warn"] + _T = TypeVar("_T") _R_co = TypeVar("_R_co", default=Any, covariant=True) @@ -31,7 +34,8 @@ SUBDEBUG: Final = 5 DEBUG: Final = 10 INFO: Final = 20 SUBWARNING: Final = 25 -WARNING: Final = 30 +if sys.version_info >= (3, 14): + WARNING: Final = 30 LOGGER_NAME: Final[str] DEFAULT_LOGGING_FORMAT: Final[str] @@ -39,7 +43,8 @@ DEFAULT_LOGGING_FORMAT: Final[str] def sub_debug(msg: object, *args: object) -> None: ... def debug(msg: object, *args: object) -> None: ... def info(msg: object, *args: object) -> None: ... -def warn(msg: object, *args: object) -> None: ... +if sys.version_info >= (3, 14): + def warn(msg: object, *args: object) -> None: ... def sub_warning(msg: object, *args: object) -> None: ... def get_logger() -> Logger: ... def log_to_stderr(level: _LoggingLevel | None = None) -> Logger: ... diff --git a/stdlib/zipfile/__init__.pyi b/stdlib/zipfile/__init__.pyi index 8569a7528473..27c1ef0246c7 100644 --- a/stdlib/zipfile/__init__.pyi +++ b/stdlib/zipfile/__init__.pyi @@ -17,7 +17,6 @@ __all__ = [ "ZIP_DEFLATED", "ZIP_BZIP2", "ZIP_LZMA", - "ZIP_ZSTANDARD", "is_zipfile", "ZipInfo", "ZipFile", @@ -25,6 +24,9 @@ __all__ = [ "LargeZipFile", ] +if sys.version_info >= (3, 14): + __all__ += ["ZIP_ZSTANDARD"] + # TODO: use TypeAlias for these two when mypy bugs are fixed # https://github.com/python/mypy/issues/16581 _DateTuple = tuple[int, int, int, int, int, int] # noqa: Y026 @@ -373,11 +375,13 @@ ZIP_STORED: Final = 0 ZIP_DEFLATED: Final = 8 ZIP_BZIP2: Final = 12 ZIP_LZMA: Final = 14 -ZIP_ZSTANDARD: Final = 93 +if sys.version_info >= (3, 14): + ZIP_ZSTANDARD: Final = 93 DEFAULT_VERSION: Final[int] ZIP64_VERSION: Final[int] BZIP2_VERSION: Final[int] LZMA_VERSION: Final[int] -ZSTANDARD_VERSION: Final[int] +if sys.version_info >= (3, 14): + ZSTANDARD_VERSION: Final[int] MAX_EXTRACT_VERSION: Final[int] From fad23e9052c0b98c0655297009e57cf6f073f654 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 28 May 2025 09:48:18 +0000 Subject: [PATCH 4/4] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/multiprocessing/util.pyi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stdlib/multiprocessing/util.pyi b/stdlib/multiprocessing/util.pyi index b1963075b9ac..ecb4a7ddec7d 100644 --- a/stdlib/multiprocessing/util.pyi +++ b/stdlib/multiprocessing/util.pyi @@ -43,8 +43,10 @@ DEFAULT_LOGGING_FORMAT: Final[str] def sub_debug(msg: object, *args: object) -> None: ... def debug(msg: object, *args: object) -> None: ... def info(msg: object, *args: object) -> None: ... + if sys.version_info >= (3, 14): def warn(msg: object, *args: object) -> None: ... + def sub_warning(msg: object, *args: object) -> None: ... def get_logger() -> Logger: ... def log_to_stderr(level: _LoggingLevel | None = None) -> Logger: ...