python / python/mypy

false "Attempted to reuse member name in Enum definition"

Offen
#16,876 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug topic-enum
Vorherrschende Sprache
Python
Sterne
20.6k
Forks
3.3k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Bug Report

When using an if/else in class scope of an Enum definition, there is a false error "Attempted to reuse member name in Enum definition".

I understand mypy might have an opinion about this pattern, but I noticed there is no equivalent issue for a plain class. So this seems to be an issue specific to Enum that could potentially be relaxed.

To Reproduce

class Foo(Enum):
    if IS_BAZ:
        DISABLED = 16
    else:
        # error: Attempted to reuse member name "DISABLED" in Enum definition "Foo"  [misc]
        DISABLED = 256

class Bar:
    if IS_BAZ:
        DISABLED = 16
    else:
        DISABLED = 256   # (no error)

Expected Behavior

no mypy errors

Actual Behavior

error: Attempted to reuse member name "DISABLED" in Enum definition "Foo"  [misc]

Your Environment

  • Mypy version used: 1.8.0
  • Python version used: 3.8

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Führen Sie zunächst den bereitgestellten Enum- und plain-class-Reproducer mit mypy 1.8.0 aus und verfolgen Sie dann den Pfad zur Prüfung von Enum-Mitgliedern, der für die Diagnose doppelter Namen verantwortlich ist. Als abgeschlossen gilt die Aufgabe, wenn die bedingte Enum-Definition keine mypy-Fehler erzeugt, während doppelte Mitglieder in tatsächlich widersprüchlichen Definitionen weiterhin diagnostiziert werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
compilers
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.