From 2fad10235460ac394cc8b869c41f47aba3d63594 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sun, 24 Sep 2017 14:34:09 +0300 Subject: [PATCH] bpo-27319, bpo-31508: Document deprecation in Treeview.selection(). (#3667) Defer removing old behavior to 3.8. Document new feature of selection_set() and friends. --- Doc/library/tkinter.ttk.rst | 24 +++++++++++++++++++---- Lib/tkinter/test/test_ttk/test_widgets.py | 2 +- Lib/tkinter/ttk.py | 4 ++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/Doc/library/tkinter.ttk.rst b/Doc/library/tkinter.ttk.rst index 3dad182ccc..927f7f3c6c 100644 --- a/Doc/library/tkinter.ttk.rst +++ b/Doc/library/tkinter.ttk.rst @@ -1099,26 +1099,42 @@ ttk.Treeview If *selop* is not specified, returns selected items. Otherwise, it will act according to the following selection methods. + .. deprecated-removed:: 3.6 3.8 + Using ``selection()`` for changing the selection state is deprecated. + Use the following selection methods instead. - .. method:: selection_set(items) + + .. method:: selection_set(*items) *items* becomes the new selection. + .. versionchanged:: 3.6 + *items* can be passed as separate arguments, not just as a single tuple. + - .. method:: selection_add(items) + .. method:: selection_add(*items) Add *items* to the selection. + .. versionchanged:: 3.6 + *items* can be passed as separate arguments, not just as a single tuple. + - .. method:: selection_remove(items) + .. method:: selection_remove(*items) Remove *items* from the selection. + .. versionchanged:: 3.6 + *items* can be passed as separate arguments, not just as a single tuple. - .. method:: selection_toggle(items) + + .. method:: selection_toggle(*items) Toggle the selection state of each item in *items*. + .. versionchanged:: 3.6 + *items* can be passed as separate arguments, not just as a single tuple. + .. method:: set(item, column=None, value=None) diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py index 26766a8a1f..ab0db2878e 100644 --- a/Lib/tkinter/test/test_ttk/test_widgets.py +++ b/Lib/tkinter/test/test_ttk/test_widgets.py @@ -1556,7 +1556,7 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase): self.tv.selection_toggle((c1, c3)) self.assertEqual(self.tv.selection(), (c3, item2)) - if sys.version_info >= (3, 7): + if sys.version_info >= (3, 8): import warnings warnings.warn( 'Deprecated API of Treeview.selection() should be removed') diff --git a/Lib/tkinter/ttk.py b/Lib/tkinter/ttk.py index e1a965e8df..05c7364d20 100644 --- a/Lib/tkinter/ttk.py +++ b/Lib/tkinter/ttk.py @@ -1404,13 +1404,13 @@ class Treeview(Widget, tkinter.XView, tkinter.YView): import warnings warnings.warn( "The selop=None argument of selection() is deprecated " - "and will be removed in Python 3.7", + "and will be removed in Python 3.8", DeprecationWarning, 3) elif selop in ('set', 'add', 'remove', 'toggle'): import warnings warnings.warn( "The selop argument of selection() is deprecated " - "and will be removed in Python 3.7, " + "and will be removed in Python 3.8, " "use selection_%s() instead" % (selop,), DeprecationWarning, 3) else: -- 2.40.0