Skip to content

Commit 5b7bf7b

Browse files
committed
gh-128308: pass **kwargs to asyncio task_factory
1 parent d0ecbdd commit 5b7bf7b

File tree

3 files changed

+8
-24
lines changed

3 files changed

+8
-24
lines changed

Lib/asyncio/base_events.py

+3-10
Original file line numberDiff line numberDiff line change
@@ -458,25 +458,18 @@ def create_future(self):
458458
"""Create a Future object attached to the loop."""
459459
return futures.Future(loop=self)
460460

461-
def create_task(self, coro, *, name=None, context=None):
461+
def create_task(self, coro, *, **kwargs):
462462
"""Schedule a coroutine object.
463463
464464
Return a task object.
465465
"""
466466
self._check_closed()
467467
if self._task_factory is None:
468-
task = tasks.Task(coro, loop=self, name=name, context=context)
468+
task = tasks.Task(coro, loop=self, **kwargs)
469469
if task._source_traceback:
470470
del task._source_traceback[-1]
471471
else:
472-
if context is None:
473-
# Use legacy API if context is not needed
474-
task = self._task_factory(self, coro)
475-
else:
476-
task = self._task_factory(self, coro, context=context)
477-
478-
task.set_name(name)
479-
472+
task = self._task_factory(self, coro, **kwargs)
480473
try:
481474
return task
482475
finally:

Lib/asyncio/taskgroups.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ async def _aexit(self, et, exc):
178178
exc = None
179179

180180

181-
def create_task(self, coro, *, name=None, context=None):
181+
def create_task(self, coro, *, **kwargs):
182182
"""Create a new task in this group and return it.
183183
184184
Similar to `asyncio.create_task`.
@@ -192,10 +192,8 @@ def create_task(self, coro, *, name=None, context=None):
192192
if self._aborting:
193193
coro.close()
194194
raise RuntimeError(f"TaskGroup {self!r} is shutting down")
195-
if context is None:
196-
task = self._loop.create_task(coro, name=name)
197-
else:
198-
task = self._loop.create_task(coro, name=name, context=context)
195+
196+
task = self._loop.create_task(coro, **kwargs)
199197

200198
# optimization: Immediately call the done callback if the task is
201199
# already done (e.g. if the coro was able to complete eagerly),

Lib/asyncio/tasks.py

+2-9
Original file line numberDiff line numberDiff line change
@@ -384,19 +384,12 @@ def __wakeup(self, future):
384384
Task = _CTask = _asyncio.Task
385385

386386

387-
def create_task(coro, *, name=None, context=None):
387+
def create_task(coro, *, **kwargs):
388388
"""Schedule the execution of a coroutine object in a spawn task.
389389
390390
Return a Task object.
391391
"""
392-
loop = events.get_running_loop()
393-
if context is None:
394-
# Use legacy API if context is not needed
395-
task = loop.create_task(coro, name=name)
396-
else:
397-
task = loop.create_task(coro, name=name, context=context)
398-
399-
return task
392+
return events.get_running_loop().create_task(coro, **kwargs)
400393

401394

402395
# wait() and as_completed() similar to those in PEP 3148.

0 commit comments

Comments
 (0)