gh-58781: Do not exit IDLE if the user config directory cannot be created - #157636
Open
serhiy-storchaka wants to merge 3 commits into
Open
serhiy-storchaka wants to merge 3 commits into
serhiy-storchaka wants to merge 3 commits into
Conversation
An invalid color in a user highlight theme crashed the Settings dialog. Now it is ignored with a warning and the default color is used instead.
…be created IDLE now starts with default settings and shows a warning instead of exiting silently when started with pythonw. This also fixes the failure of the subprocess to connect in that case.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
If the home directory does not exist and
.idlerccannot be created in the current directory,GetUserCfgDir()raisedSystemExitat import ofidlelib.config, before Tk was available, with the explanation only on stderr, which is invisible with pythonw. The same happened in the user-code subprocess, which importsidlelib.configtoo, producing the "IDLE's subprocess didn't make connection" error from the report.Now
GetUserCfgDir()returns''and IDLE runs as it does in testing mode: default settings, nothing saved. The problems (a nonexistent home directory, a directory that could not be created) are reported in the configuration warning shown after the root is created, together with other configuration problems.The other parts of the issue are already fixed:
os.path.expanduser()on Windows ignoresHOMEsince 3.8 and the user directory is computed once and used consistently, and printing to aNonestderr no longer raises.Stacked on #157620.
🤖 Generated with Claude Code