Wrong verbosity level when specified in both config file and command line.
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 20.6k
- Fork
- 3.3k
- Metriche di merge delle PR
- Metriche PR in attesa
Descrizione
Bug Report
The verbosity level can be specified either on the command line (-v or -vv, etc.) or in the config file (verbosity = {number}). However, if specified in both places, what you get is the sum of the two levels.
To Reproduce
Place verbosity = 1 in the config file.
Call mypy -v ...
Expected Behavior
Verbosity 1, stderr shows LOG messages only.
Actual Behavior
Verbosity 2, stderr shows LOG messages and TRACE messages.
Your Environment
- Mypy version used: 0.931
- Mypy command-line flags: -v
- Mypy configuration options from
mypy.ini(and other config files): verbosity = 1
How to fix the bug
This is in main.py process_options().
497 general_group.add_argument(
498 '-v', '--verbose', action='count', dest='verbosity',
499 help="More verbose messages")
923 # Parse config file first, so command line can override.
924 parse_config_file(options, set_strict_flags, config_file, stdout, stderr)
937 # Parse command line for real, using a split namespace.
938 special_opts = argparse.Namespace()
939 parser.parse_args(args, SplitNamespace(options, special_opts, 'special-opts:'))
Before line 939, save options.verbosity, then set it to 0.
After line 939, if options.verbosity is 0 (meaning -v was not present), then set it to the earlier saved value.
Note: if verbosity is specified nonzero in the config file, there is no way to override this with verbosity 0 on the command line. You could add a no-verbose command line option to accomplish this.
Guida per i contributori
Apri la guida per i contributori
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.
Direzione di ricerca
Inizia in main.py, in process_options(), intorno all’analisi del file di configurazione e alla seconda analisi della riga di comando descritta nell’issue. Riproduci la combinazione di verbosity = 1 e -v, quindi esamina come options.verbosity viene mantenuto e sovrascritto. Il lavoro è completato quando la verbosity della riga di comando ha la precedenza invece di essere aggiunta al valore configurato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- cli
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 45/100