diff options
author | Terry Jan Reedy <tjreedy@udel.edu> | 2023-05-17 19:59:13 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-17 19:59:13 (GMT) |
commit | aed643baa968b4959b830d37750080cac546fba7 (patch) | |
tree | 41bf6e4888610acd65bb49b9a913e934d5f91ac8 | |
parent | c649df63e0d052044a4660101d5769ff46ae9234 (diff) | |
download | cpython-aed643baa968b4959b830d37750080cac546fba7.zip cpython-aed643baa968b4959b830d37750080cac546fba7.tar.gz cpython-aed643baa968b4959b830d37750080cac546fba7.tar.bz2 |
gh-104496: IDLE - fix About for mixed tcl/tk versions (#104585)
Print both if they are different, as may happen in the future.
-rw-r--r-- | Lib/idlelib/NEWS.txt | 3 | ||||
-rw-r--r-- | Lib/idlelib/help_about.py | 37 | ||||
-rw-r--r-- | Lib/idlelib/idle_test/test_help_about.py | 4 | ||||
-rw-r--r-- | Misc/NEWS.d/next/IDLE/2023-05-17-15-11-11.gh-issue-104496.wjav-y.rst | 1 |
4 files changed, 22 insertions, 23 deletions
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index e97e3ca..f78e45e 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -4,6 +4,9 @@ Released on 2023-10-02 ========================= +gh-104486: Make About print both tcl and tk versions if different, +as is expected someday. + gh-88496 Fix IDLE test hang on macOS. gh-103314 Support sys.last_exc after exceptions in Shell. diff --git a/Lib/idlelib/help_about.py b/Lib/idlelib/help_about.py index a0085a4..cfa4ca7 100644 --- a/Lib/idlelib/help_about.py +++ b/Lib/idlelib/help_about.py @@ -11,15 +11,12 @@ from tkinter import SUNKEN, TOP, BOTTOM, LEFT, X, BOTH, W, EW, NSEW, E from idlelib import textview -version = python_version() +pyver = python_version() - -def build_bits(): - "Return bits for platform." - if sys.platform == 'darwin': - return '64' if sys.maxsize > 2**32 else '32' - else: - return architecture()[0][:2] +if sys.platform == 'darwin': + bits = '64' if sys.maxsize > 2**32 else '32' +else: + bits = architecture()[0][:2] class AboutDialog(Toplevel): @@ -45,7 +42,7 @@ class AboutDialog(Toplevel): self.create_widgets() self.resizable(height=False, width=False) self.title(title or - f'About IDLE {version} ({build_bits()} bit)') + f'About IDLE {pyver} ({bits} bit)') self.transient(parent) self.grab_set() self.protocol("WM_DELETE_WINDOW", self.ok) @@ -76,8 +73,8 @@ class AboutDialog(Toplevel): bg=self.bg, font=('courier', 24, 'bold')) header.grid(row=0, column=0, sticky=E, padx=10, pady=10) - tk_patchlevel = self.info_patchlevel() - ext = '.png' if tk_patchlevel >= (8, 6) else '.gif' + tkpatch = self._root().getvar('tk_patchLevel') + ext = '.png' if tkpatch >= '8.6' else '.gif' icon = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'Icons', f'idle_48{ext}') self.icon_image = PhotoImage(master=self._root(), file=icon) @@ -102,13 +99,11 @@ class AboutDialog(Toplevel): height=2, bg=self.bg).grid(row=8, column=0, sticky=EW, columnspan=3, padx=5, pady=5) - pyver = Label(frame_background, - text='Python version: ' + version, - fg=self.fg, bg=self.bg) - pyver.grid(row=9, column=0, sticky=W, padx=10, pady=0) - tkver = Label(frame_background, text=f'Tk version: {tk_patchlevel}', - fg=self.fg, bg=self.bg) - tkver.grid(row=9, column=1, sticky=W, padx=2, pady=0) + tclver = str(self.info_patchlevel()) + tkver = ' and ' + tkpatch if tkpatch != tclver else '' + versions = f"Python {pyver} with tcl/tk {tclver}{tkver}" + vers = Label(frame_background, text=versions, fg=self.fg, bg=self.bg) + vers.grid(row=9, column=0, sticky=W, padx=10, pady=0) py_buttons = Frame(frame_background, bg=self.bg) py_buttons.grid(row=10, column=0, columnspan=2, sticky=NSEW) self.py_license = Button(py_buttons, text='License', width=8, @@ -128,10 +123,10 @@ class AboutDialog(Toplevel): height=2, bg=self.bg).grid(row=11, column=0, sticky=EW, columnspan=3, padx=5, pady=5) - idlever = Label(frame_background, - text='IDLE version: ' + version, + idle = Label(frame_background, + text='IDLE', fg=self.fg, bg=self.bg) - idlever.grid(row=12, column=0, sticky=W, padx=10, pady=0) + idle.grid(row=12, column=0, sticky=W, padx=10, pady=0) idle_buttons = Frame(frame_background, bg=self.bg) idle_buttons.grid(row=13, column=0, columnspan=3, sticky=NSEW) self.readme = Button(idle_buttons, text='README', width=8, diff --git a/Lib/idlelib/idle_test/test_help_about.py b/Lib/idlelib/idle_test/test_help_about.py index b915535..8b79487 100644 --- a/Lib/idlelib/idle_test/test_help_about.py +++ b/Lib/idlelib/idle_test/test_help_about.py @@ -36,7 +36,7 @@ class LiveDialogTest(unittest.TestCase): del cls.root def test_build_bits(self): - self.assertIn(help_about.build_bits(), ('32', '64')) + self.assertIn(help_about.bits, ('32', '64')) def test_dialog_title(self): """Test about dialog title""" @@ -107,7 +107,7 @@ class DefaultTitleTest(unittest.TestCase): """Test about dialog title""" self.assertEqual(self.dialog.title(), f'About IDLE {python_version()}' - f' ({help_about.build_bits()} bit)') + f' ({help_about.bits} bit)') class CloseTest(unittest.TestCase): diff --git a/Misc/NEWS.d/next/IDLE/2023-05-17-15-11-11.gh-issue-104496.wjav-y.rst b/Misc/NEWS.d/next/IDLE/2023-05-17-15-11-11.gh-issue-104496.wjav-y.rst new file mode 100644 index 0000000..18d8315 --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2023-05-17-15-11-11.gh-issue-104496.wjav-y.rst @@ -0,0 +1 @@ +About prints both tcl and tk versions if different (expected someday). |