WrappedJoin adds an empty line before an oversized first item
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
Direzione di ricerca
Inizia individuando formatting.WrappedJoin e analizzane i rami di overflow, quindi verifica come helptext._CreateAvailabilityLine combina il suo output con il troncamento dell’header. Riproduci i tre esempi nell’issue e aggiungi una copertura di regressione per un singolo elemento sovradimensionato, un primo elemento sovradimensionato e un separatore più largo della larghezza disponibile; il lavoro è completato quando non c’è una riga vuota iniziale e sono presenti il wrapping e l’indentazione previsti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
When the first item is longer than the available width, WrappedJoin starts its output with an empty line. Its caller _CreateAvailabilityLine then combines that extra newline with the header slicing, shifting the first command one column to the right.
from fire import formatting, helptext
print(formatting.WrappedJoin(['long_command'], width=5))
# ['', 'long_command']; expected ['long_command']
print(formatting.WrappedJoin(['first', 'next'], width=5))
# ['', 'first |', 'next']; expected ['first |', 'next']
print(helptext._CreateAvailabilityLine('COMMANDS', ['long_command'], line_length=30))
# The command starts at column 26 rather than the requested items_indent=25.
The overflow branches append current_line even when it is still empty. I plan to only append a non-empty current line, keeping long items intact and preserving subsequent wrapping. Regression tests for a single long item, a long first item among multiple commands and an item whose separator exceeds the width fail on main.
Reproduced on macOS / Python 3.12.13. Checked existing issues and PRs for an overlapping WrappedJoin fix.
Investigated with Codex assistance.
- Lingua principale
- Python
- Stelle
- 28.2k
- Fork
- 1.5k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi 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.
Altre issue di google/python-fire
-
Brace-based template arguments crash literal parsing with TypeErrorForse già presa @codewithfourtix l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
google/python-fire#703 ·
-
Test suite fails on Windows: unescaped path regex in testArgPassing, NamedTemporaryFile reopen in testFileNameFireForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
google/python-fire#693 ·
-
Mio ❤️Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 1/100
google/python-fire#709 · 2 commenti ·
-
2083Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 5/100
google/python-fire#708 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
google/python-fire#707 ·
Tutte le issue di google/python-fire
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
-
Harmony OPeNDAP SubSetter (HOSS) Geographic LARC_CLOUD PREFIRE_SAT2_AUX-SAT R01 production
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
nasa/harmony-autotester#245 ·
-
[FEATURE] - Add UTVD supportApertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Deltares/imod-python#1928 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100