From 1ce831dfa0b20eac182f0a3b2b925619d5e411b2 Mon Sep 17 00:00:00 2001 From: Kevin de Ruijter Date: Fri, 2 Jan 2026 03:20:10 +0100 Subject: [PATCH 01/11] fix: add eager_start as an arugment. --- stdlib/asyncio/tasks.pyi | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/stdlib/asyncio/tasks.pyi b/stdlib/asyncio/tasks.pyi index 1442f7400a9c..be9b60cd36ae 100644 --- a/stdlib/asyncio/tasks.pyi +++ b/stdlib/asyncio/tasks.pyi @@ -413,7 +413,12 @@ else: def all_tasks(loop: AbstractEventLoop | None = None) -> set[Task[Any]]: ... -if sys.version_info >= (3, 11): +if sys.version_info >= (3, 14): + def create_task( + coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None, eager_start: bool | None = None + ) -> Task[_T]: ... + +elif sys.version_info >= (3, 11): def create_task(coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None) -> Task[_T]: ... else: From cec68bc902fe2efaef337531bbfb7b341da7e090 Mon Sep 17 00:00:00 2001 From: Kevin de Ruijter Date: Fri, 2 Jan 2026 16:47:48 +0100 Subject: [PATCH 02/11] fix: add eager_start keyword argument to all create_task functions. --- stdlib/asyncio/base_events.pyi | 6 +++++- stdlib/asyncio/events.pyi | 7 ++++++- stdlib/asyncio/taskgroups.pyi | 9 ++++++++- stdlib/asyncio/tasks.pyi | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/stdlib/asyncio/base_events.pyi b/stdlib/asyncio/base_events.pyi index 1f493210d665..8d832015636b 100644 --- a/stdlib/asyncio/base_events.pyi +++ b/stdlib/asyncio/base_events.pyi @@ -83,7 +83,11 @@ class BaseEventLoop(AbstractEventLoop): # Future methods def create_future(self) -> Future[Any]: ... # Tasks methods - if sys.version_info >= (3, 11): + if sys.version_info >= (3, 14): + def create_task( + self, coro: _CoroutineLike[_T], *, name: object = None, context: Context | None = None, eager_start: bool = False + ) -> Task[_T]: ... + elif sys.version_info >= (3, 11): def create_task(self, coro: _CoroutineLike[_T], *, name: object = None, context: Context | None = None) -> Task[_T]: ... else: def create_task(self, coro: _CoroutineLike[_T], *, name: object = None) -> Task[_T]: ... diff --git a/stdlib/asyncio/events.pyi b/stdlib/asyncio/events.pyi index 5dc698bc5e15..cf5438eda6cd 100644 --- a/stdlib/asyncio/events.pyi +++ b/stdlib/asyncio/events.pyi @@ -161,7 +161,12 @@ class AbstractEventLoop: @abstractmethod def create_future(self) -> Future[Any]: ... # Tasks methods - if sys.version_info >= (3, 11): + if sys.version_info >= (3, 14): + @abstractmethod + def create_task( + self, coro: _CoroutineLike[_T], *, name: object = None, context: Context | None = None, eager_start: bool = False + ) -> Task[_T]: ... + elif sys.version_info >= (3, 11): @abstractmethod def create_task( self, coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None diff --git a/stdlib/asyncio/taskgroups.pyi b/stdlib/asyncio/taskgroups.pyi index 30b7c9129f6f..30c255510c73 100644 --- a/stdlib/asyncio/taskgroups.pyi +++ b/stdlib/asyncio/taskgroups.pyi @@ -22,5 +22,12 @@ class TaskGroup: async def __aenter__(self) -> Self: ... async def __aexit__(self, et: type[BaseException] | None, exc: BaseException | None, tb: TracebackType | None) -> None: ... - def create_task(self, coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None) -> Task[_T]: ... + if sys.version_info >= (3, 14): + def create_task( + self, coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None, eager_start: bool = False + ) -> Task[_T]: ... + elif sys.version_info >= (3, 12): + def create_task( + self, coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None + ) -> Task[_T]: ... def _on_task_done(self, task: Task[object]) -> None: ... diff --git a/stdlib/asyncio/tasks.pyi b/stdlib/asyncio/tasks.pyi index be9b60cd36ae..0a98d5504147 100644 --- a/stdlib/asyncio/tasks.pyi +++ b/stdlib/asyncio/tasks.pyi @@ -415,7 +415,7 @@ def all_tasks(loop: AbstractEventLoop | None = None) -> set[Task[Any]]: ... if sys.version_info >= (3, 14): def create_task( - coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None, eager_start: bool | None = None + coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None, eager_start: bool | None = False ) -> Task[_T]: ... elif sys.version_info >= (3, 11): From 08d1e85e487f504f2896997f7c5a9c4cee936b6c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 2 Jan 2026 15:54:57 +0000 Subject: [PATCH 03/11] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/asyncio/taskgroups.pyi | 1 + 1 file changed, 1 insertion(+) diff --git a/stdlib/asyncio/taskgroups.pyi b/stdlib/asyncio/taskgroups.pyi index 30c255510c73..320699f426f5 100644 --- a/stdlib/asyncio/taskgroups.pyi +++ b/stdlib/asyncio/taskgroups.pyi @@ -30,4 +30,5 @@ class TaskGroup: def create_task( self, coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None ) -> Task[_T]: ... + def _on_task_done(self, task: Task[object]) -> None: ... From 8b6d55d8a7ac128fcd659769aaa9155d43606bf5 Mon Sep 17 00:00:00 2001 From: Kevin de Ruijter Date: Fri, 2 Jan 2026 17:02:10 +0100 Subject: [PATCH 04/11] fix: forgot to add bool | None. --- stdlib/asyncio/base_events.pyi | 7 ++++++- stdlib/asyncio/events.pyi | 7 ++++++- stdlib/asyncio/taskgroups.pyi | 7 ++++++- stdlib/asyncio/tasks.pyi | 6 +++++- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/stdlib/asyncio/base_events.pyi b/stdlib/asyncio/base_events.pyi index 8d832015636b..36d81c9554c9 100644 --- a/stdlib/asyncio/base_events.pyi +++ b/stdlib/asyncio/base_events.pyi @@ -85,7 +85,12 @@ class BaseEventLoop(AbstractEventLoop): # Tasks methods if sys.version_info >= (3, 14): def create_task( - self, coro: _CoroutineLike[_T], *, name: object = None, context: Context | None = None, eager_start: bool = False + self, + coro: _CoroutineLike[_T], + *, + name: object = None, + context: Context | None = None, + eager_start: bool | None = False, ) -> Task[_T]: ... elif sys.version_info >= (3, 11): def create_task(self, coro: _CoroutineLike[_T], *, name: object = None, context: Context | None = None) -> Task[_T]: ... diff --git a/stdlib/asyncio/events.pyi b/stdlib/asyncio/events.pyi index cf5438eda6cd..48e23286dbd7 100644 --- a/stdlib/asyncio/events.pyi +++ b/stdlib/asyncio/events.pyi @@ -164,7 +164,12 @@ class AbstractEventLoop: if sys.version_info >= (3, 14): @abstractmethod def create_task( - self, coro: _CoroutineLike[_T], *, name: object = None, context: Context | None = None, eager_start: bool = False + self, + coro: _CoroutineLike[_T], + *, + name: object = None, + context: Context | None = None, + eager_start: bool | None = False, ) -> Task[_T]: ... elif sys.version_info >= (3, 11): @abstractmethod diff --git a/stdlib/asyncio/taskgroups.pyi b/stdlib/asyncio/taskgroups.pyi index 320699f426f5..681e055f5db1 100644 --- a/stdlib/asyncio/taskgroups.pyi +++ b/stdlib/asyncio/taskgroups.pyi @@ -24,7 +24,12 @@ class TaskGroup: async def __aexit__(self, et: type[BaseException] | None, exc: BaseException | None, tb: TracebackType | None) -> None: ... if sys.version_info >= (3, 14): def create_task( - self, coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None, eager_start: bool = False + self, + coro: _CoroutineLike[_T], + *, + name: str | None = None, + context: Context | None = None, + eager_start: bool | None = False, ) -> Task[_T]: ... elif sys.version_info >= (3, 12): def create_task( diff --git a/stdlib/asyncio/tasks.pyi b/stdlib/asyncio/tasks.pyi index 0a98d5504147..6b6cfc338377 100644 --- a/stdlib/asyncio/tasks.pyi +++ b/stdlib/asyncio/tasks.pyi @@ -415,7 +415,11 @@ def all_tasks(loop: AbstractEventLoop | None = None) -> set[Task[Any]]: ... if sys.version_info >= (3, 14): def create_task( - coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None, eager_start: bool | None = False + coro: _CoroutineLike[_T], + *, + name: str | None = None, + context: Context | None = None, + eager_start: bool | None = False, ) -> Task[_T]: ... elif sys.version_info >= (3, 11): From 929177186ad793d7447a419041b12290a6650bc5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 2 Jan 2026 16:06:39 +0000 Subject: [PATCH 05/11] [pre-commit.ci] auto fixes from pre-commit.com hooks --- stdlib/asyncio/tasks.pyi | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/stdlib/asyncio/tasks.pyi b/stdlib/asyncio/tasks.pyi index 6b6cfc338377..0a98d5504147 100644 --- a/stdlib/asyncio/tasks.pyi +++ b/stdlib/asyncio/tasks.pyi @@ -415,11 +415,7 @@ def all_tasks(loop: AbstractEventLoop | None = None) -> set[Task[Any]]: ... if sys.version_info >= (3, 14): def create_task( - coro: _CoroutineLike[_T], - *, - name: str | None = None, - context: Context | None = None, - eager_start: bool | None = False, + coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None, eager_start: bool | None = False ) -> Task[_T]: ... elif sys.version_info >= (3, 11): From 5e1b4159a5ea8a3ccdf32c4ec5d1ace2ef61ed87 Mon Sep 17 00:00:00 2001 From: Kevin de Ruijter Date: Fri, 2 Jan 2026 17:09:34 +0100 Subject: [PATCH 06/11] fix: error: asyncio.TaskGroup.create_task is not present in stub --- stdlib/asyncio/taskgroups.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/asyncio/taskgroups.pyi b/stdlib/asyncio/taskgroups.pyi index 681e055f5db1..718ec60724ef 100644 --- a/stdlib/asyncio/taskgroups.pyi +++ b/stdlib/asyncio/taskgroups.pyi @@ -31,7 +31,7 @@ class TaskGroup: context: Context | None = None, eager_start: bool | None = False, ) -> Task[_T]: ... - elif sys.version_info >= (3, 12): + else: def create_task( self, coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None ) -> Task[_T]: ... From e47bdd8047cba8f42b69615f3225a1dc14eba46f Mon Sep 17 00:00:00 2001 From: Kevin de Ruijter Date: Fri, 2 Jan 2026 17:23:27 +0100 Subject: [PATCH 07/11] change object to str for create_task name. --- stdlib/asyncio/events.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/asyncio/events.pyi b/stdlib/asyncio/events.pyi index 48e23286dbd7..7ff32a3cba08 100644 --- a/stdlib/asyncio/events.pyi +++ b/stdlib/asyncio/events.pyi @@ -167,7 +167,7 @@ class AbstractEventLoop: self, coro: _CoroutineLike[_T], *, - name: object = None, + name: str | None = None, context: Context | None = None, eager_start: bool | None = False, ) -> Task[_T]: ... From b7e1336fde04070fff7dba0c67b1ceb29cec949f Mon Sep 17 00:00:00 2001 From: Kevin de Ruijter Date: Sun, 4 Jan 2026 18:01:59 +0100 Subject: [PATCH 08/11] Update stdlib/asyncio/base_events.pyi Co-authored-by: Semyon Moroz --- stdlib/asyncio/base_events.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/asyncio/base_events.pyi b/stdlib/asyncio/base_events.pyi index 36d81c9554c9..0d8ac2d47491 100644 --- a/stdlib/asyncio/base_events.pyi +++ b/stdlib/asyncio/base_events.pyi @@ -90,7 +90,7 @@ class BaseEventLoop(AbstractEventLoop): *, name: object = None, context: Context | None = None, - eager_start: bool | None = False, + eager_start: bool | None = None, ) -> Task[_T]: ... elif sys.version_info >= (3, 11): def create_task(self, coro: _CoroutineLike[_T], *, name: object = None, context: Context | None = None) -> Task[_T]: ... From 6cc051bd1ddf772892ab5c37d3624ca301e94d6e Mon Sep 17 00:00:00 2001 From: Kevin de Ruijter Date: Sun, 4 Jan 2026 18:02:07 +0100 Subject: [PATCH 09/11] Update stdlib/asyncio/events.pyi Co-authored-by: Semyon Moroz --- stdlib/asyncio/events.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/asyncio/events.pyi b/stdlib/asyncio/events.pyi index 7ff32a3cba08..4f2f45355f5b 100644 --- a/stdlib/asyncio/events.pyi +++ b/stdlib/asyncio/events.pyi @@ -169,7 +169,7 @@ class AbstractEventLoop: *, name: str | None = None, context: Context | None = None, - eager_start: bool | None = False, + eager_start: bool | None = None, ) -> Task[_T]: ... elif sys.version_info >= (3, 11): @abstractmethod From 40f1d9cf08bb7021186e2712eef36ac21acc16ff Mon Sep 17 00:00:00 2001 From: Kevin de Ruijter Date: Sun, 4 Jan 2026 18:02:17 +0100 Subject: [PATCH 10/11] Update stdlib/asyncio/tasks.pyi Co-authored-by: Semyon Moroz --- stdlib/asyncio/tasks.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/asyncio/tasks.pyi b/stdlib/asyncio/tasks.pyi index 0a98d5504147..be9b60cd36ae 100644 --- a/stdlib/asyncio/tasks.pyi +++ b/stdlib/asyncio/tasks.pyi @@ -415,7 +415,7 @@ def all_tasks(loop: AbstractEventLoop | None = None) -> set[Task[Any]]: ... if sys.version_info >= (3, 14): def create_task( - coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None, eager_start: bool | None = False + coro: _CoroutineLike[_T], *, name: str | None = None, context: Context | None = None, eager_start: bool | None = None ) -> Task[_T]: ... elif sys.version_info >= (3, 11): From daaf53391c610bf448c297860691df15722dd0dc Mon Sep 17 00:00:00 2001 From: Kevin de Ruijter Date: Sun, 4 Jan 2026 18:02:25 +0100 Subject: [PATCH 11/11] Update stdlib/asyncio/taskgroups.pyi Co-authored-by: Semyon Moroz --- stdlib/asyncio/taskgroups.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/asyncio/taskgroups.pyi b/stdlib/asyncio/taskgroups.pyi index 718ec60724ef..2968b0719761 100644 --- a/stdlib/asyncio/taskgroups.pyi +++ b/stdlib/asyncio/taskgroups.pyi @@ -29,7 +29,7 @@ class TaskGroup: *, name: str | None = None, context: Context | None = None, - eager_start: bool | None = False, + eager_start: bool | None = None, ) -> Task[_T]: ... else: def create_task(