#ifndef Py_INTERNAL_TYPEOBJECT_H
#define Py_INTERNAL_TYPEOBJECT_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef Py_BUILD_CORE
# error "this header requires Py_BUILD_CORE define"
#endif
#include "pycore_moduleobject.h"
#include "pycore_lock.h"
#define _Py_TYPE_VERSION_INT …
#define _Py_TYPE_VERSION_FLOAT …
#define _Py_TYPE_VERSION_LIST …
#define _Py_TYPE_VERSION_TUPLE …
#define _Py_TYPE_VERSION_STR …
#define _Py_TYPE_VERSION_SET …
#define _Py_TYPE_VERSION_FROZEN_SET …
#define _Py_TYPE_VERSION_DICT …
#define _Py_TYPE_VERSION_BYTEARRAY …
#define _Py_TYPE_VERSION_BYTES …
#define _Py_TYPE_VERSION_COMPLEX …
#define _Py_TYPE_VERSION_NEXT …
#define _Py_TYPE_BASE_VERSION_TAG …
#define _Py_MAX_GLOBAL_TYPE_VERSION_TAG …
#define _Py_MAX_MANAGED_STATIC_BUILTIN_TYPES …
#define _Py_MAX_MANAGED_STATIC_EXT_TYPES …
#define _Py_MAX_MANAGED_STATIC_TYPES …
struct _types_runtime_state { … };
struct type_cache_entry { … };
#define MCACHE_SIZE_EXP …
struct type_cache { … };
managed_static_type_state;
#define TYPE_VERSION_CACHE_SIZE …
struct types_state { … };
extern PyStatus _PyTypes_InitTypes(PyInterpreterState *);
extern void _PyTypes_FiniTypes(PyInterpreterState *);
extern void _PyTypes_FiniExtTypes(PyInterpreterState *interp);
extern void _PyTypes_Fini(PyInterpreterState *);
extern void _PyTypes_AfterFork(void);
#define MAX_EQUIV …
pytype_slotdef;
static inline PyObject **
_PyStaticType_GET_WEAKREFS_LISTPTR(managed_static_type_state *state)
{ … }
extern int _PyStaticType_InitBuiltin(
PyInterpreterState *interp,
PyTypeObject *type);
extern void _PyStaticType_FiniBuiltin(
PyInterpreterState *interp,
PyTypeObject *type);
extern void _PyStaticType_ClearWeakRefs(
PyInterpreterState *interp,
PyTypeObject *type);
extern managed_static_type_state * _PyStaticType_GetState(
PyInterpreterState *interp,
PyTypeObject *type);
PyAPI_FUNC(int) _PyStaticType_InitForExtension(
PyInterpreterState *interp,
PyTypeObject *self);
PyAPI_FUNC(PyObject *) _PyStaticType_GetBuiltins(void);
static inline void *
_PyType_GetModuleState(PyTypeObject *type)
{ … }
PyAPI_FUNC(PyObject *) _PyType_GetDict(PyTypeObject *);
extern PyObject * _PyType_GetBases(PyTypeObject *type);
extern PyObject * _PyType_GetMRO(PyTypeObject *type);
extern PyObject* _PyType_GetSubclasses(PyTypeObject *);
extern int _PyType_HasSubclasses(PyTypeObject *);
PyAPI_FUNC(PyObject *) _PyType_GetSlotWrapperNames(void);
static inline int
_PyType_IsReady(PyTypeObject *type)
{ … }
extern PyObject* _Py_type_getattro_impl(PyTypeObject *type, PyObject *name,
int *suppress_missing_attribute);
extern PyObject* _Py_type_getattro(PyObject *type, PyObject *name);
extern PyObject* _Py_BaseObject_RichCompare(PyObject* self, PyObject* other, int op);
extern PyObject* _Py_slot_tp_getattro(PyObject *self, PyObject *name);
extern PyObject* _Py_slot_tp_getattr_hook(PyObject *self, PyObject *name);
extern PyTypeObject _PyBufferWrapper_Type;
PyAPI_FUNC(PyObject*) _PySuper_Lookup(PyTypeObject *su_type, PyObject *su_obj,
PyObject *name, int *meth_found);
extern PyObject* _PyType_GetFullyQualifiedName(PyTypeObject *type, char sep);
extern void _PyType_SetFlags(PyTypeObject *self, unsigned long mask,
unsigned long flags);
extern int _PyType_AddMethod(PyTypeObject *, PyMethodDef *);
extern void _PyType_SetFlagsRecursive(PyTypeObject *self, unsigned long mask,
unsigned long flags);
extern unsigned int _PyType_GetVersionForCurrentState(PyTypeObject *tp);
PyAPI_FUNC(void) _PyType_SetVersion(PyTypeObject *tp, unsigned int version);
PyTypeObject *_PyType_LookupByVersion(unsigned int version);
_py_validate_type;
extern int _PyType_Validate(PyTypeObject *ty, _py_validate_type validate, unsigned int *tp_version);
#ifdef __cplusplus
}
#endif
#endif