Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

WrappedJoin adds an empty line before an oversized first item

Abierto Apto para principiantes
#705 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
cli

Línea de trabajo

Empieza localizando formatting.WrappedJoin e inspecciona sus ramas de desbordamiento; después comprueba cómo helptext._CreateAvailabilityLine combina su salida con el recorte del encabezado. Reproduce los tres ejemplos del issue y añade cobertura de regresión para un único elemento sobredimensionado, un primer elemento sobredimensionado y un separador más ancho que el ancho disponible; se considera terminado cuando no haya una línea vacía inicial y se produzcan el wrapping y la indentación esperados.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Python
Estrellas
28.2k
Forks
1.5k
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de google/python-fire

Todos los issues de google/python-fire

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.