From ee8d1ac2231248098ce1b90bbc93f520dc49c9a9 Mon Sep 17 00:00:00 2001 From: yangdanny97 Date: Fri, 7 Mar 2025 22:17:07 -0500 Subject: [PATCH 1/2] update pycurl to 7.45.6 --- stubs/pycurl/METADATA.toml | 2 +- stubs/pycurl/pycurl.pyi | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/stubs/pycurl/METADATA.toml b/stubs/pycurl/METADATA.toml index 09ac8a43ea91..d6f49acb07b0 100644 --- a/stubs/pycurl/METADATA.toml +++ b/stubs/pycurl/METADATA.toml @@ -1,4 +1,4 @@ -version = "7.45.4" +version = "7.45.6" upstream_repository = "https://github.com/pycurl/pycurl" [tool.stubtest] diff --git a/stubs/pycurl/pycurl.pyi b/stubs/pycurl/pycurl.pyi index 197912f92e9f..867e2cb6cd80 100644 --- a/stubs/pycurl/pycurl.pyi +++ b/stubs/pycurl/pycurl.pyi @@ -53,6 +53,24 @@ class CurlShare: def close(self) -> None: ... def setopt(self, option: int, value): ... +APPCONNECT_TIME_T: Final[int] = ... +CONNECT_TIME_T: Final[int] = ... +CONTENT_LENGTH_DOWNLOAD_T: Final[int] = ... +CONTENT_LENGTH_UPLOAD_T: Final[int] = ... +EARLYDATA_SENT_T: Final[int] = ... +FILETIME_T: Final[int] = ... +NAMELOOKUP_TIME_T: Final[int] = ... +POSTTRANSFER_TIME_T: Final[int] = ... +PRETRANSFER_TIME_T: Final[int] = ... +QUEUE_TIME_T: Final[int] = ... +REDIRECT_TIME_T: Final[int] = ... +SIZE_DOWNLOAD_T: Final[int] = ... +SIZE_UPLOAD_T: Final[int] = ... +SPEED_DOWNLOAD_T: Final[int] = ... +SPEED_UPLOAD_T: Final[int] = ... +STARTTRANSFER_TIME_T: Final[int] = ... +TOTAL_TIME_T: Final[int] = ... + ACCEPTTIMEOUT_MS: Final = 212 ACCEPT_ENCODING: Final = 10102 ADDRESS_SCOPE: Final = 171 From 2434fc44068f54ce0a950434bf8173d86ccc0e4f Mon Sep 17 00:00:00 2001 From: yangdanny97 Date: Tue, 9 Dec 2025 16:04:33 -0500 Subject: [PATCH 2/2] update argparse._parse_optional --- stdlib/argparse.pyi | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/stdlib/argparse.pyi b/stdlib/argparse.pyi index 029bfeefe4b3..b0a9a8a81197 100644 --- a/stdlib/argparse.pyi +++ b/stdlib/argparse.pyi @@ -241,7 +241,11 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): def _read_args_from_files(self, arg_strings: list[str]) -> list[str]: ... def _match_argument(self, action: Action, arg_strings_pattern: str) -> int: ... def _match_arguments_partial(self, actions: Sequence[Action], arg_strings_pattern: str) -> list[int]: ... - def _parse_optional(self, arg_string: str) -> tuple[Action | None, str, str | None] | None: ... + if sys.version_info >= (3, 12): + def _parse_optional(self, arg_string: str) -> list[tuple[Action | None, str, str | None, str | None]] | None: ... + else: + def _parse_optional(self, arg_string: str) -> tuple[Action | None, str, str | None] | None: ... + def _get_option_tuples(self, option_string: str) -> list[tuple[Action, str, str | None]]: ... def _get_nargs_pattern(self, action: Action) -> str: ... def _get_values(self, action: Action, arg_strings: list[str]) -> Any: ...