python / python/cpython

Better `repr` for `string.templatelib.Template`.

Ouverte
#151,099 6 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

interpreter-core type-feature
Langage dominant
Python
Étoiles
77.2k
Forks
35.9k
Métriques de merge des PR
Métriques de PR en attente

Description

Feature or enhancement

Proposal:

Currently the repr output for template strings shows how the data is stored internally, but this is not how the template could be reconstructed via an constructor call and the format is unintuitive since the template parts are not output in the order they appear in the template source. The repr result should output the parts in the order as iterating over the template object does, i.e.

x = 1
y = 2
print(repr(t'{x} + {y}'))

should print

Template(Interpolation(1, 'x', None, ''), ' + ', Interpolation(2, 'y', None, ''))

instead of

Template(strings=('', ' + ', ''), interpolations=(Interpolation(1, 'x', None, ''), Interpolation(2, 'y', None, '')))

This has already been discussed at https://discuss.python.org/t/repr-output-of-t-strings/107653

I'm working on a patch/pull request.

Has this already been discussed elsewhere?

I have already discussed this feature proposal on Discourse

Links to previous discussion of this feature:

https://discuss.python.org/t/repr-output-of-t-strings/107653

Linked PRs
  • gh-151104

Guide de contribution

Ouvrir le guide de contribution

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.

Piste de recherche

Commencez par le comportement de repr de string.templatelib.Template décrit dans l’issue et comparez-le avec l’itération sur un objet Template. Vérifiez que repr produit les parties de Template dans l’ordre d’itération et correspond au format proposé d’appel du constructeur ; gh-151104 est lié, examinez donc ce travail avant de commencer.

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

Évaluation

Stack technique
python
Domaine
backend
Type d'issue
Fonctionnalité
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

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