diff options
author | Pauli Virtanen <pav@iki.fi> | 2010-03-06 23:59:08 +0000 |
---|---|---|
committer | Pauli Virtanen <pav@iki.fi> | 2010-03-06 23:59:08 +0000 |
commit | 4c1ae336a15e4f701848fac12a521ba67bf784d3 (patch) | |
tree | 287c787e1a6e396f06cc2eb0a35b2472577d7328 /numpy/f2py/src/fortranobject.h | |
parent | 2fb79c1a20753baa824d2b2e6b0ad3f2b144db9d (diff) | |
download | numpy-4c1ae336a15e4f701848fac12a521ba67bf784d3.tar.gz |
3K: f2py: port much of f2py C code to Py3
Diffstat (limited to 'numpy/f2py/src/fortranobject.h')
-rw-r--r-- | numpy/f2py/src/fortranobject.h | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/numpy/f2py/src/fortranobject.h b/numpy/f2py/src/fortranobject.h index 696f79c94..54a386514 100644 --- a/numpy/f2py/src/fortranobject.h +++ b/numpy/f2py/src/fortranobject.h @@ -12,6 +12,31 @@ extern "C" { #define PY_ARRAY_UNIQUE_SYMBOL PyArray_API #include "numpy/arrayobject.h" +/* + * Python 3 support macros + */ +#if PY_VERSION_HEX >= 0x03000000 +#define PyString_Check PyBytes_Check +#define PyString_GET_SIZE PyBytes_GET_SIZE +#define PyString_AS_STRING PyBytes_AS_STRING +#define PyString_FromString PyBytes_FromString +#define PyString_ConcatAndDel PyBytes_ConcatAndDel +#define PyString_AsString PyBytes_AsString + +#define PyInt_Check PyLong_Check +#define PyInt_FromLong PyLong_FromLong +#define PyInt_AS_LONG PyLong_AsLong +#define PyInt_AsLong PyLong_AsLong + +#define PyNumber_Int PyNumber_Long +#endif + +#if (PY_VERSION_HEX < 0x02060000) +#define Py_TYPE(o) (((PyObject*)(o))->ob_type) +#define Py_REFCNT(o) (((PyObject*)(o))->ob_refcnt) +#define Py_SIZE(o) (((PyVarObject*)(o))->ob_size) +#endif + /* #ifdef F2PY_REPORT_ATEXIT_DISABLE #undef F2PY_REPORT_ATEXIT @@ -88,15 +113,15 @@ typedef struct { PyObject *dict; /* Fortran object attribute dictionary */ } PyFortranObject; -#define PyFortran_Check(op) ((op)->ob_type == &PyFortran_Type) -#define PyFortran_Check1(op) (0==strcmp((op)->ob_type->tp_name,"fortran")) +#define PyFortran_Check(op) (Py_TYPE(op) == &PyFortran_Type) +#define PyFortran_Check1(op) (0==strcmp(Py_TYPE(op)->tp_name,"fortran")) extern PyTypeObject PyFortran_Type; extern int F2PyDict_SetItemString(PyObject* dict, char *name, PyObject *obj); extern PyObject * PyFortranObject_New(FortranDataDef* defs, f2py_void_func init); extern PyObject * PyFortranObject_NewAsAttr(FortranDataDef* defs); -#if PY_VERSION_HEX >= 0X03010000 +#if PY_VERSION_HEX >= 0x03010000 PyObject * F2PyCapsule_FromVoidPtr(void *ptr, void (*dtor)(PyObject *)); void * F2PyCapsule_AsVoidPtr(PyObject *obj); @@ -146,6 +171,7 @@ int F2PyCapsule_Check(PyObject *ptr); extern void dump_attrs(const PyArrayObject* arr); #endif + #ifdef __cplusplus } #endif |