Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-46659: Fix the MBCS codec alias on Windows #31218

Merged
merged 2 commits into from Feb 22, 2022

Conversation

vstinner
Copy link
Member

@vstinner vstinner commented Feb 8, 2022

@vstinner
Copy link
Member Author

vstinner commented Feb 8, 2022

@eryksun: Does this approach look good to you? It's basically restores Python 3.10 behavior. I just adjusted the test.

self.assertEqual(codec.name, "mbcs")
# Check that looking up our 'default' codepage will return
# mbcs when we don't have a more specific one available
code_page = 9999
Copy link
Contributor

@eryksun eryksun Feb 8, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's use 99999 instead, which is beyond the range of anything that Python might ever define. See code page identifiers.

@eryksun
Copy link
Contributor

eryksun commented Feb 8, 2022

Does this approach look good to you? It's basically restores Python 3.10 behavior. I just adjusted the test.

Yes, having a fallback for the process ANSI code page is for the best -- even though we support all of the known code pages in standard Windows locales. Thank you for clarifying the reason for its existence in the comments.

I'd prefer to also have a fallback to "oem" for the process OEM code page, but adding _winapi.GetOEMCP() is an enhancement request.

@vstinner vstinner merged commit ccbe804 into python:main Feb 22, 2022
11 checks passed
@vstinner vstinner deleted the mbcs_alias2 branch Feb 22, 2022
@vstinner
Copy link
Member Author

vstinner commented Feb 22, 2022

Thanks @eryksun for your review.

My use case is to deprecate the locale.getdefaultlocale() function. Adding an alias for the OEM page code is unrelated. If you consider that it's an useful feature, you can open a separated PR. So far, nobody requested it, so maybe it's not needed. I'm not convinced that the fallbak for the ANSI code page is used by anyone.

@eryksun
Copy link
Contributor

eryksun commented Feb 23, 2022

I'm not convinced that the fallbak for the ANSI code page is used by anyone.

I don't know whether the ANSI fallback is used by anyone. As I said, I've never worked with supplemental/replacement custom locales. The suggestion can be shelved until someone has an issue or explicitly requests a fallback for OEM as something required for their work environment.

@vstinner
Copy link
Member Author

vstinner commented Feb 23, 2022

The suggestion can be shelved until someone has an issue or explicitly requests a fallback for OEM as something required for their work environment.

It sounds perfectly reasonable :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants