Type checking for *args and **kwargs when passing them to another function
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 32/100
Piste de recherche
Commencez par les exemples de wrapper et de fonction interne dans l’issue, puis lisez la discussion liée mypy#19302 concernant la proposition existante et ses contraintes. La tâche sera terminée lorsqu’une approche documentée et approuvée permettra de déduire ou de déclarer les types d’arguments du wrapper à partir de la fonction ou du constructeur qui reçoit *args et **kwargs.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Problem:
I am writing a python application, and I made a function that creates an object and passes its additional *args and **kwargs to object's constructor and takes few its own arguments. I want to make *args and **kwargs typed exactly as inner function's arguments.
Description and examples:
A simple example with two functions:
def inner(a: int, b: int) -> None:
...
def wrapper(arg1: str, *args, **kwargs) -> None:
inner(*args, **kwargs) # It will automatically detect passing arguments to another function
In my case, inner is object constructor, I gave an example with functions to make it more simple.
Type checkers should see wrapper's signature like this:
def wrapper(arg1: str, a: int, b: int):
...
It may be enabled by default when passing *args and **kwargs to another function is detected or it may be enabled by adding a decorator to the function.
Detailed description:
Already suggested this to mypy, detailed description of this feature can be found here: python/mypy#19302.
- Langage dominant
- Python
- Étoiles
- 1.8k
- Forks
- 302
- Merge moyen
- 4 h 16 min
- PR mergées (30 j)
- 7
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
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.
Autres issues de python/typing
-
topic: typing spec
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
python/typing#2356 · 2 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
topic: typing spec
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
topic: documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
python/typing#2227 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
topic: documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
python/typing#2150 · 2 commentaires · 2 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
topic: conformance tests topic: typing spec
Difficulté 3/5 1-2 jours Accessibilité débutants 72/100
python/typing#2351 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de python/typing
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
raullenchai/Rapid-MLX#4042 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
LearningCircuit/local-deep-research#7067 ·
Les mainteneurs répondent en général sous 1 jour
-
#bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
apache/superset#44923 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
lawndoc/stack-back#123 ·