Skip to content
Permalink
Browse files

bpo-36373: Deprecate explicit loop parameter in all public asyncio AP…

…Is [locks] (GH-13920)

This PR deprecate explicit loop parameters in all public asyncio APIs

This issues is split to be easier to review.

Third step: locks.py

https://bugs.python.org/issue36373
(cherry picked from commit 537877d)

Co-authored-by: Emmanuel Arias <emmanuelarias30@gmail.com>
  • Loading branch information...
miss-islington and eamanu committed Sep 10, 2019
1 parent ab74e52 commit bb8fc8bd309419c159b632068dff73c3c76d478c
@@ -59,6 +59,9 @@ Lock
finally:
lock.release()

.. deprecated-removed:: 3.8 3.10
The *loop* parameter.

.. coroutinemethod:: acquire()

Acquire the lock.
@@ -101,6 +104,10 @@ Event
:meth:`clear` method. The :meth:`wait` method blocks until the
flag is set to *true*. The flag is set to *false* initially.


.. deprecated-removed:: 3.8 3.10
The *loop* parameter.

.. _asyncio_example_sync_event:
Example::
@@ -173,6 +180,10 @@ Condition
``None``. In the latter case a new Lock object is created
automatically.


.. deprecated-removed:: 3.8 3.10
The *loop* parameter.

The preferred way to use a Condition is an :keyword:`async with`
statement::

@@ -269,6 +280,10 @@ Semaphore
internal counter (``1`` by default). If the given value is
less than ``0`` a :exc:`ValueError` is raised.


.. deprecated-removed:: 3.8 3.10
The *loop* parameter.

The preferred way to use a Semaphore is an :keyword:`async with`
statement::

@@ -322,6 +337,9 @@ BoundedSemaphore
increases the internal counter above the initial *value*.


.. deprecated-removed:: 3.8 3.10
The *loop* parameter.

---------


@@ -160,10 +160,13 @@ class Lock(_ContextManagerMixin):
def __init__(self, *, loop=None):
self._waiters = None
self._locked = False
if loop is not None:
self._loop = loop
else:
if loop is None:
self._loop = events.get_event_loop()
else:
self._loop = loop
warnings.warn("The loop argument is deprecated since Python 3.8, "
"and scheduled for removal in Python 3.10.",
DeprecationWarning, stacklevel=2)

def __repr__(self):
res = super().__repr__()
@@ -253,10 +256,13 @@ class Event:
def __init__(self, *, loop=None):
self._waiters = collections.deque()
self._value = False
if loop is not None:
self._loop = loop
else:
if loop is None:
self._loop = events.get_event_loop()
else:
self._loop = loop
warnings.warn("The loop argument is deprecated since Python 3.8, "
"and scheduled for removal in Python 3.10.",
DeprecationWarning, stacklevel=2)

def __repr__(self):
res = super().__repr__()
@@ -317,10 +323,13 @@ class Condition(_ContextManagerMixin):
"""

def __init__(self, lock=None, *, loop=None):
if loop is not None:
self._loop = loop
else:
if loop is None:
self._loop = events.get_event_loop()
else:
self._loop = loop
warnings.warn("The loop argument is deprecated since Python 3.8, "
"and scheduled for removal in Python 3.10.",
DeprecationWarning, stacklevel=2)

if lock is None:
lock = Lock(loop=self._loop)
@@ -445,10 +454,13 @@ def __init__(self, value=1, *, loop=None):
raise ValueError("Semaphore initial value must be >= 0")
self._value = value
self._waiters = collections.deque()
if loop is not None:
self._loop = loop
else:
if loop is None:
self._loop = events.get_event_loop()
else:
self._loop = loop
warnings.warn("The loop argument is deprecated since Python 3.8, "
"and scheduled for removal in Python 3.10.",
DeprecationWarning, stacklevel=2)

def __repr__(self):
res = super().__repr__()
@@ -508,6 +520,11 @@ class BoundedSemaphore(Semaphore):
"""

def __init__(self, value=1, *, loop=None):
if loop:
warnings.warn("The loop argument is deprecated since Python 3.8, "
"and scheduled for removal in Python 3.10.",
DeprecationWarning, stacklevel=2)

self._bound_value = value
super().__init__(value, loop=loop)

0 comments on commit bb8fc8b

Please sign in to comment.
You can’t perform that action at this time.