New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Restore deleted tkinter functions with deprecaton dummies. #66259
Comments
I updated my source code, and it looks like turtledemo doesn't launch anymore. I get the following error: Traceback (most recent call last):
File "/Users/litacho/Development/cpython/Lib/runpy.py", line 170, in _run_module_as_main
"__main__", mod_spec)
File "/Users/litacho/Development/cpython/Lib/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/Users/litacho/Development/cpython/Lib/turtledemo/__main__.py", line 328, in <module>
main()
File "/Users/litacho/Development/cpython/Lib/turtledemo/__main__.py", line 324, in main
demo = DemoWindow()
File "/Users/litacho/Development/cpython/Lib/turtledemo/__main__.py", line 124, in __init__
self.mBar.tk_menuBar(self.ExamplesBtn, self.OptionsBtn)
AttributeError: 'Frame' object has no attribute 'tk_menuBar' I dug into it and it looks like tk_menuBar was removed due to a fix in bpo-4350. If tk_menuBar needs to be removed, what method does turtledemo need to call instead to propagate its panels? |
Looks like this method was not doing anything. I removed it and the demo is working just fine. Here is a patch. |
Indeed, unlike to other removed methods which raised an exception, removing this doing nothing method can break existing code. We should restore it and add deprecation warning. Of course the use of obsolete method should be removed from turtledemo. |
Here is a patch which replaces obsolete and non-working menu creation code by modernized code. Now menu should be correctly displayed on MacOS. |
New changeset 3c4d45f73622 by Terry Jan Reedy in branch '2.7': New changeset 976f31b2858b by Terry Jan Reedy in branch '3.4': New changeset 9e9e6e9f4cce by Terry Jan Reedy in branch 'default': |
The turtledemo part of this issue is over. (Lita, tracebacks are not 'crash' issues. Segfaults and the Windows equivalent are.) The restoration patch could have been attached to 4350. But since it is here, I retitled this issue instead of closing it. Patch looks good to me. Turtledemo menus are a different issue. I opened bpo-22065 and plan to post a revised patch there. |
May be add deprecation warnings in 2.7 and 3.4? This method's calls can be left in existing user code as in turtledemo and this code behaves differently from how it was designed and behaved with Tk <4.0. As far as now this methods are empty, this bug can be unnoticed long time. |
Since Deprecation warnings are off by default, backporting seems like a good idea. There was talk on pydev about adding more py3 warnings to 2.7, which this essentially is (though the removal is delated to 3.6). |
New changeset f7c84674bdec by Serhiy Storchaka in branch '2.7': New changeset a50297e793f9 by Serhiy Storchaka in branch '3.4': New changeset 7e6beea0eeab by Serhiy Storchaka in branch 'default': |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: