mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
remove the deprecation warnings for the old threading API; update the docs
Reviewer: Benjamin Peterson
This commit is contained in:
parent
f82b856b2a
commit
b3085c9e26
4 changed files with 33 additions and 66 deletions
|
@ -14,11 +14,9 @@ The :mod:`dummy_threading` module is provided for situations where
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Some ``camelCase`` names have been converted to their underscored
|
While they are not listed below, the ``camelCase`` names used for some
|
||||||
equivalents. Others have been replaced by properties. Using the old methods
|
methods and functions in this module in the Python 2.x series are still
|
||||||
in 2.6 will trigger a :exc:`DeprecationWarning` when Python is run with the
|
supported by this module.
|
||||||
:option:`-3` flag and a full :exc:`DeprecationWarning` in 3.0. The old names
|
|
||||||
will be removed early in the 3.x series.
|
|
||||||
|
|
||||||
This module defines the following functions and objects:
|
This module defines the following functions and objects:
|
||||||
|
|
||||||
|
|
|
@ -323,44 +323,18 @@ class ThreadTests(unittest.TestCase):
|
||||||
msg=('%d references still around' %
|
msg=('%d references still around' %
|
||||||
sys.getrefcount(weak_raising_cyclic_object())))
|
sys.getrefcount(weak_raising_cyclic_object())))
|
||||||
|
|
||||||
def test_pep8ified_threading(self):
|
def test_old_threading_api(self):
|
||||||
def check(_, w, msg):
|
# Just a quick sanity check to make sure the old method names are
|
||||||
self.assertEqual(str(w.message), msg)
|
# still present
|
||||||
|
|
||||||
t = threading.Thread()
|
t = threading.Thread()
|
||||||
with catch_warning() as w:
|
t.isDaemon()
|
||||||
try:
|
t.setDaemon(True)
|
||||||
del threading.__warningregistry__
|
t.getName()
|
||||||
except AttributeError:
|
t.setName("name")
|
||||||
pass
|
t.isAlive()
|
||||||
msg = "isDaemon() is deprecated in favor of the " \
|
e = threading.Event()
|
||||||
"Thread.daemon property"
|
e.isSet()
|
||||||
check(t.isDaemon(), w, msg)
|
threading.activeCount()
|
||||||
w.reset()
|
|
||||||
msg = "setDaemon() is deprecated in favor of the " \
|
|
||||||
"Thread.daemon property"
|
|
||||||
check(t.setDaemon(True), w, msg)
|
|
||||||
w.reset()
|
|
||||||
msg = "getName() is deprecated in favor of the " \
|
|
||||||
"Thread.name property"
|
|
||||||
check(t.getName(), w, msg)
|
|
||||||
w.reset()
|
|
||||||
msg = "setName() is deprecated in favor of the " \
|
|
||||||
"Thread.name property"
|
|
||||||
check(t.setName("name"), w, msg)
|
|
||||||
w.reset()
|
|
||||||
msg = "isAlive() is deprecated in favor of is_alive()"
|
|
||||||
check(t.isAlive(), w, msg)
|
|
||||||
w.reset()
|
|
||||||
e = threading.Event()
|
|
||||||
msg = "isSet() is deprecated in favor of is_set()"
|
|
||||||
check(e.isSet(), w, msg)
|
|
||||||
w.reset()
|
|
||||||
msg = "currentThread() is deprecated in favor of current_thread()"
|
|
||||||
check(threading.currentThread(), w, msg)
|
|
||||||
w.reset()
|
|
||||||
msg = "activeCount() is deprecated in favor of active_count()"
|
|
||||||
check(threading.activeCount(), w, msg)
|
|
||||||
|
|
||||||
|
|
||||||
class ThreadJoinOnShutdown(unittest.TestCase):
|
class ThreadJoinOnShutdown(unittest.TestCase):
|
||||||
|
|
|
@ -2,12 +2,22 @@
|
||||||
|
|
||||||
import sys as _sys
|
import sys as _sys
|
||||||
import _thread
|
import _thread
|
||||||
import warnings
|
|
||||||
|
|
||||||
from time import time as _time, sleep as _sleep
|
from time import time as _time, sleep as _sleep
|
||||||
from traceback import format_exc as _format_exc
|
from traceback import format_exc as _format_exc
|
||||||
from collections import deque
|
from collections import deque
|
||||||
|
|
||||||
|
# Note regarding PEP 8 compliant names
|
||||||
|
# This threading model was originally inspired by Java, and inherited
|
||||||
|
# the convention of camelCase function and method names from that
|
||||||
|
# language. Those originaly names are not in any imminent danger of
|
||||||
|
# being deprecated (even for Py3k),so this module provides them as an
|
||||||
|
# alias for the PEP 8 compliant names
|
||||||
|
# Note that using the new PEP 8 compliant names facilitates substitution
|
||||||
|
# with the multiprocessing module, which doesn't provide the old
|
||||||
|
# Java inspired names.
|
||||||
|
|
||||||
|
|
||||||
# Rename some stuff so "from threading import *" is safe
|
# Rename some stuff so "from threading import *" is safe
|
||||||
__all__ = ['active_count', 'Condition', 'current_thread', 'enumerate', 'Event',
|
__all__ = ['active_count', 'Condition', 'current_thread', 'enumerate', 'Event',
|
||||||
'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Thread',
|
'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Thread',
|
||||||
|
@ -262,6 +272,8 @@ class _Condition(_Verbose):
|
||||||
def notify_all(self):
|
def notify_all(self):
|
||||||
self.notify(len(self._waiters))
|
self.notify(len(self._waiters))
|
||||||
|
|
||||||
|
notifyAll = notify_all
|
||||||
|
|
||||||
|
|
||||||
def Semaphore(*args, **kwargs):
|
def Semaphore(*args, **kwargs):
|
||||||
return _Semaphore(*args, **kwargs)
|
return _Semaphore(*args, **kwargs)
|
||||||
|
@ -341,10 +353,7 @@ class _Event(_Verbose):
|
||||||
def is_set(self):
|
def is_set(self):
|
||||||
return self._flag
|
return self._flag
|
||||||
|
|
||||||
def isSet(self):
|
isSet = is_set
|
||||||
warnings.warn("isSet() is deprecated in favor of is_set()",
|
|
||||||
DeprecationWarning)
|
|
||||||
return self.is_set()
|
|
||||||
|
|
||||||
def set(self):
|
def set(self):
|
||||||
self._cond.acquire()
|
self._cond.acquire()
|
||||||
|
@ -646,10 +655,7 @@ class Thread(_Verbose):
|
||||||
assert self._initialized, "Thread.__init__() not called"
|
assert self._initialized, "Thread.__init__() not called"
|
||||||
return self._started.is_set() and not self._stopped
|
return self._started.is_set() and not self._stopped
|
||||||
|
|
||||||
def isAlive(self):
|
isAlive = is_alive
|
||||||
warnings.warn("isAlive() is deprecated in favor of is_alive()",
|
|
||||||
DeprecationWarning)
|
|
||||||
return self.is_alive()
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def daemon(self):
|
def daemon(self):
|
||||||
|
@ -665,23 +671,15 @@ class Thread(_Verbose):
|
||||||
self._daemonic = daemonic
|
self._daemonic = daemonic
|
||||||
|
|
||||||
def isDaemon(self):
|
def isDaemon(self):
|
||||||
warnings.warn("isDaemon() is deprecated in favor of the " \
|
|
||||||
"Thread.daemon property", DeprecationWarning)
|
|
||||||
return self.daemon
|
return self.daemon
|
||||||
|
|
||||||
def setDaemon(self, daemonic):
|
def setDaemon(self, daemonic):
|
||||||
warnings.warn("setDaemon() is deprecated in favor of the " \
|
|
||||||
"Thread.daemon property", DeprecationWarning)
|
|
||||||
self.daemon = daemonic
|
self.daemon = daemonic
|
||||||
|
|
||||||
def getName(self):
|
def getName(self):
|
||||||
warnings.warn("getName() is deprecated in favor of the " \
|
|
||||||
"Thread.name property", DeprecationWarning)
|
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
def setName(self, name):
|
def setName(self, name):
|
||||||
warnings.warn("setName() is deprecated in favor of the " \
|
|
||||||
"Thread.name property", DeprecationWarning)
|
|
||||||
self.name = name
|
self.name = name
|
||||||
|
|
||||||
# The timer class was contributed by Itamar Shtull-Trauring
|
# The timer class was contributed by Itamar Shtull-Trauring
|
||||||
|
@ -790,9 +788,7 @@ def current_thread():
|
||||||
##print "current_thread(): no current thread for", _get_ident()
|
##print "current_thread(): no current thread for", _get_ident()
|
||||||
return _DummyThread()
|
return _DummyThread()
|
||||||
|
|
||||||
def currentThread():
|
currentThread = current_thread
|
||||||
warnings.warn("currentThread() is deprecated in favor of current_thread()",
|
|
||||||
DeprecationWarning)
|
|
||||||
|
|
||||||
def active_count():
|
def active_count():
|
||||||
_active_limbo_lock.acquire()
|
_active_limbo_lock.acquire()
|
||||||
|
@ -800,10 +796,7 @@ def active_count():
|
||||||
_active_limbo_lock.release()
|
_active_limbo_lock.release()
|
||||||
return count
|
return count
|
||||||
|
|
||||||
def activeCount():
|
activeCount = active_count
|
||||||
warnings.warn("activeCount() is deprecated in favor of active_count()",
|
|
||||||
DeprecationWarning)
|
|
||||||
return active_count()
|
|
||||||
|
|
||||||
def enumerate():
|
def enumerate():
|
||||||
_active_limbo_lock.acquire()
|
_active_limbo_lock.acquire()
|
||||||
|
|
|
@ -60,6 +60,8 @@ C API
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- The deprecation warnings for the camelCase threading API names were removed.
|
||||||
|
|
||||||
Extension Modules
|
Extension Modules
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue