Unclear how plugins should indicate a configuration failure
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia in src/flake8/plugins/manager.py, nel metodo provide_options a cui fa riferimento l'issue, e segui il percorso con cui le eccezioni di plugin parse_options raggiungono l'interfaccia della riga di comando. Determina il percorso esistente di gestione degli errori prima di decidere come debbano essere segnalati gli errori di configurazione. Il lavoro è completato quando una configurazione di plugin non valida interrompe flake8 tempestivamente senza uno traceback sgradevole.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
In GitLab by @pjacock on Aug 6, 2019, 02:42
I have read http://flake8.pycqa.org/en/latest/plugin-development/plugin-parameters.html#accessing-parsed-options
I am working on a plugin which successfully sets and receives additional configuration values. However, I wish to validate the configuration once (as early as possible), and may need to indicate an error to flake8 signalling it to abort. The simple option of raising a ValueError within parse_options does not work gracefully:
...
@classmethod
def add_options(cls, parser):
...
# Define option "--our_config_file"
@classmethod
def parse_options(cls, options):
...
if not os.path.isfile(options.our_config_file):
raise ValueError("Could not find specified file: %r" % options.our_config_file)
...
This has the desired effect of aborting flake8 early, but with an ugly traceback.
Is there an expected approach I have overlooked, or would documenting this with a try/except in flake8 be preferred?
I think the change would be in the provide_options method here:
https://gitlab.com/pycqa/flake8/blob/3.7.8/src/flake8/plugins/manager.py#L186
- Lingua principale
- Python
- Stelle
- 3.8k
- Fork
- 356
- Merge medio
- 3h 25m
- PR unite (30g)
- 5
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di PyCQA/flake8
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 76/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 42/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
Tutte le issue di PyCQA/flake8
Issue simili
-
bug server
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
sportsdataverse/sportsdataverse-py#641 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
googleapis/google-cloud-python#18532 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno