EllipsisMiddleTruncate exceeds requested width when only the ellipsis fits

Abierto Apto para principiantes
#722 1 comentario 0 reacciones 0 asignados Ver en GitHub

@hugosmoreira ya está trabajando en esto.

Desde el 26/10/2026.

  • #724 de @hugosmoreira — abierto
  • #726 de @MateehUllah — abierto

Evaluación

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

Línea de trabajo

Empieza con fire/formatting.py e inspecciona EllipsisMiddleTruncate, centrándote en la segunda mitad de longitud cero y en el límite en el que no se trunca. Reproduce los dos ejemplos de la incidencia y verifica después que la salida no supere el ancho solicitado y conserve las cadenas que caben exactamente.

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

Descripción

EllipsisMiddleTruncate returns more characters than the requested width when available_space is 3. It also modifies strings that already fit exactly within the specified width.

Steps to reproduce
from fire import formatting

print(formatting.EllipsisMiddleTruncate('abcdefghij', 3, 80))
# Actual: '...abcdefghij'
# Expected: '...'

print(formatting.EllipsisMiddleTruncate('abcd', 4, 80))
# Actual: '...d'
# Expected: 'abcd'
Cause

The expression text[-second_half_len:] returns the entire string when second_half_len is zero. The no-truncation check also uses < instead of <=.

Expected behavior

Output should respect the available width, and strings that already fit should remain unchanged.

Verification

Reproduced using the implementation from fire/formatting.py.

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.