treat uppercase variables as `Final`
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Feature
A = 1
A = 2
make A be treated as
from typing import Final
A: Final = 1
A = 2
thus, it will emit error with
test.py:1: error: Cannot assign to final name "A" (because it is uppercase)
Found 1 error in 1 file (checked 1 source file)
Pitch
It would be convenient to not add Final to uppercase variables.
Since pep 8 states that constants are named with uppercase, uppercase variables could be considered Final.

Pylance also uses this convention and warns when UPPERCASE variables are mutated.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit nachzuverfolgen, wie mypy derzeit Zuweisungen an Namen behandelt, die mit typing.Final annotiert sind, und vergleiche diesen Pfad dann mit der im Issue beschriebenen Konvention für Konstanten in Großschreibung. Verwende die Beispiele in test.py als Verhaltensfälle: Ein einmalig initialisierter Name in Großschreibung sollte als final behandelt werden, und eine spätere Zuweisung sollte den gezeigten Fehler erzeugen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- tooling
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100