It is awkward to check whether an obj is of a particular heap type (defined in an extension module)
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
I wanted to check whether an object is of type array and ended up doing this:
PyObject *exc = PyErr_GetRaisedException();
PyObject *module = PyType_GetModuleByDef(Py_TYPE(lhs), &arraymodule);
if (module == NULL) {
if (!PyErr_Occurred() || PyErr_ExceptionMatches(PyExc_TypeError)) {
/* lhs is not an array instance - ignore the TypeError (if any) */
PyErr_SetRaisedException(exc);
return 0;
}
else {
_PyErr_ChainExceptions1(exc);
return -1;
}
}
PyErr_SetRaisedException(exc);
return array_Check(lhs, get_array_state(module));
CC @ericsnowcurrently @encukou
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 les appels de l’API C présentés dans l’issue, en particulier PyType_GetModuleByDef et l’exemple array_Check, afin de comprendre le chemin actuel de vérification des types. Examinez les conventions associées de l’API C de CPython et déterminez une manière concrète et largement applicable de vérifier les types heap ; le travail est considéré comme terminé lorsqu’une orientation d’API approuvée, accompagnée d’une documentation et de tests appropriés, est définie.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- c, python
- Domaine
- api
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100