pprint.isreadable returns True for non-eval-able float and complex specials
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Issue
isreadable is documented as returning True if the object's repr is readable by the interpreter — implying eval(pformat(obj)) == obj. For float and complex non-finite values, isreadable returns True, but the roundtrip fails — eval raises NameError since inf and nan aren't valid Python expressions.
Reproducer
import pprint
print(pprint.isreadable(float('inf'))) # True — but eval('inf') raises NameError
print(pprint.isreadable(float('nan'))) # True
print(pprint.isreadable(complex(float('inf'), 0))) # True
CPython versions tested on:
CPython main branch
Operating systems tested on:
No response
Linked PRs
- gh-145116
- gh-145120
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par pprint.isreadable et exécutez le reproducer pour les valeurs float et complex non finies. Suivez la manière dont leurs représentations sont classées, puis vérifiez que isreadable ne prétend plus que les valeurs sont lisibles lorsque l’évaluation de la représentation lève NameError ; ajoutez ou mettez à jour des tests ciblés pour ces cas.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- tooling
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 25/100