]> granicus.if.org Git - python/commitdiff
[3.8] bpo-31508: Remove support of arguments in tkinter.ttk.Treeview.selection. ...
authorSerhiy Storchaka <storchaka@gmail.com>
Thu, 1 Feb 2018 16:49:21 +0000 (18:49 +0200)
committerGitHub <noreply@github.com>
Thu, 1 Feb 2018 16:49:21 +0000 (18:49 +0200)
It was deprecated in 3.6.

Doc/library/tkinter.ttk.rst
Doc/whatsnew/3.8.rst
Lib/tkinter/test/test_ttk/test_widgets.py
Lib/tkinter/ttk.py
Misc/NEWS.d/next/Library/2017-09-19-12-38-31.bpo-31508.pDsFJl.rst [new file with mode: 0644]

index debbc81ce1a3903ce831f3102de0d7c5a1860ff1..9c0c4cde3471ef2f12e6466f51c480b234e1c742 100644 (file)
@@ -1094,14 +1094,13 @@ ttk.Treeview
       the tree.
 
 
-   .. method:: selection(selop=None, items=None)
+   .. method:: selection()
 
-      If *selop* is not specified, returns selected items. Otherwise, it will
-      act according to the following selection methods.
+      Returns a tuple of selected items.
 
-      .. deprecated-removed:: 3.6 3.8
-         Using ``selection()`` for changing the selection state is deprecated.
-         Use the following selection methods instead.
+      .. versionchanged:: 3.8
+         ``selection()`` no longer takes arguments.  For changing the selection
+         state use the following selection methods.
 
 
    .. method:: selection_set(*items)
index 59f18838d4dbd4a0374079c77265b7017bc9fd2c..8a3f9b0f7014984ed100b1f873c03b0b741d67d3 100644 (file)
@@ -113,3 +113,11 @@ This section lists previously described changes and other bugfixes
 that may require changes to your code.
 
 
+Changes in the Python API
+-------------------------
+
+* The :meth:`~tkinter.ttk.Treeview.selection` method of the
+  :class:`tkinter.ttk.Treeview` class no longer takes arguments.  Using it with
+  arguments for changing the selection was deprecated in Python 3.6.  Use
+  specialized methods like :meth:`~tkinter.ttk.Treeview.selection_set` for
+  changing the selection.  (Contributed by Serhiy Storchaka in :issue:`31508`.)
index ab0db2878e13df4dcf000c3635eef2ffdd107207..08f5fc36fc198529793db440e9b476a043be45df 100644 (file)
@@ -1556,27 +1556,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         self.tv.selection_toggle((c1, c3))
         self.assertEqual(self.tv.selection(), (c3, item2))
 
-        if sys.version_info >= (3, 8):
-            import warnings
-            warnings.warn(
-                'Deprecated API of Treeview.selection() should be removed')
-        self.tv.selection_set()
-        self.assertEqual(self.tv.selection(), ())
-        with self.assertWarns(DeprecationWarning):
-            self.tv.selection('set', (c1, item2))
-        self.assertEqual(self.tv.selection(), (c1, item2))
-        with self.assertWarns(DeprecationWarning):
-            self.tv.selection('add', (c1, item1))
-        self.assertEqual(self.tv.selection(), (item1, c1, item2))
-        with self.assertWarns(DeprecationWarning):
-            self.tv.selection('remove', (item1, c3))
-        self.assertEqual(self.tv.selection(), (c1, item2))
-        with self.assertWarns(DeprecationWarning):
-            self.tv.selection('toggle', (c1, c3))
-        self.assertEqual(self.tv.selection(), (c3, item2))
-        with self.assertWarns(DeprecationWarning):
-            selection = self.tv.selection(None)
-        self.assertEqual(selection, (c3, item2))
 
     def test_set(self):
         self.tv['columns'] = ['A', 'B']
index e6c90cef7bb125ac50e90f3573f8e2da75098b0f..2ab5b59aa9ed56e7d788f5bd0ee6726e7547e29f 100644 (file)
@@ -28,8 +28,6 @@ __all__ = ["Button", "Checkbutton", "Combobox", "Entry", "Frame", "Label",
 import tkinter
 from tkinter import _flatten, _join, _stringify, _splitdict
 
-_sentinel = object()
-
 # Verify if Tk is new enough to not need the Tile package
 _REQUIRE_TILE = True if tkinter.TkVersion < 8.5 else False
 
@@ -1396,26 +1394,9 @@ class Treeview(Widget, tkinter.XView, tkinter.YView):
         self.tk.call(self._w, "see", item)
 
 
-    def selection(self, selop=_sentinel, items=None):
+    def selection(self):
         """Returns the tuple of selected items."""
-        if selop is _sentinel:
-            selop = None
-        elif selop is None:
-            import warnings
-            warnings.warn(
-                "The selop=None argument of selection() is deprecated "
-                "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.8, "
-                "use selection_%s() instead" % (selop,),
-                DeprecationWarning, 3)
-        else:
-            raise TypeError('Unsupported operation')
-        return self.tk.splitlist(self.tk.call(self._w, "selection", selop, items))
+        return self.tk.splitlist(self.tk.call(self._w, "selection"))
 
 
     def _selection(self, selop, items):
diff --git a/Misc/NEWS.d/next/Library/2017-09-19-12-38-31.bpo-31508.pDsFJl.rst b/Misc/NEWS.d/next/Library/2017-09-19-12-38-31.bpo-31508.pDsFJl.rst
new file mode 100644 (file)
index 0000000..b3d49ee
--- /dev/null
@@ -0,0 +1,3 @@
+Removed support of arguments in `tkinter.ttk.Treeview.selection`. It was
+deprecated in 3.6.  Use specialized methods like `selection_set` for
+changing the selection.