mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	gh-97527: IDLE - fix buggy macosx patch (#98313)
#97530 fixed IDLE tests possibly crashing on a Mac without a GUI. But it resulted in IDLE not starting in 3.10.8, 3.12.0a1, and Microsoft Python 3.10.2288.0 when test/* is not installed. After this patch, test.* is only imported when testing on Mac.
This commit is contained in:
		
							parent
							
								
									f6b1e4048d
								
							
						
					
					
						commit
						35fa5d5e7f
					
				
					 3 changed files with 34 additions and 16 deletions
				
			
		|  | @ -4,6 +4,11 @@ Released on 2022-10-03 | |||
| ========================= | ||||
| 
 | ||||
| 
 | ||||
| gh-97527: Fix a bug in the previous bugfix that caused IDLE to not | ||||
| start when run with 3.10.8, 3.12.0a1, and at least Microsoft Python | ||||
| 3.10.2288.0 installed without the Lib/test package.  3.11.0 was never | ||||
| affected. | ||||
| 
 | ||||
| gh-65802: Document handling of extensions in Save As dialogs. | ||||
| 
 | ||||
| gh-95191: Include prompts when saving Shell (interactive input/output). | ||||
|  |  | |||
|  | @ -4,7 +4,6 @@ | |||
| from os.path import expanduser | ||||
| import plistlib | ||||
| from sys import platform  # Used in _init_tk_type, changed by test. | ||||
| from test.support import requires, ResourceDenied | ||||
| 
 | ||||
| import tkinter | ||||
| 
 | ||||
|  | @ -16,14 +15,24 @@ | |||
| 
 | ||||
| def _init_tk_type(): | ||||
|     """ Initialize _tk_type for isXyzTk functions. | ||||
| 
 | ||||
|     This function is only called once, when _tk_type is still None. | ||||
|     """ | ||||
|     global _tk_type | ||||
|     if platform == 'darwin': | ||||
| 
 | ||||
|         # When running IDLE, GUI is present, test/* may not be. | ||||
|         # When running tests, test/* is present, GUI may not be. | ||||
|         # If not, guess most common.  Does not matter for testing. | ||||
|         from idlelib.__init__ import testing | ||||
|         if testing: | ||||
|             from test.support import requires, ResourceDenied | ||||
|             try: | ||||
|                 requires('gui') | ||||
|         except ResourceDenied:  # Possible when testing. | ||||
|             _tk_type = "cocoa"  # Newest and most common. | ||||
|         else: | ||||
|             except ResourceDenied: | ||||
|                 _tk_type = "cocoa" | ||||
|                 return | ||||
| 
 | ||||
|         root = tkinter.Tk() | ||||
|         ws = root.tk.call('tk', 'windowingsystem') | ||||
|         if 'x11' in ws: | ||||
|  | @ -37,6 +46,7 @@ def _init_tk_type(): | |||
|         root.destroy() | ||||
|     else: | ||||
|         _tk_type = "other" | ||||
|     return | ||||
| 
 | ||||
| def isAquaTk(): | ||||
|     """ | ||||
|  |  | |||
|  | @ -0,0 +1,3 @@ | |||
| Fix a bug in the previous bugfix that caused IDLE to not start when run with | ||||
| 3.10.8, 3.12.0a1, and at least Microsoft Python 3.10.2288.0 installed | ||||
| without the Lib/test package.  3.11.0 was never affected. | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Terry Jan Reedy
						Terry Jan Reedy