EllipsisMiddleTruncate exceeds requested width when only the ellipsis fits

Ouverte Adaptée aux débutants
#722 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

@hugosmoreira y travaille déjà.

Depuis le 26/10/2026.

  • #724 par @hugosmoreira — ouverte
  • #726 par @MateehUllah — ouverte

Évaluation

Difficulté
1/5
Temps estimé
1-3 heures
Accessibilité débutants
88/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python
Domaine
cli

Piste de recherche

Commencez par fire/formatting.py et examinez EllipsisMiddleTruncate, en vous concentrant sur la seconde moitié de longueur nulle et sur la limite où aucune troncature n’est effectuée. Reproduisez les deux exemples de l’issue, puis vérifiez que la sortie ne dépasse pas la largeur demandée et préserve les chaînes qui y tiennent exactement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Python
Étoiles
28.2k
Forks
1.5k
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de google/python-fire

Toutes les issues de google/python-fire

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.