F851 false positive in Literal

Chiusa
#911 1 commento 1 reazione 0 assegnatari Vedi su GitHub

Una pull request collegata è già stata integrata.

  • #912 di @asottile — integrata

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python

Direzione di ricerca

Start by reading the F851 check and its tests for lazily imported names used in annotations; the issue does not name specific files. Reproduce the report with the provided Literal[Foo.a, Foo.b] annotation and compare it with other annotation cases. Done means this use no longer produces a false positive while existing F851 cases remain covered.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

The following is reported as:

a.py:5:27: F851 eager use of lazily imported 'Foo' from line 2
a.py:5:34: F851 eager use of lazily imported 'Foo' from line 2
from typing import Literal
lazy from foo import Foo  # some enum


def do_stuff(foo: Literal[Foo.a, Foo.b]) -> ...: ...

As far as I am aware, the annotation above is still not eagerly evaluated, even though it is used to specialise the generic Literal.

Lingua principale
Python
Stelle
1.5k
Fork
205
Merge medio
1g 2h
PR unite (30g)
5

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PyCQA/pyflakes

Tutte le issue di PyCQA/pyflakes

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.