mirror of
https://github.com/python/cpython.git
synced 2026-06-26 21:04:42 -04:00
gh-127802: Schedule removal of legacy tkinter variable trace methods in 3.17 (GH-152012)
The tkinter.Variable methods trace_variable(), trace(), trace_vdelete() and trace_vinfo(), deprecated since Python 3.14, are now scheduled for removal in Python 3.17. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -68,3 +68,13 @@ Pending removal in Python 3.17
|
||||
|
||||
See :pep:`PEP 688 <688#current-options>` for more details.
|
||||
(Contributed by Shantanu Jain in :gh:`91896`.)
|
||||
|
||||
* :mod:`tkinter`:
|
||||
|
||||
- The :class:`!tkinter.Variable` methods :meth:`!trace_variable`,
|
||||
:meth:`!trace` (an alias of :meth:`!trace_variable`),
|
||||
:meth:`!trace_vdelete` and :meth:`!trace_vinfo`, deprecated since
|
||||
Python 3.14, are scheduled for removal in Python 3.17.
|
||||
Use :meth:`!trace_add`, :meth:`!trace_remove` and :meth:`!trace_info`
|
||||
instead.
|
||||
(Contributed by Serhiy Storchaka in :gh:`120220`.)
|
||||
|
||||
+15
-9
@@ -505,12 +505,14 @@ class Variable:
|
||||
Return the name of the callback.
|
||||
|
||||
This deprecated method wraps a deprecated Tcl method removed
|
||||
in Tcl 9.0. Use trace_add() instead.
|
||||
in Tcl 9.0 and will be removed in Python 3.17. Use trace_add()
|
||||
instead.
|
||||
"""
|
||||
import warnings
|
||||
warnings.warn(
|
||||
"trace_variable() is deprecated and not supported with Tcl 9; "
|
||||
"use trace_add() instead.",
|
||||
"trace_variable() is deprecated and will be removed in Python "
|
||||
"3.17; use trace_add() instead. It is not supported with "
|
||||
"Tcl 9.",
|
||||
DeprecationWarning, stacklevel=2)
|
||||
cbname = self._register(callback)
|
||||
self._tk.call("trace", "variable", self._name, mode, cbname)
|
||||
@@ -525,12 +527,14 @@ class Variable:
|
||||
CBNAME is the name of the callback returned from trace_variable or trace.
|
||||
|
||||
This deprecated method wraps a deprecated Tcl method removed
|
||||
in Tcl 9.0. Use trace_remove() instead.
|
||||
in Tcl 9.0 and will be removed in Python 3.17. Use trace_remove()
|
||||
instead.
|
||||
"""
|
||||
import warnings
|
||||
warnings.warn(
|
||||
"trace_vdelete() is deprecated and not supported with Tcl 9; "
|
||||
"use trace_remove() instead.",
|
||||
"trace_vdelete() is deprecated and will be removed in Python "
|
||||
"3.17; use trace_remove() instead. It is not supported with "
|
||||
"Tcl 9.",
|
||||
DeprecationWarning, stacklevel=2)
|
||||
self._tk.call("trace", "vdelete", self._name, mode, cbname)
|
||||
cbname = self._tk.splitlist(cbname)[0]
|
||||
@@ -548,12 +552,14 @@ class Variable:
|
||||
"""Return all trace callback information.
|
||||
|
||||
This deprecated method wraps a deprecated Tcl method removed
|
||||
in Tcl 9.0. Use trace_info() instead.
|
||||
in Tcl 9.0 and will be removed in Python 3.17. Use trace_info()
|
||||
instead.
|
||||
"""
|
||||
import warnings
|
||||
warnings.warn(
|
||||
"trace_vinfo() is deprecated and not supported with Tcl 9; "
|
||||
"use trace_info() instead.",
|
||||
"trace_vinfo() is deprecated and will be removed in Python "
|
||||
"3.17; use trace_info() instead. It is not supported with "
|
||||
"Tcl 9.",
|
||||
DeprecationWarning, stacklevel=2)
|
||||
return [self._tk.splitlist(x) for x in self._tk.splitlist(
|
||||
self._tk.call("trace", "vinfo", self._name))]
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
The deprecated :class:`tkinter.Variable` methods :meth:`!trace_variable`,
|
||||
:meth:`!trace`, :meth:`!trace_vdelete` and :meth:`!trace_vinfo` are now
|
||||
scheduled for removal in Python 3.17.
|
||||
Reference in New Issue
Block a user