F841 reports misleading location in try/except block

Aperta
#378 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

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

Direzione di ricerca

Inizia riproducendo il report con lo snippet example.py e il comando pyflakes. Traccia come l’assegnazione inutilizzata e il binding except vengono associati alle posizioni nel codice sorgente. Il lavoro è completo quando l’assegnazione effettivamente inutilizzata viene segnalata sulla propria riga, senza indicare erroneamente la riga except quando la variabile dell’eccezione viene utilizzata.

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

Descrizione

In this example pyflakes reports a misleading location for an unused variable:

$ cat example.py 
def foo():
    exc = None
    try:
        print('foo')
    except NameError as exc:
        print(exc)

$ pyflakes example.py 
example.py:5: local variable 'exc' is assigned to but never used

pyflakes reports exc on line 5 (the except line) as unused, which is misleading in my opinion since it's used within the exception handling. I guess that pyflakes recognizes that exc from line 2 (exc = None) as unused (which is unused actually), but determines line 5 as the last occuring declaration of exc.

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.