[Python-checkins] bpo-47062: Rename factory argument to loop_factory (GH-32113)

asvetlov webhook-mailer at python.org
Fri Mar 25 18:26:35 EDT 2022


https://github.com/python/cpython/commit/bad6ffaa64eecd33f4320ca31b1201b25cd8fc91
commit: bad6ffaa64eecd33f4320ca31b1201b25cd8fc91
branch: main
author: Andrew Svetlov <andrew.svetlov at gmail.com>
committer: asvetlov <andrew.svetlov at gmail.com>
date: 2022-03-26T00:26:23+02:00
summary:

bpo-47062: Rename factory argument to loop_factory (GH-32113)

files:
M Doc/library/asyncio-runner.rst
M Lib/asyncio/runners.py
M Lib/test/test_asyncio/test_runners.py

diff --git a/Doc/library/asyncio-runner.rst b/Doc/library/asyncio-runner.rst
index 2f4de9edaa400..31becf192ada3 100644
--- a/Doc/library/asyncio-runner.rst
+++ b/Doc/library/asyncio-runner.rst
@@ -62,7 +62,7 @@ Running an asyncio Program
 Runner context manager
 ======================
 
-.. class:: Runner(*, debug=None, factory=None)
+.. class:: Runner(*, debug=None, loop_factory=None)
 
    A context manager that simplifies *multiple* async function calls in the same
    context.
@@ -74,7 +74,7 @@ Runner context manager
    debug mode explicitly. ``None`` is used to respect the global
    :ref:`asyncio-debug-mode` settings.
 
-   *factory* could be used for overriding the loop creation.
+   *loop_factory* could be used for overriding the loop creation.
    :func:`asyncio.new_event_loop` is used if ``None``.
 
    Basically, :func:`asyncio.run()` example can be rewritten with the runner usage::
diff --git a/Lib/asyncio/runners.py b/Lib/asyncio/runners.py
index 975509c7d645d..768a403a85bee 100644
--- a/Lib/asyncio/runners.py
+++ b/Lib/asyncio/runners.py
@@ -21,7 +21,7 @@ class Runner:
     and properly finalizes the loop at the context manager exit.
 
     If debug is True, the event loop will be run in debug mode.
-    If factory is passed, it is used for new event loop creation.
+    If loop_factory is passed, it is used for new event loop creation.
 
     asyncio.run(main(), debug=True)
 
@@ -41,10 +41,10 @@ class Runner:
 
     # Note: the class is final, it is not intended for inheritance.
 
-    def __init__(self, *, debug=None, factory=None):
+    def __init__(self, *, debug=None, loop_factory=None):
         self._state = _State.CREATED
         self._debug = debug
-        self._factory = factory
+        self._loop_factory = loop_factory
         self._loop = None
         self._context = None
 
@@ -96,10 +96,10 @@ def _lazy_init(self):
             raise RuntimeError("Runner is closed")
         if self._state is _State.INITIALIZED:
             return
-        if self._factory is None:
+        if self._loop_factory is None:
             self._loop = events.new_event_loop()
         else:
-            self._loop = self._factory()
+            self._loop = self._loop_factory()
         if self._debug is not None:
             self._loop.set_debug(self._debug)
         self._context = contextvars.copy_context()
diff --git a/Lib/test/test_asyncio/test_runners.py b/Lib/test/test_asyncio/test_runners.py
index c0bd1a242c86c..94f26797b3309 100644
--- a/Lib/test/test_asyncio/test_runners.py
+++ b/Lib/test/test_asyncio/test_runners.py
@@ -201,7 +201,7 @@ def test_debug(self):
 
     def test_custom_factory(self):
         loop = mock.Mock()
-        with asyncio.Runner(factory=lambda: loop) as runner:
+        with asyncio.Runner(loop_factory=lambda: loop) as runner:
             self.assertIs(runner.get_loop(), loop)
 
     def test_run(self):



More information about the Python-checkins mailing list