Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

WrappedJoin adds an empty line before an oversized first item

Aberta Para iniciantes
#705 0 comentários 0 reações 0 responsáveis Ver no GitHub

@GreedyC já está trabalhando nisso.

Desde 2/10/2026.

  • #706 de @GreedyC — aberto

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
76/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
cli

Direção de pesquisa

Comece localizando formatting.WrappedJoin e inspecionando seus ramos de overflow; depois, verifique como helptext._CreateAvailabilityLine combina sua saída com o fatiamento do header. Reproduza os três exemplos na issue e adicione cobertura de regressão para um único item grande demais, um primeiro item grande demais e um separador mais largo que a largura disponível; o trabalho estará concluído quando não houver uma linha vazia inicial e houver o wrapping e a indentação esperados.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
Python
Estrelas
28.2k
Forks
1.5k
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de google/python-fire

Todas as issues de google/python-fire

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.