Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

WrappedJoin adds an empty line before an oversized first item

Aperta Adatta ai principianti
#705 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@GreedyC ci sta già lavorando.

Dal 2/10/2026.

  • #706 di @GreedyC — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
76/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
cli

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

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 google/python-fire

Tutte le issue di google/python-fire

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.