mirror of
https://github.com/python/cpython.git
synced 2024-11-23 09:54:58 +08:00
bpo-46796: Simplify handling of removed parameter "loop" in asyncio (GH-31431)
This commit is contained in:
parent
be095f6c32
commit
195a46d6ff
@ -73,8 +73,7 @@ class Lock(_ContextManagerMixin, mixins._LoopBoundMixin):
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, *, loop=mixins._marker):
|
||||
super().__init__(loop=loop)
|
||||
def __init__(self):
|
||||
self._waiters = None
|
||||
self._locked = False
|
||||
|
||||
@ -163,8 +162,7 @@ class Event(mixins._LoopBoundMixin):
|
||||
false.
|
||||
"""
|
||||
|
||||
def __init__(self, *, loop=mixins._marker):
|
||||
super().__init__(loop=loop)
|
||||
def __init__(self):
|
||||
self._waiters = collections.deque()
|
||||
self._value = False
|
||||
|
||||
@ -226,8 +224,7 @@ class Condition(_ContextManagerMixin, mixins._LoopBoundMixin):
|
||||
A new Lock object is created and used as the underlying lock.
|
||||
"""
|
||||
|
||||
def __init__(self, lock=None, *, loop=mixins._marker):
|
||||
super().__init__(loop=loop)
|
||||
def __init__(self, lock=None):
|
||||
if lock is None:
|
||||
lock = Lock()
|
||||
|
||||
@ -344,8 +341,7 @@ class Semaphore(_ContextManagerMixin, mixins._LoopBoundMixin):
|
||||
ValueError is raised.
|
||||
"""
|
||||
|
||||
def __init__(self, value=1, *, loop=mixins._marker):
|
||||
super().__init__(loop=loop)
|
||||
def __init__(self, value=1):
|
||||
if value < 0:
|
||||
raise ValueError("Semaphore initial value must be >= 0")
|
||||
self._value = value
|
||||
@ -408,9 +404,9 @@ class BoundedSemaphore(Semaphore):
|
||||
above the initial value.
|
||||
"""
|
||||
|
||||
def __init__(self, value=1, *, loop=mixins._marker):
|
||||
def __init__(self, value=1):
|
||||
self._bound_value = value
|
||||
super().__init__(value, loop=loop)
|
||||
super().__init__(value)
|
||||
|
||||
def release(self):
|
||||
if self._value >= self._bound_value:
|
||||
|
@ -5,20 +5,10 @@ from . import events
|
||||
|
||||
_global_lock = threading.Lock()
|
||||
|
||||
# Used as a sentinel for loop parameter
|
||||
_marker = object()
|
||||
|
||||
|
||||
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()
|
||||
|
||||
|
@ -30,8 +30,7 @@ class Queue(mixins._LoopBoundMixin):
|
||||
interrupted between calling qsize() and doing an operation on the Queue.
|
||||
"""
|
||||
|
||||
def __init__(self, maxsize=0, *, loop=mixins._marker):
|
||||
super().__init__(loop=loop)
|
||||
def __init__(self, maxsize=0):
|
||||
self._maxsize = maxsize
|
||||
|
||||
# Futures.
|
||||
|
@ -55,8 +55,8 @@ class LockTests(unittest.IsolatedAsyncioTestCase):
|
||||
for cls in primitives_cls:
|
||||
with self.assertRaisesRegex(
|
||||
TypeError,
|
||||
rf'As of 3.10, the \*loop\* parameter was removed from '
|
||||
rf'{cls.__name__}\(\) since it is no longer necessary'
|
||||
rf"{cls.__name__}\.__init__\(\) got an unexpected "
|
||||
rf"keyword argument 'loop'"
|
||||
):
|
||||
cls(loop=loop)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user