EllipsisMiddleTruncate exceeds requested width when only the ellipsis fits

Aperta Adatta ai principianti
#722 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

@hugosmoreira ci sta già lavorando.

Dal 26/10/2026.

  • #724 di @hugosmoreira — aperta
  • #726 di @MateehUllah — aperta

Valutazione

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

Direzione di ricerca

Inizia con fire/formatting.py ed esamina EllipsisMiddleTruncate, concentrandoti sulla seconda metà di lunghezza zero e sul limite in cui non avviene alcun troncamento. Riproduci i due esempi nell’issue, poi verifica che l’output rispetti la larghezza richiesta e conservi le stringhe che vi rientrano esattamente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

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.