From f0923f521077d3592fb49edded540289686cfd68 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Mon, 18 Aug 2008 22:10:13 +0000 Subject: [PATCH] add full deprecation warnings for old threading APIs --- Lib/test/test_threading.py | 39 +++++++++++++++++++++++++++++++++++++- Lib/threading.py | 28 +++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index b36c19674ab..6458f7e2d3c 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -1,7 +1,7 @@ # Very rudimentary test of threading module import test.support -from test.support import verbose +from test.support import verbose, catch_warning import random import re import sys @@ -323,6 +323,43 @@ class ThreadTests(unittest.TestCase): msg=('%d references still around' % sys.getrefcount(weak_raising_cyclic_object()))) + def test_pep8ified_threading(self): + import threading + + def check(_, w, msg): + self.assertEqual(str(w.message), msg) + + t = threading.Thread() + with catch_warning() as w: + msg = "isDaemon() is deprecated in favor of the " \ + "Thread.daemon property" + check(t.isDaemon(), w, msg) + 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): diff --git a/Lib/threading.py b/Lib/threading.py index 9416f8057df..48c63ce8db7 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -2,6 +2,7 @@ import sys as _sys import _thread +import warnings from time import time as _time, sleep as _sleep from traceback import format_exc as _format_exc @@ -340,6 +341,11 @@ class _Event(_Verbose): def is_set(self): return self._flag + def isSet(self): + warnings.warn("isSet() is deprecated in favor of is_set()", + DeprecationWarning) + return self.is_set() + def set(self): self._cond.acquire() try: @@ -640,6 +646,11 @@ class Thread(_Verbose): assert self._initialized, "Thread.__init__() not called" return self._started.is_set() and not self._stopped + def isAlive(self): + warnings.warn("isAlive() is deprecated in favor of is_alive()", + DeprecationWarning) + return self.is_alive() + @property def daemon(self): assert self._initialized, "Thread.__init__() not called" @@ -654,15 +665,23 @@ class Thread(_Verbose): self._daemonic = daemonic def isDaemon(self): + warnings.warn("isDaemon() is deprecated in favor of the " \ + "Thread.daemon property", DeprecationWarning) return self.daemon def setDaemon(self, daemonic): + warnings.warn("setDaemon() is deprecated in favor of the " \ + "Thread.daemon property", DeprecationWarning) self.daemon = daemonic def getName(self): + warnings.warn("getName() is deprecated in favor of the " \ + "Thread.name property", DeprecationWarning) return self.name def setName(self, name): + warnings.warn("setName() is deprecated in favor of the " \ + "Thread.name property", DeprecationWarning) self.name = name # The timer class was contributed by Itamar Shtull-Trauring @@ -771,12 +790,21 @@ def current_thread(): ##print "current_thread(): no current thread for", _get_ident() return _DummyThread() +def currentThread(): + warnings.warn("currentThread() is deprecated in favor of current_thread()", + DeprecationWarning) + def active_count(): _active_limbo_lock.acquire() count = len(_active) + len(_limbo) _active_limbo_lock.release() return count +def activeCount(): + warnings.warn("activeCount() is deprecated in favor of active_count()", + DeprecationWarning) + return active_count() + def enumerate(): _active_limbo_lock.acquire() active = list(_active.values()) + list(_limbo.values())