From c2647f2e45d2741fc44fd621966e05d15f2cd26a Mon Sep 17 00:00:00 2001 From: Dong-hee Na Date: Fri, 18 Jan 2019 23:09:43 +0900 Subject: bpo-35283: Add pending deprecation warning for Thread.isAlive (GH-11604) Add a pending deprecated warning for the threading.Thread.isAlive() method. --- Lib/test/support/__init__.py | 4 ++-- Lib/test/test_threading.py | 3 ++- Lib/threading.py | 12 ++++++++++-- .../next/Library/2019-01-07-17-17-16.bpo-35283.WClosC.rst | 2 ++ 4 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2019-01-07-17-17-16.bpo-35283.WClosC.rst diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 25c05ed..a9cfa2a 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -2224,14 +2224,14 @@ def start_threads(threads, unlock=None): endtime += 60 for t in started: t.join(max(endtime - time.monotonic(), 0.01)) - started = [t for t in started if t.isAlive()] + started = [t for t in started if t.is_alive()] if not started: break if verbose: print('Unable to join %d threads during a period of ' '%d minutes' % (len(started), timeout)) finally: - started = [t for t in started if t.isAlive()] + started = [t for t in started if t.is_alive()] if started: faulthandler.dump_traceback(sys.stdout) raise AssertionError('Unable to join %d threads' % len(started)) diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index 8160a5a..27f328d 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -415,7 +415,8 @@ class ThreadTests(BaseTestCase): t.setDaemon(True) t.getName() t.setName("name") - t.isAlive() + with self.assertWarnsRegex(PendingDeprecationWarning, 'use is_alive()'): + t.isAlive() e = threading.Event() e.isSet() threading.activeCount() diff --git a/Lib/threading.py b/Lib/threading.py index bb41456..f260a7c 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -1007,7 +1007,7 @@ class Thread: When the timeout argument is present and not None, it should be a floating point number specifying a timeout for the operation in seconds (or fractions thereof). As join() always returns None, you must call - isAlive() after join() to decide whether a timeout happened -- if the + is_alive() after join() to decide whether a timeout happened -- if the thread is still alive, the join() call timed out. When the timeout argument is not present or None, the operation will @@ -1091,7 +1091,15 @@ class Thread: self._wait_for_tstate_lock(False) return not self._is_stopped - isAlive = is_alive + def isAlive(self): + """Return whether the thread is alive. + + This method is deprecated, use is_alive() instead. + """ + import warnings + warnings.warn('isAlive() is deprecated, use is_alive() instead', + PendingDeprecationWarning, stacklevel=2) + return self.is_alive() @property def daemon(self): diff --git a/Misc/NEWS.d/next/Library/2019-01-07-17-17-16.bpo-35283.WClosC.rst b/Misc/NEWS.d/next/Library/2019-01-07-17-17-16.bpo-35283.WClosC.rst new file mode 100644 index 0000000..99544f4 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2019-01-07-17-17-16.bpo-35283.WClosC.rst @@ -0,0 +1,2 @@ +Add a pending deprecated warning for the :meth:`threading.Thread.isAlive` method. +Patch by Dong-hee Na. -- cgit v0.12