function is lacking a `__signature__` attribute
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 55/100
Piste de recherche
Commencez dans stdlib/builtins.pyi, autour de la ligne 1009, et examinez comment la function class est déclarée. Comparez la prise en charge facultative demandée pour signature avec PEP 362 et l’exemple d’affectation fourni, puis vérifiez qu’un vérificateur de types tel que pyright l’accepte lorsque la modification du stub est terminée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
PEP-362 specifies that in order to cache the signature of any function, it is possible for the user to set its __signature__ attribute.
Actual
This attribute is not set in the builtins module over at https://github.com/python/typeshed/blob/main/stdlib/builtins.pyi#L1009
As a result a typechecker might reject the following piece of code
from inspect import signature
def main():
def f():
pass
f.__signature__ = signature(f)
if __name__ == "__main__":
main()
e.g. with pyright I have a false positive
/Users/leogermond/Lab/python/signature/main.py
/Users/leogermond/Lab/python/signature/main.py:9:7 - error: Cannot assign to attribute "__signature__" for class "function"
Attribute "__signature__" is unknown (reportFunctionMemberAccess)
1 error, 0 warnings, 0 informations
Expected
I would the __signature__ attribute to be specified in the function class (with a special marker indicating it's optional?) of the builtins module. A type checker such as pyright could then infer that setting this attribute is possible and accept the piece of code given in example.
- Langage dominant
- Python
- Étoiles
- 5.1k
- Forks
- 2.1k
- Merge moyen
- 2 j 7 min
- PR mergées (30 j)
- 116
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire 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.
Autres issues de python/typeshed
-
`networkx.set_edge_attributes` should support scalar value + namePeut-être pris @Fire162 l’a pris il y a 9 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
Les mainteneurs répondent en général sous 1 jour
-
false alarm on decode callPeut-être pris @jw9829 l’a pris il y a 36 jours. Ouvertehelp wanted stubs: false positive
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
python/typeshed#16441 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Don't run pyright basic checks on projects with strict pyright settings in CIPeut-être pris @Mohith1612 l’a pris il y a 73 jours. Ouverteproject: infrastructure
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
python/typeshed#16005 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
stubs: improvement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
python/typeshed#15548 · 5 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
stubs: improvement
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
python/typeshed#15529 · 5 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de python/typeshed
Issues similaires
-
question
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
conda-forge/vc-feedstock#132 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
limitlessprojects/Go-Hybrid#3342 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
UKGovernmentBEIS/inspect_ai#6268 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
LSSTDESC/rail_sompz#42 ·
-
All tests fail with 'EXITED with status 3' on pytest 9.2.0 (TestReport._id is not marshallable)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
pytest-dev/pytest-forked#113 ·