When tkinter get's a keyword argument, it tries to convert it to a string that tcl/tk can handle. The problem is that when a callable object is passed in as the value for a keyword argument, tkinter usually calls an internal _register method but it's missing from the Image class. Here in tkinter/__init__.py, tkinter tries to call self._register(v) but there is no method named _register in the Image class. There is a _register method for Misc and Variable but Image doesn't inherit from any of those. A minimal reproducible example:
The expected error is: _tkinter.TclError: expected integer but got "140140827421696print" but it's throwing AttributeError: 'PhotoImage' object has no attribute '_register'.
The only time this bug would appear is when someone makes a mistake and calls PhotoImage or BitmapImage with a callable keyword parameter. So the only difference is the error message.
Your environment
The issue isn't environment dependant.
CPython versions tested on: 3.10 but from the source code, it should be present in all 3.7+ versions of cpython.
The text was updated successfully, but these errors were encountered:
Bug report
When
tkinterget's a keyword argument, it tries to convert it to a string that tcl/tk can handle. The problem is that when a callable object is passed in as the value for a keyword argument,tkinterusually calls an internal_registermethod but it's missing from theImageclass. Here intkinter/__init__.py,tkintertries to callself._register(v)but there is no method named_registerin theImageclass. There is a_registermethod forMiscandVariablebutImagedoesn't inherit from any of those. A minimal reproducible example:The expected error is:
_tkinter.TclError: expected integer but got "140140827421696print"but it's throwingAttributeError: 'PhotoImage' object has no attribute '_register'.The only time this bug would appear is when someone makes a mistake and calls
PhotoImageorBitmapImagewith a callable keyword parameter. So the only difference is the error message.Your environment
The issue isn't environment dependant.
The text was updated successfully, but these errors were encountered: