Option to remove unsupported annotations from `numpy.ndarray` and `List` in stubgen
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Feature
Command-line arguments for stubgen that when enabled will remove unsupported annotations from numpy.ndarray and List
like numpy.ndarray[numpy.float32[3,1]] and List[float[3]] which pybind11 outputs.
FYI: This feature has been implemented for numpy.ndarray in pybind11-stubgen.
Pitch
The stubs generated from extensions made with pybind11 using mypy.stubs are invalid when Eigen types or std::array are used in the interface.
As an example, this output from stubgen,
def as_numpy(self) -> numpy.ndarray[numpy.float32[3,1]]: ...
will give the following errors when used together with Mypy:
error: Bad number of arguments for type alias, expected: 0, given: 2
error: "ndarray" expects 2 type arguments, but 1 given
error: Invalid type: try using Literal[2] instead?
error: Invalid type: try using Literal[1] instead?
And this
def split(axis_aligned_bounding_box: AxisAlignedBoundingBox, max_extents: List[float[3]]) -> List[AxisAlignedBoundingBox]: ...
will give these errors:
error: "float" expects no type arguments, but 1 given
error: Invalid type: try using Literal[3] instead?
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 le point d’entrée en ligne de commande de stubgen et suivez la manière dont sont émises les annotations telles que numpy.ndarray[...] et List[...]. Ajoutez une option qui supprime les annotations non prises en charge, puis vérifiez que les stubs générés ne produisent plus les erreurs mypy décrites.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- numpy, python
- Domaine
- cli, devtools, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100