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

Fix the test that broke after 3.12 changes to locale.normalize #452

Merged
merged 6 commits into from
Dec 5, 2023

Conversation

kkalinowski-reef
Copy link
Collaborator

  • On Linux, C.UTF-8 locale is now part of the standard. macOS and Windows use en_US.UTF-8 instead;
  • Up to 3.11, locale.normalize was converting C.UTF-8 into en_US.UTF-8. If you normalized the locale string, it was impossible to set C.UTF-8;
  • In 3.12, C.UTF-8 maps to itself;
  • gh-74940: Allow fallback to UTF-8 encoding on systems with no locales installed. python/cpython#14925 <– where the change happened;
  • https://peps.python.org/pep-0538/ <– rationale (TL;DR: locale works on duct tape for some time now) ;
  • C.UTF-8 doesn't seem to be used anywhere else in the codebase, except for this one test;
  • Other fix would be to inject a previous value to locale.locale_alias dictionary for certain platforms. However, this is part of the private implementation and could change without prior notice;
  • More changes to the locale are scheduled for 3.15.

- On Linux, C.UTF-8 locale is now part of the standard. macOS and Windows
  use en_US.UTF-8 instead.
- Up to 3.11, `locale.normalize` was converting `C.UTF-8` into `en_US.UTF-8`.
  If you normalized the locale string, it was impossible to set `C.UTF-8`.
- In 3.12, `C.UTF-8` maps to itself.
- python/cpython#14925
- https://peps.python.org/pep-0538/
- `C.UTF-8` doesn't seem to be used anywhere else in the codebase, except for this one test.
- Other fix would be to inject a previous value to `locale.locale_alias` dictionary
  for certain platforms. However, this is part of the private implementation
  and could change without prior notice.
- More changes to the locale are scheduled for 3.15.
@mjurbanski-reef mjurbanski-reef merged commit e0edd22 into Backblaze:master Dec 5, 2023
24 checks passed
@mjurbanski-reef mjurbanski-reef deleted the py312-setlocale branch December 5, 2023 10:32
kkalinowski-reef added a commit to reef-technologies/b2-sdk-python that referenced this pull request Dec 6, 2023
* master:
  Fix the test that broke after 3.12 changes to `locale.normalize` (Backblaze#452)
  fix changelog items prefix
  use proper exception class
  fix: provide error message for mismatching upload size options
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants