Skip to content

locale module example is wrong for some platforms #91343

Closed as duplicate
Closed as duplicate

Description

@smarie
mannequin
BPO 47187
Nosy @smarie

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields:

assignee = None
closed_at = None
created_at = <Date 2022-04-01.13:45:07.191>
labels = ['3.10', 'docs']
title = 'locale module example is wrong for some platforms'
updated_at = <Date 2022-04-01.13:45:07.191>
user = 'https://github.com/smarie'

bugs.python.org fields:

activity = <Date 2022-04-01.13:45:07.191>
actor = 'smarie'
assignee = 'docs@python'
closed = False
closed_date = None
closer = None
components = ['Documentation']
creation = <Date 2022-04-01.13:45:07.191>
creator = 'smarie'
dependencies = []
files = []
hgrepos = []
issue_num = 47187
keywords = []
message_count = 1.0
messages = ['416487']
nosy_count = 2.0
nosy_names = ['docs@python', 'smarie']
pr_nums = []
priority = 'normal'
resolution = None
stage = None
status = 'open'
superseder = None
type = None
url = 'https://bugs.python.org/issue47187'
versions = ['Python 3.10']

Activity

  1. smarie commented on Apr 1, 2022

    smariemannequin
    MannequinAuthor

    The example in the doc shows

    >>> import locale
    >>> loc = locale.getlocale()  # get current locale
    # use German locale; name might vary with platform
    >>> locale.setlocale(locale.LC_ALL, 'de_DE')
    >>> locale.strcoll('f\xe4n', 'foo')  # compare a string containing an umlaut
    >>> locale.setlocale(locale.LC_ALL, '')   # use user's preferred locale
    >>> locale.setlocale(locale.LC_ALL, 'C')  # use default (C) locale
    >>> locale.setlocale(locale.LC_ALL, loc)  # restore saved locale

    However locale.getlocale() does not return the locale for all categories (locale.LC_ALL is even not allowed) but the locale for the LC_CTYPE category.

    Therefore restoring it using locale.setlocale(locale.LC_ALL, loc) does not actually restore the initial settings, and may even fail on some platforms (on mine it does).

    The correct example should have the first line of code replaced with

    >>> loc = locale.setlocale(locale.LC_ALL)  # get current locale
    

    Note: this issue was first reported in the pandas library at pandas-dev/pandas#46595

  2. added
    docsDocumentation in the Doc dir
    on Apr 1, 2022
  3. transferred this issue fromon Apr 10, 2022
  4. StanFromIreland commented on Mar 23, 2025

    @StanFromIreland
    Member

    Duplicate of: #85204

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.10 (EOL)end of lifedocsDocumentation in the Doc dir

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions