[Bug]: missing return type from pyplot.subplot overloads

Ouverte Adaptée aux débutants
#32,570 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@twelfthlabor y travaille déjà.

Depuis le 4/11/2026.

  • #32571 par @twelfthlabor — ouverte

Évaluation

Difficulté
1/5
Temps estimé
Moins d'une heure
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python

Piste de recherche

Les surcharges subplot se trouvent dans lib/matplotlib/pyplot.py autour des lignes 1485-1499, et le rapporteur y renvoie. Compare-les à la signature réelle de subplot, qui déclare déjà un type de retour, et ajoute la même annotation de retour à chaque @overload. Exécute ensuite le script de reproduction avec un vérificateur de types comme pyrefly ou mypy pour confirmer que l'erreur NoneType a disparu.

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

Description

first-contribution topic: pyplot API topic: typing
Bug summary

The overloads for the subplot function don't have the return type annotation as the real function signature does:

https://github.com/matplotlib/matplotlib/blob/95a3d2929ba2a1c2c2f3afbf343d38e04066de7d/lib/matplotlib/pyplot.py#L1485-L1499

This confuses pyrefly (an I suppose other type checkers, too), believing that the function returns None.

Code for reproduction
from matplotlib import pyplot as plt

ax = plt.subplot(122, aspect="equal")
ax.set_xlim(-100, 100)
Actual outcome

running pyrefly check script.py returns this:

ERROR Object of class `NoneType` has no attribute `set_xlim` [missing-attribute]
 --> mre.py:4:1
  |
4 | ax.set_xlim(-100, 100)
  | ^^^^^^^^^^^
 INFO 1 error
Expected outcome

No type checking errors should be returned.

Additional information

Not sure when this issue surfaced, since I previously used mypy with ignored imports from matplotlib (I set this up a while ago when matplotlib typing and stubs were not available).

All the overloads need to have the return type, even if it is the same as the main function signature.
I didn't check, but this issue may be present in other places.

Operating system

not relevant

Matplotlib Version

3.11.2

Matplotlib Backend

not relevant

Python version

not relevant

Jupyter version

not relevant

Installation

uv

Langage dominant
Python
Étoiles
23.4k
Forks
8.5k
Merge moyen
1 j 11 h
PR mergées (30 j)
75

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

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 matplotlib/matplotlib

Toutes les issues de matplotlib/matplotlib

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.