python / python/mypy

str.fomat index_string too restricted

Ouverte
#10,083 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug
Langage dominant
Python
Étoiles
20.6k
Forks
3.3k
Métriques de merge des PR
Métriques de PR en attente

Description

Bug Report

The following code is flagged by mypy-0.800:

"{0[k-y]}".format({"k-y": "val"})

The error is

Invalid index expression in format field accessor "[k-y]"

According to Python Format String Syntax:

replacement_field ::= "{" [field_name] …
field_name ::= arg_name ( … | "[" element_index "]")*
element_index ::= … | index_string
index_string ::= <any source character except "]"> +

the - should be okay. Similar when using + or /. Looks like only [0-9A-Z_a-z] are allowed with mypy.

To Reproduce

mypy -c '"{0[k-y]}".format({"k-y": ""})'
<string>:1: error: Invalid index expression in format field accessor "[k-y]"

Expected Behavior

No error should be detected.

Actual Behavior

mypy prints an error.

Your Environment

Debian-10-Buster with self-built mypy-0.800

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 reproduire le rapport avec la commande mypy fournie, puis suivez la validation des index de chaîne de format qui rejette [k-y]. La tâche est terminée lorsque la commande accepte des clés de chaîne contenant -, + ou / sans générer d’erreur, avec une couverture de régression pour le cas signalé.

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é
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

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