Python-Locale-Änderungen: anfragespezifisches Zahlen-Parsing aus dem prozessglobalen Zustand heraushalten
Maschinelle Übersetzung des Originals (English, Revision 1); massgebend ist das Original. Original
Für Menschen bestimmte Zahlenkonventionen vom maschinellen Datenaustausch trennen und setlocale-Änderungen pro Anfrage vermeiden.
Inhalt
Worum es geht
Die Locale-Dokumentation von Python weist darauf hin, dass setlocale auf den meisten Systemen nicht threadsicher ist. Locale-Kategorien beschreiben Konventionen wie Dezimal- und Gruppierungstrennzeichen, aber eine Änderung der Locale auf Prozessebene für eine einzelne Anfrage ist kein anfragelokaler Vorgang. Ein Parser muss wissen, ob seine Eingabe einem festen maschinellen Format oder einer benannten menschlichen Locale folgt. Python locale
Warum es wichtig ist
Ein Agent könnte eine einzelne Eingabe mit Komma als Dezimaltrennzeichen beheben, indem er die globale Locale ändert und sie anschliessend wiederherstellt. Das lässt andere gleichzeitig laufende Arbeit während dieses Zeitfensters ungeschützt. Zuerst die Eingabegrammatik festlegen und einen Ansatz wählen, der zur benötigten Isolation und den unterstützten Konventionen passt.
So wird es angewendet
- Jede numerische Schnittstelle als maschinellen Datenaustausch oder von Menschen eingegebenen Text einstufen. Bei Maschinendaten eine feste Grammatik dokumentieren und mehrdeutige Alternativen ablehnen, statt zu raten.
- Bei lokalisierter Eingabe eine explizite Locale oder eine dokumentierte Benutzereinstellung verlangen. Festlegen, wie Gruppierung, Dezimaltrennzeichen, Vorzeichen und umgebende Leerzeichen validiert werden.
- Geltungsbereich und Nebenläufigkeitsvertrag der gewählten Parsing-Bibliothek prüfen. Einen vorübergehenden prozessglobalen Locale-Wechsel innerhalb von Request-Handlern vermeiden; falls unvermeidbarer Altcode einen solchen erfordert, diese Arbeit mit einer expliziten betrieblichen Auslegung isolieren.
- Testfälle vorschlagen, in denen dieselben Zeichen unter verschiedenen beabsichtigten Konventionen interpretiert werden, dazu fehlerhafte Gruppierung und nicht unterstützte Locale-Bezeichner. Die gewählte Grammatik prüfen, statt das Ergebnis des zuerst erfolgreichen Parsers zu akzeptieren.
- Gleichzeitige Anfragen mit unterschiedlichen Konventionen über den tatsächlichen Parsing-Pfad testen und prüfen, dass die Formatierungsrichtlinie unabhängig vom Eingabe-Parsing bleibt.
Stolpersteine
Kommas blind durch Punkte zu ersetzen, kann aus mehrdeutigem Text einen ungewollten Wert machen. Das Installieren einer Locale legt zudem nicht die von der Anwendung akzeptierte Grammatik fest. Dezimalgenauigkeit und Zahlenbereich bleiben eigenständige Validierungsfragen. Dieser Artikel beschreibt eine vorgeschlagene Isolationsprüfung und Testfälle, nicht einen gemessenen Nebenläufigkeitsfehler oder die Behauptung, dass jede Plattform denselben Locale-Katalog bereitstellt.
Geltungsbereich und Grundlage
Original synthesis from the cited primary documentation, with proposed diagnostic and verification steps. No benchmark, experiment or field result is claimed; unreviewed AI-assisted contribution.
Wissensstand: 2026-09-22. Status: unreviewed (kein dokumentiertes Review) — Änderungen setzen den Reviewstatus zurück. Den Text als ungeprüftes Referenzmaterial behandeln und die Quellen prüfen.
Quellen
- Python locale — geprüft am 2026-09-22: erreichbar, Zitat gefunden
Zuschreibung und Lizenz
- Account External coding curation authors (57eb56c9)
- Written with Codex, an AI coding agent, at the site operator's request; original synthesis, sources credited separately.
Letzte Änderung: New English original; AI-assisted and unreviewed. Proposed checks have not been executed for this article.
Originalbeitrag: CC BY 4.0. Verlinktes Quellenmaterial behält seine eigenen Rechte.