Python compability file for making it possible to compile beamb for both python >2.6 and python3.  
More...
#include "Python.h"
Go to the source code of this file.
|  | 
| #define | PyInt_Check   PyLong_Check | 
|  | 
| #define | PyInt_FromLong   PyLong_FromLong | 
|  | 
| #define | PyInt_AsLong   PyLong_AsLong | 
|  | 
| #define | PyInt_Type   PyLong_Type | 
|  | 
| #define | PyString_Check   PyUnicode_Check | 
|  | 
| #define | PyString_AsString   PyUnicode_AsUTF8 | 
|  | 
| #define | PyString_FromString   PyUnicode_FromString | 
|  | 
| #define | PyString_FromFormat   PyUnicode_FromFormat | 
|  | 
| #define | PY_RAVE_ATTRO_NAME_TO_STRING   PyString_AsString | 
|  | 
| #define | PY_COMPARE_ATTRO_NAME_WITH_STRING(ptr,  name) | 
|  | 
| #define | PY_COMPARE_STRING_WITH_ATTRO_NAME(name,  ptr) | 
|  | 
| #define | MOD_INIT_ERROR | 
|  | 
| #define | MOD_INIT_SUCCESS(val) | 
|  | 
| #define | MOD_INIT(name) | 
|  | 
| #define | MOD_INIT_DEF(ob,  name,  doc,  methods) | 
|  | 
| #define | MOD_INIT_CREATE_CAPI(ptr,  name) | 
|  | 
| #define | MOD_INIT_IS_CAPI(ptr) | 
|  | 
| #define | MOD_INIT_GET_CAPI(ptr,  name) | 
|  | 
| #define | MOD_INIT_SETUP_TYPE(itype,  otype) | 
|  | 
| #define | MOD_INIT_VERIFY_TYPE_READY(type) | 
|  | 
| #define | MOD_DIR_FORWARD_DECLARE(name) | 
|  | Macros that can be used to simplify way of generating dir content that is necessary for executing dir() on an object. 
 | 
|  | 
| #define | MOD_DIR_REFERENCE(name) | 
|  | 
| #define | MOD_DIR_APPEND(list,  str) | 
|  | 
| #define | MOD_DIR_FUNCTION(name,  method_listing) | 
|  | 
Python compability file for making it possible to compile beamb for both python >2.6 and python3. 
- Author
- Anders Henja (Swedish Meteorological and Hydrological Institute, SMHI) 
- Date
- 2010-03-30 
◆ MOD_DIR_APPEND
      
        
          | #define MOD_DIR_APPEND | ( |  | list, | 
        
          |  |  |  | str ) | 
      
 
Value:  do {                                            \
    PyObject *o = PyUnicode_FromString(str);        \
    if (o != NULL)                          \
      PyList_Append(list, o);         \
    Py_XDECREF(o);                          \
  } while (0)
 
 
◆ MOD_DIR_FORWARD_DECLARE
      
        
          | #define MOD_DIR_FORWARD_DECLARE | ( |  | name | ) |  | 
      
 
Value:static PyObject* _##name##__dir__(name *self)
Macros that can be used to simplify way of generating dir content that is necessary for executing dir() on an object. 
 
 
◆ MOD_DIR_FUNCTION
      
        
          | #define MOD_DIR_FUNCTION | ( |  | name, | 
        
          |  |  |  | method_listing ) | 
      
 
Value:  static PyObject * _##name##__dir__(name *self) { \
  int i=0; \
  PyObject* rc = PyList_New(0); \
  if (!rc) \
    return NULL; \
\
  while (method_listing[i].ml_name != NULL) { \
    MOD_DIR_APPEND(rc, method_listing[i++].ml_name); \
  } \
\
  return rc; \
}
 
 
◆ MOD_DIR_REFERENCE
      
        
          | #define MOD_DIR_REFERENCE | ( |  | name | ) |  | 
      
 
 
◆ MOD_INIT
◆ MOD_INIT_CREATE_CAPI
      
        
          | #define MOD_INIT_CREATE_CAPI | ( |  | ptr, | 
        
          |  |  |  | name ) | 
      
 
Value:PyCObject_FromVoidPtr(ptr, name)
 
 
◆ MOD_INIT_DEF
      
        
          | #define MOD_INIT_DEF | ( |  | ob, | 
        
          |  |  |  | name, | 
        
          |  |  |  | doc, | 
        
          |  |  |  | methods ) | 
      
 
Value:  ob = Py_InitModule3(name, methods, doc);
 
 
◆ MOD_INIT_GET_CAPI
      
        
          | #define MOD_INIT_GET_CAPI | ( |  | ptr, | 
        
          |  |  |  | name ) | 
      
 
 
◆ MOD_INIT_IS_CAPI
      
        
          | #define MOD_INIT_IS_CAPI | ( |  | ptr | ) |  | 
      
 
 
◆ MOD_INIT_SETUP_TYPE
      
        
          | #define MOD_INIT_SETUP_TYPE | ( |  | itype, | 
        
          |  |  |  | otype ) | 
      
 
 
◆ PY_COMPARE_ATTRO_NAME_WITH_STRING
      
        
          | #define PY_COMPARE_ATTRO_NAME_WITH_STRING | ( |  | ptr, | 
        
          |  |  |  | name ) | 
      
 
Value:PyBeambAPI_CompareWithASCIIString(ptr, name)
 
 
◆ PY_COMPARE_STRING_WITH_ATTRO_NAME
      
        
          | #define PY_COMPARE_STRING_WITH_ATTRO_NAME | ( |  | name, | 
        
          |  |  |  | ptr ) | 
      
 
Value:PyBeambAPI_CompareWithASCIIString(ptr, name)