From 4a2d98a1e98de25c5114d11fcb0f9fedbb057e51 Mon Sep 17 00:00:00 2001 From: wyz23x2 <52805709+wyz23x2@users.noreply.github.com> Date: Fri, 7 May 2021 23:53:23 +0800 Subject: [PATCH] bpo-41730: Show deprecation warnings for tkinter.tix (GH-22186) Co-authored-by: E-Paine <63801254+E-Paine@users.noreply.github.com> Co-authored-by: Zachary Ware --- Lib/test/test_tix.py | 15 ++++++++++----- Lib/tkinter/tix.py | 9 ++++++++- .../2020-09-10-07-23-24.bpo-41730.DyKFi9.rst | 1 + 3 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2020-09-10-07-23-24.bpo-41730.DyKFi9.rst diff --git a/Lib/test/test_tix.py b/Lib/test/test_tix.py index e6d759e7bd3..a2fb357fd0c 100644 --- a/Lib/test/test_tix.py +++ b/Lib/test/test_tix.py @@ -1,7 +1,7 @@ +import sys import unittest from test import support from test.support import import_helper -import sys # Skip this test if the _tkinter module wasn't built. _tkinter = import_helper.import_module('_tkinter') @@ -9,7 +9,9 @@ # Skip test if tk cannot be initialized. support.requires('gui') -from tkinter import tix, TclError +# Suppress the deprecation warning +tix = import_helper.import_module('tkinter.tix', deprecated=True) +from tkinter import TclError class TestTix(unittest.TestCase): @@ -24,9 +26,12 @@ def setUp(self): else: self.addCleanup(self.root.destroy) - def test_tix_available(self): - # this test is just here to make setUp run - pass + def test_tix_deprecation(self): + with self.assertWarns(DeprecationWarning): + import_helper.import_fresh_module( + 'tkinter.tix', + fresh=('tkinter.tix',), + ) if __name__ == '__main__': diff --git a/Lib/tkinter/tix.py b/Lib/tkinter/tix.py index 7d240754036..44ecae1a326 100644 --- a/Lib/tkinter/tix.py +++ b/Lib/tkinter/tix.py @@ -21,13 +21,20 @@ # Compare the demo tixwidgets.py to the original Tcl program and you will # appreciate the advantages. # +# NOTE: This module is deprecated since Python 3.6. import os +import warnings import tkinter from tkinter import * from tkinter import _cnfmerge -import _tkinter # If this fails your Python may not be configured for Tk +warnings.warn( + 'The Tix Tk extension is unmaintained, and the tkinter.tix wrapper module' + ' is deprecated in favor of tkinter.ttk', + DeprecationWarning, + stacklevel=2, + ) # Some more constants (for consistency with Tkinter) WINDOW = 'window' diff --git a/Misc/NEWS.d/next/Library/2020-09-10-07-23-24.bpo-41730.DyKFi9.rst b/Misc/NEWS.d/next/Library/2020-09-10-07-23-24.bpo-41730.DyKFi9.rst new file mode 100644 index 00000000000..63d8353a7aa --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-09-10-07-23-24.bpo-41730.DyKFi9.rst @@ -0,0 +1 @@ +``DeprecationWarning`` is now raised when importing :mod:`tkinter.tix`, which has been deprecated in documentation since Python 3.6.