4 #ifndef PYROOT_PYROOT_H
5 #define PYROOT_PYROOT_H
9 #pragma warning ( disable : 4275 )
11 #pragma warning ( disable : 4251 )
13 #pragma warning ( disable : 4800 )
23 #ifdef _POSIX_C_SOURCE
24 #undef _POSIX_C_SOURCE
27 #ifdef _FILE_OFFSET_BITS
28 #undef _FILE_OFFSET_BITS
42 #if PY_VERSION_HEX < 0x03030000
43 typedef PyDictEntry* (*dict_lookup_func) ( PyDictObject*,
PyObject*,
Long_t );
45 struct PyDictKeyEntry;
46 typedef PyDictKeyEntry* (*dict_lookup_func) ( PyDictObject*, PyObject*, Py_hash_t, PyObject*** );
47 #define PyDictEntry PyDictKeyEntry
51 #if PY_VERSION_HEX < 0x03000000
52 #define PyBytes_Check PyString_Check
53 #define PyBytes_CheckExact PyString_CheckExact
54 #define PyBytes_AS_STRING PyString_AS_STRING
55 #define PyBytes_AsString PyString_AsString
56 #define PyBytes_GET_SIZE PyString_GET_SIZE
57 #define PyBytes_Size PyString_Size
58 #define PyBytes_FromFormat PyString_FromFormat
59 #define PyBytes_FromString PyString_FromString
60 #define PyBytes_FromStringAndSize PyString_FromStringAndSize
62 #define PyBytes_Type PyString_Type
64 #define PyROOT_PyUnicode_Check PyString_Check
65 #define PyROOT_PyUnicode_CheckExact PyString_CheckExact
66 #define PyROOT_PyUnicode_AsString PyString_AS_STRING
67 #define PyROOT_PyUnicode_AsStringChecked PyString_AsString
68 #define PyROOT_PyUnicode_GET_SIZE PyString_GET_SIZE
69 #define PyROOT_PyUnicode_GetSize PyString_Size
70 #define PyROOT_PyUnicode_FromFormat PyString_FromFormat
71 #define PyROOT_PyUnicode_FromString PyString_FromString
72 #define PyROOT_PyUnicode_InternFromString PyString_InternFromString
73 #define PyROOT_PyUnicode_Append PyString_Concat
74 #define PyROOT_PyUnicode_AppendAndDel PyString_ConcatAndDel
75 #define PyROOT_PyUnicode_FromStringAndSize PyString_FromStringAndSize
77 #define PyROOT_PyUnicode_Type PyString_Type
81 return PyCObject_FromVoidPtr( cobj, destr );
83 #define PyROOT_PyCapsule_CheckExact PyCObject_Check
86 return (
void*)PyCObject_AsVoidPtr( capsule );
89 #define PYROOT__long__ "__long__"
90 #define PYROOT__idiv__ "__idiv__"
91 #define PYROOT__div__ "__div__"
96 #if PY_VERSION_HEX >= 0x03000000
97 #define PyROOT_PyUnicode_Check PyUnicode_Check
98 #define PyROOT_PyUnicode_CheckExact PyUnicode_CheckExact
99 #define PyROOT_PyUnicode_AsString _PyUnicode_AsString
100 #define PyROOT_PyUnicode_AsStringChecked _PyUnicode_AsString
101 #define PyROOT_PyUnicode_GetSize PyUnicode_GetSize
102 #define PyROOT_PyUnicode_GET_SIZE PyUnicode_GET_SIZE
103 #define PyROOT_PyUnicode_FromFormat PyUnicode_FromFormat
104 #define PyROOT_PyUnicode_FromString PyUnicode_FromString
105 #define PyROOT_PyUnicode_InternFromString PyUnicode_InternFromString
106 #define PyROOT_PyUnicode_Append PyUnicode_Append
107 #define PyROOT_PyUnicode_AppendAndDel PyUnicode_AppendAndDel
108 #define PyROOT_PyUnicode_FromStringAndSize PyUnicode_FromStringAndSize
110 #define PyROOT_PyUnicode_Type PyUnicode_Type
112 #define PyIntObject PyLongObject
113 #define PyInt_Check PyLong_Check
114 #define PyInt_AsLong PyLong_AsLong
115 #define PyInt_AS_LONG PyLong_AsLong
116 #define PyInt_AsSsize_t PyLong_AsSsize_t
117 #define PyInt_CheckExact PyLong_CheckExact
118 #define PyInt_FromLong PyLong_FromLong
119 #define PyInt_FromSsize_t PyLong_FromSsize_t
121 #define PyInt_Type PyLong_Type
123 #define PyROOT_PyCapsule_New PyCapsule_New
124 #define PyROOT_PyCapsule_CheckExact PyCapsule_CheckExact
125 #define PyROOT_PyCapsule_GetPointer PyCapsule_GetPointer
127 #define PYROOT__long__ "__int__"
128 #define PYROOT__idiv__ "__itruediv__"
129 #define PYROOT__div__ "__truediv__"
131 #define Py_TPFLAGS_HAVE_RICHCOMPARE 0
132 #define Py_TPFLAGS_CHECKTYPES 0
134 #define PyClass_Check PyType_Check
136 #define PyBuffer_Type PyMemoryView_Type
139 #if PY_VERSION_HEX >= 0x03020000
140 #define PyROOT_PySliceCast PyObject*
142 #define PyROOT_PySliceCast PySliceObject*
146 #if PY_VERSION_HEX < 0x02060000
147 #define PyVarObject_HEAD_INIT(type, size) \
148 PyObject_HEAD_INIT(type) size,
149 #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
153 #if PY_VERSION_HEX < 0x02050000
155 #define PyInt_AsSsize_t PyInt_AsLong
156 #define PyInt_FromSsize_t PyInt_FromLong
157 # define PY_SSIZE_T_FORMAT "%d"
158 # if !defined(PY_SSIZE_T_MIN)
159 # define PY_SSIZE_T_MAX INT_MAX
160 # define PY_SSIZE_T_MIN INT_MIN
162 #define ssizeobjargproc intobjargproc
163 #define lenfunc inquiry
164 #define ssizeargfunc intargfunc
166 #define PyIndex_Check(obj) \
167 (PyInt_Check(obj) || PyLong_Check(obj))
170 return (Py_ssize_t)PyLong_AsLong( obj );
175 # if SIZEOF_SIZE_T == SIZEOF_INT
176 # if defined(MAC_OS_X_VERSION_10_4)
177 # define PY_SSIZE_T_FORMAT "%ld"
179 # define PY_SSIZE_T_FORMAT "%d"
181 # elif SIZEOF_SIZE_T == SIZEOF_LONG
182 # define PY_SSIZE_T_FORMAT "%ld"
185 # define PY_SSIZE_T_FORMAT "%zd"
189 #if PY_VERSION_HEX < 0x02020000
190 #define PyBool_FromLong PyInt_FromLong
193 #if PY_VERSION_HEX < 0x03000000
197 #define Py_False ( (PyObject*)(void*)&_Py_ZeroStruct )
202 #define Py_True ( (PyObject*)(void*)&_Py_TrueStruct )
209 #endif // !PYROOT_PYROOT_H
Py_ssize_t PyNumber_AsSsize_t(PyObject *obj, PyObject *)
static void * PyROOT_PyCapsule_GetPointer(PyObject *capsule, const char *)
static PyObject * PyROOT_PyCapsule_New(void *cobj, const char *, void(*destr)(void *))