Repository navigation
fix(cli): don't crash on redirected output with a legacy code page - #645
Closed
Siddhanthguptaa wants to merge 1 commit into
Closed
Siddhanthguptaa wants to merge 1 commit into
Siddhanthguptaa wants to merge 1 commit into
Conversation
With output redirected on Windows, stdout uses cp1252 and printing the check mark raised UnicodeEncodeError, so even `concore init demo > f` exited 1. Set errors="replace" on stdout when the CLI is invoked so unencodable characters are replaced instead.
Author
|
Closing for now to keep my open PRs to a number I can follow up on properly. Happy to reopen if this is wanted. |
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.
Fixes #644
When output is redirected on Windows, stdout uses cp1252 and the CLI died on the first "✓" with UnicodeEncodeError. The
cli()group callback now setserrors="replace"on stdout, so characters the code page can't encode print as?instead of crashing. Output in UTF-8 terminals is unchanged, and importingconcore_clidoesn't touch the streams.Testing
test_cli_redirected_output_with_legacy_encodingrunsinitin a subprocess withPYTHONIOENCODING=cp1252and captured output; it fails on current dev with the UnicodeEncodeError and passes with this change (works on any OS).ruff check .andruff format --check .pass.concore init demo > out.txtnow exits 0 (was 1); the file shows? Project created successfully!.