https://github.com/python/cpython/commit/1a355d73663692d77811686f5d655ce161a256a1
commit: 1a355d73663692d77811686f5d655ce161a256a1
branch: 3.14
author: Miss Islington (bot) <[email protected]>
committer: terryjreedy <[email protected]>
date: 2025-10-11T02:02:34Z
summary:

[3.14] gh-96491: Deduplicate version in IDLE shell title (GH-139841) (#139931)

gh-96491: Deduplicate version in IDLE shell title (GH-139841)

Saving to a file added both the filename and repeated the version.
---------
(cherry picked from commit d4e5802588db3459f04d4b8013cc571a8988e203)

Co-authored-by: Stan Ulbrych <[email protected]>
Co-authored-by: Terry Jan Reedy <[email protected]>

files:
A Misc/NEWS.d/next/IDLE/2025-10-09-12-53-47.gh-issue-96491.4YKxvy.rst
M Lib/idlelib/CREDITS.txt
M Lib/idlelib/editor.py
M Lib/idlelib/idle_test/test_outwin.py
M Lib/idlelib/pyshell.py

diff --git a/Lib/idlelib/CREDITS.txt b/Lib/idlelib/CREDITS.txt
index bea3ba7c20de22..1b853e8cc1c462 100644
--- a/Lib/idlelib/CREDITS.txt
+++ b/Lib/idlelib/CREDITS.txt
@@ -37,6 +37,7 @@ Major contributors since 2005:
 - 2014: Saimadhav Heblikar
 - 2015: Mark Roseman
 - 2017: Louie Lu, Cheryl Sabella, and Serhiy Storchaka
+- 2025: Stan Ulbrych
 
 For additional details refer to NEWS.txt and Changelog.
 
diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py
index b4d6d25871bcf4..83112d85575e47 100644
--- a/Lib/idlelib/editor.py
+++ b/Lib/idlelib/editor.py
@@ -33,7 +33,6 @@
 
 # The default tab setting for a Text widget, in average-width characters.
 TK_TABWIDTH_DEFAULT = 8
-_py_version = ' (%s)' % platform.python_version()
 darwin = sys.platform == 'darwin'
 
 def _sphinx_version():
@@ -1008,12 +1007,16 @@ def open_recent_file(fn_closure=file_name):
     def saved_change_hook(self):
         short = self.short_title()
         long = self.long_title()
+        _py_version = ' (%s)' % platform.python_version()
         if short and long and not macosx.isCocoaTk():
             # Don't use both values on macOS because
             # that doesn't match platform conventions.
             title = short + " - " + long + _py_version
         elif short:
-            title = short
+            if short == "IDLE Shell":
+                title = short + " " +  platform.python_version()
+            else:
+                title = short + _py_version
         elif long:
             title = long
         else:
diff --git a/Lib/idlelib/idle_test/test_outwin.py 
b/Lib/idlelib/idle_test/test_outwin.py
index 81f4aad7e95e95..0f13363f84f361 100644
--- a/Lib/idlelib/idle_test/test_outwin.py
+++ b/Lib/idlelib/idle_test/test_outwin.py
@@ -1,6 +1,7 @@
 "Test outwin, coverage 76%."
 
 from idlelib import outwin
+import platform
 import sys
 import unittest
 from test.support import requires
@@ -41,7 +42,7 @@ def test_ispythonsource(self):
         self.assertFalse(w.ispythonsource(__file__))
 
     def test_window_title(self):
-        self.assertEqual(self.window.top.title(), 'Output')
+        self.assertEqual(self.window.top.title(), 'Output' + ' (%s)' % 
platform.python_version())
 
     def test_maybesave(self):
         w = self.window
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py
index 74a0e03994f69a..1b7c2af1a923d7 100755
--- a/Lib/idlelib/pyshell.py
+++ b/Lib/idlelib/pyshell.py
@@ -22,7 +22,6 @@
 import linecache
 import os
 import os.path
-from platform import python_version
 import re
 import socket
 import subprocess
@@ -841,7 +840,7 @@ def display_executing_dialog(self):
 class PyShell(OutputWindow):
     from idlelib.squeezer import Squeezer
 
-    shell_title = "IDLE Shell " + python_version()
+    shell_title = "IDLE Shell"
 
     # Override classes
     ColorDelegator = ModifiedColorDelegator
diff --git 
a/Misc/NEWS.d/next/IDLE/2025-10-09-12-53-47.gh-issue-96491.4YKxvy.rst 
b/Misc/NEWS.d/next/IDLE/2025-10-09-12-53-47.gh-issue-96491.4YKxvy.rst
new file mode 100644
index 00000000000000..beb6ef5ade562f
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2025-10-09-12-53-47.gh-issue-96491.4YKxvy.rst
@@ -0,0 +1 @@
+Deduplicate version number in IDLE shell title bar after saving to a file.

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to