diff options
author | Yurii Karabas <1998uriyyo@gmail.com> | 2020-11-25 13:50:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-25 06:50:44 -0500 |
commit | b9127dd6eedd693cfd716a4444648864e2e00186 (patch) | |
tree | e764966cdfca102d15e1a281312d096c0388c2e4 /Lib/asyncio/mixins.py | |
parent | 7301979b23406220510dd2c7934a21b41b647119 (diff) | |
download | cpython-b9127dd6eedd693cfd716a4444648864e2e00186.tar.gz cpython-b9127dd6eedd693cfd716a4444648864e2e00186.zip |
bpo-42392: Improve removal of *loop* parameter in asyncio primitives (GH-23499)
* Update code after merge review from 1st1
* Use a sentinel approach for loop parameter
Remove unnecessary _get_running_loop patching
* Use more clear function name (_verify_parameter_is_marker -> _verify_no_loop)
* Add init method to _LoopBoundMixin to check that loop param wasn't used
Diffstat (limited to 'Lib/asyncio/mixins.py')
-rw-r--r-- | Lib/asyncio/mixins.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Lib/asyncio/mixins.py b/Lib/asyncio/mixins.py index dbc4b5faccb..650df05ccc9 100644 --- a/Lib/asyncio/mixins.py +++ b/Lib/asyncio/mixins.py @@ -5,10 +5,20 @@ from . import events _global_lock = threading.Lock() +# Used as a sentinel for loop parameter +_marker = object() -class _LoopBoundedMixin: + +class _LoopBoundMixin: _loop = None + def __init__(self, *, loop=_marker): + if loop is not _marker: + raise TypeError( + f'As of 3.10, the *loop* parameter was removed from ' + f'{type(self).__name__}() since it is no longer necessary' + ) + def _get_loop(self): loop = events._get_running_loop() @@ -17,5 +27,5 @@ class _LoopBoundedMixin: if self._loop is None: self._loop = loop if loop is not self._loop: - raise RuntimeError(f'{type(self).__name__} have already bounded to another loop') + raise RuntimeError(f'{self!r} is bound to a different event loop') return loop |