classification
Title: Restore deleted tkinter functions with deprecaton dummies.
Type: behavior Stage: resolved
Components: Tkinter Versions: Python 3.4, Python 3.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: serhiy.storchaka Nosy List: Lita.Cho, jesstess, python-dev, serhiy.storchaka, terry.reedy
Priority: normal Keywords: patch

Created on 2014-07-24 21:43 by Lita.Cho, last changed 2014-07-25 10:12 by serhiy.storchaka. This issue is now closed.

Files
File name Uploaded Description Edit
tk_menubar_fix.patch Lita.Cho, 2014-07-24 22:03
tkinter_restore_empty_methods.patch serhiy.storchaka, 2014-07-25 05:49 review
turtledemo_menu.patch serhiy.storchaka, 2014-07-25 06:43 review
Messages (9)
msg223899 - (view) Author: Lita Cho (Lita.Cho) * Date: 2014-07-24 21:43
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 issue4350. If tk_menuBar needs to be removed, what method does turtledemo need to call instead to propagate its panels?
msg223901 - (view) Author: Lita Cho (Lita.Cho) * Date: 2014-07-24 22:03
Looks like this method was not doing anything. I removed it and the demo is working just fine. Here is a patch.
msg223918 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-07-25 05:49
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.
msg223922 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-07-25 06:43
Here is a patch which replaces obsolete and non-working menu creation code by modernized code. Now menu should be correctly displayed on MacOS.
msg223925 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-07-25 07:08
New changeset 3c4d45f73622 by Terry Jan Reedy in branch '2.7':
Issue #22061: remove call of useless function slated for removal.
http://hg.python.org/cpython/rev/3c4d45f73622

New changeset 976f31b2858b by Terry Jan Reedy in branch '3.4':
Issue #22061: remove call of useless function slated for removal.
http://hg.python.org/cpython/rev/976f31b2858b

New changeset 9e9e6e9f4cce by Terry Jan Reedy in branch 'default':
Issue #22061: remove call of useless function slated for removal.
http://hg.python.org/cpython/rev/9e9e6e9f4cce
msg223928 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-07-25 07:59
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 #22065 and plan to post a revised patch there.
msg223929 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-07-25 08:11
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.
msg223931 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-07-25 08:31
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).
msg223933 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-07-25 09:31
New changeset f7c84674bdec by Serhiy Storchaka in branch '2.7':
Issue #22061: Add deprecation warnings in empty obsolete methods.
http://hg.python.org/cpython/rev/f7c84674bdec

New changeset a50297e793f9 by Serhiy Storchaka in branch '3.4':
Issue #22061: Add deprecation warnings in empty obsolete methods.
http://hg.python.org/cpython/rev/a50297e793f9

New changeset 7e6beea0eeab by Serhiy Storchaka in branch 'default':
Issue #22061: Restored empty obsolete methods removed in issue #4350 and
http://hg.python.org/cpython/rev/7e6beea0eeab
History
Date User Action Args
2014-07-25 10:12:54serhiy.storchakasetstatus: open -> closed
resolution: fixed
stage: commit review -> resolved
2014-07-25 09:31:53python-devsetmessages: + msg223933
2014-07-25 08:31:16terry.reedysetmessages: + msg223931
2014-07-25 08:11:57serhiy.storchakasetmessages: + msg223929
2014-07-25 07:59:15terry.reedysetassignee: serhiy.storchaka
title: turtledemo doesn't launch due to changes in tkinter -> Restore deleted tkinter functions with deprecaton dummies.
messages: + msg223928
stage: patch review -> commit review
2014-07-25 07:08:43python-devsetnosy: + python-dev
messages: + msg223925
2014-07-25 06:43:07serhiy.storchakasetfiles: + turtledemo_menu.patch

messages: + msg223922
2014-07-25 05:49:53serhiy.storchakasetfiles: + tkinter_restore_empty_methods.patch
messages: + msg223918

components: + Tkinter
type: crash -> behavior
stage: patch review
2014-07-24 22:03:17Lita.Chosetfiles: + tk_menubar_fix.patch
keywords: + patch
messages: + msg223901
2014-07-24 21:43:23Lita.Chocreate