17db96d56Sopenharmony_ci#ifndef Py_INTERNAL_ABSTRACT_H 27db96d56Sopenharmony_ci#define Py_INTERNAL_ABSTRACT_H 37db96d56Sopenharmony_ci#ifdef __cplusplus 47db96d56Sopenharmony_ciextern "C" { 57db96d56Sopenharmony_ci#endif 67db96d56Sopenharmony_ci 77db96d56Sopenharmony_ci#ifndef Py_BUILD_CORE 87db96d56Sopenharmony_ci# error "this header requires Py_BUILD_CORE define" 97db96d56Sopenharmony_ci#endif 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ci// Fast inlined version of PyIndex_Check() 127db96d56Sopenharmony_cistatic inline int 137db96d56Sopenharmony_ci_PyIndex_Check(PyObject *obj) 147db96d56Sopenharmony_ci{ 157db96d56Sopenharmony_ci PyNumberMethods *tp_as_number = Py_TYPE(obj)->tp_as_number; 167db96d56Sopenharmony_ci return (tp_as_number != NULL && tp_as_number->nb_index != NULL); 177db96d56Sopenharmony_ci} 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_ciPyObject *_PyNumber_PowerNoMod(PyObject *lhs, PyObject *rhs); 207db96d56Sopenharmony_ciPyObject *_PyNumber_InPlacePowerNoMod(PyObject *lhs, PyObject *rhs); 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ci#ifdef __cplusplus 237db96d56Sopenharmony_ci} 247db96d56Sopenharmony_ci#endif 257db96d56Sopenharmony_ci#endif /* !Py_INTERNAL_ABSTRACT_H */ 26