typing._allow_reckless_class_checks doesn't work when _abc doesn't exist.
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 36k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug report
Bug description:
When typing._caller's sys._getframe fallback is triggered without _abc module, _typing._allow_reckless_class_checks fails to check _py_abc while running abc.ABCMeta.__instancecheck__.
Without _abc module, _typing._allow_reckless_class_checksfails to check _py_abc
Related code in typing.py:
https://github.com/python/cpython/blob/v3.14.0b3/Lib/typing.py#L1846-L1863
This is technically a bug of typing.py, but really hard to be triggered on CPython.
CPython versions tested on:
CPython main branch
Operating systems tested on:
macOS
Solution suggestion
Patch typing._allow_reckless_class_checks to also check _py_abc
This is the most conservative approach. Compatible with all of previous scenarios and additionally fixing the bug.
Patch typing._caller to remove sys._getframe or raise warning when fallback
If the the typing requires to work with sys._getframemodulename, then let the users to know it has a caveat.
Linked PRs
- gh-136115
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
Lisez les lignes 1846-1863 de Lib/typing.py et comparez la modification proposée avec la PR liée gh-136115. C’est terminé lorsque _allow_reckless_class_checks gère également _py_abc lorsque _abc n’est pas disponible, avec le comportement vérifié sur la branche principale de CPython.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 25/100