python / python/mypy

New semantic analyzer: allow redefinition of star-imported functions if type is the same

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

Personne n'a encore pris cette issue.

false-positive priority-1-normal semantic-analyzer
Langage dominant
Python
Étoiles
20.6k
Forks
3.3k
Métriques de merge des PR
Métriques de PR en attente

Description

Consider this test case:

[case testReExportOtherSameType]
from low_level import *

def func(arg: str) -> int:
    ...

[file low_level.py]
def func(arg: str) -> int:
    ...

It is currently allowed by old analyzer (likely by accident), but prohibited by the new one. Old analyzer still prohibits this if the function is imported by name instead of star import. Although behavior of the new analyzer is more consistent, it may be sometimes useful to allow the redefinition (for example when star import re-exports hundred functions).

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 cas de test testReExportOtherSameType et ses deux fichiers, qui montrent un import étoile depuis low_level.py suivi d’une définition avec la même signature. Examinez la gestion des fonctions importées avec un import étoile par le nouvel analyseur sémantique et comparez-la à celle de l’ancien analyseur. Le travail est considéré comme terminé lorsque le comportement prévu de redéfinition du même type est couvert par un test réussi, sans modifier le comportement distinct des imports nommés.

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

Évaluation

Stack technique
python
Domaine
devtools
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

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