~ubuntu-branches/ubuntu/vivid/adios/vivid-proposed

« back to all changes in this revision

Viewing changes to wrappers/numpy/adios_mpi.cpp

  • Committer: Package Import Robot
  • Author(s): Alastair McKinstry
  • Date: 2014-06-16 23:06:38 UTC
  • mfrom: (15.1.8 sid)
  • Revision ID: package-import@ubuntu.com-20140616230638-cxryhot6b8ge32l6
Tags: 1.7.0-1
* New upstream release.
* Add adios.pc pkgconfig file. adios_config now uses this.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Generated by Cython 0.20.1 on Tue May 27 13:00:55 2014 */
 
2
 
 
3
#define PY_SSIZE_T_CLEAN
 
4
#ifndef CYTHON_USE_PYLONG_INTERNALS
 
5
#ifdef PYLONG_BITS_IN_DIGIT
 
6
#define CYTHON_USE_PYLONG_INTERNALS 0
 
7
#else
 
8
#include "pyconfig.h"
 
9
#ifdef PYLONG_BITS_IN_DIGIT
 
10
#define CYTHON_USE_PYLONG_INTERNALS 1
 
11
#else
 
12
#define CYTHON_USE_PYLONG_INTERNALS 0
 
13
#endif
 
14
#endif
 
15
#endif
 
16
#include "Python.h"
 
17
#ifndef Py_PYTHON_H
 
18
    #error Python headers needed to compile C extensions, please install development version of Python.
 
19
#elif PY_VERSION_HEX < 0x02040000
 
20
    #error Cython requires Python 2.4+.
 
21
#else
 
22
#define CYTHON_ABI "0_20_1"
 
23
#include <stddef.h> /* For offsetof */
 
24
#ifndef offsetof
 
25
#define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
 
26
#endif
 
27
#if !defined(WIN32) && !defined(MS_WINDOWS)
 
28
  #ifndef __stdcall
 
29
    #define __stdcall
 
30
  #endif
 
31
  #ifndef __cdecl
 
32
    #define __cdecl
 
33
  #endif
 
34
  #ifndef __fastcall
 
35
    #define __fastcall
 
36
  #endif
 
37
#endif
 
38
#ifndef DL_IMPORT
 
39
  #define DL_IMPORT(t) t
 
40
#endif
 
41
#ifndef DL_EXPORT
 
42
  #define DL_EXPORT(t) t
 
43
#endif
 
44
#ifndef PY_LONG_LONG
 
45
  #define PY_LONG_LONG LONG_LONG
 
46
#endif
 
47
#ifndef Py_HUGE_VAL
 
48
  #define Py_HUGE_VAL HUGE_VAL
 
49
#endif
 
50
#ifdef PYPY_VERSION
 
51
#define CYTHON_COMPILING_IN_PYPY 1
 
52
#define CYTHON_COMPILING_IN_CPYTHON 0
 
53
#else
 
54
#define CYTHON_COMPILING_IN_PYPY 0
 
55
#define CYTHON_COMPILING_IN_CPYTHON 1
 
56
#endif
 
57
#if CYTHON_COMPILING_IN_PYPY
 
58
#define Py_OptimizeFlag 0
 
59
#endif
 
60
#if PY_VERSION_HEX < 0x02050000
 
61
  typedef int Py_ssize_t;
 
62
  #define PY_SSIZE_T_MAX INT_MAX
 
63
  #define PY_SSIZE_T_MIN INT_MIN
 
64
  #define PY_FORMAT_SIZE_T ""
 
65
  #define CYTHON_FORMAT_SSIZE_T ""
 
66
  #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
 
67
  #define PyInt_AsSsize_t(o)   __Pyx_PyInt_As_int(o)
 
68
  #define PyNumber_Index(o)    ((PyNumber_Check(o) && !PyFloat_Check(o)) ? PyNumber_Int(o) : \
 
69
                                (PyErr_Format(PyExc_TypeError, \
 
70
                                              "expected index value, got %.200s", Py_TYPE(o)->tp_name), \
 
71
                                 (PyObject*)0))
 
72
  #define __Pyx_PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && \
 
73
                                  !PyComplex_Check(o))
 
74
  #define PyIndex_Check __Pyx_PyIndex_Check
 
75
  #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
 
76
  #define __PYX_BUILD_PY_SSIZE_T "i"
 
77
#else
 
78
  #define __PYX_BUILD_PY_SSIZE_T "n"
 
79
  #define CYTHON_FORMAT_SSIZE_T "z"
 
80
  #define __Pyx_PyIndex_Check PyIndex_Check
 
81
#endif
 
82
#if PY_VERSION_HEX < 0x02060000
 
83
  #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
 
84
  #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
 
85
  #define Py_SIZE(ob)   (((PyVarObject*)(ob))->ob_size)
 
86
  #define PyVarObject_HEAD_INIT(type, size) \
 
87
          PyObject_HEAD_INIT(type) size,
 
88
  #define PyType_Modified(t)
 
89
  typedef struct {
 
90
     void *buf;
 
91
     PyObject *obj;
 
92
     Py_ssize_t len;
 
93
     Py_ssize_t itemsize;
 
94
     int readonly;
 
95
     int ndim;
 
96
     char *format;
 
97
     Py_ssize_t *shape;
 
98
     Py_ssize_t *strides;
 
99
     Py_ssize_t *suboffsets;
 
100
     void *internal;
 
101
  } Py_buffer;
 
102
  #define PyBUF_SIMPLE 0
 
103
  #define PyBUF_WRITABLE 0x0001
 
104
  #define PyBUF_FORMAT 0x0004
 
105
  #define PyBUF_ND 0x0008
 
106
  #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
 
107
  #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
 
108
  #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
 
109
  #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
 
110
  #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
 
111
  #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_FORMAT | PyBUF_WRITABLE)
 
112
  #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_FORMAT | PyBUF_WRITABLE)
 
113
  typedef int (*getbufferproc)(PyObject *, Py_buffer *, int);
 
114
  typedef void (*releasebufferproc)(PyObject *, Py_buffer *);
 
115
#endif
 
116
#if PY_MAJOR_VERSION < 3
 
117
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
 
118
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
 
119
          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
 
120
  #define __Pyx_DefaultClassType PyClass_Type
 
121
#else
 
122
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
 
123
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
 
124
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
 
125
  #define __Pyx_DefaultClassType PyType_Type
 
126
#endif
 
127
#if PY_VERSION_HEX < 0x02060000
 
128
  #define PyUnicode_FromString(s) PyUnicode_Decode(s, strlen(s), "UTF-8", "strict")
 
129
#endif
 
130
#if PY_MAJOR_VERSION >= 3
 
131
  #define Py_TPFLAGS_CHECKTYPES 0
 
132
  #define Py_TPFLAGS_HAVE_INDEX 0
 
133
#endif
 
134
#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
 
135
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
 
136
#endif
 
137
#if PY_VERSION_HEX < 0x02060000
 
138
  #define Py_TPFLAGS_HAVE_VERSION_TAG 0
 
139
#endif
 
140
#if PY_VERSION_HEX < 0x02060000 && !defined(Py_TPFLAGS_IS_ABSTRACT)
 
141
  #define Py_TPFLAGS_IS_ABSTRACT 0
 
142
#endif
 
143
#if PY_VERSION_HEX < 0x030400a1 && !defined(Py_TPFLAGS_HAVE_FINALIZE)
 
144
  #define Py_TPFLAGS_HAVE_FINALIZE 0
 
145
#endif
 
146
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
 
147
  #define CYTHON_PEP393_ENABLED 1
 
148
  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ? \
 
149
                                              0 : _PyUnicode_Ready((PyObject *)(op)))
 
150
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
 
151
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
 
152
  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
 
153
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
 
154
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
 
155
#else
 
156
  #define CYTHON_PEP393_ENABLED 0
 
157
  #define __Pyx_PyUnicode_READY(op)       (0)
 
158
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
 
159
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
 
160
  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
 
161
  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
 
162
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
 
163
#endif
 
164
#if CYTHON_COMPILING_IN_PYPY
 
165
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
 
166
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
 
167
#else
 
168
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
 
169
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ? \
 
170
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
 
171
#endif
 
172
#define __Pyx_PyString_FormatSafe(a, b)  ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
 
173
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
 
174
#if PY_MAJOR_VERSION >= 3
 
175
  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
 
176
#else
 
177
  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
 
178
#endif
 
179
#if PY_MAJOR_VERSION >= 3
 
180
  #define PyBaseString_Type            PyUnicode_Type
 
181
  #define PyStringObject               PyUnicodeObject
 
182
  #define PyString_Type                PyUnicode_Type
 
183
  #define PyString_Check               PyUnicode_Check
 
184
  #define PyString_CheckExact          PyUnicode_CheckExact
 
185
#endif
 
186
#if PY_VERSION_HEX < 0x02060000
 
187
  #define PyBytesObject                PyStringObject
 
188
  #define PyBytes_Type                 PyString_Type
 
189
  #define PyBytes_Check                PyString_Check
 
190
  #define PyBytes_CheckExact           PyString_CheckExact
 
191
  #define PyBytes_FromString           PyString_FromString
 
192
  #define PyBytes_FromStringAndSize    PyString_FromStringAndSize
 
193
  #define PyBytes_FromFormat           PyString_FromFormat
 
194
  #define PyBytes_DecodeEscape         PyString_DecodeEscape
 
195
  #define PyBytes_AsString             PyString_AsString
 
196
  #define PyBytes_AsStringAndSize      PyString_AsStringAndSize
 
197
  #define PyBytes_Size                 PyString_Size
 
198
  #define PyBytes_AS_STRING            PyString_AS_STRING
 
199
  #define PyBytes_GET_SIZE             PyString_GET_SIZE
 
200
  #define PyBytes_Repr                 PyString_Repr
 
201
  #define PyBytes_Concat               PyString_Concat
 
202
  #define PyBytes_ConcatAndDel         PyString_ConcatAndDel
 
203
#endif
 
204
#if PY_MAJOR_VERSION >= 3
 
205
  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
 
206
  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
 
207
#else
 
208
  #define __Pyx_PyBaseString_Check(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj) || \
 
209
                                         PyString_Check(obj) || PyUnicode_Check(obj))
 
210
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
 
211
#endif
 
212
#if PY_VERSION_HEX < 0x02060000
 
213
  #define PySet_Check(obj)             PyObject_TypeCheck(obj, &PySet_Type)
 
214
  #define PyFrozenSet_Check(obj)       PyObject_TypeCheck(obj, &PyFrozenSet_Type)
 
215
#endif
 
216
#ifndef PySet_CheckExact
 
217
  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
 
218
#endif
 
219
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
 
220
#if PY_MAJOR_VERSION >= 3
 
221
  #define PyIntObject                  PyLongObject
 
222
  #define PyInt_Type                   PyLong_Type
 
223
  #define PyInt_Check(op)              PyLong_Check(op)
 
224
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
 
225
  #define PyInt_FromString             PyLong_FromString
 
226
  #define PyInt_FromUnicode            PyLong_FromUnicode
 
227
  #define PyInt_FromLong               PyLong_FromLong
 
228
  #define PyInt_FromSize_t             PyLong_FromSize_t
 
229
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
 
230
  #define PyInt_AsLong                 PyLong_AsLong
 
231
  #define PyInt_AS_LONG                PyLong_AS_LONG
 
232
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
 
233
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
 
234
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
 
235
  #define PyNumber_Int                 PyNumber_Long
 
236
#endif
 
237
#if PY_MAJOR_VERSION >= 3
 
238
  #define PyBoolObject                 PyLongObject
 
239
#endif
 
240
#if PY_VERSION_HEX < 0x030200A4
 
241
  typedef long Py_hash_t;
 
242
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
 
243
  #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
 
244
#else
 
245
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
 
246
  #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
 
247
#endif
 
248
#if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300)
 
249
  #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)
 
250
  #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value)
 
251
  #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b)
 
252
#else
 
253
  #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \
 
254
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \
 
255
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \
 
256
            (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0)))
 
257
  #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \
 
258
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
 
259
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \
 
260
            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1)))
 
261
  #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \
 
262
        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
 
263
        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \
 
264
            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1)))
 
265
#endif
 
266
#if PY_MAJOR_VERSION >= 3
 
267
  #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
 
268
#endif
 
269
#if PY_VERSION_HEX < 0x02050000
 
270
  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),((char *)(n)))
 
271
  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
 
272
  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),((char *)(n)))
 
273
#else
 
274
  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),(n))
 
275
  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
 
276
  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),(n))
 
277
#endif
 
278
#if PY_VERSION_HEX < 0x02050000
 
279
  #define __Pyx_NAMESTR(n) ((char *)(n))
 
280
  #define __Pyx_DOCSTR(n)  ((char *)(n))
 
281
#else
 
282
  #define __Pyx_NAMESTR(n) (n)
 
283
  #define __Pyx_DOCSTR(n)  (n)
 
284
#endif
 
285
#ifndef CYTHON_INLINE
 
286
  #if defined(__GNUC__)
 
287
    #define CYTHON_INLINE __inline__
 
288
  #elif defined(_MSC_VER)
 
289
    #define CYTHON_INLINE __inline
 
290
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 
291
    #define CYTHON_INLINE inline
 
292
  #else
 
293
    #define CYTHON_INLINE
 
294
  #endif
 
295
#endif
 
296
#ifndef CYTHON_RESTRICT
 
297
  #if defined(__GNUC__)
 
298
    #define CYTHON_RESTRICT __restrict__
 
299
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
 
300
    #define CYTHON_RESTRICT __restrict
 
301
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 
302
    #define CYTHON_RESTRICT restrict
 
303
  #else
 
304
    #define CYTHON_RESTRICT
 
305
  #endif
 
306
#endif
 
307
#ifdef NAN
 
308
#define __PYX_NAN() ((float) NAN)
 
309
#else
 
310
static CYTHON_INLINE float __PYX_NAN() {
 
311
  /* Initialize NaN. The sign is irrelevant, an exponent with all bits 1 and
 
312
   a nonzero mantissa means NaN. If the first bit in the mantissa is 1, it is
 
313
   a quiet NaN. */
 
314
  float value;
 
315
  memset(&value, 0xFF, sizeof(value));
 
316
  return value;
 
317
}
 
318
#endif
 
319
 
 
320
 
 
321
#if PY_MAJOR_VERSION >= 3
 
322
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
 
323
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
 
324
#else
 
325
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
 
326
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
 
327
#endif
 
328
 
 
329
#ifndef __PYX_EXTERN_C
 
330
  #ifdef __cplusplus
 
331
    #define __PYX_EXTERN_C extern "C"
 
332
  #else
 
333
    #define __PYX_EXTERN_C extern
 
334
  #endif
 
335
#endif
 
336
 
 
337
#if defined(WIN32) || defined(MS_WINDOWS)
 
338
#define _USE_MATH_DEFINES
 
339
#endif
 
340
#include <math.h>
 
341
#define __PYX_HAVE__adios_mpi
 
342
#define __PYX_HAVE_API__adios_mpi
 
343
#include "string.h"
 
344
#include "stdio.h"
 
345
#include "stdlib.h"
 
346
#include "numpy/arrayobject.h"
 
347
#include "numpy/ufuncobject.h"
 
348
#include "mpi.h"
 
349
#include "stdint.h"
 
350
#include "adios_types.h"
 
351
#include "adios.h"
 
352
#include "adios_selection.h"
 
353
#include "adios_read.h"
 
354
#ifdef _OPENMP
 
355
#include <omp.h>
 
356
#endif /* _OPENMP */
 
357
 
 
358
#ifdef PYREX_WITHOUT_ASSERTIONS
 
359
#define CYTHON_WITHOUT_ASSERTIONS
 
360
#endif
 
361
 
 
362
#ifndef CYTHON_UNUSED
 
363
# if defined(__GNUC__)
 
364
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
 
365
#     define CYTHON_UNUSED __attribute__ ((__unused__))
 
366
#   else
 
367
#     define CYTHON_UNUSED
 
368
#   endif
 
369
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
 
370
#   define CYTHON_UNUSED __attribute__ ((__unused__))
 
371
# else
 
372
#   define CYTHON_UNUSED
 
373
# endif
 
374
#endif
 
375
typedef struct {PyObject **p; char *s; const Py_ssize_t n; const char* encoding;
 
376
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
 
377
 
 
378
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
 
379
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
 
380
#define __PYX_DEFAULT_STRING_ENCODING ""
 
381
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
 
382
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
 
383
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (    \
 
384
    (sizeof(type) < sizeof(Py_ssize_t))  ||             \
 
385
    (sizeof(type) > sizeof(Py_ssize_t) &&               \
 
386
          likely(v < (type)PY_SSIZE_T_MAX ||            \
 
387
                 v == (type)PY_SSIZE_T_MAX)  &&         \
 
388
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||       \
 
389
                                v == (type)PY_SSIZE_T_MIN)))  ||  \
 
390
    (sizeof(type) == sizeof(Py_ssize_t) &&              \
 
391
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||        \
 
392
                               v == (type)PY_SSIZE_T_MAX)))  )
 
393
static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*);
 
394
static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
 
395
#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
 
396
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
 
397
#define __Pyx_PyBytes_FromString        PyBytes_FromString
 
398
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
 
399
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(char*);
 
400
#if PY_MAJOR_VERSION < 3
 
401
    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
 
402
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
 
403
#else
 
404
    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
 
405
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
 
406
#endif
 
407
#define __Pyx_PyObject_AsSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
 
408
#define __Pyx_PyObject_AsUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
 
409
#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((char*)s)
 
410
#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((char*)s)
 
411
#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((char*)s)
 
412
#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((char*)s)
 
413
#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((char*)s)
 
414
#if PY_MAJOR_VERSION < 3
 
415
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
 
416
{
 
417
    const Py_UNICODE *u_end = u;
 
418
    while (*u_end++) ;
 
419
    return u_end - u - 1;
 
420
}
 
421
#else
 
422
#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
 
423
#endif
 
424
#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
 
425
#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
 
426
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
 
427
#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
 
428
#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
 
429
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
 
430
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
 
431
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
 
432
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
 
433
#if CYTHON_COMPILING_IN_CPYTHON
 
434
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
 
435
#else
 
436
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
 
437
#endif
 
438
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
 
439
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
 
440
static int __Pyx_sys_getdefaultencoding_not_ascii;
 
441
static int __Pyx_init_sys_getdefaultencoding_params(void) {
 
442
    PyObject* sys = NULL;
 
443
    PyObject* default_encoding = NULL;
 
444
    PyObject* ascii_chars_u = NULL;
 
445
    PyObject* ascii_chars_b = NULL;
 
446
    sys = PyImport_ImportModule("sys");
 
447
    if (sys == NULL) goto bad;
 
448
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
 
449
    if (default_encoding == NULL) goto bad;
 
450
    if (strcmp(PyBytes_AsString(default_encoding), "ascii") == 0) {
 
451
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
 
452
    } else {
 
453
        const char* default_encoding_c = PyBytes_AS_STRING(default_encoding);
 
454
        char ascii_chars[128];
 
455
        int c;
 
456
        for (c = 0; c < 128; c++) {
 
457
            ascii_chars[c] = c;
 
458
        }
 
459
        __Pyx_sys_getdefaultencoding_not_ascii = 1;
 
460
        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
 
461
        if (ascii_chars_u == NULL) goto bad;
 
462
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
 
463
        if (ascii_chars_b == NULL || strncmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
 
464
            PyErr_Format(
 
465
                PyExc_ValueError,
 
466
                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
 
467
                default_encoding_c);
 
468
            goto bad;
 
469
        }
 
470
    }
 
471
    Py_XDECREF(sys);
 
472
    Py_XDECREF(default_encoding);
 
473
    Py_XDECREF(ascii_chars_u);
 
474
    Py_XDECREF(ascii_chars_b);
 
475
    return 0;
 
476
bad:
 
477
    Py_XDECREF(sys);
 
478
    Py_XDECREF(default_encoding);
 
479
    Py_XDECREF(ascii_chars_u);
 
480
    Py_XDECREF(ascii_chars_b);
 
481
    return -1;
 
482
}
 
483
#endif
 
484
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
 
485
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
 
486
#else
 
487
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
 
488
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
 
489
static char* __PYX_DEFAULT_STRING_ENCODING;
 
490
static int __Pyx_init_sys_getdefaultencoding_params(void) {
 
491
    PyObject* sys = NULL;
 
492
    PyObject* default_encoding = NULL;
 
493
    char* default_encoding_c;
 
494
    sys = PyImport_ImportModule("sys");
 
495
    if (sys == NULL) goto bad;
 
496
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
 
497
    if (default_encoding == NULL) goto bad;
 
498
    default_encoding_c = PyBytes_AS_STRING(default_encoding);
 
499
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c));
 
500
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
 
501
    Py_DECREF(sys);
 
502
    Py_DECREF(default_encoding);
 
503
    return 0;
 
504
bad:
 
505
    Py_XDECREF(sys);
 
506
    Py_XDECREF(default_encoding);
 
507
    return -1;
 
508
}
 
509
#endif
 
510
#endif
 
511
 
 
512
 
 
513
#ifdef __GNUC__
 
514
  /* Test for GCC > 2.95 */
 
515
  #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
 
516
    #define likely(x)   __builtin_expect(!!(x), 1)
 
517
    #define unlikely(x) __builtin_expect(!!(x), 0)
 
518
  #else /* __GNUC__ > 2 ... */
 
519
    #define likely(x)   (x)
 
520
    #define unlikely(x) (x)
 
521
  #endif /* __GNUC__ > 2 ... */
 
522
#else /* __GNUC__ */
 
523
  #define likely(x)   (x)
 
524
  #define unlikely(x) (x)
 
525
#endif /* __GNUC__ */
 
526
 
 
527
static PyObject *__pyx_m;
 
528
static PyObject *__pyx_d;
 
529
static PyObject *__pyx_b;
 
530
static PyObject *__pyx_empty_tuple;
 
531
static PyObject *__pyx_empty_bytes;
 
532
static int __pyx_lineno;
 
533
static int __pyx_clineno = 0;
 
534
static const char * __pyx_cfilenm= __FILE__;
 
535
static const char *__pyx_filename;
 
536
 
 
537
#if !defined(CYTHON_CCOMPLEX)
 
538
  #if defined(__cplusplus)
 
539
    #define CYTHON_CCOMPLEX 1
 
540
  #elif defined(_Complex_I)
 
541
    #define CYTHON_CCOMPLEX 1
 
542
  #else
 
543
    #define CYTHON_CCOMPLEX 0
 
544
  #endif
 
545
#endif
 
546
#if CYTHON_CCOMPLEX
 
547
  #ifdef __cplusplus
 
548
    #include <complex>
 
549
  #else
 
550
    #include <complex.h>
 
551
  #endif
 
552
#endif
 
553
#if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
 
554
  #undef _Complex_I
 
555
  #define _Complex_I 1.0fj
 
556
#endif
 
557
 
 
558
 
 
559
static const char *__pyx_f[] = {
 
560
  "adios_mpi.pyx",
 
561
  "__init__.pxd",
 
562
  "type.pxd",
 
563
  "MPI.pxd",
 
564
};
 
565
 
 
566
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":723
 
567
 * # in Cython to enable them only on the right systems.
 
568
 * 
 
569
 * ctypedef npy_int8       int8_t             # <<<<<<<<<<<<<<
 
570
 * ctypedef npy_int16      int16_t
 
571
 * ctypedef npy_int32      int32_t
 
572
 */
 
573
typedef npy_int8 __pyx_t_5numpy_int8_t;
 
574
 
 
575
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":724
 
576
 * 
 
577
 * ctypedef npy_int8       int8_t
 
578
 * ctypedef npy_int16      int16_t             # <<<<<<<<<<<<<<
 
579
 * ctypedef npy_int32      int32_t
 
580
 * ctypedef npy_int64      int64_t
 
581
 */
 
582
typedef npy_int16 __pyx_t_5numpy_int16_t;
 
583
 
 
584
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":725
 
585
 * ctypedef npy_int8       int8_t
 
586
 * ctypedef npy_int16      int16_t
 
587
 * ctypedef npy_int32      int32_t             # <<<<<<<<<<<<<<
 
588
 * ctypedef npy_int64      int64_t
 
589
 * #ctypedef npy_int96      int96_t
 
590
 */
 
591
typedef npy_int32 __pyx_t_5numpy_int32_t;
 
592
 
 
593
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":726
 
594
 * ctypedef npy_int16      int16_t
 
595
 * ctypedef npy_int32      int32_t
 
596
 * ctypedef npy_int64      int64_t             # <<<<<<<<<<<<<<
 
597
 * #ctypedef npy_int96      int96_t
 
598
 * #ctypedef npy_int128     int128_t
 
599
 */
 
600
typedef npy_int64 __pyx_t_5numpy_int64_t;
 
601
 
 
602
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":730
 
603
 * #ctypedef npy_int128     int128_t
 
604
 * 
 
605
 * ctypedef npy_uint8      uint8_t             # <<<<<<<<<<<<<<
 
606
 * ctypedef npy_uint16     uint16_t
 
607
 * ctypedef npy_uint32     uint32_t
 
608
 */
 
609
typedef npy_uint8 __pyx_t_5numpy_uint8_t;
 
610
 
 
611
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":731
 
612
 * 
 
613
 * ctypedef npy_uint8      uint8_t
 
614
 * ctypedef npy_uint16     uint16_t             # <<<<<<<<<<<<<<
 
615
 * ctypedef npy_uint32     uint32_t
 
616
 * ctypedef npy_uint64     uint64_t
 
617
 */
 
618
typedef npy_uint16 __pyx_t_5numpy_uint16_t;
 
619
 
 
620
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":732
 
621
 * ctypedef npy_uint8      uint8_t
 
622
 * ctypedef npy_uint16     uint16_t
 
623
 * ctypedef npy_uint32     uint32_t             # <<<<<<<<<<<<<<
 
624
 * ctypedef npy_uint64     uint64_t
 
625
 * #ctypedef npy_uint96     uint96_t
 
626
 */
 
627
typedef npy_uint32 __pyx_t_5numpy_uint32_t;
 
628
 
 
629
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":733
 
630
 * ctypedef npy_uint16     uint16_t
 
631
 * ctypedef npy_uint32     uint32_t
 
632
 * ctypedef npy_uint64     uint64_t             # <<<<<<<<<<<<<<
 
633
 * #ctypedef npy_uint96     uint96_t
 
634
 * #ctypedef npy_uint128    uint128_t
 
635
 */
 
636
typedef npy_uint64 __pyx_t_5numpy_uint64_t;
 
637
 
 
638
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":737
 
639
 * #ctypedef npy_uint128    uint128_t
 
640
 * 
 
641
 * ctypedef npy_float32    float32_t             # <<<<<<<<<<<<<<
 
642
 * ctypedef npy_float64    float64_t
 
643
 * #ctypedef npy_float80    float80_t
 
644
 */
 
645
typedef npy_float32 __pyx_t_5numpy_float32_t;
 
646
 
 
647
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":738
 
648
 * 
 
649
 * ctypedef npy_float32    float32_t
 
650
 * ctypedef npy_float64    float64_t             # <<<<<<<<<<<<<<
 
651
 * #ctypedef npy_float80    float80_t
 
652
 * #ctypedef npy_float128   float128_t
 
653
 */
 
654
typedef npy_float64 __pyx_t_5numpy_float64_t;
 
655
 
 
656
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":747
 
657
 * # The int types are mapped a bit surprising --
 
658
 * # numpy.int corresponds to 'l' and numpy.long to 'q'
 
659
 * ctypedef npy_long       int_t             # <<<<<<<<<<<<<<
 
660
 * ctypedef npy_longlong   long_t
 
661
 * ctypedef npy_longlong   longlong_t
 
662
 */
 
663
typedef npy_long __pyx_t_5numpy_int_t;
 
664
 
 
665
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":748
 
666
 * # numpy.int corresponds to 'l' and numpy.long to 'q'
 
667
 * ctypedef npy_long       int_t
 
668
 * ctypedef npy_longlong   long_t             # <<<<<<<<<<<<<<
 
669
 * ctypedef npy_longlong   longlong_t
 
670
 * 
 
671
 */
 
672
typedef npy_longlong __pyx_t_5numpy_long_t;
 
673
 
 
674
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":749
 
675
 * ctypedef npy_long       int_t
 
676
 * ctypedef npy_longlong   long_t
 
677
 * ctypedef npy_longlong   longlong_t             # <<<<<<<<<<<<<<
 
678
 * 
 
679
 * ctypedef npy_ulong      uint_t
 
680
 */
 
681
typedef npy_longlong __pyx_t_5numpy_longlong_t;
 
682
 
 
683
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":751
 
684
 * ctypedef npy_longlong   longlong_t
 
685
 * 
 
686
 * ctypedef npy_ulong      uint_t             # <<<<<<<<<<<<<<
 
687
 * ctypedef npy_ulonglong  ulong_t
 
688
 * ctypedef npy_ulonglong  ulonglong_t
 
689
 */
 
690
typedef npy_ulong __pyx_t_5numpy_uint_t;
 
691
 
 
692
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":752
 
693
 * 
 
694
 * ctypedef npy_ulong      uint_t
 
695
 * ctypedef npy_ulonglong  ulong_t             # <<<<<<<<<<<<<<
 
696
 * ctypedef npy_ulonglong  ulonglong_t
 
697
 * 
 
698
 */
 
699
typedef npy_ulonglong __pyx_t_5numpy_ulong_t;
 
700
 
 
701
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":753
 
702
 * ctypedef npy_ulong      uint_t
 
703
 * ctypedef npy_ulonglong  ulong_t
 
704
 * ctypedef npy_ulonglong  ulonglong_t             # <<<<<<<<<<<<<<
 
705
 * 
 
706
 * ctypedef npy_intp       intp_t
 
707
 */
 
708
typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
 
709
 
 
710
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":755
 
711
 * ctypedef npy_ulonglong  ulonglong_t
 
712
 * 
 
713
 * ctypedef npy_intp       intp_t             # <<<<<<<<<<<<<<
 
714
 * ctypedef npy_uintp      uintp_t
 
715
 * 
 
716
 */
 
717
typedef npy_intp __pyx_t_5numpy_intp_t;
 
718
 
 
719
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":756
 
720
 * 
 
721
 * ctypedef npy_intp       intp_t
 
722
 * ctypedef npy_uintp      uintp_t             # <<<<<<<<<<<<<<
 
723
 * 
 
724
 * ctypedef npy_double     float_t
 
725
 */
 
726
typedef npy_uintp __pyx_t_5numpy_uintp_t;
 
727
 
 
728
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":758
 
729
 * ctypedef npy_uintp      uintp_t
 
730
 * 
 
731
 * ctypedef npy_double     float_t             # <<<<<<<<<<<<<<
 
732
 * ctypedef npy_double     double_t
 
733
 * ctypedef npy_longdouble longdouble_t
 
734
 */
 
735
typedef npy_double __pyx_t_5numpy_float_t;
 
736
 
 
737
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":759
 
738
 * 
 
739
 * ctypedef npy_double     float_t
 
740
 * ctypedef npy_double     double_t             # <<<<<<<<<<<<<<
 
741
 * ctypedef npy_longdouble longdouble_t
 
742
 * 
 
743
 */
 
744
typedef npy_double __pyx_t_5numpy_double_t;
 
745
 
 
746
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":760
 
747
 * ctypedef npy_double     float_t
 
748
 * ctypedef npy_double     double_t
 
749
 * ctypedef npy_longdouble longdouble_t             # <<<<<<<<<<<<<<
 
750
 * 
 
751
 * ctypedef npy_cfloat      cfloat_t
 
752
 */
 
753
typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
 
754
#if CYTHON_CCOMPLEX
 
755
  #ifdef __cplusplus
 
756
    typedef ::std::complex< float > __pyx_t_float_complex;
 
757
  #else
 
758
    typedef float _Complex __pyx_t_float_complex;
 
759
  #endif
 
760
#else
 
761
    typedef struct { float real, imag; } __pyx_t_float_complex;
 
762
#endif
 
763
 
 
764
#if CYTHON_CCOMPLEX
 
765
  #ifdef __cplusplus
 
766
    typedef ::std::complex< double > __pyx_t_double_complex;
 
767
  #else
 
768
    typedef double _Complex __pyx_t_double_complex;
 
769
  #endif
 
770
#else
 
771
    typedef struct { double real, imag; } __pyx_t_double_complex;
 
772
#endif
 
773
 
 
774
 
 
775
/*--- Type declarations ---*/
 
776
struct PyMPIStatusObject;
 
777
struct PyMPIDatatypeObject;
 
778
struct PyMPIRequestObject;
 
779
struct PyMPIPrequestObject;
 
780
struct PyMPIGrequestObject;
 
781
struct PyMPIOpObject;
 
782
struct PyMPIGroupObject;
 
783
struct PyMPIInfoObject;
 
784
struct PyMPIErrhandlerObject;
 
785
struct PyMPICommObject;
 
786
struct PyMPIIntracommObject;
 
787
struct PyMPICartcommObject;
 
788
struct PyMPIGraphcommObject;
 
789
struct PyMPIDistgraphcommObject;
 
790
struct PyMPIIntercommObject;
 
791
struct PyMPIWinObject;
 
792
struct PyMPIFileObject;
 
793
struct __pyx_obj_9adios_mpi_file;
 
794
struct __pyx_obj_9adios_mpi_var;
 
795
 
 
796
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":762
 
797
 * ctypedef npy_longdouble longdouble_t
 
798
 * 
 
799
 * ctypedef npy_cfloat      cfloat_t             # <<<<<<<<<<<<<<
 
800
 * ctypedef npy_cdouble     cdouble_t
 
801
 * ctypedef npy_clongdouble clongdouble_t
 
802
 */
 
803
typedef npy_cfloat __pyx_t_5numpy_cfloat_t;
 
804
 
 
805
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":763
 
806
 * 
 
807
 * ctypedef npy_cfloat      cfloat_t
 
808
 * ctypedef npy_cdouble     cdouble_t             # <<<<<<<<<<<<<<
 
809
 * ctypedef npy_clongdouble clongdouble_t
 
810
 * 
 
811
 */
 
812
typedef npy_cdouble __pyx_t_5numpy_cdouble_t;
 
813
 
 
814
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":764
 
815
 * ctypedef npy_cfloat      cfloat_t
 
816
 * ctypedef npy_cdouble     cdouble_t
 
817
 * ctypedef npy_clongdouble clongdouble_t             # <<<<<<<<<<<<<<
 
818
 * 
 
819
 * ctypedef npy_cdouble     complex_t
 
820
 */
 
821
typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t;
 
822
 
 
823
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":766
 
824
 * ctypedef npy_clongdouble clongdouble_t
 
825
 * 
 
826
 * ctypedef npy_cdouble     complex_t             # <<<<<<<<<<<<<<
 
827
 * 
 
828
 * cdef inline object PyArray_MultiIterNew1(a):
 
829
 */
 
830
typedef npy_cdouble __pyx_t_5numpy_complex_t;
 
831
struct __pyx_opt_args_9adios_mpi_init;
 
832
struct __pyx_opt_args_9adios_mpi_open;
 
833
struct __pyx_opt_args_9adios_mpi_finalize;
 
834
struct __pyx_opt_args_9adios_mpi_init_noxml;
 
835
struct __pyx_opt_args_9adios_mpi_read_init;
 
836
struct __pyx_opt_args_9adios_mpi_read_finalize;
 
837
struct __pyx_opt_args_9adios_mpi_3var_read;
 
838
 
 
839
/* "adios_mpi.pyx":254
 
840
 * ## ====================
 
841
 * 
 
842
 * cpdef init(char * config, MPI.Comm comm = MPI.COMM_WORLD):             # <<<<<<<<<<<<<<
 
843
 *     return adios_init(config, comm.ob_mpi)
 
844
 * 
 
845
 */
 
846
struct __pyx_opt_args_9adios_mpi_init {
 
847
  int __pyx_n;
 
848
  struct PyMPICommObject *comm;
 
849
};
 
850
 
 
851
/* "adios_mpi.pyx":257
 
852
 *     return adios_init(config, comm.ob_mpi)
 
853
 * 
 
854
 * cpdef int64_t open(char * group_name,             # <<<<<<<<<<<<<<
 
855
 *                    char * name,
 
856
 *                    char * mode,
 
857
 */
 
858
struct __pyx_opt_args_9adios_mpi_open {
 
859
  int __pyx_n;
 
860
  struct PyMPICommObject *comm;
 
861
};
 
862
 
 
863
/* "adios_mpi.pyx":298
 
864
 *     return adios_close(fd_p)
 
865
 * 
 
866
 * cpdef finalize(int mype = 0):             # <<<<<<<<<<<<<<
 
867
 *     return adios_finalize(mype)
 
868
 * 
 
869
 */
 
870
struct __pyx_opt_args_9adios_mpi_finalize {
 
871
  int __pyx_n;
 
872
  int mype;
 
873
};
 
874
 
 
875
/* "adios_mpi.pyx":304
 
876
 * ## ADIOS No-XML API
 
877
 * ## ====================
 
878
 * cpdef int init_noxml(MPI.Comm comm = MPI.COMM_WORLD):             # <<<<<<<<<<<<<<
 
879
 *     return adios_init_noxml(comm.ob_mpi)
 
880
 * 
 
881
 */
 
882
struct __pyx_opt_args_9adios_mpi_init_noxml {
 
883
  int __pyx_n;
 
884
  struct PyMPICommObject *comm;
 
885
};
 
886
 
 
887
/* "adios_mpi.pyx":420
 
888
 * ## ====================
 
889
 * 
 
890
 * cpdef read_init(ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP,             # <<<<<<<<<<<<<<
 
891
 *                 MPI.Comm comm = MPI.COMM_WORLD,
 
892
 *                 char * parameters = ""):
 
893
 */
 
894
struct __pyx_opt_args_9adios_mpi_read_init {
 
895
  int __pyx_n;
 
896
  ADIOS_READ_METHOD method;
 
897
  struct PyMPICommObject *comm;
 
898
  char *parameters;
 
899
};
 
900
 
 
901
/* "adios_mpi.pyx":426
 
902
 * 
 
903
 * 
 
904
 * cpdef read_finalize(ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP):             # <<<<<<<<<<<<<<
 
905
 *     return adios_read_finalize_method (method)
 
906
 * 
 
907
 */
 
908
struct __pyx_opt_args_9adios_mpi_read_finalize {
 
909
  int __pyx_n;
 
910
  ADIOS_READ_METHOD method;
 
911
};
 
912
 
 
913
/* "adios_mpi.pyx":518
 
914
 *         self.vp = NULL
 
915
 * 
 
916
 *     cpdef read(self, tuple offset = (), tuple count = (), from_steps = 0, nsteps = 1):             # <<<<<<<<<<<<<<
 
917
 *         assert self.type is not None, 'Data type is not supported yet'
 
918
 *         assert from_steps + nsteps <= self.nsteps, 'Step index is out of range'
 
919
 */
 
920
struct __pyx_opt_args_9adios_mpi_3var_read {
 
921
  int __pyx_n;
 
922
  PyObject *offset;
 
923
  PyObject *count;
 
924
  PyObject *from_steps;
 
925
  PyObject *nsteps;
 
926
};
 
927
 
 
928
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":49
 
929
 *     ctypedef MPI_Offset Offset "MPI_Offset"
 
930
 * 
 
931
 * ctypedef public api class Status [             # <<<<<<<<<<<<<<
 
932
 *     type   PyMPIStatus_Type,
 
933
 *     object PyMPIStatusObject,
 
934
 */
 
935
struct PyMPIStatusObject {
 
936
  PyObject_HEAD
 
937
  MPI_Status ob_mpi;
 
938
  int flags;
 
939
};
 
940
typedef struct PyMPIStatusObject PyMPIStatusObject;
 
941
 
 
942
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIStatus_Type;
 
943
 
 
944
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":56
 
945
 *     cdef int        flags
 
946
 * 
 
947
 * ctypedef public api class Datatype [             # <<<<<<<<<<<<<<
 
948
 *     type   PyMPIDatatype_Type,
 
949
 *     object PyMPIDatatypeObject,
 
950
 */
 
951
struct PyMPIDatatypeObject {
 
952
  PyObject_HEAD
 
953
  MPI_Datatype ob_mpi;
 
954
  int flags;
 
955
};
 
956
typedef struct PyMPIDatatypeObject PyMPIDatatypeObject;
 
957
 
 
958
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIDatatype_Type;
 
959
 
 
960
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":63
 
961
 *     cdef int          flags
 
962
 * 
 
963
 * ctypedef public api class Request [             # <<<<<<<<<<<<<<
 
964
 *     type   PyMPIRequest_Type,
 
965
 *     object PyMPIRequestObject,
 
966
 */
 
967
struct PyMPIRequestObject {
 
968
  PyObject_HEAD
 
969
  MPI_Request ob_mpi;
 
970
  int flags;
 
971
  PyObject *ob_buf;
 
972
};
 
973
typedef struct PyMPIRequestObject PyMPIRequestObject;
 
974
 
 
975
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIRequest_Type;
 
976
 
 
977
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":71
 
978
 *     cdef object      ob_buf
 
979
 * 
 
980
 * ctypedef public api class Prequest(Request) [             # <<<<<<<<<<<<<<
 
981
 *     type   PyMPIPrequest_Type,
 
982
 *     object PyMPIPrequestObject,
 
983
 */
 
984
struct PyMPIPrequestObject {
 
985
  struct PyMPIRequestObject __pyx_base;
 
986
};
 
987
typedef struct PyMPIPrequestObject PyMPIPrequestObject;
 
988
 
 
989
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIPrequest_Type;
 
990
 
 
991
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":77
 
992
 *     pass
 
993
 * 
 
994
 * ctypedef public api class Grequest(Request) [             # <<<<<<<<<<<<<<
 
995
 *     type   PyMPIGrequest_Type,
 
996
 *     object PyMPIGrequestObject,
 
997
 */
 
998
struct PyMPIGrequestObject {
 
999
  struct PyMPIRequestObject __pyx_base;
 
1000
  MPI_Request ob_grequest;
 
1001
};
 
1002
typedef struct PyMPIGrequestObject PyMPIGrequestObject;
 
1003
 
 
1004
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIGrequest_Type;
 
1005
 
 
1006
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":83
 
1007
 *     cdef MPI_Request ob_grequest
 
1008
 * 
 
1009
 * ctypedef public api class Op [             # <<<<<<<<<<<<<<
 
1010
 *     type   PyMPIOp_Type,
 
1011
 *     object PyMPIOpObject,
 
1012
 */
 
1013
struct PyMPIOpObject {
 
1014
  PyObject_HEAD
 
1015
  MPI_Op ob_mpi;
 
1016
  int flags;
 
1017
  PyObject *(*ob_func)(PyObject *, PyObject *);
 
1018
  int ob_usrid;
 
1019
};
 
1020
typedef struct PyMPIOpObject PyMPIOpObject;
 
1021
 
 
1022
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIOp_Type;
 
1023
 
 
1024
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":92
 
1025
 *     cdef int    ob_usrid
 
1026
 * 
 
1027
 * ctypedef public api class Group [             # <<<<<<<<<<<<<<
 
1028
 *     type   PyMPIGroup_Type,
 
1029
 *     object PyMPIGroupObject,
 
1030
 */
 
1031
struct PyMPIGroupObject {
 
1032
  PyObject_HEAD
 
1033
  MPI_Group ob_mpi;
 
1034
  int flags;
 
1035
};
 
1036
typedef struct PyMPIGroupObject PyMPIGroupObject;
 
1037
 
 
1038
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIGroup_Type;
 
1039
 
 
1040
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":99
 
1041
 *     cdef int       flags
 
1042
 * 
 
1043
 * ctypedef public api class Info [             # <<<<<<<<<<<<<<
 
1044
 *     type   PyMPIInfo_Type,
 
1045
 *     object PyMPIInfoObject,
 
1046
 */
 
1047
struct PyMPIInfoObject {
 
1048
  PyObject_HEAD
 
1049
  MPI_Info ob_mpi;
 
1050
  int flags;
 
1051
};
 
1052
typedef struct PyMPIInfoObject PyMPIInfoObject;
 
1053
 
 
1054
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIInfo_Type;
 
1055
 
 
1056
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":106
 
1057
 *     cdef int      flags
 
1058
 * 
 
1059
 * ctypedef public api class Errhandler [             # <<<<<<<<<<<<<<
 
1060
 *     type   PyMPIErrhandler_Type,
 
1061
 *     object PyMPIErrhandlerObject,
 
1062
 */
 
1063
struct PyMPIErrhandlerObject {
 
1064
  PyObject_HEAD
 
1065
  MPI_Errhandler ob_mpi;
 
1066
  int flags;
 
1067
};
 
1068
typedef struct PyMPIErrhandlerObject PyMPIErrhandlerObject;
 
1069
 
 
1070
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIErrhandler_Type;
 
1071
 
 
1072
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":113
 
1073
 *     cdef int            flags
 
1074
 * 
 
1075
 * ctypedef public api class Comm [             # <<<<<<<<<<<<<<
 
1076
 *     type   PyMPIComm_Type,
 
1077
 *     object PyMPICommObject,
 
1078
 */
 
1079
struct PyMPICommObject {
 
1080
  PyObject_HEAD
 
1081
  MPI_Comm ob_mpi;
 
1082
  int flags;
 
1083
};
 
1084
typedef struct PyMPICommObject PyMPICommObject;
 
1085
 
 
1086
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIComm_Type;
 
1087
 
 
1088
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":120
 
1089
 *     cdef int      flags
 
1090
 * 
 
1091
 * ctypedef public api class Intracomm(Comm) [             # <<<<<<<<<<<<<<
 
1092
 *     type   PyMPIIntracomm_Type,
 
1093
 *     object PyMPIIntracommObject,
 
1094
 */
 
1095
struct PyMPIIntracommObject {
 
1096
  struct PyMPICommObject __pyx_base;
 
1097
};
 
1098
typedef struct PyMPIIntracommObject PyMPIIntracommObject;
 
1099
 
 
1100
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIIntracomm_Type;
 
1101
 
 
1102
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":126
 
1103
 *     pass
 
1104
 * 
 
1105
 * ctypedef public api class Cartcomm(Intracomm) [             # <<<<<<<<<<<<<<
 
1106
 *     type   PyMPICartcomm_Type,
 
1107
 *     object PyMPICartcommObject,
 
1108
 */
 
1109
struct PyMPICartcommObject {
 
1110
  struct PyMPIIntracommObject __pyx_base;
 
1111
};
 
1112
typedef struct PyMPICartcommObject PyMPICartcommObject;
 
1113
 
 
1114
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPICartcomm_Type;
 
1115
 
 
1116
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":132
 
1117
 *     pass
 
1118
 * 
 
1119
 * ctypedef public api class Graphcomm(Intracomm) [             # <<<<<<<<<<<<<<
 
1120
 *     type   PyMPIGraphcomm_Type,
 
1121
 *     object PyMPIGraphcommObject,
 
1122
 */
 
1123
struct PyMPIGraphcommObject {
 
1124
  struct PyMPIIntracommObject __pyx_base;
 
1125
};
 
1126
typedef struct PyMPIGraphcommObject PyMPIGraphcommObject;
 
1127
 
 
1128
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIGraphcomm_Type;
 
1129
 
 
1130
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":138
 
1131
 *     pass
 
1132
 * 
 
1133
 * ctypedef public api class Distgraphcomm(Intracomm) [             # <<<<<<<<<<<<<<
 
1134
 *     type   PyMPIDistgraphcomm_Type,
 
1135
 *     object PyMPIDistgraphcommObject,
 
1136
 */
 
1137
struct PyMPIDistgraphcommObject {
 
1138
  struct PyMPIIntracommObject __pyx_base;
 
1139
};
 
1140
typedef struct PyMPIDistgraphcommObject PyMPIDistgraphcommObject;
 
1141
 
 
1142
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIDistgraphcomm_Type;
 
1143
 
 
1144
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":144
 
1145
 *     pass
 
1146
 * 
 
1147
 * ctypedef public api class Intercomm(Comm) [             # <<<<<<<<<<<<<<
 
1148
 *     type   PyMPIIntercomm_Type,
 
1149
 *     object PyMPIIntercommObject,
 
1150
 */
 
1151
struct PyMPIIntercommObject {
 
1152
  struct PyMPICommObject __pyx_base;
 
1153
};
 
1154
typedef struct PyMPIIntercommObject PyMPIIntercommObject;
 
1155
 
 
1156
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIIntercomm_Type;
 
1157
 
 
1158
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":150
 
1159
 *     pass
 
1160
 * 
 
1161
 * ctypedef public api class Win [             # <<<<<<<<<<<<<<
 
1162
 *     type   PyMPIWin_Type,
 
1163
 *     object PyMPIWinObject,
 
1164
 */
 
1165
struct PyMPIWinObject {
 
1166
  PyObject_HEAD
 
1167
  MPI_Win ob_mpi;
 
1168
  int flags;
 
1169
};
 
1170
typedef struct PyMPIWinObject PyMPIWinObject;
 
1171
 
 
1172
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIWin_Type;
 
1173
 
 
1174
/* "/Users/jyc/Library/Python/2.7/lib/python/site-packages/mpi4py/include/mpi4py/MPI.pxd":157
 
1175
 *     cdef int     flags
 
1176
 * 
 
1177
 * ctypedef public api class File [             # <<<<<<<<<<<<<<
 
1178
 *     type   PyMPIFile_Type,
 
1179
 *     object PyMPIFileObject,
 
1180
 */
 
1181
struct PyMPIFileObject {
 
1182
  PyObject_HEAD
 
1183
  MPI_File ob_mpi;
 
1184
  int flags;
 
1185
};
 
1186
typedef struct PyMPIFileObject PyMPIFileObject;
 
1187
 
 
1188
__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyMPIFile_Type;
 
1189
 
 
1190
/* "adios_mpi.pyx":429
 
1191
 *     return adios_read_finalize_method (method)
 
1192
 * 
 
1193
 * cdef class file:             # <<<<<<<<<<<<<<
 
1194
 *     """ Private Memeber """
 
1195
 *     cpdef ADIOS_FILE * fp
 
1196
 */
 
1197
struct __pyx_obj_9adios_mpi_file {
 
1198
  PyObject_HEAD
 
1199
  struct __pyx_vtabstruct_9adios_mpi_file *__pyx_vtab;
 
1200
  ADIOS_FILE *fp;
 
1201
  PyObject *name;
 
1202
  int nvars;
 
1203
  int nattrs;
 
1204
  int current_step;
 
1205
  int last_step;
 
1206
  int endianness;
 
1207
  int version;
 
1208
  int file_size;
 
1209
  PyObject *var;
 
1210
  PyObject *attr;
 
1211
};
 
1212
 
 
1213
 
 
1214
/* "adios_mpi.pyx":482
 
1215
 *         printfile(self.fp)
 
1216
 * 
 
1217
 * cdef class var:             # <<<<<<<<<<<<<<
 
1218
 *     """ Private Memeber """
 
1219
 *     cdef file file
 
1220
 */
 
1221
struct __pyx_obj_9adios_mpi_var {
 
1222
  PyObject_HEAD
 
1223
  struct __pyx_vtabstruct_9adios_mpi_var *__pyx_vtab;
 
1224
  struct __pyx_obj_9adios_mpi_file *file;
 
1225
  ADIOS_VARINFO *vp;
 
1226
  PyObject *name;
 
1227
  int varid;
 
1228
  PyObject *type;
 
1229
  int ndim;
 
1230
  PyObject *dims;
 
1231
  int nsteps;
 
1232
};
 
1233
 
 
1234
 
 
1235
 
 
1236
/* "adios_mpi.pyx":429
 
1237
 *     return adios_read_finalize_method (method)
 
1238
 * 
 
1239
 * cdef class file:             # <<<<<<<<<<<<<<
 
1240
 *     """ Private Memeber """
 
1241
 *     cpdef ADIOS_FILE * fp
 
1242
 */
 
1243
 
 
1244
struct __pyx_vtabstruct_9adios_mpi_file {
 
1245
  PyObject *(*close)(struct __pyx_obj_9adios_mpi_file *, int __pyx_skip_dispatch);
 
1246
  PyObject *(*printself)(struct __pyx_obj_9adios_mpi_file *, int __pyx_skip_dispatch);
 
1247
};
 
1248
static struct __pyx_vtabstruct_9adios_mpi_file *__pyx_vtabptr_9adios_mpi_file;
 
1249
 
 
1250
 
 
1251
/* "adios_mpi.pyx":482
 
1252
 *         printfile(self.fp)
 
1253
 * 
 
1254
 * cdef class var:             # <<<<<<<<<<<<<<
 
1255
 *     """ Private Memeber """
 
1256
 *     cdef file file
 
1257
 */
 
1258
 
 
1259
struct __pyx_vtabstruct_9adios_mpi_var {
 
1260
  PyObject *(*close)(struct __pyx_obj_9adios_mpi_var *, int __pyx_skip_dispatch);
 
1261
  PyObject *(*read)(struct __pyx_obj_9adios_mpi_var *, int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_3var_read *__pyx_optional_args);
 
1262
  PyObject *(*printself)(struct __pyx_obj_9adios_mpi_var *, int __pyx_skip_dispatch);
 
1263
};
 
1264
static struct __pyx_vtabstruct_9adios_mpi_var *__pyx_vtabptr_9adios_mpi_var;
 
1265
#ifndef CYTHON_REFNANNY
 
1266
  #define CYTHON_REFNANNY 0
 
1267
#endif
 
1268
#if CYTHON_REFNANNY
 
1269
  typedef struct {
 
1270
    void (*INCREF)(void*, PyObject*, int);
 
1271
    void (*DECREF)(void*, PyObject*, int);
 
1272
    void (*GOTREF)(void*, PyObject*, int);
 
1273
    void (*GIVEREF)(void*, PyObject*, int);
 
1274
    void* (*SetupContext)(const char*, int, const char*);
 
1275
    void (*FinishContext)(void**);
 
1276
  } __Pyx_RefNannyAPIStruct;
 
1277
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
 
1278
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/
 
1279
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
 
1280
#ifdef WITH_THREAD
 
1281
  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
 
1282
          if (acquire_gil) { \
 
1283
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \
 
1284
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
 
1285
              PyGILState_Release(__pyx_gilstate_save); \
 
1286
          } else { \
 
1287
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
 
1288
          }
 
1289
#else
 
1290
  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
 
1291
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
 
1292
#endif
 
1293
  #define __Pyx_RefNannyFinishContext() \
 
1294
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
 
1295
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
 
1296
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
 
1297
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
 
1298
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
 
1299
  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
 
1300
  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
 
1301
  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
 
1302
  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
 
1303
#else
 
1304
  #define __Pyx_RefNannyDeclarations
 
1305
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
 
1306
  #define __Pyx_RefNannyFinishContext()
 
1307
  #define __Pyx_INCREF(r) Py_INCREF(r)
 
1308
  #define __Pyx_DECREF(r) Py_DECREF(r)
 
1309
  #define __Pyx_GOTREF(r)
 
1310
  #define __Pyx_GIVEREF(r)
 
1311
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
 
1312
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
 
1313
  #define __Pyx_XGOTREF(r)
 
1314
  #define __Pyx_XGIVEREF(r)
 
1315
#endif /* CYTHON_REFNANNY */
 
1316
#define __Pyx_XDECREF_SET(r, v) do {                            \
 
1317
        PyObject *tmp = (PyObject *) r;                         \
 
1318
        r = v; __Pyx_XDECREF(tmp);                              \
 
1319
    } while (0)
 
1320
#define __Pyx_DECREF_SET(r, v) do {                             \
 
1321
        PyObject *tmp = (PyObject *) r;                         \
 
1322
        r = v; __Pyx_DECREF(tmp);                               \
 
1323
    } while (0)
 
1324
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
 
1325
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
 
1326
 
 
1327
#if CYTHON_COMPILING_IN_CPYTHON
 
1328
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
 
1329
    PyTypeObject* tp = Py_TYPE(obj);
 
1330
    if (likely(tp->tp_getattro))
 
1331
        return tp->tp_getattro(obj, attr_name);
 
1332
#if PY_MAJOR_VERSION < 3
 
1333
    if (likely(tp->tp_getattr))
 
1334
        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
 
1335
#endif
 
1336
    return PyObject_GetAttr(obj, attr_name);
 
1337
}
 
1338
#else
 
1339
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
 
1340
#endif
 
1341
 
 
1342
static PyObject *__Pyx_GetBuiltinName(PyObject *name); /*proto*/
 
1343
 
 
1344
static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /*proto*/
 
1345
 
 
1346
static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \
 
1347
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \
 
1348
    const char* function_name); /*proto*/
 
1349
 
 
1350
static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
 
1351
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
 
1352
 
 
1353
static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
 
1354
    const char *name, int exact); /*proto*/
 
1355
 
 
1356
static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); /*proto*/
 
1357
 
 
1358
#if CYTHON_COMPILING_IN_CPYTHON
 
1359
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); /*proto*/
 
1360
#else
 
1361
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
 
1362
#endif
 
1363
 
 
1364
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/
 
1365
 
 
1366
static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
 
1367
static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 
1368
 
 
1369
static void __Pyx_WriteUnraisable(const char *name, int clineno,
 
1370
                                  int lineno, const char *filename,
 
1371
                                  int full_traceback); /*proto*/
 
1372
 
 
1373
#if CYTHON_COMPILING_IN_CPYTHON
 
1374
static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
 
1375
    PyListObject* L = (PyListObject*) list;
 
1376
    Py_ssize_t len = Py_SIZE(list);
 
1377
    if (likely(L->allocated > len)) {
 
1378
        Py_INCREF(x);
 
1379
        PyList_SET_ITEM(list, len, x);
 
1380
        Py_SIZE(list) = len+1;
 
1381
        return 0;
 
1382
    }
 
1383
    return PyList_Append(list, x);
 
1384
}
 
1385
#else
 
1386
#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
 
1387
#endif
 
1388
 
 
1389
#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
 
1390
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
 
1391
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) : \
 
1392
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) : \
 
1393
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
 
1394
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
 
1395
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
 
1396
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) : \
 
1397
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
 
1398
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
 
1399
                                                              int wraparound, int boundscheck);
 
1400
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
 
1401
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
 
1402
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) : \
 
1403
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
 
1404
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
 
1405
                                                              int wraparound, int boundscheck);
 
1406
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
 
1407
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
 
1408
                                                     int is_list, int wraparound, int boundscheck);
 
1409
 
 
1410
#if PY_MAJOR_VERSION >= 3
 
1411
static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
 
1412
    PyObject *value;
 
1413
    value = PyDict_GetItemWithError(d, key);
 
1414
    if (unlikely(!value)) {
 
1415
        if (!PyErr_Occurred()) {
 
1416
            PyObject* args = PyTuple_Pack(1, key);
 
1417
            if (likely(args))
 
1418
                PyErr_SetObject(PyExc_KeyError, args);
 
1419
            Py_XDECREF(args);
 
1420
        }
 
1421
        return NULL;
 
1422
    }
 
1423
    Py_INCREF(value);
 
1424
    return value;
 
1425
}
 
1426
#else
 
1427
    #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
 
1428
#endif
 
1429
 
 
1430
static CYTHON_INLINE int __Pyx_IterFinish(void); /*proto*/
 
1431
 
 
1432
static PyObject* __Pyx_PyObject_CallMethodTuple(PyObject* obj, PyObject* method_name, PyObject* args) {
 
1433
    PyObject *method, *result = NULL;
 
1434
    if (unlikely(!args)) return NULL;
 
1435
    method = __Pyx_PyObject_GetAttrStr(obj, method_name);
 
1436
    if (unlikely(!method)) goto bad;
 
1437
    result = __Pyx_PyObject_Call(method, args, NULL);
 
1438
    Py_DECREF(method);
 
1439
bad:
 
1440
    Py_DECREF(args);
 
1441
    return result;
 
1442
}
 
1443
#define __Pyx_PyObject_CallMethod3(obj, name, arg1, arg2, arg3) \
 
1444
    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(3, arg1, arg2, arg3))
 
1445
#define __Pyx_PyObject_CallMethod2(obj, name, arg1, arg2) \
 
1446
    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(2, arg1, arg2))
 
1447
#define __Pyx_PyObject_CallMethod1(obj, name, arg1) \
 
1448
    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(1, arg1))
 
1449
#define __Pyx_PyObject_CallMethod0(obj, name) \
 
1450
    __Pyx_PyObject_CallMethodTuple(obj, name, (Py_INCREF(__pyx_empty_tuple), __pyx_empty_tuple))
 
1451
 
 
1452
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
 
1453
 
 
1454
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
 
1455
 
 
1456
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /*proto*/
 
1457
 
 
1458
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);
 
1459
 
 
1460
static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /*proto*/
 
1461
 
 
1462
static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** value1, PyObject** value2,
 
1463
                                             int is_tuple, int has_known_size, int decref_tuple);
 
1464
 
 
1465
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
 
1466
                                                   Py_ssize_t* p_orig_length, int* p_is_dict);
 
1467
static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
 
1468
                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);
 
1469
 
 
1470
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/
 
1471
 
 
1472
static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
 
1473
 
 
1474
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases);
 
1475
 
 
1476
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname,
 
1477
                                           PyObject *mkw, PyObject *modname, PyObject *doc); /*proto*/
 
1478
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict,
 
1479
                                      PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass); /*proto*/
 
1480
 
 
1481
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
 
1482
 
 
1483
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
 
1484
 
 
1485
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /*proto*/
 
1486
 
 
1487
static CYTHON_INLINE int64_t __Pyx_PyInt_As_int64_t(PyObject *);
 
1488
 
 
1489
static CYTHON_INLINE uint64_t __Pyx_PyInt_As_uint64_t(PyObject *);
 
1490
 
 
1491
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
 
1492
 
 
1493
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int64_t(int64_t value);
 
1494
 
 
1495
static int __Pyx_Print(PyObject*, PyObject *, int); /*proto*/
 
1496
#if CYTHON_COMPILING_IN_PYPY || PY_MAJOR_VERSION >= 3
 
1497
static PyObject* __pyx_print = 0;
 
1498
static PyObject* __pyx_print_kwargs = 0;
 
1499
#endif
 
1500
 
 
1501
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value);
 
1502
 
 
1503
static int __Pyx_PrintOne(PyObject* stream, PyObject *o); /*proto*/
 
1504
 
 
1505
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
 
1506
 
 
1507
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_long(unsigned long value);
 
1508
 
 
1509
#if CYTHON_CCOMPLEX
 
1510
  #ifdef __cplusplus
 
1511
    #define __Pyx_CREAL(z) ((z).real())
 
1512
    #define __Pyx_CIMAG(z) ((z).imag())
 
1513
  #else
 
1514
    #define __Pyx_CREAL(z) (__real__(z))
 
1515
    #define __Pyx_CIMAG(z) (__imag__(z))
 
1516
  #endif
 
1517
#else
 
1518
    #define __Pyx_CREAL(z) ((z).real)
 
1519
    #define __Pyx_CIMAG(z) ((z).imag)
 
1520
#endif
 
1521
#if (defined(_WIN32) || defined(__clang__)) && defined(__cplusplus) && CYTHON_CCOMPLEX
 
1522
    #define __Pyx_SET_CREAL(z,x) ((z).real(x))
 
1523
    #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
 
1524
#else
 
1525
    #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
 
1526
    #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
 
1527
#endif
 
1528
 
 
1529
static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);
 
1530
 
 
1531
#if CYTHON_CCOMPLEX
 
1532
    #define __Pyx_c_eqf(a, b)   ((a)==(b))
 
1533
    #define __Pyx_c_sumf(a, b)  ((a)+(b))
 
1534
    #define __Pyx_c_difff(a, b) ((a)-(b))
 
1535
    #define __Pyx_c_prodf(a, b) ((a)*(b))
 
1536
    #define __Pyx_c_quotf(a, b) ((a)/(b))
 
1537
    #define __Pyx_c_negf(a)     (-(a))
 
1538
  #ifdef __cplusplus
 
1539
    #define __Pyx_c_is_zerof(z) ((z)==(float)0)
 
1540
    #define __Pyx_c_conjf(z)    (::std::conj(z))
 
1541
    #if 1
 
1542
        #define __Pyx_c_absf(z)     (::std::abs(z))
 
1543
        #define __Pyx_c_powf(a, b)  (::std::pow(a, b))
 
1544
    #endif
 
1545
  #else
 
1546
    #define __Pyx_c_is_zerof(z) ((z)==0)
 
1547
    #define __Pyx_c_conjf(z)    (conjf(z))
 
1548
    #if 1
 
1549
        #define __Pyx_c_absf(z)     (cabsf(z))
 
1550
        #define __Pyx_c_powf(a, b)  (cpowf(a, b))
 
1551
    #endif
 
1552
 #endif
 
1553
#else
 
1554
    static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex, __pyx_t_float_complex);
 
1555
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_complex, __pyx_t_float_complex);
 
1556
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_complex, __pyx_t_float_complex);
 
1557
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_complex, __pyx_t_float_complex);
 
1558
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_complex, __pyx_t_float_complex);
 
1559
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_complex);
 
1560
    static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex);
 
1561
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_complex);
 
1562
    #if 1
 
1563
        static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex);
 
1564
        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_complex, __pyx_t_float_complex);
 
1565
    #endif
 
1566
#endif
 
1567
 
 
1568
static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);
 
1569
 
 
1570
#if CYTHON_CCOMPLEX
 
1571
    #define __Pyx_c_eq(a, b)   ((a)==(b))
 
1572
    #define __Pyx_c_sum(a, b)  ((a)+(b))
 
1573
    #define __Pyx_c_diff(a, b) ((a)-(b))
 
1574
    #define __Pyx_c_prod(a, b) ((a)*(b))
 
1575
    #define __Pyx_c_quot(a, b) ((a)/(b))
 
1576
    #define __Pyx_c_neg(a)     (-(a))
 
1577
  #ifdef __cplusplus
 
1578
    #define __Pyx_c_is_zero(z) ((z)==(double)0)
 
1579
    #define __Pyx_c_conj(z)    (::std::conj(z))
 
1580
    #if 1
 
1581
        #define __Pyx_c_abs(z)     (::std::abs(z))
 
1582
        #define __Pyx_c_pow(a, b)  (::std::pow(a, b))
 
1583
    #endif
 
1584
  #else
 
1585
    #define __Pyx_c_is_zero(z) ((z)==0)
 
1586
    #define __Pyx_c_conj(z)    (conj(z))
 
1587
    #if 1
 
1588
        #define __Pyx_c_abs(z)     (cabs(z))
 
1589
        #define __Pyx_c_pow(a, b)  (cpow(a, b))
 
1590
    #endif
 
1591
 #endif
 
1592
#else
 
1593
    static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex, __pyx_t_double_complex);
 
1594
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_complex, __pyx_t_double_complex);
 
1595
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_complex, __pyx_t_double_complex);
 
1596
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_complex, __pyx_t_double_complex);
 
1597
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_complex, __pyx_t_double_complex);
 
1598
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_complex);
 
1599
    static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex);
 
1600
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_complex);
 
1601
    #if 1
 
1602
        static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex);
 
1603
        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_complex, __pyx_t_double_complex);
 
1604
    #endif
 
1605
#endif
 
1606
 
 
1607
static int __Pyx_check_binary_version(void);
 
1608
 
 
1609
#if !defined(__Pyx_PyIdentifier_FromString)
 
1610
#if PY_MAJOR_VERSION < 3
 
1611
  #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s)
 
1612
#else
 
1613
  #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s)
 
1614
#endif
 
1615
#endif
 
1616
 
 
1617
static PyObject *__Pyx_ImportModule(const char *name); /*proto*/
 
1618
 
 
1619
static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict);  /*proto*/
 
1620
 
 
1621
typedef struct {
 
1622
    int code_line;
 
1623
    PyCodeObject* code_object;
 
1624
} __Pyx_CodeObjectCacheEntry;
 
1625
struct __Pyx_CodeObjectCache {
 
1626
    int count;
 
1627
    int max_count;
 
1628
    __Pyx_CodeObjectCacheEntry* entries;
 
1629
};
 
1630
static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
 
1631
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
 
1632
static PyCodeObject *__pyx_find_code_object(int code_line);
 
1633
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
 
1634
 
 
1635
static void __Pyx_AddTraceback(const char *funcname, int c_line,
 
1636
                               int py_line, const char *filename); /*proto*/
 
1637
 
 
1638
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
 
1639
 
 
1640
 
 
1641
/* Module declarations from 'cpython.buffer' */
 
1642
 
 
1643
/* Module declarations from 'cpython.ref' */
 
1644
 
 
1645
/* Module declarations from 'libc.string' */
 
1646
 
 
1647
/* Module declarations from 'libc.stdio' */
 
1648
 
 
1649
/* Module declarations from 'cpython.object' */
 
1650
 
 
1651
/* Module declarations from '__builtin__' */
 
1652
 
 
1653
/* Module declarations from 'cpython.type' */
 
1654
static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0;
 
1655
 
 
1656
/* Module declarations from 'libc.stdlib' */
 
1657
 
 
1658
/* Module declarations from 'numpy' */
 
1659
 
 
1660
/* Module declarations from 'numpy' */
 
1661
static PyTypeObject *__pyx_ptype_5numpy_dtype = 0;
 
1662
static PyTypeObject *__pyx_ptype_5numpy_flatiter = 0;
 
1663
static PyTypeObject *__pyx_ptype_5numpy_broadcast = 0;
 
1664
static PyTypeObject *__pyx_ptype_5numpy_ndarray = 0;
 
1665
static PyTypeObject *__pyx_ptype_5numpy_ufunc = 0;
 
1666
static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *, char *, char *, int *); /*proto*/
 
1667
 
 
1668
/* Module declarations from 'mpi4py.MPI' */
 
1669
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Status = 0;
 
1670
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Datatype = 0;
 
1671
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Request = 0;
 
1672
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Prequest = 0;
 
1673
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Grequest = 0;
 
1674
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Op = 0;
 
1675
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Group = 0;
 
1676
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Info = 0;
 
1677
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Errhandler = 0;
 
1678
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Comm = 0;
 
1679
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Intracomm = 0;
 
1680
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Cartcomm = 0;
 
1681
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Graphcomm = 0;
 
1682
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Distgraphcomm = 0;
 
1683
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Intercomm = 0;
 
1684
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_Win = 0;
 
1685
static PyTypeObject *__pyx_ptype_6mpi4py_3MPI_File = 0;
 
1686
 
 
1687
/* Module declarations from 'cython' */
 
1688
 
 
1689
/* Module declarations from 'libc.stdint' */
 
1690
 
 
1691
/* Module declarations from 'adios_mpi' */
 
1692
static PyTypeObject *__pyx_ptype_9adios_mpi_file = 0;
 
1693
static PyTypeObject *__pyx_ptype_9adios_mpi_var = 0;
 
1694
static PyObject *__pyx_f_9adios_mpi_init(char *, int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_init *__pyx_optional_args); /*proto*/
 
1695
static int64_t __pyx_f_9adios_mpi_open(char *, char *, char *, int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_open *__pyx_optional_args); /*proto*/
 
1696
static int64_t __pyx_f_9adios_mpi_set_group_size(int64_t, uint64_t, int __pyx_skip_dispatch); /*proto*/
 
1697
static int __pyx_f_9adios_mpi_write(int64_t, char *, PyArrayObject *, int __pyx_skip_dispatch); /*proto*/
 
1698
static int __pyx_f_9adios_mpi_write_int(int64_t, char *, int, int __pyx_skip_dispatch); /*proto*/
 
1699
static int __pyx_f_9adios_mpi_write_long(int64_t, char *, long, int __pyx_skip_dispatch); /*proto*/
 
1700
static int __pyx_f_9adios_mpi_write_float(int64_t, char *, float, int __pyx_skip_dispatch); /*proto*/
 
1701
static int __pyx_f_9adios_mpi_read(int64_t, char *, PyArrayObject *, int __pyx_skip_dispatch); /*proto*/
 
1702
static int __pyx_f_9adios_mpi_close(int64_t, int __pyx_skip_dispatch); /*proto*/
 
1703
static PyObject *__pyx_f_9adios_mpi_finalize(int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_finalize *__pyx_optional_args); /*proto*/
 
1704
static int __pyx_f_9adios_mpi_init_noxml(int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_init_noxml *__pyx_optional_args); /*proto*/
 
1705
static int __pyx_f_9adios_mpi_allocate_buffer(int, uint64_t, int __pyx_skip_dispatch); /*proto*/
 
1706
static int64_t __pyx_f_9adios_mpi_declare_group(char *, char *, int, int __pyx_skip_dispatch); /*proto*/
 
1707
static int __pyx_f_9adios_mpi_define_var(int64_t, char *, char *, int, char *, char *, char *, int __pyx_skip_dispatch); /*proto*/
 
1708
static int __pyx_f_9adios_mpi_define_attribute(int64_t, char *, char *, int, char *, char *, int __pyx_skip_dispatch); /*proto*/
 
1709
static int __pyx_f_9adios_mpi_select_method(int64_t, char *, char *, char *, int __pyx_skip_dispatch); /*proto*/
 
1710
static PyObject *__pyx_f_9adios_mpi_adios2nptype(ADIOS_DATATYPES); /*proto*/
 
1711
static PyObject *__pyx_f_9adios_mpi_printfile(ADIOS_FILE *); /*proto*/
 
1712
static PyObject *__pyx_f_9adios_mpi_printvar(ADIOS_VARINFO *); /*proto*/
 
1713
static PyObject *__pyx_f_9adios_mpi_read_init(int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_read_init *__pyx_optional_args); /*proto*/
 
1714
static PyObject *__pyx_f_9adios_mpi_read_finalize(int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_read_finalize *__pyx_optional_args); /*proto*/
 
1715
#define __Pyx_MODULE_NAME "adios_mpi"
 
1716
int __pyx_module_is_main_adios_mpi = 0;
 
1717
 
 
1718
/* Implementation of 'adios_mpi' */
 
1719
static PyObject *__pyx_builtin_range;
 
1720
static PyObject *__pyx_builtin_ValueError;
 
1721
static PyObject *__pyx_builtin_RuntimeError;
 
1722
static PyObject *__pyx_pf_9adios_mpi_init(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_config, struct PyMPICommObject *__pyx_v_comm); /* proto */
 
1723
static PyObject *__pyx_pf_9adios_mpi_2open(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group_name, char *__pyx_v_name, char *__pyx_v_mode, struct PyMPICommObject *__pyx_v_comm); /* proto */
 
1724
static PyObject *__pyx_pf_9adios_mpi_4set_group_size(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, uint64_t __pyx_v_data_size); /* proto */
 
1725
static PyObject *__pyx_pf_9adios_mpi_6write(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, char *__pyx_v_name, PyArrayObject *__pyx_v_val); /* proto */
 
1726
static PyObject *__pyx_pf_9adios_mpi_8write_int(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, char *__pyx_v_name, int __pyx_v_val); /* proto */
 
1727
static PyObject *__pyx_pf_9adios_mpi_10write_long(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, char *__pyx_v_name, long __pyx_v_val); /* proto */
 
1728
static PyObject *__pyx_pf_9adios_mpi_12write_float(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, char *__pyx_v_name, float __pyx_v_val); /* proto */
 
1729
static PyObject *__pyx_pf_9adios_mpi_14read(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, char *__pyx_v_name, PyArrayObject *__pyx_v_val); /* proto */
 
1730
static PyObject *__pyx_pf_9adios_mpi_16close(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p); /* proto */
 
1731
static PyObject *__pyx_pf_9adios_mpi_18finalize(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_mype); /* proto */
 
1732
static PyObject *__pyx_pf_9adios_mpi_20init_noxml(CYTHON_UNUSED PyObject *__pyx_self, struct PyMPICommObject *__pyx_v_comm); /* proto */
 
1733
static PyObject *__pyx_pf_9adios_mpi_22allocate_buffer(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_when, uint64_t __pyx_v_buffer_size); /* proto */
 
1734
static PyObject *__pyx_pf_9adios_mpi_24declare_group(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_name, char *__pyx_v_time_index, int __pyx_v_stats); /* proto */
 
1735
static PyObject *__pyx_pf_9adios_mpi_26define_var(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_group_id, char *__pyx_v_name, char *__pyx_v_path, int __pyx_v_type, char *__pyx_v_dimensions, char *__pyx_v_global_dimensions, char *__pyx_v_local_offsets); /* proto */
 
1736
static PyObject *__pyx_pf_9adios_mpi_28define_attribute(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_group, char *__pyx_v_name, char *__pyx_v_path, int __pyx_v_type, char *__pyx_v_value, char *__pyx_v_var); /* proto */
 
1737
static PyObject *__pyx_pf_9adios_mpi_30select_method(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_group, char *__pyx_v_method, char *__pyx_v_parameters, char *__pyx_v_base_path); /* proto */
 
1738
static PyObject *__pyx_pf_9adios_mpi_32read_init(CYTHON_UNUSED PyObject *__pyx_self, ADIOS_READ_METHOD __pyx_v_method, struct PyMPICommObject *__pyx_v_comm, char *__pyx_v_parameters); /* proto */
 
1739
static PyObject *__pyx_pf_9adios_mpi_34read_finalize(CYTHON_UNUSED PyObject *__pyx_self, ADIOS_READ_METHOD __pyx_v_method); /* proto */
 
1740
static int __pyx_pf_9adios_mpi_4file___init__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, char *__pyx_v_fname, ADIOS_READ_METHOD __pyx_v_method, struct PyMPICommObject *__pyx_v_comm); /* proto */
 
1741
static PyObject *__pyx_pf_9adios_mpi_4file_2__del__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1742
static PyObject *__pyx_pf_9adios_mpi_4file_4close(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1743
static PyObject *__pyx_pf_9adios_mpi_4file_6printself(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1744
static PyObject *__pyx_pf_9adios_mpi_4file_4name___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1745
static int __pyx_pf_9adios_mpi_4file_4name_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1746
static int __pyx_pf_9adios_mpi_4file_4name_4__del__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1747
static PyObject *__pyx_pf_9adios_mpi_4file_5nvars___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1748
static int __pyx_pf_9adios_mpi_4file_5nvars_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1749
static PyObject *__pyx_pf_9adios_mpi_4file_6nattrs___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1750
static int __pyx_pf_9adios_mpi_4file_6nattrs_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1751
static PyObject *__pyx_pf_9adios_mpi_4file_12current_step___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1752
static int __pyx_pf_9adios_mpi_4file_12current_step_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1753
static PyObject *__pyx_pf_9adios_mpi_4file_9last_step___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1754
static int __pyx_pf_9adios_mpi_4file_9last_step_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1755
static PyObject *__pyx_pf_9adios_mpi_4file_10endianness___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1756
static int __pyx_pf_9adios_mpi_4file_10endianness_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1757
static PyObject *__pyx_pf_9adios_mpi_4file_7version___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1758
static int __pyx_pf_9adios_mpi_4file_7version_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1759
static PyObject *__pyx_pf_9adios_mpi_4file_9file_size___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1760
static int __pyx_pf_9adios_mpi_4file_9file_size_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1761
static PyObject *__pyx_pf_9adios_mpi_4file_3var___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1762
static int __pyx_pf_9adios_mpi_4file_3var_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1763
static int __pyx_pf_9adios_mpi_4file_3var_4__del__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1764
static PyObject *__pyx_pf_9adios_mpi_4file_4attr___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1765
static int __pyx_pf_9adios_mpi_4file_4attr_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1766
static int __pyx_pf_9adios_mpi_4file_4attr_4__del__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self); /* proto */
 
1767
static int __pyx_pf_9adios_mpi_3var___init__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, struct __pyx_obj_9adios_mpi_file *__pyx_v_file, char *__pyx_v_name); /* proto */
 
1768
static PyObject *__pyx_pf_9adios_mpi_3var_2__del__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1769
static PyObject *__pyx_pf_9adios_mpi_3var_4close(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1770
static PyObject *__pyx_pf_9adios_mpi_3var_6read(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_offset, PyObject *__pyx_v_count, PyObject *__pyx_v_from_steps, PyObject *__pyx_v_nsteps); /* proto */
 
1771
static PyObject *__pyx_pf_9adios_mpi_3var_8printself(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1772
static PyObject *__pyx_pf_9adios_mpi_3var_4name___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1773
static int __pyx_pf_9adios_mpi_3var_4name_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1774
static int __pyx_pf_9adios_mpi_3var_4name_4__del__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1775
static PyObject *__pyx_pf_9adios_mpi_3var_5varid___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1776
static int __pyx_pf_9adios_mpi_3var_5varid_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1777
static PyObject *__pyx_pf_9adios_mpi_3var_4type___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1778
static int __pyx_pf_9adios_mpi_3var_4type_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1779
static int __pyx_pf_9adios_mpi_3var_4type_4__del__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1780
static PyObject *__pyx_pf_9adios_mpi_3var_4ndim___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1781
static int __pyx_pf_9adios_mpi_3var_4ndim_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1782
static PyObject *__pyx_pf_9adios_mpi_3var_4dims___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1783
static int __pyx_pf_9adios_mpi_3var_4dims_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1784
static int __pyx_pf_9adios_mpi_3var_4dims_4__del__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1785
static PyObject *__pyx_pf_9adios_mpi_3var_6nsteps___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self); /* proto */
 
1786
static int __pyx_pf_9adios_mpi_3var_6nsteps_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
 
1787
static PyObject *__pyx_pf_9adios_mpi_36readvar(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_fname, PyObject *__pyx_v_varname); /* proto */
 
1788
static PyObject *__pyx_pf_9adios_mpi_38bpls(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_fname); /* proto */
 
1789
static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
 
1790
static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */
 
1791
static PyObject *__pyx_tp_new_9adios_mpi_file(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
 
1792
static PyObject *__pyx_tp_new_9adios_mpi_var(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
 
1793
static char __pyx_k_B[] = "B";
 
1794
static char __pyx_k_H[] = "H";
 
1795
static char __pyx_k_I[] = "I";
 
1796
static char __pyx_k_L[] = "L";
 
1797
static char __pyx_k_O[] = "O";
 
1798
static char __pyx_k_Q[] = "Q";
 
1799
static char __pyx_k_b[] = "b";
 
1800
static char __pyx_k_d[] = "d";
 
1801
static char __pyx_k_f[] = "f";
 
1802
static char __pyx_k_g[] = "g";
 
1803
static char __pyx_k_h[] = "h";
 
1804
static char __pyx_k_i[] = "i";
 
1805
static char __pyx_k_k[] = "k";
 
1806
static char __pyx_k_l[] = "l";
 
1807
static char __pyx_k_q[] = "q";
 
1808
static char __pyx_k_v[] = "v";
 
1809
static char __pyx_k_NO[] = "NO";
 
1810
static char __pyx_k_Zd[] = "Zd";
 
1811
static char __pyx_k_Zf[] = "Zf";
 
1812
static char __pyx_k_Zg[] = "Zg";
 
1813
static char __pyx_k__6[] = "";
 
1814
static char __pyx_k_fh[] = "fh";
 
1815
static char __pyx_k_fp[] = "fp";
 
1816
static char __pyx_k_np[] = "np";
 
1817
static char __pyx_k_vp[] = "vp";
 
1818
static char __pyx_k_MPI[] = "MPI";
 
1819
static char __pyx_k_NOW[] = "NOW";
 
1820
static char __pyx_k_YES[] = "YES";
 
1821
static char __pyx_k__10[] = "/";
 
1822
static char __pyx_k__19[] = "*";
 
1823
static char __pyx_k_all[] = "all";
 
1824
static char __pyx_k_doc[] = "__doc__";
 
1825
static char __pyx_k_end[] = "end";
 
1826
static char __pyx_k_val[] = "val";
 
1827
static char __pyx_k_var[] = "var";
 
1828
static char __pyx_k_FLAG[] = "FLAG";
 
1829
static char __pyx_k_bpls[] = "bpls";
 
1830
static char __pyx_k_byte[] = "byte";
 
1831
static char __pyx_k_comm[] = "comm";
 
1832
static char __pyx_k_copy[] = "copy";
 
1833
static char __pyx_k_dims[] = "dims";
 
1834
static char __pyx_k_fd_p[] = "fd_p";
 
1835
static char __pyx_k_file[] = "file";
 
1836
static char __pyx_k_fill[] = "fill";
 
1837
static char __pyx_k_int8[] = "int8";
 
1838
static char __pyx_k_long[] = "long";
 
1839
static char __pyx_k_main[] = "__main__";
 
1840
static char __pyx_k_mode[] = "mode";
 
1841
static char __pyx_k_mype[] = "mype";
 
1842
static char __pyx_k_name[] = "name";
 
1843
static char __pyx_k_ndim[] = "ndim";
 
1844
static char __pyx_k_path[] = "path";
 
1845
static char __pyx_k_read[] = "read";
 
1846
static char __pyx_k_real[] = "real";
 
1847
static char __pyx_k_size[] = "size";
 
1848
static char __pyx_k_test[] = "__test__";
 
1849
static char __pyx_k_type[] = "type";
 
1850
static char __pyx_k_vars[] = "vars";
 
1851
static char __pyx_k_when[] = "when";
 
1852
static char __pyx_k_15s_d[] = "%15s : %d";
 
1853
static char __pyx_k_15s_s[] = "%15s : %s";
 
1854
static char __pyx_k_LATER[] = "LATER";
 
1855
static char __pyx_k_array[] = "array";
 
1856
static char __pyx_k_attrs[] = "attrs";
 
1857
static char __pyx_k_bytes[] = "(bytes)";
 
1858
static char __pyx_k_close[] = "close";
 
1859
static char __pyx_k_count[] = "count";
 
1860
static char __pyx_k_dtype[] = "dtype";
 
1861
static char __pyx_k_flags[] = "flags";
 
1862
static char __pyx_k_fname[] = "fname";
 
1863
static char __pyx_k_group[] = "group";
 
1864
static char __pyx_k_int16[] = "int16";
 
1865
static char __pyx_k_int32[] = "int32";
 
1866
static char __pyx_k_int64[] = "int64";
 
1867
static char __pyx_k_numpy[] = "numpy";
 
1868
static char __pyx_k_nvars[] = "nvars";
 
1869
static char __pyx_k_print[] = "print";
 
1870
static char __pyx_k_range[] = "range";
 
1871
static char __pyx_k_short[] = "short";
 
1872
static char __pyx_k_split[] = "split";
 
1873
static char __pyx_k_stats[] = "stats";
 
1874
static char __pyx_k_uint8[] = "uint8";
 
1875
static char __pyx_k_value[] = "value";
 
1876
static char __pyx_k_varid[] = "varid";
 
1877
static char __pyx_k_zeros[] = "zeros";
 
1878
static char __pyx_k_15s_lu[] = "%15s : %lu";
 
1879
static char __pyx_k_config[] = "config";
 
1880
static char __pyx_k_double[] = "double";
 
1881
static char __pyx_k_import[] = "__import__";
 
1882
static char __pyx_k_method[] = "method";
 
1883
static char __pyx_k_module[] = "__module__";
 
1884
static char __pyx_k_nattrs[] = "nattrs";
 
1885
static char __pyx_k_nsteps[] = "nsteps";
 
1886
static char __pyx_k_offset[] = "offset";
 
1887
static char __pyx_k_string[] = "string";
 
1888
static char __pyx_k_uint16[] = "uint16";
 
1889
static char __pyx_k_uint32[] = "uint32";
 
1890
static char __pyx_k_uint64[] = "uint64";
 
1891
static char __pyx_k_Reading[] = "Reading ... ";
 
1892
static char __pyx_k_UNKNOWN[] = "UNKNOWN";
 
1893
static char __pyx_k_complex[] = "complex";
 
1894
static char __pyx_k_float32[] = "float32";
 
1895
static char __pyx_k_float64[] = "float64";
 
1896
static char __pyx_k_integer[] = "integer";
 
1897
static char __pyx_k_prepare[] = "__prepare__";
 
1898
static char __pyx_k_readvar[] = "readvar";
 
1899
static char __pyx_k_unknown[] = "unknown";
 
1900
static char __pyx_k_varname[] = "varname";
 
1901
static char __pyx_k_version[] = "version";
 
1902
static char __pyx_k_DATATYPE[] = "DATATYPE";
 
1903
static char __pyx_k_float128[] = "float128";
 
1904
static char __pyx_k_group_id[] = "group_id";
 
1905
static char __pyx_k_itemsize[] = "itemsize";
 
1906
static char __pyx_k_iterkeys[] = "iterkeys";
 
1907
static char __pyx_k_qualname[] = "__qualname__";
 
1908
static char __pyx_k_AdiosFile[] = "=== AdiosFile ===";
 
1909
static char __pyx_k_COMM_SELF[] = "COMM_SELF";
 
1910
static char __pyx_k_adios_mpi[] = "adios_mpi";
 
1911
static char __pyx_k_base_path[] = "base_path";
 
1912
static char __pyx_k_complex64[] = "complex64";
 
1913
static char __pyx_k_data_size[] = "data_size";
 
1914
static char __pyx_k_file_size[] = "file_size";
 
1915
static char __pyx_k_last_step[] = "last_step";
 
1916
static char __pyx_k_metaclass[] = "__metaclass__";
 
1917
static char __pyx_k_printself[] = "printself";
 
1918
static char __pyx_k_COMM_WORLD[] = "COMM_WORLD";
 
1919
static char __pyx_k_ValueError[] = "ValueError";
 
1920
static char __pyx_k_complex128[] = "complex128";
 
1921
static char __pyx_k_contiguous[] = "contiguous";
 
1922
static char __pyx_k_dimensions[] = "dimensions";
 
1923
static char __pyx_k_endianness[] = "endianness";
 
1924
static char __pyx_k_from_steps[] = "from_steps";
 
1925
static char __pyx_k_group_name[] = "group_name";
 
1926
static char __pyx_k_mpi4py_MPI[] = "mpi4py.MPI";
 
1927
static char __pyx_k_parameters[] = "parameters";
 
1928
static char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
 
1929
static char __pyx_k_time_index[] = "time_index";
 
1930
static char __pyx_k_time_steps[] = "time_steps";
 
1931
static char __pyx_k_buffer_size[] = "buffer_size";
 
1932
static char __pyx_k_long_double[] = "long_double";
 
1933
static char __pyx_k_RuntimeError[] = "RuntimeError";
 
1934
static char __pyx_k_current_step[] = "current_step";
 
1935
static char __pyx_k_var_namelist[] = "var_namelist";
 
1936
static char __pyx_k_AdiosVariable[] = "=== AdiosVariable ===";
 
1937
static char __pyx_k_attr_namelist[] = "attr_namelist";
 
1938
static char __pyx_k_local_offsets[] = "local_offsets";
 
1939
static char __pyx_k_unsigned_byte[] = "unsigned_byte";
 
1940
static char __pyx_k_unsigned_long[] = "unsigned_long";
 
1941
static char __pyx_k_double_complex[] = "double_complex";
 
1942
static char __pyx_k_unsigned_short[] = "unsigned_short";
 
1943
static char __pyx_k_Not_a_valid_var[] = "Not a valid var";
 
1944
static char __pyx_k_Not_an_open_var[] = "Not an open var";
 
1945
static char __pyx_k_Not_an_open_file[] = "Not an open file";
 
1946
static char __pyx_k_unsigned_integer[] = "unsigned_integer";
 
1947
static char __pyx_k_BUFFER_ALLOC_WHEN[] = "BUFFER_ALLOC_WHEN";
 
1948
static char __pyx_k_No_valid_variable[] = "No valid variable";
 
1949
static char __pyx_k_global_dimensions[] = "global_dimensions";
 
1950
static char __pyx_k_Not_an_open_variable[] = "Not an open variable";
 
1951
static char __pyx_k_Count_dimension_mismatch[] = "Count dimension mismatch.";
 
1952
static char __pyx_k_Offset_dimension_mismatch[] = "Offset dimension mismatch";
 
1953
static char __pyx_k_Count_is_larger_than_shape[] = "Count is larger than shape.";
 
1954
static char __pyx_k_Step_index_is_out_of_range[] = "Step index is out of range";
 
1955
static char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous";
 
1956
static char __pyx_k_Data_type_is_not_supported_yet[] = "Data type is not supported yet";
 
1957
static char __pyx_k_ADIOS_is_freely_available_under[] = "\n ADIOS is freely available under the terms of the BSD license described\n in the COPYING file in the top level directory of this source distribution.\n\n Copyright (c) 2008 - 2009.  UT-BATTELLE, LLC. All rights reserved.\n";
 
1958
static char __pyx_k_Users_jyc_project_adios_devel_w[] = "/Users/jyc/project/adios-devel/wrappers/numpy/adios_mpi.pyx";
 
1959
static char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)";
 
1960
static char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd";
 
1961
static char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported";
 
1962
static char __pyx_k_Only_contiguous_arrays_are_suppo[] = "Only contiguous arrays are supported.";
 
1963
static char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous";
 
1964
static char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short.";
 
1965
static PyObject *__pyx_kp_s_15s_d;
 
1966
static PyObject *__pyx_kp_s_15s_lu;
 
1967
static PyObject *__pyx_kp_s_15s_s;
 
1968
static PyObject *__pyx_kp_s_AdiosFile;
 
1969
static PyObject *__pyx_kp_s_AdiosVariable;
 
1970
static PyObject *__pyx_n_s_BUFFER_ALLOC_WHEN;
 
1971
static PyObject *__pyx_n_s_COMM_SELF;
 
1972
static PyObject *__pyx_n_s_COMM_WORLD;
 
1973
static PyObject *__pyx_kp_s_Count_dimension_mismatch;
 
1974
static PyObject *__pyx_kp_s_Count_is_larger_than_shape;
 
1975
static PyObject *__pyx_n_s_DATATYPE;
 
1976
static PyObject *__pyx_kp_s_Data_type_is_not_supported_yet;
 
1977
static PyObject *__pyx_n_s_FLAG;
 
1978
static PyObject *__pyx_kp_u_Format_string_allocated_too_shor;
 
1979
static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2;
 
1980
static PyObject *__pyx_n_s_LATER;
 
1981
static PyObject *__pyx_n_s_MPI;
 
1982
static PyObject *__pyx_n_s_NO;
 
1983
static PyObject *__pyx_n_s_NOW;
 
1984
static PyObject *__pyx_kp_s_No_valid_variable;
 
1985
static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor;
 
1986
static PyObject *__pyx_kp_s_Not_a_valid_var;
 
1987
static PyObject *__pyx_kp_s_Not_an_open_file;
 
1988
static PyObject *__pyx_kp_s_Not_an_open_var;
 
1989
static PyObject *__pyx_kp_s_Not_an_open_variable;
 
1990
static PyObject *__pyx_kp_s_Offset_dimension_mismatch;
 
1991
static PyObject *__pyx_kp_s_Only_contiguous_arrays_are_suppo;
 
1992
static PyObject *__pyx_kp_s_Reading;
 
1993
static PyObject *__pyx_n_s_RuntimeError;
 
1994
static PyObject *__pyx_kp_s_Step_index_is_out_of_range;
 
1995
static PyObject *__pyx_n_s_UNKNOWN;
 
1996
static PyObject *__pyx_kp_s_Users_jyc_project_adios_devel_w;
 
1997
static PyObject *__pyx_n_s_ValueError;
 
1998
static PyObject *__pyx_n_s_YES;
 
1999
static PyObject *__pyx_kp_s__10;
 
2000
static PyObject *__pyx_n_s__19;
 
2001
static PyObject *__pyx_n_s_adios_mpi;
 
2002
static PyObject *__pyx_n_s_all;
 
2003
static PyObject *__pyx_n_s_array;
 
2004
static PyObject *__pyx_n_s_attr_namelist;
 
2005
static PyObject *__pyx_n_s_attrs;
 
2006
static PyObject *__pyx_n_s_base_path;
 
2007
static PyObject *__pyx_n_s_bpls;
 
2008
static PyObject *__pyx_n_s_buffer_size;
 
2009
static PyObject *__pyx_n_s_byte;
 
2010
static PyObject *__pyx_kp_s_bytes;
 
2011
static PyObject *__pyx_n_s_close;
 
2012
static PyObject *__pyx_n_s_comm;
 
2013
static PyObject *__pyx_n_s_complex;
 
2014
static PyObject *__pyx_n_s_complex128;
 
2015
static PyObject *__pyx_n_s_complex64;
 
2016
static PyObject *__pyx_n_s_config;
 
2017
static PyObject *__pyx_n_s_contiguous;
 
2018
static PyObject *__pyx_n_s_copy;
 
2019
static PyObject *__pyx_n_s_count;
 
2020
static PyObject *__pyx_n_s_current_step;
 
2021
static PyObject *__pyx_n_s_data_size;
 
2022
static PyObject *__pyx_n_s_dimensions;
 
2023
static PyObject *__pyx_n_s_dims;
 
2024
static PyObject *__pyx_n_s_doc;
 
2025
static PyObject *__pyx_n_s_double;
 
2026
static PyObject *__pyx_n_s_double_complex;
 
2027
static PyObject *__pyx_n_s_dtype;
 
2028
static PyObject *__pyx_n_s_end;
 
2029
static PyObject *__pyx_n_s_endianness;
 
2030
static PyObject *__pyx_n_s_f;
 
2031
static PyObject *__pyx_n_s_fd_p;
 
2032
static PyObject *__pyx_n_s_fh;
 
2033
static PyObject *__pyx_n_s_file;
 
2034
static PyObject *__pyx_n_s_file_size;
 
2035
static PyObject *__pyx_n_s_fill;
 
2036
static PyObject *__pyx_n_s_flags;
 
2037
static PyObject *__pyx_n_s_float128;
 
2038
static PyObject *__pyx_n_s_float32;
 
2039
static PyObject *__pyx_n_s_float64;
 
2040
static PyObject *__pyx_n_s_fname;
 
2041
static PyObject *__pyx_n_s_fp;
 
2042
static PyObject *__pyx_n_s_from_steps;
 
2043
static PyObject *__pyx_n_s_global_dimensions;
 
2044
static PyObject *__pyx_n_s_group;
 
2045
static PyObject *__pyx_n_s_group_id;
 
2046
static PyObject *__pyx_n_s_group_name;
 
2047
static PyObject *__pyx_n_s_import;
 
2048
static PyObject *__pyx_n_s_int16;
 
2049
static PyObject *__pyx_n_s_int32;
 
2050
static PyObject *__pyx_n_s_int64;
 
2051
static PyObject *__pyx_n_s_int8;
 
2052
static PyObject *__pyx_n_s_integer;
 
2053
static PyObject *__pyx_n_s_itemsize;
 
2054
static PyObject *__pyx_n_s_iterkeys;
 
2055
static PyObject *__pyx_n_s_k;
 
2056
static PyObject *__pyx_n_s_last_step;
 
2057
static PyObject *__pyx_n_s_local_offsets;
 
2058
static PyObject *__pyx_n_s_long;
 
2059
static PyObject *__pyx_n_s_long_double;
 
2060
static PyObject *__pyx_n_s_main;
 
2061
static PyObject *__pyx_n_s_metaclass;
 
2062
static PyObject *__pyx_n_s_method;
 
2063
static PyObject *__pyx_n_s_mode;
 
2064
static PyObject *__pyx_n_s_module;
 
2065
static PyObject *__pyx_n_s_mpi4py_MPI;
 
2066
static PyObject *__pyx_n_s_mype;
 
2067
static PyObject *__pyx_n_s_name;
 
2068
static PyObject *__pyx_n_s_nattrs;
 
2069
static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous;
 
2070
static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou;
 
2071
static PyObject *__pyx_n_s_ndim;
 
2072
static PyObject *__pyx_n_s_np;
 
2073
static PyObject *__pyx_n_s_nsteps;
 
2074
static PyObject *__pyx_n_s_numpy;
 
2075
static PyObject *__pyx_n_s_nvars;
 
2076
static PyObject *__pyx_n_s_offset;
 
2077
static PyObject *__pyx_n_s_parameters;
 
2078
static PyObject *__pyx_n_s_path;
 
2079
static PyObject *__pyx_n_s_prepare;
 
2080
static PyObject *__pyx_n_s_print;
 
2081
static PyObject *__pyx_n_s_printself;
 
2082
static PyObject *__pyx_n_s_pyx_vtable;
 
2083
static PyObject *__pyx_n_s_qualname;
 
2084
static PyObject *__pyx_n_s_range;
 
2085
static PyObject *__pyx_n_s_read;
 
2086
static PyObject *__pyx_n_s_readvar;
 
2087
static PyObject *__pyx_n_s_real;
 
2088
static PyObject *__pyx_n_s_short;
 
2089
static PyObject *__pyx_n_s_size;
 
2090
static PyObject *__pyx_n_s_split;
 
2091
static PyObject *__pyx_n_s_stats;
 
2092
static PyObject *__pyx_n_s_string;
 
2093
static PyObject *__pyx_n_s_test;
 
2094
static PyObject *__pyx_n_s_time_index;
 
2095
static PyObject *__pyx_n_s_time_steps;
 
2096
static PyObject *__pyx_n_s_type;
 
2097
static PyObject *__pyx_n_s_uint16;
 
2098
static PyObject *__pyx_n_s_uint32;
 
2099
static PyObject *__pyx_n_s_uint64;
 
2100
static PyObject *__pyx_n_s_uint8;
 
2101
static PyObject *__pyx_n_s_unknown;
 
2102
static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd;
 
2103
static PyObject *__pyx_n_s_unsigned_byte;
 
2104
static PyObject *__pyx_n_s_unsigned_integer;
 
2105
static PyObject *__pyx_n_s_unsigned_long;
 
2106
static PyObject *__pyx_n_s_unsigned_short;
 
2107
static PyObject *__pyx_n_s_v;
 
2108
static PyObject *__pyx_n_s_val;
 
2109
static PyObject *__pyx_n_s_value;
 
2110
static PyObject *__pyx_n_s_var;
 
2111
static PyObject *__pyx_n_s_var_namelist;
 
2112
static PyObject *__pyx_n_s_varid;
 
2113
static PyObject *__pyx_n_s_varname;
 
2114
static PyObject *__pyx_n_s_vars;
 
2115
static PyObject *__pyx_n_s_version;
 
2116
static PyObject *__pyx_n_s_vp;
 
2117
static PyObject *__pyx_n_s_when;
 
2118
static PyObject *__pyx_n_s_zeros;
 
2119
static PyObject *__pyx_int_0;
 
2120
static PyObject *__pyx_int_1;
 
2121
static PyObject *__pyx_int_2;
 
2122
static PyObject *__pyx_int_4;
 
2123
static PyObject *__pyx_int_5;
 
2124
static PyObject *__pyx_int_6;
 
2125
static PyObject *__pyx_int_7;
 
2126
static PyObject *__pyx_int_9;
 
2127
static PyObject *__pyx_int_10;
 
2128
static PyObject *__pyx_int_11;
 
2129
static PyObject *__pyx_int_50;
 
2130
static PyObject *__pyx_int_51;
 
2131
static PyObject *__pyx_int_52;
 
2132
static PyObject *__pyx_int_54;
 
2133
static PyObject *__pyx_int_neg_1;
 
2134
static struct PyMPICommObject *__pyx_k_;
 
2135
static struct PyMPICommObject *__pyx_k__2;
 
2136
static struct PyMPICommObject *__pyx_k__3;
 
2137
static ADIOS_READ_METHOD __pyx_k__4;
 
2138
static struct PyMPICommObject *__pyx_k__5;
 
2139
static ADIOS_READ_METHOD __pyx_k__7;
 
2140
static struct PyMPICommObject *__pyx_k__8;
 
2141
static ADIOS_READ_METHOD __pyx_k__9;
 
2142
static PyObject *__pyx_tuple__11;
 
2143
static PyObject *__pyx_tuple__12;
 
2144
static PyObject *__pyx_tuple__13;
 
2145
static PyObject *__pyx_tuple__14;
 
2146
static PyObject *__pyx_tuple__15;
 
2147
static PyObject *__pyx_tuple__16;
 
2148
static PyObject *__pyx_tuple__17;
 
2149
static PyObject *__pyx_tuple__18;
 
2150
static PyObject *__pyx_tuple__20;
 
2151
static PyObject *__pyx_tuple__22;
 
2152
static PyObject *__pyx_codeobj__21;
 
2153
static PyObject *__pyx_codeobj__23;
 
2154
 
 
2155
/* "adios_mpi.pyx":254
 
2156
 * ## ====================
 
2157
 * 
 
2158
 * cpdef init(char * config, MPI.Comm comm = MPI.COMM_WORLD):             # <<<<<<<<<<<<<<
 
2159
 *     return adios_init(config, comm.ob_mpi)
 
2160
 * 
 
2161
 */
 
2162
 
 
2163
static PyObject *__pyx_pw_9adios_mpi_1init(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2164
static PyObject *__pyx_f_9adios_mpi_init(char *__pyx_v_config, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_init *__pyx_optional_args) {
 
2165
  struct PyMPICommObject *__pyx_v_comm = __pyx_k_;
 
2166
  PyObject *__pyx_r = NULL;
 
2167
  __Pyx_RefNannyDeclarations
 
2168
  PyObject *__pyx_t_1 = NULL;
 
2169
  int __pyx_lineno = 0;
 
2170
  const char *__pyx_filename = NULL;
 
2171
  int __pyx_clineno = 0;
 
2172
  __Pyx_RefNannySetupContext("init", 0);
 
2173
  if (__pyx_optional_args) {
 
2174
    if (__pyx_optional_args->__pyx_n > 0) {
 
2175
      __pyx_v_comm = __pyx_optional_args->comm;
 
2176
    }
 
2177
  }
 
2178
 
 
2179
  /* "adios_mpi.pyx":255
 
2180
 * 
 
2181
 * cpdef init(char * config, MPI.Comm comm = MPI.COMM_WORLD):
 
2182
 *     return adios_init(config, comm.ob_mpi)             # <<<<<<<<<<<<<<
 
2183
 * 
 
2184
 * cpdef int64_t open(char * group_name,
 
2185
 */
 
2186
  __Pyx_XDECREF(__pyx_r);
 
2187
  __pyx_t_1 = __Pyx_PyInt_From_int(adios_init(__pyx_v_config, __pyx_v_comm->ob_mpi)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2188
  __Pyx_GOTREF(__pyx_t_1);
 
2189
  __pyx_r = __pyx_t_1;
 
2190
  __pyx_t_1 = 0;
 
2191
  goto __pyx_L0;
 
2192
 
 
2193
  /* "adios_mpi.pyx":254
 
2194
 * ## ====================
 
2195
 * 
 
2196
 * cpdef init(char * config, MPI.Comm comm = MPI.COMM_WORLD):             # <<<<<<<<<<<<<<
 
2197
 *     return adios_init(config, comm.ob_mpi)
 
2198
 * 
 
2199
 */
 
2200
 
 
2201
  /* function exit code */
 
2202
  __pyx_L1_error:;
 
2203
  __Pyx_XDECREF(__pyx_t_1);
 
2204
  __Pyx_AddTraceback("adios_mpi.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
2205
  __pyx_r = 0;
 
2206
  __pyx_L0:;
 
2207
  __Pyx_XGIVEREF(__pyx_r);
 
2208
  __Pyx_RefNannyFinishContext();
 
2209
  return __pyx_r;
 
2210
}
 
2211
 
 
2212
/* Python wrapper */
 
2213
static PyObject *__pyx_pw_9adios_mpi_1init(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2214
static PyObject *__pyx_pw_9adios_mpi_1init(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
2215
  char *__pyx_v_config;
 
2216
  struct PyMPICommObject *__pyx_v_comm = 0;
 
2217
  int __pyx_lineno = 0;
 
2218
  const char *__pyx_filename = NULL;
 
2219
  int __pyx_clineno = 0;
 
2220
  PyObject *__pyx_r = 0;
 
2221
  __Pyx_RefNannyDeclarations
 
2222
  __Pyx_RefNannySetupContext("init (wrapper)", 0);
 
2223
  {
 
2224
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_config,&__pyx_n_s_comm,0};
 
2225
    PyObject* values[2] = {0,0};
 
2226
    values[1] = (PyObject *)__pyx_k_;
 
2227
    if (unlikely(__pyx_kwds)) {
 
2228
      Py_ssize_t kw_args;
 
2229
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
2230
      switch (pos_args) {
 
2231
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
2232
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
2233
        case  0: break;
 
2234
        default: goto __pyx_L5_argtuple_error;
 
2235
      }
 
2236
      kw_args = PyDict_Size(__pyx_kwds);
 
2237
      switch (pos_args) {
 
2238
        case  0:
 
2239
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_config)) != 0)) kw_args--;
 
2240
        else goto __pyx_L5_argtuple_error;
 
2241
        case  1:
 
2242
        if (kw_args > 0) {
 
2243
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_comm);
 
2244
          if (value) { values[1] = value; kw_args--; }
 
2245
        }
 
2246
      }
 
2247
      if (unlikely(kw_args > 0)) {
 
2248
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "init") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2249
      }
 
2250
    } else {
 
2251
      switch (PyTuple_GET_SIZE(__pyx_args)) {
 
2252
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
2253
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
2254
        break;
 
2255
        default: goto __pyx_L5_argtuple_error;
 
2256
      }
 
2257
    }
 
2258
    __pyx_v_config = __Pyx_PyObject_AsString(values[0]); if (unlikely((!__pyx_v_config) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2259
    __pyx_v_comm = ((struct PyMPICommObject *)values[1]);
 
2260
  }
 
2261
  goto __pyx_L4_argument_unpacking_done;
 
2262
  __pyx_L5_argtuple_error:;
 
2263
  __Pyx_RaiseArgtupleInvalid("init", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2264
  __pyx_L3_error:;
 
2265
  __Pyx_AddTraceback("adios_mpi.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
2266
  __Pyx_RefNannyFinishContext();
 
2267
  return NULL;
 
2268
  __pyx_L4_argument_unpacking_done:;
 
2269
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 1, "comm", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2270
  __pyx_r = __pyx_pf_9adios_mpi_init(__pyx_self, __pyx_v_config, __pyx_v_comm);
 
2271
 
 
2272
  /* function exit code */
 
2273
  goto __pyx_L0;
 
2274
  __pyx_L1_error:;
 
2275
  __pyx_r = NULL;
 
2276
  __pyx_L0:;
 
2277
  __Pyx_RefNannyFinishContext();
 
2278
  return __pyx_r;
 
2279
}
 
2280
 
 
2281
static PyObject *__pyx_pf_9adios_mpi_init(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_config, struct PyMPICommObject *__pyx_v_comm) {
 
2282
  PyObject *__pyx_r = NULL;
 
2283
  __Pyx_RefNannyDeclarations
 
2284
  PyObject *__pyx_t_1 = NULL;
 
2285
  struct __pyx_opt_args_9adios_mpi_init __pyx_t_2;
 
2286
  int __pyx_lineno = 0;
 
2287
  const char *__pyx_filename = NULL;
 
2288
  int __pyx_clineno = 0;
 
2289
  __Pyx_RefNannySetupContext("init", 0);
 
2290
  __Pyx_XDECREF(__pyx_r);
 
2291
  __pyx_t_2.__pyx_n = 1;
 
2292
  __pyx_t_2.comm = __pyx_v_comm;
 
2293
  __pyx_t_1 = __pyx_f_9adios_mpi_init(__pyx_v_config, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2294
  __Pyx_GOTREF(__pyx_t_1);
 
2295
  __pyx_r = __pyx_t_1;
 
2296
  __pyx_t_1 = 0;
 
2297
  goto __pyx_L0;
 
2298
 
 
2299
  /* function exit code */
 
2300
  __pyx_L1_error:;
 
2301
  __Pyx_XDECREF(__pyx_t_1);
 
2302
  __Pyx_AddTraceback("adios_mpi.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
2303
  __pyx_r = NULL;
 
2304
  __pyx_L0:;
 
2305
  __Pyx_XGIVEREF(__pyx_r);
 
2306
  __Pyx_RefNannyFinishContext();
 
2307
  return __pyx_r;
 
2308
}
 
2309
 
 
2310
/* "adios_mpi.pyx":257
 
2311
 *     return adios_init(config, comm.ob_mpi)
 
2312
 * 
 
2313
 * cpdef int64_t open(char * group_name,             # <<<<<<<<<<<<<<
 
2314
 *                    char * name,
 
2315
 *                    char * mode,
 
2316
 */
 
2317
 
 
2318
static PyObject *__pyx_pw_9adios_mpi_3open(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2319
static int64_t __pyx_f_9adios_mpi_open(char *__pyx_v_group_name, char *__pyx_v_name, char *__pyx_v_mode, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_open *__pyx_optional_args) {
 
2320
  struct PyMPICommObject *__pyx_v_comm = __pyx_k__2;
 
2321
  int64_t __pyx_v_fd;
 
2322
  CYTHON_UNUSED int __pyx_v_result;
 
2323
  int64_t __pyx_r;
 
2324
  __Pyx_RefNannyDeclarations
 
2325
  __Pyx_RefNannySetupContext("open", 0);
 
2326
  if (__pyx_optional_args) {
 
2327
    if (__pyx_optional_args->__pyx_n > 0) {
 
2328
      __pyx_v_comm = __pyx_optional_args->comm;
 
2329
    }
 
2330
  }
 
2331
 
 
2332
  /* "adios_mpi.pyx":263
 
2333
 *     cdef int64_t fd
 
2334
 *     cdef int result
 
2335
 *     result = adios_open(&fd, group_name, name, mode, comm.ob_mpi)             # <<<<<<<<<<<<<<
 
2336
 *     return fd
 
2337
 * 
 
2338
 */
 
2339
  __pyx_v_result = adios_open((&__pyx_v_fd), __pyx_v_group_name, __pyx_v_name, __pyx_v_mode, __pyx_v_comm->ob_mpi);
 
2340
 
 
2341
  /* "adios_mpi.pyx":264
 
2342
 *     cdef int result
 
2343
 *     result = adios_open(&fd, group_name, name, mode, comm.ob_mpi)
 
2344
 *     return fd             # <<<<<<<<<<<<<<
 
2345
 * 
 
2346
 * cpdef int64_t set_group_size(int64_t fd_p, uint64_t data_size):
 
2347
 */
 
2348
  __pyx_r = __pyx_v_fd;
 
2349
  goto __pyx_L0;
 
2350
 
 
2351
  /* "adios_mpi.pyx":257
 
2352
 *     return adios_init(config, comm.ob_mpi)
 
2353
 * 
 
2354
 * cpdef int64_t open(char * group_name,             # <<<<<<<<<<<<<<
 
2355
 *                    char * name,
 
2356
 *                    char * mode,
 
2357
 */
 
2358
 
 
2359
  /* function exit code */
 
2360
  __pyx_L0:;
 
2361
  __Pyx_RefNannyFinishContext();
 
2362
  return __pyx_r;
 
2363
}
 
2364
 
 
2365
/* Python wrapper */
 
2366
static PyObject *__pyx_pw_9adios_mpi_3open(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2367
static PyObject *__pyx_pw_9adios_mpi_3open(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
2368
  char *__pyx_v_group_name;
 
2369
  char *__pyx_v_name;
 
2370
  char *__pyx_v_mode;
 
2371
  struct PyMPICommObject *__pyx_v_comm = 0;
 
2372
  int __pyx_lineno = 0;
 
2373
  const char *__pyx_filename = NULL;
 
2374
  int __pyx_clineno = 0;
 
2375
  PyObject *__pyx_r = 0;
 
2376
  __Pyx_RefNannyDeclarations
 
2377
  __Pyx_RefNannySetupContext("open (wrapper)", 0);
 
2378
  {
 
2379
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_group_name,&__pyx_n_s_name,&__pyx_n_s_mode,&__pyx_n_s_comm,0};
 
2380
    PyObject* values[4] = {0,0,0,0};
 
2381
    values[3] = (PyObject *)__pyx_k__2;
 
2382
    if (unlikely(__pyx_kwds)) {
 
2383
      Py_ssize_t kw_args;
 
2384
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
2385
      switch (pos_args) {
 
2386
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 
2387
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
2388
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
2389
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
2390
        case  0: break;
 
2391
        default: goto __pyx_L5_argtuple_error;
 
2392
      }
 
2393
      kw_args = PyDict_Size(__pyx_kwds);
 
2394
      switch (pos_args) {
 
2395
        case  0:
 
2396
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_group_name)) != 0)) kw_args--;
 
2397
        else goto __pyx_L5_argtuple_error;
 
2398
        case  1:
 
2399
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
 
2400
        else {
 
2401
          __Pyx_RaiseArgtupleInvalid("open", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2402
        }
 
2403
        case  2:
 
2404
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--;
 
2405
        else {
 
2406
          __Pyx_RaiseArgtupleInvalid("open", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2407
        }
 
2408
        case  3:
 
2409
        if (kw_args > 0) {
 
2410
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_comm);
 
2411
          if (value) { values[3] = value; kw_args--; }
 
2412
        }
 
2413
      }
 
2414
      if (unlikely(kw_args > 0)) {
 
2415
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "open") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2416
      }
 
2417
    } else {
 
2418
      switch (PyTuple_GET_SIZE(__pyx_args)) {
 
2419
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 
2420
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
2421
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
2422
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
2423
        break;
 
2424
        default: goto __pyx_L5_argtuple_error;
 
2425
      }
 
2426
    }
 
2427
    __pyx_v_group_name = __Pyx_PyObject_AsString(values[0]); if (unlikely((!__pyx_v_group_name) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2428
    __pyx_v_name = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2429
    __pyx_v_mode = __Pyx_PyObject_AsString(values[2]); if (unlikely((!__pyx_v_mode) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2430
    __pyx_v_comm = ((struct PyMPICommObject *)values[3]);
 
2431
  }
 
2432
  goto __pyx_L4_argument_unpacking_done;
 
2433
  __pyx_L5_argtuple_error:;
 
2434
  __Pyx_RaiseArgtupleInvalid("open", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2435
  __pyx_L3_error:;
 
2436
  __Pyx_AddTraceback("adios_mpi.open", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
2437
  __Pyx_RefNannyFinishContext();
 
2438
  return NULL;
 
2439
  __pyx_L4_argument_unpacking_done:;
 
2440
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 1, "comm", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2441
  __pyx_r = __pyx_pf_9adios_mpi_2open(__pyx_self, __pyx_v_group_name, __pyx_v_name, __pyx_v_mode, __pyx_v_comm);
 
2442
 
 
2443
  /* function exit code */
 
2444
  goto __pyx_L0;
 
2445
  __pyx_L1_error:;
 
2446
  __pyx_r = NULL;
 
2447
  __pyx_L0:;
 
2448
  __Pyx_RefNannyFinishContext();
 
2449
  return __pyx_r;
 
2450
}
 
2451
 
 
2452
static PyObject *__pyx_pf_9adios_mpi_2open(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_group_name, char *__pyx_v_name, char *__pyx_v_mode, struct PyMPICommObject *__pyx_v_comm) {
 
2453
  PyObject *__pyx_r = NULL;
 
2454
  __Pyx_RefNannyDeclarations
 
2455
  int64_t __pyx_t_1;
 
2456
  struct __pyx_opt_args_9adios_mpi_open __pyx_t_2;
 
2457
  PyObject *__pyx_t_3 = NULL;
 
2458
  int __pyx_lineno = 0;
 
2459
  const char *__pyx_filename = NULL;
 
2460
  int __pyx_clineno = 0;
 
2461
  __Pyx_RefNannySetupContext("open", 0);
 
2462
  __Pyx_XDECREF(__pyx_r);
 
2463
  __pyx_t_2.__pyx_n = 1;
 
2464
  __pyx_t_2.comm = __pyx_v_comm;
 
2465
  __pyx_t_1 = __pyx_f_9adios_mpi_open(__pyx_v_group_name, __pyx_v_name, __pyx_v_mode, 0, &__pyx_t_2); 
 
2466
  __pyx_t_3 = __Pyx_PyInt_From_int64_t(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2467
  __Pyx_GOTREF(__pyx_t_3);
 
2468
  __pyx_r = __pyx_t_3;
 
2469
  __pyx_t_3 = 0;
 
2470
  goto __pyx_L0;
 
2471
 
 
2472
  /* function exit code */
 
2473
  __pyx_L1_error:;
 
2474
  __Pyx_XDECREF(__pyx_t_3);
 
2475
  __Pyx_AddTraceback("adios_mpi.open", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
2476
  __pyx_r = NULL;
 
2477
  __pyx_L0:;
 
2478
  __Pyx_XGIVEREF(__pyx_r);
 
2479
  __Pyx_RefNannyFinishContext();
 
2480
  return __pyx_r;
 
2481
}
 
2482
 
 
2483
/* "adios_mpi.pyx":266
 
2484
 *     return fd
 
2485
 * 
 
2486
 * cpdef int64_t set_group_size(int64_t fd_p, uint64_t data_size):             # <<<<<<<<<<<<<<
 
2487
 *     cdef uint64_t total_size
 
2488
 *     cdef int result
 
2489
 */
 
2490
 
 
2491
static PyObject *__pyx_pw_9adios_mpi_5set_group_size(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2492
static int64_t __pyx_f_9adios_mpi_set_group_size(int64_t __pyx_v_fd_p, uint64_t __pyx_v_data_size, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
2493
  uint64_t __pyx_v_total_size;
 
2494
  CYTHON_UNUSED int __pyx_v_result;
 
2495
  int64_t __pyx_r;
 
2496
  __Pyx_RefNannyDeclarations
 
2497
  __Pyx_RefNannySetupContext("set_group_size", 0);
 
2498
 
 
2499
  /* "adios_mpi.pyx":269
 
2500
 *     cdef uint64_t total_size
 
2501
 *     cdef int result
 
2502
 *     result = adios_group_size(fd_p, data_size, &total_size)             # <<<<<<<<<<<<<<
 
2503
 *     return total_size
 
2504
 * 
 
2505
 */
 
2506
  __pyx_v_result = adios_group_size(__pyx_v_fd_p, __pyx_v_data_size, (&__pyx_v_total_size));
 
2507
 
 
2508
  /* "adios_mpi.pyx":270
 
2509
 *     cdef int result
 
2510
 *     result = adios_group_size(fd_p, data_size, &total_size)
 
2511
 *     return total_size             # <<<<<<<<<<<<<<
 
2512
 * 
 
2513
 * cpdef int write (int64_t fd_p, char * name, np.ndarray val):
 
2514
 */
 
2515
  __pyx_r = __pyx_v_total_size;
 
2516
  goto __pyx_L0;
 
2517
 
 
2518
  /* "adios_mpi.pyx":266
 
2519
 *     return fd
 
2520
 * 
 
2521
 * cpdef int64_t set_group_size(int64_t fd_p, uint64_t data_size):             # <<<<<<<<<<<<<<
 
2522
 *     cdef uint64_t total_size
 
2523
 *     cdef int result
 
2524
 */
 
2525
 
 
2526
  /* function exit code */
 
2527
  __pyx_L0:;
 
2528
  __Pyx_RefNannyFinishContext();
 
2529
  return __pyx_r;
 
2530
}
 
2531
 
 
2532
/* Python wrapper */
 
2533
static PyObject *__pyx_pw_9adios_mpi_5set_group_size(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2534
static PyObject *__pyx_pw_9adios_mpi_5set_group_size(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
2535
  int64_t __pyx_v_fd_p;
 
2536
  uint64_t __pyx_v_data_size;
 
2537
  int __pyx_lineno = 0;
 
2538
  const char *__pyx_filename = NULL;
 
2539
  int __pyx_clineno = 0;
 
2540
  PyObject *__pyx_r = 0;
 
2541
  __Pyx_RefNannyDeclarations
 
2542
  __Pyx_RefNannySetupContext("set_group_size (wrapper)", 0);
 
2543
  {
 
2544
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fd_p,&__pyx_n_s_data_size,0};
 
2545
    PyObject* values[2] = {0,0};
 
2546
    if (unlikely(__pyx_kwds)) {
 
2547
      Py_ssize_t kw_args;
 
2548
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
2549
      switch (pos_args) {
 
2550
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
2551
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
2552
        case  0: break;
 
2553
        default: goto __pyx_L5_argtuple_error;
 
2554
      }
 
2555
      kw_args = PyDict_Size(__pyx_kwds);
 
2556
      switch (pos_args) {
 
2557
        case  0:
 
2558
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fd_p)) != 0)) kw_args--;
 
2559
        else goto __pyx_L5_argtuple_error;
 
2560
        case  1:
 
2561
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_data_size)) != 0)) kw_args--;
 
2562
        else {
 
2563
          __Pyx_RaiseArgtupleInvalid("set_group_size", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2564
        }
 
2565
      }
 
2566
      if (unlikely(kw_args > 0)) {
 
2567
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_group_size") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2568
      }
 
2569
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
 
2570
      goto __pyx_L5_argtuple_error;
 
2571
    } else {
 
2572
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
2573
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
2574
    }
 
2575
    __pyx_v_fd_p = __Pyx_PyInt_As_int64_t(values[0]); if (unlikely((__pyx_v_fd_p == (int64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2576
    __pyx_v_data_size = __Pyx_PyInt_As_uint64_t(values[1]); if (unlikely((__pyx_v_data_size == (uint64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2577
  }
 
2578
  goto __pyx_L4_argument_unpacking_done;
 
2579
  __pyx_L5_argtuple_error:;
 
2580
  __Pyx_RaiseArgtupleInvalid("set_group_size", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2581
  __pyx_L3_error:;
 
2582
  __Pyx_AddTraceback("adios_mpi.set_group_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
2583
  __Pyx_RefNannyFinishContext();
 
2584
  return NULL;
 
2585
  __pyx_L4_argument_unpacking_done:;
 
2586
  __pyx_r = __pyx_pf_9adios_mpi_4set_group_size(__pyx_self, __pyx_v_fd_p, __pyx_v_data_size);
 
2587
 
 
2588
  /* function exit code */
 
2589
  __Pyx_RefNannyFinishContext();
 
2590
  return __pyx_r;
 
2591
}
 
2592
 
 
2593
static PyObject *__pyx_pf_9adios_mpi_4set_group_size(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, uint64_t __pyx_v_data_size) {
 
2594
  PyObject *__pyx_r = NULL;
 
2595
  __Pyx_RefNannyDeclarations
 
2596
  PyObject *__pyx_t_1 = NULL;
 
2597
  int __pyx_lineno = 0;
 
2598
  const char *__pyx_filename = NULL;
 
2599
  int __pyx_clineno = 0;
 
2600
  __Pyx_RefNannySetupContext("set_group_size", 0);
 
2601
  __Pyx_XDECREF(__pyx_r);
 
2602
  __pyx_t_1 = __Pyx_PyInt_From_int64_t(__pyx_f_9adios_mpi_set_group_size(__pyx_v_fd_p, __pyx_v_data_size, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2603
  __Pyx_GOTREF(__pyx_t_1);
 
2604
  __pyx_r = __pyx_t_1;
 
2605
  __pyx_t_1 = 0;
 
2606
  goto __pyx_L0;
 
2607
 
 
2608
  /* function exit code */
 
2609
  __pyx_L1_error:;
 
2610
  __Pyx_XDECREF(__pyx_t_1);
 
2611
  __Pyx_AddTraceback("adios_mpi.set_group_size", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
2612
  __pyx_r = NULL;
 
2613
  __pyx_L0:;
 
2614
  __Pyx_XGIVEREF(__pyx_r);
 
2615
  __Pyx_RefNannyFinishContext();
 
2616
  return __pyx_r;
 
2617
}
 
2618
 
 
2619
/* "adios_mpi.pyx":272
 
2620
 *     return total_size
 
2621
 * 
 
2622
 * cpdef int write (int64_t fd_p, char * name, np.ndarray val):             # <<<<<<<<<<<<<<
 
2623
 *     cdef np.ndarray val_
 
2624
 *     if val.flags.contiguous:
 
2625
 */
 
2626
 
 
2627
static PyObject *__pyx_pw_9adios_mpi_7write(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2628
static int __pyx_f_9adios_mpi_write(int64_t __pyx_v_fd_p, char *__pyx_v_name, PyArrayObject *__pyx_v_val, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
2629
  PyArrayObject *__pyx_v_val_ = 0;
 
2630
  int __pyx_r;
 
2631
  __Pyx_RefNannyDeclarations
 
2632
  PyObject *__pyx_t_1 = NULL;
 
2633
  PyObject *__pyx_t_2 = NULL;
 
2634
  int __pyx_t_3;
 
2635
  PyObject *__pyx_t_4 = NULL;
 
2636
  PyObject *__pyx_t_5 = NULL;
 
2637
  int __pyx_lineno = 0;
 
2638
  const char *__pyx_filename = NULL;
 
2639
  int __pyx_clineno = 0;
 
2640
  __Pyx_RefNannySetupContext("write", 0);
 
2641
 
 
2642
  /* "adios_mpi.pyx":274
 
2643
 * cpdef int write (int64_t fd_p, char * name, np.ndarray val):
 
2644
 *     cdef np.ndarray val_
 
2645
 *     if val.flags.contiguous:             # <<<<<<<<<<<<<<
 
2646
 *         val_ = val
 
2647
 *     else:
 
2648
 */
 
2649
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_val), __pyx_n_s_flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2650
  __Pyx_GOTREF(__pyx_t_1);
 
2651
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_contiguous); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2652
  __Pyx_GOTREF(__pyx_t_2);
 
2653
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
2654
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2655
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
2656
  if (__pyx_t_3) {
 
2657
 
 
2658
    /* "adios_mpi.pyx":275
 
2659
 *     cdef np.ndarray val_
 
2660
 *     if val.flags.contiguous:
 
2661
 *         val_ = val             # <<<<<<<<<<<<<<
 
2662
 *     else:
 
2663
 *         val_ = np.array(val, copy=True)
 
2664
 */
 
2665
    __Pyx_INCREF(((PyObject *)__pyx_v_val));
 
2666
    __pyx_v_val_ = __pyx_v_val;
 
2667
    goto __pyx_L3;
 
2668
  }
 
2669
  /*else*/ {
 
2670
 
 
2671
    /* "adios_mpi.pyx":277
 
2672
 *         val_ = val
 
2673
 *     else:
 
2674
 *         val_ = np.array(val, copy=True)             # <<<<<<<<<<<<<<
 
2675
 * 
 
2676
 *     return adios_write (fd_p, name, <void *> val_.data)
 
2677
 */
 
2678
    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2679
    __Pyx_GOTREF(__pyx_t_2);
 
2680
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2681
    __Pyx_GOTREF(__pyx_t_1);
 
2682
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
2683
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2684
    __Pyx_GOTREF(__pyx_t_2);
 
2685
    __Pyx_INCREF(((PyObject *)__pyx_v_val));
 
2686
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_val));
 
2687
    __Pyx_GIVEREF(((PyObject *)__pyx_v_val));
 
2688
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2689
    __Pyx_GOTREF(__pyx_t_4);
 
2690
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_copy, Py_True) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2691
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2692
    __Pyx_GOTREF(__pyx_t_5);
 
2693
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
2694
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
2695
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
2696
    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2697
    __pyx_v_val_ = ((PyArrayObject *)__pyx_t_5);
 
2698
    __pyx_t_5 = 0;
 
2699
  }
 
2700
  __pyx_L3:;
 
2701
 
 
2702
  /* "adios_mpi.pyx":279
 
2703
 *         val_ = np.array(val, copy=True)
 
2704
 * 
 
2705
 *     return adios_write (fd_p, name, <void *> val_.data)             # <<<<<<<<<<<<<<
 
2706
 * 
 
2707
 * cpdef int write_int (int64_t fd_p, char * name, int val):
 
2708
 */
 
2709
  __pyx_r = adios_write(__pyx_v_fd_p, __pyx_v_name, ((void *)__pyx_v_val_->data));
 
2710
  goto __pyx_L0;
 
2711
 
 
2712
  /* "adios_mpi.pyx":272
 
2713
 *     return total_size
 
2714
 * 
 
2715
 * cpdef int write (int64_t fd_p, char * name, np.ndarray val):             # <<<<<<<<<<<<<<
 
2716
 *     cdef np.ndarray val_
 
2717
 *     if val.flags.contiguous:
 
2718
 */
 
2719
 
 
2720
  /* function exit code */
 
2721
  __pyx_L1_error:;
 
2722
  __Pyx_XDECREF(__pyx_t_1);
 
2723
  __Pyx_XDECREF(__pyx_t_2);
 
2724
  __Pyx_XDECREF(__pyx_t_4);
 
2725
  __Pyx_XDECREF(__pyx_t_5);
 
2726
  __Pyx_WriteUnraisable("adios_mpi.write", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
 
2727
  __pyx_r = 0;
 
2728
  __pyx_L0:;
 
2729
  __Pyx_XDECREF((PyObject *)__pyx_v_val_);
 
2730
  __Pyx_RefNannyFinishContext();
 
2731
  return __pyx_r;
 
2732
}
 
2733
 
 
2734
/* Python wrapper */
 
2735
static PyObject *__pyx_pw_9adios_mpi_7write(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2736
static PyObject *__pyx_pw_9adios_mpi_7write(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
2737
  int64_t __pyx_v_fd_p;
 
2738
  char *__pyx_v_name;
 
2739
  PyArrayObject *__pyx_v_val = 0;
 
2740
  int __pyx_lineno = 0;
 
2741
  const char *__pyx_filename = NULL;
 
2742
  int __pyx_clineno = 0;
 
2743
  PyObject *__pyx_r = 0;
 
2744
  __Pyx_RefNannyDeclarations
 
2745
  __Pyx_RefNannySetupContext("write (wrapper)", 0);
 
2746
  {
 
2747
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fd_p,&__pyx_n_s_name,&__pyx_n_s_val,0};
 
2748
    PyObject* values[3] = {0,0,0};
 
2749
    if (unlikely(__pyx_kwds)) {
 
2750
      Py_ssize_t kw_args;
 
2751
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
2752
      switch (pos_args) {
 
2753
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
2754
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
2755
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
2756
        case  0: break;
 
2757
        default: goto __pyx_L5_argtuple_error;
 
2758
      }
 
2759
      kw_args = PyDict_Size(__pyx_kwds);
 
2760
      switch (pos_args) {
 
2761
        case  0:
 
2762
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fd_p)) != 0)) kw_args--;
 
2763
        else goto __pyx_L5_argtuple_error;
 
2764
        case  1:
 
2765
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
 
2766
        else {
 
2767
          __Pyx_RaiseArgtupleInvalid("write", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2768
        }
 
2769
        case  2:
 
2770
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
 
2771
        else {
 
2772
          __Pyx_RaiseArgtupleInvalid("write", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2773
        }
 
2774
      }
 
2775
      if (unlikely(kw_args > 0)) {
 
2776
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2777
      }
 
2778
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
 
2779
      goto __pyx_L5_argtuple_error;
 
2780
    } else {
 
2781
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
2782
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
2783
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
2784
    }
 
2785
    __pyx_v_fd_p = __Pyx_PyInt_As_int64_t(values[0]); if (unlikely((__pyx_v_fd_p == (int64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2786
    __pyx_v_name = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2787
    __pyx_v_val = ((PyArrayObject *)values[2]);
 
2788
  }
 
2789
  goto __pyx_L4_argument_unpacking_done;
 
2790
  __pyx_L5_argtuple_error:;
 
2791
  __Pyx_RaiseArgtupleInvalid("write", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2792
  __pyx_L3_error:;
 
2793
  __Pyx_AddTraceback("adios_mpi.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
2794
  __Pyx_RefNannyFinishContext();
 
2795
  return NULL;
 
2796
  __pyx_L4_argument_unpacking_done:;
 
2797
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_val), __pyx_ptype_5numpy_ndarray, 1, "val", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2798
  __pyx_r = __pyx_pf_9adios_mpi_6write(__pyx_self, __pyx_v_fd_p, __pyx_v_name, __pyx_v_val);
 
2799
 
 
2800
  /* function exit code */
 
2801
  goto __pyx_L0;
 
2802
  __pyx_L1_error:;
 
2803
  __pyx_r = NULL;
 
2804
  __pyx_L0:;
 
2805
  __Pyx_RefNannyFinishContext();
 
2806
  return __pyx_r;
 
2807
}
 
2808
 
 
2809
static PyObject *__pyx_pf_9adios_mpi_6write(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, char *__pyx_v_name, PyArrayObject *__pyx_v_val) {
 
2810
  PyObject *__pyx_r = NULL;
 
2811
  __Pyx_RefNannyDeclarations
 
2812
  PyObject *__pyx_t_1 = NULL;
 
2813
  int __pyx_lineno = 0;
 
2814
  const char *__pyx_filename = NULL;
 
2815
  int __pyx_clineno = 0;
 
2816
  __Pyx_RefNannySetupContext("write", 0);
 
2817
  __Pyx_XDECREF(__pyx_r);
 
2818
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_9adios_mpi_write(__pyx_v_fd_p, __pyx_v_name, __pyx_v_val, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2819
  __Pyx_GOTREF(__pyx_t_1);
 
2820
  __pyx_r = __pyx_t_1;
 
2821
  __pyx_t_1 = 0;
 
2822
  goto __pyx_L0;
 
2823
 
 
2824
  /* function exit code */
 
2825
  __pyx_L1_error:;
 
2826
  __Pyx_XDECREF(__pyx_t_1);
 
2827
  __Pyx_AddTraceback("adios_mpi.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
2828
  __pyx_r = NULL;
 
2829
  __pyx_L0:;
 
2830
  __Pyx_XGIVEREF(__pyx_r);
 
2831
  __Pyx_RefNannyFinishContext();
 
2832
  return __pyx_r;
 
2833
}
 
2834
 
 
2835
/* "adios_mpi.pyx":281
 
2836
 *     return adios_write (fd_p, name, <void *> val_.data)
 
2837
 * 
 
2838
 * cpdef int write_int (int64_t fd_p, char * name, int val):             # <<<<<<<<<<<<<<
 
2839
 *     return adios_write (fd_p, name, &val)
 
2840
 * 
 
2841
 */
 
2842
 
 
2843
static PyObject *__pyx_pw_9adios_mpi_9write_int(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2844
static int __pyx_f_9adios_mpi_write_int(int64_t __pyx_v_fd_p, char *__pyx_v_name, int __pyx_v_val, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
2845
  int __pyx_r;
 
2846
  __Pyx_RefNannyDeclarations
 
2847
  __Pyx_RefNannySetupContext("write_int", 0);
 
2848
 
 
2849
  /* "adios_mpi.pyx":282
 
2850
 * 
 
2851
 * cpdef int write_int (int64_t fd_p, char * name, int val):
 
2852
 *     return adios_write (fd_p, name, &val)             # <<<<<<<<<<<<<<
 
2853
 * 
 
2854
 * cpdef int write_long (int64_t fd_p, char * name, long val):
 
2855
 */
 
2856
  __pyx_r = adios_write(__pyx_v_fd_p, __pyx_v_name, (&__pyx_v_val));
 
2857
  goto __pyx_L0;
 
2858
 
 
2859
  /* "adios_mpi.pyx":281
 
2860
 *     return adios_write (fd_p, name, <void *> val_.data)
 
2861
 * 
 
2862
 * cpdef int write_int (int64_t fd_p, char * name, int val):             # <<<<<<<<<<<<<<
 
2863
 *     return adios_write (fd_p, name, &val)
 
2864
 * 
 
2865
 */
 
2866
 
 
2867
  /* function exit code */
 
2868
  __pyx_L0:;
 
2869
  __Pyx_RefNannyFinishContext();
 
2870
  return __pyx_r;
 
2871
}
 
2872
 
 
2873
/* Python wrapper */
 
2874
static PyObject *__pyx_pw_9adios_mpi_9write_int(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2875
static PyObject *__pyx_pw_9adios_mpi_9write_int(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
2876
  int64_t __pyx_v_fd_p;
 
2877
  char *__pyx_v_name;
 
2878
  int __pyx_v_val;
 
2879
  int __pyx_lineno = 0;
 
2880
  const char *__pyx_filename = NULL;
 
2881
  int __pyx_clineno = 0;
 
2882
  PyObject *__pyx_r = 0;
 
2883
  __Pyx_RefNannyDeclarations
 
2884
  __Pyx_RefNannySetupContext("write_int (wrapper)", 0);
 
2885
  {
 
2886
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fd_p,&__pyx_n_s_name,&__pyx_n_s_val,0};
 
2887
    PyObject* values[3] = {0,0,0};
 
2888
    if (unlikely(__pyx_kwds)) {
 
2889
      Py_ssize_t kw_args;
 
2890
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
2891
      switch (pos_args) {
 
2892
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
2893
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
2894
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
2895
        case  0: break;
 
2896
        default: goto __pyx_L5_argtuple_error;
 
2897
      }
 
2898
      kw_args = PyDict_Size(__pyx_kwds);
 
2899
      switch (pos_args) {
 
2900
        case  0:
 
2901
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fd_p)) != 0)) kw_args--;
 
2902
        else goto __pyx_L5_argtuple_error;
 
2903
        case  1:
 
2904
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
 
2905
        else {
 
2906
          __Pyx_RaiseArgtupleInvalid("write_int", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2907
        }
 
2908
        case  2:
 
2909
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
 
2910
        else {
 
2911
          __Pyx_RaiseArgtupleInvalid("write_int", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2912
        }
 
2913
      }
 
2914
      if (unlikely(kw_args > 0)) {
 
2915
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write_int") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2916
      }
 
2917
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
 
2918
      goto __pyx_L5_argtuple_error;
 
2919
    } else {
 
2920
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
2921
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
2922
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
2923
    }
 
2924
    __pyx_v_fd_p = __Pyx_PyInt_As_int64_t(values[0]); if (unlikely((__pyx_v_fd_p == (int64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2925
    __pyx_v_name = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2926
    __pyx_v_val = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_val == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2927
  }
 
2928
  goto __pyx_L4_argument_unpacking_done;
 
2929
  __pyx_L5_argtuple_error:;
 
2930
  __Pyx_RaiseArgtupleInvalid("write_int", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
2931
  __pyx_L3_error:;
 
2932
  __Pyx_AddTraceback("adios_mpi.write_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
2933
  __Pyx_RefNannyFinishContext();
 
2934
  return NULL;
 
2935
  __pyx_L4_argument_unpacking_done:;
 
2936
  __pyx_r = __pyx_pf_9adios_mpi_8write_int(__pyx_self, __pyx_v_fd_p, __pyx_v_name, __pyx_v_val);
 
2937
 
 
2938
  /* function exit code */
 
2939
  __Pyx_RefNannyFinishContext();
 
2940
  return __pyx_r;
 
2941
}
 
2942
 
 
2943
static PyObject *__pyx_pf_9adios_mpi_8write_int(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, char *__pyx_v_name, int __pyx_v_val) {
 
2944
  PyObject *__pyx_r = NULL;
 
2945
  __Pyx_RefNannyDeclarations
 
2946
  PyObject *__pyx_t_1 = NULL;
 
2947
  int __pyx_lineno = 0;
 
2948
  const char *__pyx_filename = NULL;
 
2949
  int __pyx_clineno = 0;
 
2950
  __Pyx_RefNannySetupContext("write_int", 0);
 
2951
  __Pyx_XDECREF(__pyx_r);
 
2952
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_9adios_mpi_write_int(__pyx_v_fd_p, __pyx_v_name, __pyx_v_val, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
2953
  __Pyx_GOTREF(__pyx_t_1);
 
2954
  __pyx_r = __pyx_t_1;
 
2955
  __pyx_t_1 = 0;
 
2956
  goto __pyx_L0;
 
2957
 
 
2958
  /* function exit code */
 
2959
  __pyx_L1_error:;
 
2960
  __Pyx_XDECREF(__pyx_t_1);
 
2961
  __Pyx_AddTraceback("adios_mpi.write_int", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
2962
  __pyx_r = NULL;
 
2963
  __pyx_L0:;
 
2964
  __Pyx_XGIVEREF(__pyx_r);
 
2965
  __Pyx_RefNannyFinishContext();
 
2966
  return __pyx_r;
 
2967
}
 
2968
 
 
2969
/* "adios_mpi.pyx":284
 
2970
 *     return adios_write (fd_p, name, &val)
 
2971
 * 
 
2972
 * cpdef int write_long (int64_t fd_p, char * name, long val):             # <<<<<<<<<<<<<<
 
2973
 *     return adios_write (fd_p, name, &val)
 
2974
 * 
 
2975
 */
 
2976
 
 
2977
static PyObject *__pyx_pw_9adios_mpi_11write_long(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
2978
static int __pyx_f_9adios_mpi_write_long(int64_t __pyx_v_fd_p, char *__pyx_v_name, long __pyx_v_val, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
2979
  int __pyx_r;
 
2980
  __Pyx_RefNannyDeclarations
 
2981
  __Pyx_RefNannySetupContext("write_long", 0);
 
2982
 
 
2983
  /* "adios_mpi.pyx":285
 
2984
 * 
 
2985
 * cpdef int write_long (int64_t fd_p, char * name, long val):
 
2986
 *     return adios_write (fd_p, name, &val)             # <<<<<<<<<<<<<<
 
2987
 * 
 
2988
 * cpdef int write_float (int64_t fd_p, char * name, float val):
 
2989
 */
 
2990
  __pyx_r = adios_write(__pyx_v_fd_p, __pyx_v_name, (&__pyx_v_val));
 
2991
  goto __pyx_L0;
 
2992
 
 
2993
  /* "adios_mpi.pyx":284
 
2994
 *     return adios_write (fd_p, name, &val)
 
2995
 * 
 
2996
 * cpdef int write_long (int64_t fd_p, char * name, long val):             # <<<<<<<<<<<<<<
 
2997
 *     return adios_write (fd_p, name, &val)
 
2998
 * 
 
2999
 */
 
3000
 
 
3001
  /* function exit code */
 
3002
  __pyx_L0:;
 
3003
  __Pyx_RefNannyFinishContext();
 
3004
  return __pyx_r;
 
3005
}
 
3006
 
 
3007
/* Python wrapper */
 
3008
static PyObject *__pyx_pw_9adios_mpi_11write_long(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3009
static PyObject *__pyx_pw_9adios_mpi_11write_long(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
3010
  int64_t __pyx_v_fd_p;
 
3011
  char *__pyx_v_name;
 
3012
  long __pyx_v_val;
 
3013
  int __pyx_lineno = 0;
 
3014
  const char *__pyx_filename = NULL;
 
3015
  int __pyx_clineno = 0;
 
3016
  PyObject *__pyx_r = 0;
 
3017
  __Pyx_RefNannyDeclarations
 
3018
  __Pyx_RefNannySetupContext("write_long (wrapper)", 0);
 
3019
  {
 
3020
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fd_p,&__pyx_n_s_name,&__pyx_n_s_val,0};
 
3021
    PyObject* values[3] = {0,0,0};
 
3022
    if (unlikely(__pyx_kwds)) {
 
3023
      Py_ssize_t kw_args;
 
3024
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
3025
      switch (pos_args) {
 
3026
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
3027
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
3028
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3029
        case  0: break;
 
3030
        default: goto __pyx_L5_argtuple_error;
 
3031
      }
 
3032
      kw_args = PyDict_Size(__pyx_kwds);
 
3033
      switch (pos_args) {
 
3034
        case  0:
 
3035
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fd_p)) != 0)) kw_args--;
 
3036
        else goto __pyx_L5_argtuple_error;
 
3037
        case  1:
 
3038
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
 
3039
        else {
 
3040
          __Pyx_RaiseArgtupleInvalid("write_long", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3041
        }
 
3042
        case  2:
 
3043
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
 
3044
        else {
 
3045
          __Pyx_RaiseArgtupleInvalid("write_long", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3046
        }
 
3047
      }
 
3048
      if (unlikely(kw_args > 0)) {
 
3049
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write_long") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3050
      }
 
3051
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
 
3052
      goto __pyx_L5_argtuple_error;
 
3053
    } else {
 
3054
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3055
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
3056
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
3057
    }
 
3058
    __pyx_v_fd_p = __Pyx_PyInt_As_int64_t(values[0]); if (unlikely((__pyx_v_fd_p == (int64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3059
    __pyx_v_name = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3060
    __pyx_v_val = __Pyx_PyInt_As_long(values[2]); if (unlikely((__pyx_v_val == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3061
  }
 
3062
  goto __pyx_L4_argument_unpacking_done;
 
3063
  __pyx_L5_argtuple_error:;
 
3064
  __Pyx_RaiseArgtupleInvalid("write_long", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3065
  __pyx_L3_error:;
 
3066
  __Pyx_AddTraceback("adios_mpi.write_long", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3067
  __Pyx_RefNannyFinishContext();
 
3068
  return NULL;
 
3069
  __pyx_L4_argument_unpacking_done:;
 
3070
  __pyx_r = __pyx_pf_9adios_mpi_10write_long(__pyx_self, __pyx_v_fd_p, __pyx_v_name, __pyx_v_val);
 
3071
 
 
3072
  /* function exit code */
 
3073
  __Pyx_RefNannyFinishContext();
 
3074
  return __pyx_r;
 
3075
}
 
3076
 
 
3077
static PyObject *__pyx_pf_9adios_mpi_10write_long(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, char *__pyx_v_name, long __pyx_v_val) {
 
3078
  PyObject *__pyx_r = NULL;
 
3079
  __Pyx_RefNannyDeclarations
 
3080
  PyObject *__pyx_t_1 = NULL;
 
3081
  int __pyx_lineno = 0;
 
3082
  const char *__pyx_filename = NULL;
 
3083
  int __pyx_clineno = 0;
 
3084
  __Pyx_RefNannySetupContext("write_long", 0);
 
3085
  __Pyx_XDECREF(__pyx_r);
 
3086
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_9adios_mpi_write_long(__pyx_v_fd_p, __pyx_v_name, __pyx_v_val, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3087
  __Pyx_GOTREF(__pyx_t_1);
 
3088
  __pyx_r = __pyx_t_1;
 
3089
  __pyx_t_1 = 0;
 
3090
  goto __pyx_L0;
 
3091
 
 
3092
  /* function exit code */
 
3093
  __pyx_L1_error:;
 
3094
  __Pyx_XDECREF(__pyx_t_1);
 
3095
  __Pyx_AddTraceback("adios_mpi.write_long", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3096
  __pyx_r = NULL;
 
3097
  __pyx_L0:;
 
3098
  __Pyx_XGIVEREF(__pyx_r);
 
3099
  __Pyx_RefNannyFinishContext();
 
3100
  return __pyx_r;
 
3101
}
 
3102
 
 
3103
/* "adios_mpi.pyx":287
 
3104
 *     return adios_write (fd_p, name, &val)
 
3105
 * 
 
3106
 * cpdef int write_float (int64_t fd_p, char * name, float val):             # <<<<<<<<<<<<<<
 
3107
 *     return adios_write (fd_p, name, &val)
 
3108
 * 
 
3109
 */
 
3110
 
 
3111
static PyObject *__pyx_pw_9adios_mpi_13write_float(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3112
static int __pyx_f_9adios_mpi_write_float(int64_t __pyx_v_fd_p, char *__pyx_v_name, float __pyx_v_val, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
3113
  int __pyx_r;
 
3114
  __Pyx_RefNannyDeclarations
 
3115
  __Pyx_RefNannySetupContext("write_float", 0);
 
3116
 
 
3117
  /* "adios_mpi.pyx":288
 
3118
 * 
 
3119
 * cpdef int write_float (int64_t fd_p, char * name, float val):
 
3120
 *     return adios_write (fd_p, name, &val)             # <<<<<<<<<<<<<<
 
3121
 * 
 
3122
 * cpdef int read(int64_t fd_p, char * name, np.ndarray val):
 
3123
 */
 
3124
  __pyx_r = adios_write(__pyx_v_fd_p, __pyx_v_name, (&__pyx_v_val));
 
3125
  goto __pyx_L0;
 
3126
 
 
3127
  /* "adios_mpi.pyx":287
 
3128
 *     return adios_write (fd_p, name, &val)
 
3129
 * 
 
3130
 * cpdef int write_float (int64_t fd_p, char * name, float val):             # <<<<<<<<<<<<<<
 
3131
 *     return adios_write (fd_p, name, &val)
 
3132
 * 
 
3133
 */
 
3134
 
 
3135
  /* function exit code */
 
3136
  __pyx_L0:;
 
3137
  __Pyx_RefNannyFinishContext();
 
3138
  return __pyx_r;
 
3139
}
 
3140
 
 
3141
/* Python wrapper */
 
3142
static PyObject *__pyx_pw_9adios_mpi_13write_float(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3143
static PyObject *__pyx_pw_9adios_mpi_13write_float(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
3144
  int64_t __pyx_v_fd_p;
 
3145
  char *__pyx_v_name;
 
3146
  float __pyx_v_val;
 
3147
  int __pyx_lineno = 0;
 
3148
  const char *__pyx_filename = NULL;
 
3149
  int __pyx_clineno = 0;
 
3150
  PyObject *__pyx_r = 0;
 
3151
  __Pyx_RefNannyDeclarations
 
3152
  __Pyx_RefNannySetupContext("write_float (wrapper)", 0);
 
3153
  {
 
3154
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fd_p,&__pyx_n_s_name,&__pyx_n_s_val,0};
 
3155
    PyObject* values[3] = {0,0,0};
 
3156
    if (unlikely(__pyx_kwds)) {
 
3157
      Py_ssize_t kw_args;
 
3158
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
3159
      switch (pos_args) {
 
3160
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
3161
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
3162
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3163
        case  0: break;
 
3164
        default: goto __pyx_L5_argtuple_error;
 
3165
      }
 
3166
      kw_args = PyDict_Size(__pyx_kwds);
 
3167
      switch (pos_args) {
 
3168
        case  0:
 
3169
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fd_p)) != 0)) kw_args--;
 
3170
        else goto __pyx_L5_argtuple_error;
 
3171
        case  1:
 
3172
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
 
3173
        else {
 
3174
          __Pyx_RaiseArgtupleInvalid("write_float", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3175
        }
 
3176
        case  2:
 
3177
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
 
3178
        else {
 
3179
          __Pyx_RaiseArgtupleInvalid("write_float", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3180
        }
 
3181
      }
 
3182
      if (unlikely(kw_args > 0)) {
 
3183
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write_float") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3184
      }
 
3185
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
 
3186
      goto __pyx_L5_argtuple_error;
 
3187
    } else {
 
3188
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3189
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
3190
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
3191
    }
 
3192
    __pyx_v_fd_p = __Pyx_PyInt_As_int64_t(values[0]); if (unlikely((__pyx_v_fd_p == (int64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3193
    __pyx_v_name = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3194
    __pyx_v_val = __pyx_PyFloat_AsFloat(values[2]); if (unlikely((__pyx_v_val == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3195
  }
 
3196
  goto __pyx_L4_argument_unpacking_done;
 
3197
  __pyx_L5_argtuple_error:;
 
3198
  __Pyx_RaiseArgtupleInvalid("write_float", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3199
  __pyx_L3_error:;
 
3200
  __Pyx_AddTraceback("adios_mpi.write_float", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3201
  __Pyx_RefNannyFinishContext();
 
3202
  return NULL;
 
3203
  __pyx_L4_argument_unpacking_done:;
 
3204
  __pyx_r = __pyx_pf_9adios_mpi_12write_float(__pyx_self, __pyx_v_fd_p, __pyx_v_name, __pyx_v_val);
 
3205
 
 
3206
  /* function exit code */
 
3207
  __Pyx_RefNannyFinishContext();
 
3208
  return __pyx_r;
 
3209
}
 
3210
 
 
3211
static PyObject *__pyx_pf_9adios_mpi_12write_float(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, char *__pyx_v_name, float __pyx_v_val) {
 
3212
  PyObject *__pyx_r = NULL;
 
3213
  __Pyx_RefNannyDeclarations
 
3214
  PyObject *__pyx_t_1 = NULL;
 
3215
  int __pyx_lineno = 0;
 
3216
  const char *__pyx_filename = NULL;
 
3217
  int __pyx_clineno = 0;
 
3218
  __Pyx_RefNannySetupContext("write_float", 0);
 
3219
  __Pyx_XDECREF(__pyx_r);
 
3220
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_9adios_mpi_write_float(__pyx_v_fd_p, __pyx_v_name, __pyx_v_val, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3221
  __Pyx_GOTREF(__pyx_t_1);
 
3222
  __pyx_r = __pyx_t_1;
 
3223
  __pyx_t_1 = 0;
 
3224
  goto __pyx_L0;
 
3225
 
 
3226
  /* function exit code */
 
3227
  __pyx_L1_error:;
 
3228
  __Pyx_XDECREF(__pyx_t_1);
 
3229
  __Pyx_AddTraceback("adios_mpi.write_float", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3230
  __pyx_r = NULL;
 
3231
  __pyx_L0:;
 
3232
  __Pyx_XGIVEREF(__pyx_r);
 
3233
  __Pyx_RefNannyFinishContext();
 
3234
  return __pyx_r;
 
3235
}
 
3236
 
 
3237
/* "adios_mpi.pyx":290
 
3238
 *     return adios_write (fd_p, name, &val)
 
3239
 * 
 
3240
 * cpdef int read(int64_t fd_p, char * name, np.ndarray val):             # <<<<<<<<<<<<<<
 
3241
 *     assert val.flags.contiguous, 'Only contiguous arrays are supported.'
 
3242
 *     print "Reading ... ", val.itemsize * val.size, "(bytes)"
 
3243
 */
 
3244
 
 
3245
static PyObject *__pyx_pw_9adios_mpi_15read(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3246
static int __pyx_f_9adios_mpi_read(int64_t __pyx_v_fd_p, char *__pyx_v_name, PyArrayObject *__pyx_v_val, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
3247
  int __pyx_r;
 
3248
  __Pyx_RefNannyDeclarations
 
3249
  PyObject *__pyx_t_1 = NULL;
 
3250
  PyObject *__pyx_t_2 = NULL;
 
3251
  int __pyx_t_3;
 
3252
  PyObject *__pyx_t_4 = NULL;
 
3253
  uint64_t __pyx_t_5;
 
3254
  int __pyx_lineno = 0;
 
3255
  const char *__pyx_filename = NULL;
 
3256
  int __pyx_clineno = 0;
 
3257
  __Pyx_RefNannySetupContext("read", 0);
 
3258
 
 
3259
  /* "adios_mpi.pyx":291
 
3260
 * 
 
3261
 * cpdef int read(int64_t fd_p, char * name, np.ndarray val):
 
3262
 *     assert val.flags.contiguous, 'Only contiguous arrays are supported.'             # <<<<<<<<<<<<<<
 
3263
 *     print "Reading ... ", val.itemsize * val.size, "(bytes)"
 
3264
 *     return adios_read(fd_p, name, <void *> val.data, val.itemsize * val.size)
 
3265
 */
 
3266
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
3267
  if (unlikely(!Py_OptimizeFlag)) {
 
3268
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_val), __pyx_n_s_flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3269
    __Pyx_GOTREF(__pyx_t_1);
 
3270
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_contiguous); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3271
    __Pyx_GOTREF(__pyx_t_2);
 
3272
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3273
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3274
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
3275
    if (unlikely(!__pyx_t_3)) {
 
3276
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Only_contiguous_arrays_are_suppo);
 
3277
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3278
    }
 
3279
  }
 
3280
  #endif
 
3281
 
 
3282
  /* "adios_mpi.pyx":292
 
3283
 * cpdef int read(int64_t fd_p, char * name, np.ndarray val):
 
3284
 *     assert val.flags.contiguous, 'Only contiguous arrays are supported.'
 
3285
 *     print "Reading ... ", val.itemsize * val.size, "(bytes)"             # <<<<<<<<<<<<<<
 
3286
 *     return adios_read(fd_p, name, <void *> val.data, val.itemsize * val.size)
 
3287
 * 
 
3288
 */
 
3289
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_val), __pyx_n_s_itemsize); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3290
  __Pyx_GOTREF(__pyx_t_2);
 
3291
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_val), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3292
  __Pyx_GOTREF(__pyx_t_1);
 
3293
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3294
  __Pyx_GOTREF(__pyx_t_4);
 
3295
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
3296
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3297
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3298
  __Pyx_GOTREF(__pyx_t_1);
 
3299
  __Pyx_INCREF(__pyx_kp_s_Reading);
 
3300
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_s_Reading);
 
3301
  __Pyx_GIVEREF(__pyx_kp_s_Reading);
 
3302
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
 
3303
  __Pyx_GIVEREF(__pyx_t_4);
 
3304
  __Pyx_INCREF(__pyx_kp_s_bytes);
 
3305
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_s_bytes);
 
3306
  __Pyx_GIVEREF(__pyx_kp_s_bytes);
 
3307
  __pyx_t_4 = 0;
 
3308
  if (__Pyx_Print(0, __pyx_t_1, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3309
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3310
 
 
3311
  /* "adios_mpi.pyx":293
 
3312
 *     assert val.flags.contiguous, 'Only contiguous arrays are supported.'
 
3313
 *     print "Reading ... ", val.itemsize * val.size, "(bytes)"
 
3314
 *     return adios_read(fd_p, name, <void *> val.data, val.itemsize * val.size)             # <<<<<<<<<<<<<<
 
3315
 * 
 
3316
 * cpdef int close(int64_t fd_p):
 
3317
 */
 
3318
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_val), __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3319
  __Pyx_GOTREF(__pyx_t_1);
 
3320
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_val), __pyx_n_s_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3321
  __Pyx_GOTREF(__pyx_t_4);
 
3322
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3323
  __Pyx_GOTREF(__pyx_t_2);
 
3324
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
3325
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
3326
  __pyx_t_5 = __Pyx_PyInt_As_uint64_t(__pyx_t_2); if (unlikely((__pyx_t_5 == (uint64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3327
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
3328
  __pyx_r = adios_read(__pyx_v_fd_p, __pyx_v_name, ((void *)__pyx_v_val->data), __pyx_t_5);
 
3329
  goto __pyx_L0;
 
3330
 
 
3331
  /* "adios_mpi.pyx":290
 
3332
 *     return adios_write (fd_p, name, &val)
 
3333
 * 
 
3334
 * cpdef int read(int64_t fd_p, char * name, np.ndarray val):             # <<<<<<<<<<<<<<
 
3335
 *     assert val.flags.contiguous, 'Only contiguous arrays are supported.'
 
3336
 *     print "Reading ... ", val.itemsize * val.size, "(bytes)"
 
3337
 */
 
3338
 
 
3339
  /* function exit code */
 
3340
  __pyx_L1_error:;
 
3341
  __Pyx_XDECREF(__pyx_t_1);
 
3342
  __Pyx_XDECREF(__pyx_t_2);
 
3343
  __Pyx_XDECREF(__pyx_t_4);
 
3344
  __Pyx_WriteUnraisable("adios_mpi.read", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
 
3345
  __pyx_r = 0;
 
3346
  __pyx_L0:;
 
3347
  __Pyx_RefNannyFinishContext();
 
3348
  return __pyx_r;
 
3349
}
 
3350
 
 
3351
/* Python wrapper */
 
3352
static PyObject *__pyx_pw_9adios_mpi_15read(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3353
static PyObject *__pyx_pw_9adios_mpi_15read(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
3354
  int64_t __pyx_v_fd_p;
 
3355
  char *__pyx_v_name;
 
3356
  PyArrayObject *__pyx_v_val = 0;
 
3357
  int __pyx_lineno = 0;
 
3358
  const char *__pyx_filename = NULL;
 
3359
  int __pyx_clineno = 0;
 
3360
  PyObject *__pyx_r = 0;
 
3361
  __Pyx_RefNannyDeclarations
 
3362
  __Pyx_RefNannySetupContext("read (wrapper)", 0);
 
3363
  {
 
3364
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fd_p,&__pyx_n_s_name,&__pyx_n_s_val,0};
 
3365
    PyObject* values[3] = {0,0,0};
 
3366
    if (unlikely(__pyx_kwds)) {
 
3367
      Py_ssize_t kw_args;
 
3368
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
3369
      switch (pos_args) {
 
3370
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
3371
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
3372
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3373
        case  0: break;
 
3374
        default: goto __pyx_L5_argtuple_error;
 
3375
      }
 
3376
      kw_args = PyDict_Size(__pyx_kwds);
 
3377
      switch (pos_args) {
 
3378
        case  0:
 
3379
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fd_p)) != 0)) kw_args--;
 
3380
        else goto __pyx_L5_argtuple_error;
 
3381
        case  1:
 
3382
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
 
3383
        else {
 
3384
          __Pyx_RaiseArgtupleInvalid("read", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3385
        }
 
3386
        case  2:
 
3387
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--;
 
3388
        else {
 
3389
          __Pyx_RaiseArgtupleInvalid("read", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3390
        }
 
3391
      }
 
3392
      if (unlikely(kw_args > 0)) {
 
3393
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "read") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3394
      }
 
3395
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
 
3396
      goto __pyx_L5_argtuple_error;
 
3397
    } else {
 
3398
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3399
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
3400
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
3401
    }
 
3402
    __pyx_v_fd_p = __Pyx_PyInt_As_int64_t(values[0]); if (unlikely((__pyx_v_fd_p == (int64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3403
    __pyx_v_name = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3404
    __pyx_v_val = ((PyArrayObject *)values[2]);
 
3405
  }
 
3406
  goto __pyx_L4_argument_unpacking_done;
 
3407
  __pyx_L5_argtuple_error:;
 
3408
  __Pyx_RaiseArgtupleInvalid("read", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3409
  __pyx_L3_error:;
 
3410
  __Pyx_AddTraceback("adios_mpi.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3411
  __Pyx_RefNannyFinishContext();
 
3412
  return NULL;
 
3413
  __pyx_L4_argument_unpacking_done:;
 
3414
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_val), __pyx_ptype_5numpy_ndarray, 1, "val", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3415
  __pyx_r = __pyx_pf_9adios_mpi_14read(__pyx_self, __pyx_v_fd_p, __pyx_v_name, __pyx_v_val);
 
3416
 
 
3417
  /* function exit code */
 
3418
  goto __pyx_L0;
 
3419
  __pyx_L1_error:;
 
3420
  __pyx_r = NULL;
 
3421
  __pyx_L0:;
 
3422
  __Pyx_RefNannyFinishContext();
 
3423
  return __pyx_r;
 
3424
}
 
3425
 
 
3426
static PyObject *__pyx_pf_9adios_mpi_14read(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p, char *__pyx_v_name, PyArrayObject *__pyx_v_val) {
 
3427
  PyObject *__pyx_r = NULL;
 
3428
  __Pyx_RefNannyDeclarations
 
3429
  PyObject *__pyx_t_1 = NULL;
 
3430
  int __pyx_lineno = 0;
 
3431
  const char *__pyx_filename = NULL;
 
3432
  int __pyx_clineno = 0;
 
3433
  __Pyx_RefNannySetupContext("read", 0);
 
3434
  __Pyx_XDECREF(__pyx_r);
 
3435
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_9adios_mpi_read(__pyx_v_fd_p, __pyx_v_name, __pyx_v_val, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3436
  __Pyx_GOTREF(__pyx_t_1);
 
3437
  __pyx_r = __pyx_t_1;
 
3438
  __pyx_t_1 = 0;
 
3439
  goto __pyx_L0;
 
3440
 
 
3441
  /* function exit code */
 
3442
  __pyx_L1_error:;
 
3443
  __Pyx_XDECREF(__pyx_t_1);
 
3444
  __Pyx_AddTraceback("adios_mpi.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3445
  __pyx_r = NULL;
 
3446
  __pyx_L0:;
 
3447
  __Pyx_XGIVEREF(__pyx_r);
 
3448
  __Pyx_RefNannyFinishContext();
 
3449
  return __pyx_r;
 
3450
}
 
3451
 
 
3452
/* "adios_mpi.pyx":295
 
3453
 *     return adios_read(fd_p, name, <void *> val.data, val.itemsize * val.size)
 
3454
 * 
 
3455
 * cpdef int close(int64_t fd_p):             # <<<<<<<<<<<<<<
 
3456
 *     return adios_close(fd_p)
 
3457
 * 
 
3458
 */
 
3459
 
 
3460
static PyObject *__pyx_pw_9adios_mpi_17close(PyObject *__pyx_self, PyObject *__pyx_arg_fd_p); /*proto*/
 
3461
static int __pyx_f_9adios_mpi_close(int64_t __pyx_v_fd_p, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
3462
  int __pyx_r;
 
3463
  __Pyx_RefNannyDeclarations
 
3464
  __Pyx_RefNannySetupContext("close", 0);
 
3465
 
 
3466
  /* "adios_mpi.pyx":296
 
3467
 * 
 
3468
 * cpdef int close(int64_t fd_p):
 
3469
 *     return adios_close(fd_p)             # <<<<<<<<<<<<<<
 
3470
 * 
 
3471
 * cpdef finalize(int mype = 0):
 
3472
 */
 
3473
  __pyx_r = adios_close(__pyx_v_fd_p);
 
3474
  goto __pyx_L0;
 
3475
 
 
3476
  /* "adios_mpi.pyx":295
 
3477
 *     return adios_read(fd_p, name, <void *> val.data, val.itemsize * val.size)
 
3478
 * 
 
3479
 * cpdef int close(int64_t fd_p):             # <<<<<<<<<<<<<<
 
3480
 *     return adios_close(fd_p)
 
3481
 * 
 
3482
 */
 
3483
 
 
3484
  /* function exit code */
 
3485
  __pyx_L0:;
 
3486
  __Pyx_RefNannyFinishContext();
 
3487
  return __pyx_r;
 
3488
}
 
3489
 
 
3490
/* Python wrapper */
 
3491
static PyObject *__pyx_pw_9adios_mpi_17close(PyObject *__pyx_self, PyObject *__pyx_arg_fd_p); /*proto*/
 
3492
static PyObject *__pyx_pw_9adios_mpi_17close(PyObject *__pyx_self, PyObject *__pyx_arg_fd_p) {
 
3493
  int64_t __pyx_v_fd_p;
 
3494
  int __pyx_lineno = 0;
 
3495
  const char *__pyx_filename = NULL;
 
3496
  int __pyx_clineno = 0;
 
3497
  PyObject *__pyx_r = 0;
 
3498
  __Pyx_RefNannyDeclarations
 
3499
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
 
3500
  assert(__pyx_arg_fd_p); {
 
3501
    __pyx_v_fd_p = __Pyx_PyInt_As_int64_t(__pyx_arg_fd_p); if (unlikely((__pyx_v_fd_p == (int64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3502
  }
 
3503
  goto __pyx_L4_argument_unpacking_done;
 
3504
  __pyx_L3_error:;
 
3505
  __Pyx_AddTraceback("adios_mpi.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3506
  __Pyx_RefNannyFinishContext();
 
3507
  return NULL;
 
3508
  __pyx_L4_argument_unpacking_done:;
 
3509
  __pyx_r = __pyx_pf_9adios_mpi_16close(__pyx_self, ((int64_t)__pyx_v_fd_p));
 
3510
 
 
3511
  /* function exit code */
 
3512
  __Pyx_RefNannyFinishContext();
 
3513
  return __pyx_r;
 
3514
}
 
3515
 
 
3516
static PyObject *__pyx_pf_9adios_mpi_16close(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_fd_p) {
 
3517
  PyObject *__pyx_r = NULL;
 
3518
  __Pyx_RefNannyDeclarations
 
3519
  PyObject *__pyx_t_1 = NULL;
 
3520
  int __pyx_lineno = 0;
 
3521
  const char *__pyx_filename = NULL;
 
3522
  int __pyx_clineno = 0;
 
3523
  __Pyx_RefNannySetupContext("close", 0);
 
3524
  __Pyx_XDECREF(__pyx_r);
 
3525
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_9adios_mpi_close(__pyx_v_fd_p, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3526
  __Pyx_GOTREF(__pyx_t_1);
 
3527
  __pyx_r = __pyx_t_1;
 
3528
  __pyx_t_1 = 0;
 
3529
  goto __pyx_L0;
 
3530
 
 
3531
  /* function exit code */
 
3532
  __pyx_L1_error:;
 
3533
  __Pyx_XDECREF(__pyx_t_1);
 
3534
  __Pyx_AddTraceback("adios_mpi.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3535
  __pyx_r = NULL;
 
3536
  __pyx_L0:;
 
3537
  __Pyx_XGIVEREF(__pyx_r);
 
3538
  __Pyx_RefNannyFinishContext();
 
3539
  return __pyx_r;
 
3540
}
 
3541
 
 
3542
/* "adios_mpi.pyx":298
 
3543
 *     return adios_close(fd_p)
 
3544
 * 
 
3545
 * cpdef finalize(int mype = 0):             # <<<<<<<<<<<<<<
 
3546
 *     return adios_finalize(mype)
 
3547
 * 
 
3548
 */
 
3549
 
 
3550
static PyObject *__pyx_pw_9adios_mpi_19finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3551
static PyObject *__pyx_f_9adios_mpi_finalize(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_finalize *__pyx_optional_args) {
 
3552
  int __pyx_v_mype = ((int)0);
 
3553
  PyObject *__pyx_r = NULL;
 
3554
  __Pyx_RefNannyDeclarations
 
3555
  PyObject *__pyx_t_1 = NULL;
 
3556
  int __pyx_lineno = 0;
 
3557
  const char *__pyx_filename = NULL;
 
3558
  int __pyx_clineno = 0;
 
3559
  __Pyx_RefNannySetupContext("finalize", 0);
 
3560
  if (__pyx_optional_args) {
 
3561
    if (__pyx_optional_args->__pyx_n > 0) {
 
3562
      __pyx_v_mype = __pyx_optional_args->mype;
 
3563
    }
 
3564
  }
 
3565
 
 
3566
  /* "adios_mpi.pyx":299
 
3567
 * 
 
3568
 * cpdef finalize(int mype = 0):
 
3569
 *     return adios_finalize(mype)             # <<<<<<<<<<<<<<
 
3570
 * 
 
3571
 * ## ====================
 
3572
 */
 
3573
  __Pyx_XDECREF(__pyx_r);
 
3574
  __pyx_t_1 = __Pyx_PyInt_From_int(adios_finalize(__pyx_v_mype)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3575
  __Pyx_GOTREF(__pyx_t_1);
 
3576
  __pyx_r = __pyx_t_1;
 
3577
  __pyx_t_1 = 0;
 
3578
  goto __pyx_L0;
 
3579
 
 
3580
  /* "adios_mpi.pyx":298
 
3581
 *     return adios_close(fd_p)
 
3582
 * 
 
3583
 * cpdef finalize(int mype = 0):             # <<<<<<<<<<<<<<
 
3584
 *     return adios_finalize(mype)
 
3585
 * 
 
3586
 */
 
3587
 
 
3588
  /* function exit code */
 
3589
  __pyx_L1_error:;
 
3590
  __Pyx_XDECREF(__pyx_t_1);
 
3591
  __Pyx_AddTraceback("adios_mpi.finalize", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3592
  __pyx_r = 0;
 
3593
  __pyx_L0:;
 
3594
  __Pyx_XGIVEREF(__pyx_r);
 
3595
  __Pyx_RefNannyFinishContext();
 
3596
  return __pyx_r;
 
3597
}
 
3598
 
 
3599
/* Python wrapper */
 
3600
static PyObject *__pyx_pw_9adios_mpi_19finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3601
static PyObject *__pyx_pw_9adios_mpi_19finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
3602
  int __pyx_v_mype;
 
3603
  int __pyx_lineno = 0;
 
3604
  const char *__pyx_filename = NULL;
 
3605
  int __pyx_clineno = 0;
 
3606
  PyObject *__pyx_r = 0;
 
3607
  __Pyx_RefNannyDeclarations
 
3608
  __Pyx_RefNannySetupContext("finalize (wrapper)", 0);
 
3609
  {
 
3610
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mype,0};
 
3611
    PyObject* values[1] = {0};
 
3612
    if (unlikely(__pyx_kwds)) {
 
3613
      Py_ssize_t kw_args;
 
3614
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
3615
      switch (pos_args) {
 
3616
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3617
        case  0: break;
 
3618
        default: goto __pyx_L5_argtuple_error;
 
3619
      }
 
3620
      kw_args = PyDict_Size(__pyx_kwds);
 
3621
      switch (pos_args) {
 
3622
        case  0:
 
3623
        if (kw_args > 0) {
 
3624
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_mype);
 
3625
          if (value) { values[0] = value; kw_args--; }
 
3626
        }
 
3627
      }
 
3628
      if (unlikely(kw_args > 0)) {
 
3629
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "finalize") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3630
      }
 
3631
    } else {
 
3632
      switch (PyTuple_GET_SIZE(__pyx_args)) {
 
3633
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3634
        case  0: break;
 
3635
        default: goto __pyx_L5_argtuple_error;
 
3636
      }
 
3637
    }
 
3638
    if (values[0]) {
 
3639
      __pyx_v_mype = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_mype == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3640
    } else {
 
3641
      __pyx_v_mype = ((int)0);
 
3642
    }
 
3643
  }
 
3644
  goto __pyx_L4_argument_unpacking_done;
 
3645
  __pyx_L5_argtuple_error:;
 
3646
  __Pyx_RaiseArgtupleInvalid("finalize", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3647
  __pyx_L3_error:;
 
3648
  __Pyx_AddTraceback("adios_mpi.finalize", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3649
  __Pyx_RefNannyFinishContext();
 
3650
  return NULL;
 
3651
  __pyx_L4_argument_unpacking_done:;
 
3652
  __pyx_r = __pyx_pf_9adios_mpi_18finalize(__pyx_self, __pyx_v_mype);
 
3653
 
 
3654
  /* function exit code */
 
3655
  __Pyx_RefNannyFinishContext();
 
3656
  return __pyx_r;
 
3657
}
 
3658
 
 
3659
static PyObject *__pyx_pf_9adios_mpi_18finalize(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_mype) {
 
3660
  PyObject *__pyx_r = NULL;
 
3661
  __Pyx_RefNannyDeclarations
 
3662
  PyObject *__pyx_t_1 = NULL;
 
3663
  struct __pyx_opt_args_9adios_mpi_finalize __pyx_t_2;
 
3664
  int __pyx_lineno = 0;
 
3665
  const char *__pyx_filename = NULL;
 
3666
  int __pyx_clineno = 0;
 
3667
  __Pyx_RefNannySetupContext("finalize", 0);
 
3668
  __Pyx_XDECREF(__pyx_r);
 
3669
  __pyx_t_2.__pyx_n = 1;
 
3670
  __pyx_t_2.mype = __pyx_v_mype;
 
3671
  __pyx_t_1 = __pyx_f_9adios_mpi_finalize(0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3672
  __Pyx_GOTREF(__pyx_t_1);
 
3673
  __pyx_r = __pyx_t_1;
 
3674
  __pyx_t_1 = 0;
 
3675
  goto __pyx_L0;
 
3676
 
 
3677
  /* function exit code */
 
3678
  __pyx_L1_error:;
 
3679
  __Pyx_XDECREF(__pyx_t_1);
 
3680
  __Pyx_AddTraceback("adios_mpi.finalize", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3681
  __pyx_r = NULL;
 
3682
  __pyx_L0:;
 
3683
  __Pyx_XGIVEREF(__pyx_r);
 
3684
  __Pyx_RefNannyFinishContext();
 
3685
  return __pyx_r;
 
3686
}
 
3687
 
 
3688
/* "adios_mpi.pyx":304
 
3689
 * ## ADIOS No-XML API
 
3690
 * ## ====================
 
3691
 * cpdef int init_noxml(MPI.Comm comm = MPI.COMM_WORLD):             # <<<<<<<<<<<<<<
 
3692
 *     return adios_init_noxml(comm.ob_mpi)
 
3693
 * 
 
3694
 */
 
3695
 
 
3696
static PyObject *__pyx_pw_9adios_mpi_21init_noxml(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3697
static int __pyx_f_9adios_mpi_init_noxml(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_init_noxml *__pyx_optional_args) {
 
3698
  struct PyMPICommObject *__pyx_v_comm = __pyx_k__3;
 
3699
  int __pyx_r;
 
3700
  __Pyx_RefNannyDeclarations
 
3701
  __Pyx_RefNannySetupContext("init_noxml", 0);
 
3702
  if (__pyx_optional_args) {
 
3703
    if (__pyx_optional_args->__pyx_n > 0) {
 
3704
      __pyx_v_comm = __pyx_optional_args->comm;
 
3705
    }
 
3706
  }
 
3707
 
 
3708
  /* "adios_mpi.pyx":305
 
3709
 * ## ====================
 
3710
 * cpdef int init_noxml(MPI.Comm comm = MPI.COMM_WORLD):
 
3711
 *     return adios_init_noxml(comm.ob_mpi)             # <<<<<<<<<<<<<<
 
3712
 * 
 
3713
 * cpdef int allocate_buffer(int when,
 
3714
 */
 
3715
  __pyx_r = adios_init_noxml(__pyx_v_comm->ob_mpi);
 
3716
  goto __pyx_L0;
 
3717
 
 
3718
  /* "adios_mpi.pyx":304
 
3719
 * ## ADIOS No-XML API
 
3720
 * ## ====================
 
3721
 * cpdef int init_noxml(MPI.Comm comm = MPI.COMM_WORLD):             # <<<<<<<<<<<<<<
 
3722
 *     return adios_init_noxml(comm.ob_mpi)
 
3723
 * 
 
3724
 */
 
3725
 
 
3726
  /* function exit code */
 
3727
  __pyx_L0:;
 
3728
  __Pyx_RefNannyFinishContext();
 
3729
  return __pyx_r;
 
3730
}
 
3731
 
 
3732
/* Python wrapper */
 
3733
static PyObject *__pyx_pw_9adios_mpi_21init_noxml(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3734
static PyObject *__pyx_pw_9adios_mpi_21init_noxml(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
3735
  struct PyMPICommObject *__pyx_v_comm = 0;
 
3736
  int __pyx_lineno = 0;
 
3737
  const char *__pyx_filename = NULL;
 
3738
  int __pyx_clineno = 0;
 
3739
  PyObject *__pyx_r = 0;
 
3740
  __Pyx_RefNannyDeclarations
 
3741
  __Pyx_RefNannySetupContext("init_noxml (wrapper)", 0);
 
3742
  {
 
3743
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0};
 
3744
    PyObject* values[1] = {0};
 
3745
    values[0] = (PyObject *)__pyx_k__3;
 
3746
    if (unlikely(__pyx_kwds)) {
 
3747
      Py_ssize_t kw_args;
 
3748
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
3749
      switch (pos_args) {
 
3750
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3751
        case  0: break;
 
3752
        default: goto __pyx_L5_argtuple_error;
 
3753
      }
 
3754
      kw_args = PyDict_Size(__pyx_kwds);
 
3755
      switch (pos_args) {
 
3756
        case  0:
 
3757
        if (kw_args > 0) {
 
3758
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_comm);
 
3759
          if (value) { values[0] = value; kw_args--; }
 
3760
        }
 
3761
      }
 
3762
      if (unlikely(kw_args > 0)) {
 
3763
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "init_noxml") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3764
      }
 
3765
    } else {
 
3766
      switch (PyTuple_GET_SIZE(__pyx_args)) {
 
3767
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3768
        case  0: break;
 
3769
        default: goto __pyx_L5_argtuple_error;
 
3770
      }
 
3771
    }
 
3772
    __pyx_v_comm = ((struct PyMPICommObject *)values[0]);
 
3773
  }
 
3774
  goto __pyx_L4_argument_unpacking_done;
 
3775
  __pyx_L5_argtuple_error:;
 
3776
  __Pyx_RaiseArgtupleInvalid("init_noxml", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3777
  __pyx_L3_error:;
 
3778
  __Pyx_AddTraceback("adios_mpi.init_noxml", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3779
  __Pyx_RefNannyFinishContext();
 
3780
  return NULL;
 
3781
  __pyx_L4_argument_unpacking_done:;
 
3782
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 1, "comm", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3783
  __pyx_r = __pyx_pf_9adios_mpi_20init_noxml(__pyx_self, __pyx_v_comm);
 
3784
 
 
3785
  /* function exit code */
 
3786
  goto __pyx_L0;
 
3787
  __pyx_L1_error:;
 
3788
  __pyx_r = NULL;
 
3789
  __pyx_L0:;
 
3790
  __Pyx_RefNannyFinishContext();
 
3791
  return __pyx_r;
 
3792
}
 
3793
 
 
3794
static PyObject *__pyx_pf_9adios_mpi_20init_noxml(CYTHON_UNUSED PyObject *__pyx_self, struct PyMPICommObject *__pyx_v_comm) {
 
3795
  PyObject *__pyx_r = NULL;
 
3796
  __Pyx_RefNannyDeclarations
 
3797
  int __pyx_t_1;
 
3798
  struct __pyx_opt_args_9adios_mpi_init_noxml __pyx_t_2;
 
3799
  PyObject *__pyx_t_3 = NULL;
 
3800
  int __pyx_lineno = 0;
 
3801
  const char *__pyx_filename = NULL;
 
3802
  int __pyx_clineno = 0;
 
3803
  __Pyx_RefNannySetupContext("init_noxml", 0);
 
3804
  __Pyx_XDECREF(__pyx_r);
 
3805
  __pyx_t_2.__pyx_n = 1;
 
3806
  __pyx_t_2.comm = __pyx_v_comm;
 
3807
  __pyx_t_1 = __pyx_f_9adios_mpi_init_noxml(0, &__pyx_t_2); 
 
3808
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3809
  __Pyx_GOTREF(__pyx_t_3);
 
3810
  __pyx_r = __pyx_t_3;
 
3811
  __pyx_t_3 = 0;
 
3812
  goto __pyx_L0;
 
3813
 
 
3814
  /* function exit code */
 
3815
  __pyx_L1_error:;
 
3816
  __Pyx_XDECREF(__pyx_t_3);
 
3817
  __Pyx_AddTraceback("adios_mpi.init_noxml", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3818
  __pyx_r = NULL;
 
3819
  __pyx_L0:;
 
3820
  __Pyx_XGIVEREF(__pyx_r);
 
3821
  __Pyx_RefNannyFinishContext();
 
3822
  return __pyx_r;
 
3823
}
 
3824
 
 
3825
/* "adios_mpi.pyx":307
 
3826
 *     return adios_init_noxml(comm.ob_mpi)
 
3827
 * 
 
3828
 * cpdef int allocate_buffer(int when,             # <<<<<<<<<<<<<<
 
3829
 *                           uint64_t buffer_size):
 
3830
 *     return adios_allocate_buffer(<ADIOS_BUFFER_ALLOC_WHEN> when,
 
3831
 */
 
3832
 
 
3833
static PyObject *__pyx_pw_9adios_mpi_23allocate_buffer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3834
static int __pyx_f_9adios_mpi_allocate_buffer(int __pyx_v_when, uint64_t __pyx_v_buffer_size, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
3835
  int __pyx_r;
 
3836
  __Pyx_RefNannyDeclarations
 
3837
  __Pyx_RefNannySetupContext("allocate_buffer", 0);
 
3838
 
 
3839
  /* "adios_mpi.pyx":309
 
3840
 * cpdef int allocate_buffer(int when,
 
3841
 *                           uint64_t buffer_size):
 
3842
 *     return adios_allocate_buffer(<ADIOS_BUFFER_ALLOC_WHEN> when,             # <<<<<<<<<<<<<<
 
3843
 *                                  buffer_size)
 
3844
 * 
 
3845
 */
 
3846
  __pyx_r = adios_allocate_buffer(((ADIOS_BUFFER_ALLOC_WHEN)__pyx_v_when), __pyx_v_buffer_size);
 
3847
  goto __pyx_L0;
 
3848
 
 
3849
  /* "adios_mpi.pyx":307
 
3850
 *     return adios_init_noxml(comm.ob_mpi)
 
3851
 * 
 
3852
 * cpdef int allocate_buffer(int when,             # <<<<<<<<<<<<<<
 
3853
 *                           uint64_t buffer_size):
 
3854
 *     return adios_allocate_buffer(<ADIOS_BUFFER_ALLOC_WHEN> when,
 
3855
 */
 
3856
 
 
3857
  /* function exit code */
 
3858
  __pyx_L0:;
 
3859
  __Pyx_RefNannyFinishContext();
 
3860
  return __pyx_r;
 
3861
}
 
3862
 
 
3863
/* Python wrapper */
 
3864
static PyObject *__pyx_pw_9adios_mpi_23allocate_buffer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3865
static PyObject *__pyx_pw_9adios_mpi_23allocate_buffer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
3866
  int __pyx_v_when;
 
3867
  uint64_t __pyx_v_buffer_size;
 
3868
  int __pyx_lineno = 0;
 
3869
  const char *__pyx_filename = NULL;
 
3870
  int __pyx_clineno = 0;
 
3871
  PyObject *__pyx_r = 0;
 
3872
  __Pyx_RefNannyDeclarations
 
3873
  __Pyx_RefNannySetupContext("allocate_buffer (wrapper)", 0);
 
3874
  {
 
3875
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_when,&__pyx_n_s_buffer_size,0};
 
3876
    PyObject* values[2] = {0,0};
 
3877
    if (unlikely(__pyx_kwds)) {
 
3878
      Py_ssize_t kw_args;
 
3879
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
3880
      switch (pos_args) {
 
3881
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
3882
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3883
        case  0: break;
 
3884
        default: goto __pyx_L5_argtuple_error;
 
3885
      }
 
3886
      kw_args = PyDict_Size(__pyx_kwds);
 
3887
      switch (pos_args) {
 
3888
        case  0:
 
3889
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_when)) != 0)) kw_args--;
 
3890
        else goto __pyx_L5_argtuple_error;
 
3891
        case  1:
 
3892
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_buffer_size)) != 0)) kw_args--;
 
3893
        else {
 
3894
          __Pyx_RaiseArgtupleInvalid("allocate_buffer", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3895
        }
 
3896
      }
 
3897
      if (unlikely(kw_args > 0)) {
 
3898
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "allocate_buffer") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3899
      }
 
3900
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
 
3901
      goto __pyx_L5_argtuple_error;
 
3902
    } else {
 
3903
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
3904
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
3905
    }
 
3906
    __pyx_v_when = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_when == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3907
    __pyx_v_buffer_size = __Pyx_PyInt_As_uint64_t(values[1]); if (unlikely((__pyx_v_buffer_size == (uint64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3908
  }
 
3909
  goto __pyx_L4_argument_unpacking_done;
 
3910
  __pyx_L5_argtuple_error:;
 
3911
  __Pyx_RaiseArgtupleInvalid("allocate_buffer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
3912
  __pyx_L3_error:;
 
3913
  __Pyx_AddTraceback("adios_mpi.allocate_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3914
  __Pyx_RefNannyFinishContext();
 
3915
  return NULL;
 
3916
  __pyx_L4_argument_unpacking_done:;
 
3917
  __pyx_r = __pyx_pf_9adios_mpi_22allocate_buffer(__pyx_self, __pyx_v_when, __pyx_v_buffer_size);
 
3918
 
 
3919
  /* function exit code */
 
3920
  __Pyx_RefNannyFinishContext();
 
3921
  return __pyx_r;
 
3922
}
 
3923
 
 
3924
static PyObject *__pyx_pf_9adios_mpi_22allocate_buffer(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_when, uint64_t __pyx_v_buffer_size) {
 
3925
  PyObject *__pyx_r = NULL;
 
3926
  __Pyx_RefNannyDeclarations
 
3927
  PyObject *__pyx_t_1 = NULL;
 
3928
  int __pyx_lineno = 0;
 
3929
  const char *__pyx_filename = NULL;
 
3930
  int __pyx_clineno = 0;
 
3931
  __Pyx_RefNannySetupContext("allocate_buffer", 0);
 
3932
  __Pyx_XDECREF(__pyx_r);
 
3933
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_9adios_mpi_allocate_buffer(__pyx_v_when, __pyx_v_buffer_size, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
3934
  __Pyx_GOTREF(__pyx_t_1);
 
3935
  __pyx_r = __pyx_t_1;
 
3936
  __pyx_t_1 = 0;
 
3937
  goto __pyx_L0;
 
3938
 
 
3939
  /* function exit code */
 
3940
  __pyx_L1_error:;
 
3941
  __Pyx_XDECREF(__pyx_t_1);
 
3942
  __Pyx_AddTraceback("adios_mpi.allocate_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
3943
  __pyx_r = NULL;
 
3944
  __pyx_L0:;
 
3945
  __Pyx_XGIVEREF(__pyx_r);
 
3946
  __Pyx_RefNannyFinishContext();
 
3947
  return __pyx_r;
 
3948
}
 
3949
 
 
3950
/* "adios_mpi.pyx":312
 
3951
 *                                  buffer_size)
 
3952
 * 
 
3953
 * cpdef int64_t declare_group(char * name,             # <<<<<<<<<<<<<<
 
3954
 *                             char * time_index,
 
3955
 *                             int stats):
 
3956
 */
 
3957
 
 
3958
static PyObject *__pyx_pw_9adios_mpi_25declare_group(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
3959
static int64_t __pyx_f_9adios_mpi_declare_group(char *__pyx_v_name, char *__pyx_v_time_index, int __pyx_v_stats, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
3960
  int64_t __pyx_v_id;
 
3961
  int64_t __pyx_r;
 
3962
  __Pyx_RefNannyDeclarations
 
3963
  __Pyx_RefNannySetupContext("declare_group", 0);
 
3964
 
 
3965
  /* "adios_mpi.pyx":315
 
3966
 *                             char * time_index,
 
3967
 *                             int stats):
 
3968
 *     cdef int64_t id = 0             # <<<<<<<<<<<<<<
 
3969
 *     adios_declare_group (&id,
 
3970
 *                          name,
 
3971
 */
 
3972
  __pyx_v_id = 0;
 
3973
 
 
3974
  /* "adios_mpi.pyx":316
 
3975
 *                             int stats):
 
3976
 *     cdef int64_t id = 0
 
3977
 *     adios_declare_group (&id,             # <<<<<<<<<<<<<<
 
3978
 *                          name,
 
3979
 *                          time_index,
 
3980
 */
 
3981
  adios_declare_group((&__pyx_v_id), __pyx_v_name, __pyx_v_time_index, ((ADIOS_FLAG)__pyx_v_stats));
 
3982
 
 
3983
  /* "adios_mpi.pyx":320
 
3984
 *                          time_index,
 
3985
 *                          <ADIOS_FLAG> stats)
 
3986
 *     return id             # <<<<<<<<<<<<<<
 
3987
 * 
 
3988
 * cpdef int define_var(int64_t group_id,
 
3989
 */
 
3990
  __pyx_r = __pyx_v_id;
 
3991
  goto __pyx_L0;
 
3992
 
 
3993
  /* "adios_mpi.pyx":312
 
3994
 *                                  buffer_size)
 
3995
 * 
 
3996
 * cpdef int64_t declare_group(char * name,             # <<<<<<<<<<<<<<
 
3997
 *                             char * time_index,
 
3998
 *                             int stats):
 
3999
 */
 
4000
 
 
4001
  /* function exit code */
 
4002
  __pyx_L0:;
 
4003
  __Pyx_RefNannyFinishContext();
 
4004
  return __pyx_r;
 
4005
}
 
4006
 
 
4007
/* Python wrapper */
 
4008
static PyObject *__pyx_pw_9adios_mpi_25declare_group(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4009
static PyObject *__pyx_pw_9adios_mpi_25declare_group(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
4010
  char *__pyx_v_name;
 
4011
  char *__pyx_v_time_index;
 
4012
  int __pyx_v_stats;
 
4013
  int __pyx_lineno = 0;
 
4014
  const char *__pyx_filename = NULL;
 
4015
  int __pyx_clineno = 0;
 
4016
  PyObject *__pyx_r = 0;
 
4017
  __Pyx_RefNannyDeclarations
 
4018
  __Pyx_RefNannySetupContext("declare_group (wrapper)", 0);
 
4019
  {
 
4020
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_time_index,&__pyx_n_s_stats,0};
 
4021
    PyObject* values[3] = {0,0,0};
 
4022
    if (unlikely(__pyx_kwds)) {
 
4023
      Py_ssize_t kw_args;
 
4024
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
4025
      switch (pos_args) {
 
4026
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
4027
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
4028
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4029
        case  0: break;
 
4030
        default: goto __pyx_L5_argtuple_error;
 
4031
      }
 
4032
      kw_args = PyDict_Size(__pyx_kwds);
 
4033
      switch (pos_args) {
 
4034
        case  0:
 
4035
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
 
4036
        else goto __pyx_L5_argtuple_error;
 
4037
        case  1:
 
4038
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_time_index)) != 0)) kw_args--;
 
4039
        else {
 
4040
          __Pyx_RaiseArgtupleInvalid("declare_group", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4041
        }
 
4042
        case  2:
 
4043
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_stats)) != 0)) kw_args--;
 
4044
        else {
 
4045
          __Pyx_RaiseArgtupleInvalid("declare_group", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4046
        }
 
4047
      }
 
4048
      if (unlikely(kw_args > 0)) {
 
4049
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "declare_group") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4050
      }
 
4051
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
 
4052
      goto __pyx_L5_argtuple_error;
 
4053
    } else {
 
4054
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4055
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
4056
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
4057
    }
 
4058
    __pyx_v_name = __Pyx_PyObject_AsString(values[0]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4059
    __pyx_v_time_index = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_time_index) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4060
    __pyx_v_stats = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_stats == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4061
  }
 
4062
  goto __pyx_L4_argument_unpacking_done;
 
4063
  __pyx_L5_argtuple_error:;
 
4064
  __Pyx_RaiseArgtupleInvalid("declare_group", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4065
  __pyx_L3_error:;
 
4066
  __Pyx_AddTraceback("adios_mpi.declare_group", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
4067
  __Pyx_RefNannyFinishContext();
 
4068
  return NULL;
 
4069
  __pyx_L4_argument_unpacking_done:;
 
4070
  __pyx_r = __pyx_pf_9adios_mpi_24declare_group(__pyx_self, __pyx_v_name, __pyx_v_time_index, __pyx_v_stats);
 
4071
 
 
4072
  /* function exit code */
 
4073
  __Pyx_RefNannyFinishContext();
 
4074
  return __pyx_r;
 
4075
}
 
4076
 
 
4077
static PyObject *__pyx_pf_9adios_mpi_24declare_group(CYTHON_UNUSED PyObject *__pyx_self, char *__pyx_v_name, char *__pyx_v_time_index, int __pyx_v_stats) {
 
4078
  PyObject *__pyx_r = NULL;
 
4079
  __Pyx_RefNannyDeclarations
 
4080
  PyObject *__pyx_t_1 = NULL;
 
4081
  int __pyx_lineno = 0;
 
4082
  const char *__pyx_filename = NULL;
 
4083
  int __pyx_clineno = 0;
 
4084
  __Pyx_RefNannySetupContext("declare_group", 0);
 
4085
  __Pyx_XDECREF(__pyx_r);
 
4086
  __pyx_t_1 = __Pyx_PyInt_From_int64_t(__pyx_f_9adios_mpi_declare_group(__pyx_v_name, __pyx_v_time_index, __pyx_v_stats, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4087
  __Pyx_GOTREF(__pyx_t_1);
 
4088
  __pyx_r = __pyx_t_1;
 
4089
  __pyx_t_1 = 0;
 
4090
  goto __pyx_L0;
 
4091
 
 
4092
  /* function exit code */
 
4093
  __pyx_L1_error:;
 
4094
  __Pyx_XDECREF(__pyx_t_1);
 
4095
  __Pyx_AddTraceback("adios_mpi.declare_group", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
4096
  __pyx_r = NULL;
 
4097
  __pyx_L0:;
 
4098
  __Pyx_XGIVEREF(__pyx_r);
 
4099
  __Pyx_RefNannyFinishContext();
 
4100
  return __pyx_r;
 
4101
}
 
4102
 
 
4103
/* "adios_mpi.pyx":322
 
4104
 *     return id
 
4105
 * 
 
4106
 * cpdef int define_var(int64_t group_id,             # <<<<<<<<<<<<<<
 
4107
 *                      char * name,
 
4108
 *                      char * path,
 
4109
 */
 
4110
 
 
4111
static PyObject *__pyx_pw_9adios_mpi_27define_var(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4112
static int __pyx_f_9adios_mpi_define_var(int64_t __pyx_v_group_id, char *__pyx_v_name, char *__pyx_v_path, int __pyx_v_type, char *__pyx_v_dimensions, char *__pyx_v_global_dimensions, char *__pyx_v_local_offsets, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
4113
  int __pyx_r;
 
4114
  __Pyx_RefNannyDeclarations
 
4115
  __Pyx_RefNannySetupContext("define_var", 0);
 
4116
 
 
4117
  /* "adios_mpi.pyx":329
 
4118
 *                      char * global_dimensions,
 
4119
 *                      char * local_offsets):
 
4120
 *     return adios_define_var(group_id,             # <<<<<<<<<<<<<<
 
4121
 *                             name, path,
 
4122
 *                             <ADIOS_DATATYPES> type,
 
4123
 */
 
4124
  __pyx_r = adios_define_var(__pyx_v_group_id, __pyx_v_name, __pyx_v_path, ((ADIOS_DATATYPES)__pyx_v_type), __pyx_v_dimensions, __pyx_v_global_dimensions, __pyx_v_local_offsets);
 
4125
  goto __pyx_L0;
 
4126
 
 
4127
  /* "adios_mpi.pyx":322
 
4128
 *     return id
 
4129
 * 
 
4130
 * cpdef int define_var(int64_t group_id,             # <<<<<<<<<<<<<<
 
4131
 *                      char * name,
 
4132
 *                      char * path,
 
4133
 */
 
4134
 
 
4135
  /* function exit code */
 
4136
  __pyx_L0:;
 
4137
  __Pyx_RefNannyFinishContext();
 
4138
  return __pyx_r;
 
4139
}
 
4140
 
 
4141
/* Python wrapper */
 
4142
static PyObject *__pyx_pw_9adios_mpi_27define_var(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4143
static PyObject *__pyx_pw_9adios_mpi_27define_var(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
4144
  int64_t __pyx_v_group_id;
 
4145
  char *__pyx_v_name;
 
4146
  char *__pyx_v_path;
 
4147
  int __pyx_v_type;
 
4148
  char *__pyx_v_dimensions;
 
4149
  char *__pyx_v_global_dimensions;
 
4150
  char *__pyx_v_local_offsets;
 
4151
  int __pyx_lineno = 0;
 
4152
  const char *__pyx_filename = NULL;
 
4153
  int __pyx_clineno = 0;
 
4154
  PyObject *__pyx_r = 0;
 
4155
  __Pyx_RefNannyDeclarations
 
4156
  __Pyx_RefNannySetupContext("define_var (wrapper)", 0);
 
4157
  {
 
4158
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_group_id,&__pyx_n_s_name,&__pyx_n_s_path,&__pyx_n_s_type,&__pyx_n_s_dimensions,&__pyx_n_s_global_dimensions,&__pyx_n_s_local_offsets,0};
 
4159
    PyObject* values[7] = {0,0,0,0,0,0,0};
 
4160
    if (unlikely(__pyx_kwds)) {
 
4161
      Py_ssize_t kw_args;
 
4162
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
4163
      switch (pos_args) {
 
4164
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
 
4165
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
 
4166
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
 
4167
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 
4168
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
4169
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
4170
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4171
        case  0: break;
 
4172
        default: goto __pyx_L5_argtuple_error;
 
4173
      }
 
4174
      kw_args = PyDict_Size(__pyx_kwds);
 
4175
      switch (pos_args) {
 
4176
        case  0:
 
4177
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_group_id)) != 0)) kw_args--;
 
4178
        else goto __pyx_L5_argtuple_error;
 
4179
        case  1:
 
4180
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
 
4181
        else {
 
4182
          __Pyx_RaiseArgtupleInvalid("define_var", 1, 7, 7, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4183
        }
 
4184
        case  2:
 
4185
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_path)) != 0)) kw_args--;
 
4186
        else {
 
4187
          __Pyx_RaiseArgtupleInvalid("define_var", 1, 7, 7, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4188
        }
 
4189
        case  3:
 
4190
        if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_type)) != 0)) kw_args--;
 
4191
        else {
 
4192
          __Pyx_RaiseArgtupleInvalid("define_var", 1, 7, 7, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4193
        }
 
4194
        case  4:
 
4195
        if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_dimensions)) != 0)) kw_args--;
 
4196
        else {
 
4197
          __Pyx_RaiseArgtupleInvalid("define_var", 1, 7, 7, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4198
        }
 
4199
        case  5:
 
4200
        if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_global_dimensions)) != 0)) kw_args--;
 
4201
        else {
 
4202
          __Pyx_RaiseArgtupleInvalid("define_var", 1, 7, 7, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4203
        }
 
4204
        case  6:
 
4205
        if (likely((values[6] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_local_offsets)) != 0)) kw_args--;
 
4206
        else {
 
4207
          __Pyx_RaiseArgtupleInvalid("define_var", 1, 7, 7, 6); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4208
        }
 
4209
      }
 
4210
      if (unlikely(kw_args > 0)) {
 
4211
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "define_var") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4212
      }
 
4213
    } else if (PyTuple_GET_SIZE(__pyx_args) != 7) {
 
4214
      goto __pyx_L5_argtuple_error;
 
4215
    } else {
 
4216
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4217
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
4218
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
4219
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 
4220
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
 
4221
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
 
4222
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
 
4223
    }
 
4224
    __pyx_v_group_id = __Pyx_PyInt_As_int64_t(values[0]); if (unlikely((__pyx_v_group_id == (int64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4225
    __pyx_v_name = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4226
    __pyx_v_path = __Pyx_PyObject_AsString(values[2]); if (unlikely((!__pyx_v_path) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4227
    __pyx_v_type = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_type == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4228
    __pyx_v_dimensions = __Pyx_PyObject_AsString(values[4]); if (unlikely((!__pyx_v_dimensions) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4229
    __pyx_v_global_dimensions = __Pyx_PyObject_AsString(values[5]); if (unlikely((!__pyx_v_global_dimensions) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4230
    __pyx_v_local_offsets = __Pyx_PyObject_AsString(values[6]); if (unlikely((!__pyx_v_local_offsets) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4231
  }
 
4232
  goto __pyx_L4_argument_unpacking_done;
 
4233
  __pyx_L5_argtuple_error:;
 
4234
  __Pyx_RaiseArgtupleInvalid("define_var", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4235
  __pyx_L3_error:;
 
4236
  __Pyx_AddTraceback("adios_mpi.define_var", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
4237
  __Pyx_RefNannyFinishContext();
 
4238
  return NULL;
 
4239
  __pyx_L4_argument_unpacking_done:;
 
4240
  __pyx_r = __pyx_pf_9adios_mpi_26define_var(__pyx_self, __pyx_v_group_id, __pyx_v_name, __pyx_v_path, __pyx_v_type, __pyx_v_dimensions, __pyx_v_global_dimensions, __pyx_v_local_offsets);
 
4241
 
 
4242
  /* function exit code */
 
4243
  __Pyx_RefNannyFinishContext();
 
4244
  return __pyx_r;
 
4245
}
 
4246
 
 
4247
static PyObject *__pyx_pf_9adios_mpi_26define_var(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_group_id, char *__pyx_v_name, char *__pyx_v_path, int __pyx_v_type, char *__pyx_v_dimensions, char *__pyx_v_global_dimensions, char *__pyx_v_local_offsets) {
 
4248
  PyObject *__pyx_r = NULL;
 
4249
  __Pyx_RefNannyDeclarations
 
4250
  PyObject *__pyx_t_1 = NULL;
 
4251
  int __pyx_lineno = 0;
 
4252
  const char *__pyx_filename = NULL;
 
4253
  int __pyx_clineno = 0;
 
4254
  __Pyx_RefNannySetupContext("define_var", 0);
 
4255
  __Pyx_XDECREF(__pyx_r);
 
4256
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_9adios_mpi_define_var(__pyx_v_group_id, __pyx_v_name, __pyx_v_path, __pyx_v_type, __pyx_v_dimensions, __pyx_v_global_dimensions, __pyx_v_local_offsets, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4257
  __Pyx_GOTREF(__pyx_t_1);
 
4258
  __pyx_r = __pyx_t_1;
 
4259
  __pyx_t_1 = 0;
 
4260
  goto __pyx_L0;
 
4261
 
 
4262
  /* function exit code */
 
4263
  __pyx_L1_error:;
 
4264
  __Pyx_XDECREF(__pyx_t_1);
 
4265
  __Pyx_AddTraceback("adios_mpi.define_var", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
4266
  __pyx_r = NULL;
 
4267
  __pyx_L0:;
 
4268
  __Pyx_XGIVEREF(__pyx_r);
 
4269
  __Pyx_RefNannyFinishContext();
 
4270
  return __pyx_r;
 
4271
}
 
4272
 
 
4273
/* "adios_mpi.pyx":336
 
4274
 *                             local_offsets)
 
4275
 * 
 
4276
 * cpdef int define_attribute (int64_t group,             # <<<<<<<<<<<<<<
 
4277
 *                             char * name,
 
4278
 *                             char * path,
 
4279
 */
 
4280
 
 
4281
static PyObject *__pyx_pw_9adios_mpi_29define_attribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4282
static int __pyx_f_9adios_mpi_define_attribute(int64_t __pyx_v_group, char *__pyx_v_name, char *__pyx_v_path, int __pyx_v_type, char *__pyx_v_value, char *__pyx_v_var, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
4283
  int __pyx_r;
 
4284
  __Pyx_RefNannyDeclarations
 
4285
  __Pyx_RefNannySetupContext("define_attribute", 0);
 
4286
 
 
4287
  /* "adios_mpi.pyx":342
 
4288
 *                             char * value,
 
4289
 *                             char * var):
 
4290
 *     return adios_define_attribute (group,             # <<<<<<<<<<<<<<
 
4291
 *                                    name,
 
4292
 *                                    path,
 
4293
 */
 
4294
  __pyx_r = adios_define_attribute(__pyx_v_group, __pyx_v_name, __pyx_v_path, ((ADIOS_DATATYPES)__pyx_v_type), __pyx_v_value, __pyx_v_var);
 
4295
  goto __pyx_L0;
 
4296
 
 
4297
  /* "adios_mpi.pyx":336
 
4298
 *                             local_offsets)
 
4299
 * 
 
4300
 * cpdef int define_attribute (int64_t group,             # <<<<<<<<<<<<<<
 
4301
 *                             char * name,
 
4302
 *                             char * path,
 
4303
 */
 
4304
 
 
4305
  /* function exit code */
 
4306
  __pyx_L0:;
 
4307
  __Pyx_RefNannyFinishContext();
 
4308
  return __pyx_r;
 
4309
}
 
4310
 
 
4311
/* Python wrapper */
 
4312
static PyObject *__pyx_pw_9adios_mpi_29define_attribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4313
static PyObject *__pyx_pw_9adios_mpi_29define_attribute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
4314
  int64_t __pyx_v_group;
 
4315
  char *__pyx_v_name;
 
4316
  char *__pyx_v_path;
 
4317
  int __pyx_v_type;
 
4318
  char *__pyx_v_value;
 
4319
  char *__pyx_v_var;
 
4320
  int __pyx_lineno = 0;
 
4321
  const char *__pyx_filename = NULL;
 
4322
  int __pyx_clineno = 0;
 
4323
  PyObject *__pyx_r = 0;
 
4324
  __Pyx_RefNannyDeclarations
 
4325
  __Pyx_RefNannySetupContext("define_attribute (wrapper)", 0);
 
4326
  {
 
4327
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_group,&__pyx_n_s_name,&__pyx_n_s_path,&__pyx_n_s_type,&__pyx_n_s_value,&__pyx_n_s_var,0};
 
4328
    PyObject* values[6] = {0,0,0,0,0,0};
 
4329
    if (unlikely(__pyx_kwds)) {
 
4330
      Py_ssize_t kw_args;
 
4331
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
4332
      switch (pos_args) {
 
4333
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
 
4334
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
 
4335
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 
4336
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
4337
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
4338
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4339
        case  0: break;
 
4340
        default: goto __pyx_L5_argtuple_error;
 
4341
      }
 
4342
      kw_args = PyDict_Size(__pyx_kwds);
 
4343
      switch (pos_args) {
 
4344
        case  0:
 
4345
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_group)) != 0)) kw_args--;
 
4346
        else goto __pyx_L5_argtuple_error;
 
4347
        case  1:
 
4348
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
 
4349
        else {
 
4350
          __Pyx_RaiseArgtupleInvalid("define_attribute", 1, 6, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4351
        }
 
4352
        case  2:
 
4353
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_path)) != 0)) kw_args--;
 
4354
        else {
 
4355
          __Pyx_RaiseArgtupleInvalid("define_attribute", 1, 6, 6, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4356
        }
 
4357
        case  3:
 
4358
        if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_type)) != 0)) kw_args--;
 
4359
        else {
 
4360
          __Pyx_RaiseArgtupleInvalid("define_attribute", 1, 6, 6, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4361
        }
 
4362
        case  4:
 
4363
        if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
 
4364
        else {
 
4365
          __Pyx_RaiseArgtupleInvalid("define_attribute", 1, 6, 6, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4366
        }
 
4367
        case  5:
 
4368
        if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_var)) != 0)) kw_args--;
 
4369
        else {
 
4370
          __Pyx_RaiseArgtupleInvalid("define_attribute", 1, 6, 6, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4371
        }
 
4372
      }
 
4373
      if (unlikely(kw_args > 0)) {
 
4374
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "define_attribute") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4375
      }
 
4376
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
 
4377
      goto __pyx_L5_argtuple_error;
 
4378
    } else {
 
4379
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4380
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
4381
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
4382
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 
4383
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
 
4384
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
 
4385
    }
 
4386
    __pyx_v_group = __Pyx_PyInt_As_int64_t(values[0]); if (unlikely((__pyx_v_group == (int64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4387
    __pyx_v_name = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4388
    __pyx_v_path = __Pyx_PyObject_AsString(values[2]); if (unlikely((!__pyx_v_path) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4389
    __pyx_v_type = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_type == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4390
    __pyx_v_value = __Pyx_PyObject_AsString(values[4]); if (unlikely((!__pyx_v_value) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4391
    __pyx_v_var = __Pyx_PyObject_AsString(values[5]); if (unlikely((!__pyx_v_var) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4392
  }
 
4393
  goto __pyx_L4_argument_unpacking_done;
 
4394
  __pyx_L5_argtuple_error:;
 
4395
  __Pyx_RaiseArgtupleInvalid("define_attribute", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4396
  __pyx_L3_error:;
 
4397
  __Pyx_AddTraceback("adios_mpi.define_attribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
4398
  __Pyx_RefNannyFinishContext();
 
4399
  return NULL;
 
4400
  __pyx_L4_argument_unpacking_done:;
 
4401
  __pyx_r = __pyx_pf_9adios_mpi_28define_attribute(__pyx_self, __pyx_v_group, __pyx_v_name, __pyx_v_path, __pyx_v_type, __pyx_v_value, __pyx_v_var);
 
4402
 
 
4403
  /* function exit code */
 
4404
  __Pyx_RefNannyFinishContext();
 
4405
  return __pyx_r;
 
4406
}
 
4407
 
 
4408
static PyObject *__pyx_pf_9adios_mpi_28define_attribute(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_group, char *__pyx_v_name, char *__pyx_v_path, int __pyx_v_type, char *__pyx_v_value, char *__pyx_v_var) {
 
4409
  PyObject *__pyx_r = NULL;
 
4410
  __Pyx_RefNannyDeclarations
 
4411
  PyObject *__pyx_t_1 = NULL;
 
4412
  int __pyx_lineno = 0;
 
4413
  const char *__pyx_filename = NULL;
 
4414
  int __pyx_clineno = 0;
 
4415
  __Pyx_RefNannySetupContext("define_attribute", 0);
 
4416
  __Pyx_XDECREF(__pyx_r);
 
4417
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_9adios_mpi_define_attribute(__pyx_v_group, __pyx_v_name, __pyx_v_path, __pyx_v_type, __pyx_v_value, __pyx_v_var, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4418
  __Pyx_GOTREF(__pyx_t_1);
 
4419
  __pyx_r = __pyx_t_1;
 
4420
  __pyx_t_1 = 0;
 
4421
  goto __pyx_L0;
 
4422
 
 
4423
  /* function exit code */
 
4424
  __pyx_L1_error:;
 
4425
  __Pyx_XDECREF(__pyx_t_1);
 
4426
  __Pyx_AddTraceback("adios_mpi.define_attribute", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
4427
  __pyx_r = NULL;
 
4428
  __pyx_L0:;
 
4429
  __Pyx_XGIVEREF(__pyx_r);
 
4430
  __Pyx_RefNannyFinishContext();
 
4431
  return __pyx_r;
 
4432
}
 
4433
 
 
4434
/* "adios_mpi.pyx":349
 
4435
 *                                    var)
 
4436
 * 
 
4437
 * cpdef int select_method (int64_t group,             # <<<<<<<<<<<<<<
 
4438
 *                          char * method,
 
4439
 *                          char * parameters,
 
4440
 */
 
4441
 
 
4442
static PyObject *__pyx_pw_9adios_mpi_31select_method(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4443
static int __pyx_f_9adios_mpi_select_method(int64_t __pyx_v_group, char *__pyx_v_method, char *__pyx_v_parameters, char *__pyx_v_base_path, CYTHON_UNUSED int __pyx_skip_dispatch) {
 
4444
  int __pyx_r;
 
4445
  __Pyx_RefNannyDeclarations
 
4446
  __Pyx_RefNannySetupContext("select_method", 0);
 
4447
 
 
4448
  /* "adios_mpi.pyx":353
 
4449
 *                          char * parameters,
 
4450
 *                          char * base_path):
 
4451
 *     return adios_select_method (group,             # <<<<<<<<<<<<<<
 
4452
 *                                 method,
 
4453
 *                                 parameters,
 
4454
 */
 
4455
  __pyx_r = adios_select_method(__pyx_v_group, __pyx_v_method, __pyx_v_parameters, __pyx_v_base_path);
 
4456
  goto __pyx_L0;
 
4457
 
 
4458
  /* "adios_mpi.pyx":349
 
4459
 *                                    var)
 
4460
 * 
 
4461
 * cpdef int select_method (int64_t group,             # <<<<<<<<<<<<<<
 
4462
 *                          char * method,
 
4463
 *                          char * parameters,
 
4464
 */
 
4465
 
 
4466
  /* function exit code */
 
4467
  __pyx_L0:;
 
4468
  __Pyx_RefNannyFinishContext();
 
4469
  return __pyx_r;
 
4470
}
 
4471
 
 
4472
/* Python wrapper */
 
4473
static PyObject *__pyx_pw_9adios_mpi_31select_method(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
4474
static PyObject *__pyx_pw_9adios_mpi_31select_method(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
4475
  int64_t __pyx_v_group;
 
4476
  char *__pyx_v_method;
 
4477
  char *__pyx_v_parameters;
 
4478
  char *__pyx_v_base_path;
 
4479
  int __pyx_lineno = 0;
 
4480
  const char *__pyx_filename = NULL;
 
4481
  int __pyx_clineno = 0;
 
4482
  PyObject *__pyx_r = 0;
 
4483
  __Pyx_RefNannyDeclarations
 
4484
  __Pyx_RefNannySetupContext("select_method (wrapper)", 0);
 
4485
  {
 
4486
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_group,&__pyx_n_s_method,&__pyx_n_s_parameters,&__pyx_n_s_base_path,0};
 
4487
    PyObject* values[4] = {0,0,0,0};
 
4488
    if (unlikely(__pyx_kwds)) {
 
4489
      Py_ssize_t kw_args;
 
4490
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
4491
      switch (pos_args) {
 
4492
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 
4493
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
4494
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
4495
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4496
        case  0: break;
 
4497
        default: goto __pyx_L5_argtuple_error;
 
4498
      }
 
4499
      kw_args = PyDict_Size(__pyx_kwds);
 
4500
      switch (pos_args) {
 
4501
        case  0:
 
4502
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_group)) != 0)) kw_args--;
 
4503
        else goto __pyx_L5_argtuple_error;
 
4504
        case  1:
 
4505
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_method)) != 0)) kw_args--;
 
4506
        else {
 
4507
          __Pyx_RaiseArgtupleInvalid("select_method", 1, 4, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4508
        }
 
4509
        case  2:
 
4510
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_parameters)) != 0)) kw_args--;
 
4511
        else {
 
4512
          __Pyx_RaiseArgtupleInvalid("select_method", 1, 4, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4513
        }
 
4514
        case  3:
 
4515
        if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_base_path)) != 0)) kw_args--;
 
4516
        else {
 
4517
          __Pyx_RaiseArgtupleInvalid("select_method", 1, 4, 4, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4518
        }
 
4519
      }
 
4520
      if (unlikely(kw_args > 0)) {
 
4521
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "select_method") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4522
      }
 
4523
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
 
4524
      goto __pyx_L5_argtuple_error;
 
4525
    } else {
 
4526
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
4527
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
4528
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
4529
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 
4530
    }
 
4531
    __pyx_v_group = __Pyx_PyInt_As_int64_t(values[0]); if (unlikely((__pyx_v_group == (int64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4532
    __pyx_v_method = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_method) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4533
    __pyx_v_parameters = __Pyx_PyObject_AsString(values[2]); if (unlikely((!__pyx_v_parameters) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4534
    __pyx_v_base_path = __Pyx_PyObject_AsString(values[3]); if (unlikely((!__pyx_v_base_path) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4535
  }
 
4536
  goto __pyx_L4_argument_unpacking_done;
 
4537
  __pyx_L5_argtuple_error:;
 
4538
  __Pyx_RaiseArgtupleInvalid("select_method", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
4539
  __pyx_L3_error:;
 
4540
  __Pyx_AddTraceback("adios_mpi.select_method", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
4541
  __Pyx_RefNannyFinishContext();
 
4542
  return NULL;
 
4543
  __pyx_L4_argument_unpacking_done:;
 
4544
  __pyx_r = __pyx_pf_9adios_mpi_30select_method(__pyx_self, __pyx_v_group, __pyx_v_method, __pyx_v_parameters, __pyx_v_base_path);
 
4545
 
 
4546
  /* function exit code */
 
4547
  __Pyx_RefNannyFinishContext();
 
4548
  return __pyx_r;
 
4549
}
 
4550
 
 
4551
static PyObject *__pyx_pf_9adios_mpi_30select_method(CYTHON_UNUSED PyObject *__pyx_self, int64_t __pyx_v_group, char *__pyx_v_method, char *__pyx_v_parameters, char *__pyx_v_base_path) {
 
4552
  PyObject *__pyx_r = NULL;
 
4553
  __Pyx_RefNannyDeclarations
 
4554
  PyObject *__pyx_t_1 = NULL;
 
4555
  int __pyx_lineno = 0;
 
4556
  const char *__pyx_filename = NULL;
 
4557
  int __pyx_clineno = 0;
 
4558
  __Pyx_RefNannySetupContext("select_method", 0);
 
4559
  __Pyx_XDECREF(__pyx_r);
 
4560
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_9adios_mpi_select_method(__pyx_v_group, __pyx_v_method, __pyx_v_parameters, __pyx_v_base_path, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4561
  __Pyx_GOTREF(__pyx_t_1);
 
4562
  __pyx_r = __pyx_t_1;
 
4563
  __pyx_t_1 = 0;
 
4564
  goto __pyx_L0;
 
4565
 
 
4566
  /* function exit code */
 
4567
  __pyx_L1_error:;
 
4568
  __Pyx_XDECREF(__pyx_t_1);
 
4569
  __Pyx_AddTraceback("adios_mpi.select_method", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
4570
  __pyx_r = NULL;
 
4571
  __pyx_L0:;
 
4572
  __Pyx_XGIVEREF(__pyx_r);
 
4573
  __Pyx_RefNannyFinishContext();
 
4574
  return __pyx_r;
 
4575
}
 
4576
 
 
4577
/* "adios_mpi.pyx":363
 
4578
 * ## ====================
 
4579
 * 
 
4580
 * cdef type adios2nptype(ADIOS_DATATYPES t):             # <<<<<<<<<<<<<<
 
4581
 *     cdef type ntype = None
 
4582
 *     if t == adios_byte:
 
4583
 */
 
4584
 
 
4585
static PyObject *__pyx_f_9adios_mpi_adios2nptype(ADIOS_DATATYPES __pyx_v_t) {
 
4586
  PyObject *__pyx_v_ntype = 0;
 
4587
  PyObject *__pyx_r = NULL;
 
4588
  __Pyx_RefNannyDeclarations
 
4589
  PyObject *__pyx_t_1 = NULL;
 
4590
  PyObject *__pyx_t_2 = NULL;
 
4591
  int __pyx_lineno = 0;
 
4592
  const char *__pyx_filename = NULL;
 
4593
  int __pyx_clineno = 0;
 
4594
  __Pyx_RefNannySetupContext("adios2nptype", 0);
 
4595
 
 
4596
  /* "adios_mpi.pyx":364
 
4597
 * 
 
4598
 * cdef type adios2nptype(ADIOS_DATATYPES t):
 
4599
 *     cdef type ntype = None             # <<<<<<<<<<<<<<
 
4600
 *     if t == adios_byte:
 
4601
 *         ntype = np.int8
 
4602
 */
 
4603
  __Pyx_INCREF(Py_None);
 
4604
  __pyx_v_ntype = ((PyObject*)Py_None);
 
4605
 
 
4606
  /* "adios_mpi.pyx":389
 
4607
 *     elif t == adios_complex:
 
4608
 *         ntype = np.complex64
 
4609
 *     elif t == adios_double_complex:             # <<<<<<<<<<<<<<
 
4610
 *         ntype = np.complex128
 
4611
 *     else:
 
4612
 */
 
4613
  switch (__pyx_v_t) {
 
4614
 
 
4615
    /* "adios_mpi.pyx":365
 
4616
 * cdef type adios2nptype(ADIOS_DATATYPES t):
 
4617
 *     cdef type ntype = None
 
4618
 *     if t == adios_byte:             # <<<<<<<<<<<<<<
 
4619
 *         ntype = np.int8
 
4620
 *     elif t == adios_short:
 
4621
 */
 
4622
    case adios_byte:
 
4623
 
 
4624
    /* "adios_mpi.pyx":366
 
4625
 *     cdef type ntype = None
 
4626
 *     if t == adios_byte:
 
4627
 *         ntype = np.int8             # <<<<<<<<<<<<<<
 
4628
 *     elif t == adios_short:
 
4629
 *         ntype = np.int16
 
4630
 */
 
4631
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4632
    __Pyx_GOTREF(__pyx_t_1);
 
4633
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4634
    __Pyx_GOTREF(__pyx_t_2);
 
4635
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4636
    if (!(likely(PyType_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4637
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_2));
 
4638
    __pyx_t_2 = 0;
 
4639
    break;
 
4640
 
 
4641
    /* "adios_mpi.pyx":367
 
4642
 *     if t == adios_byte:
 
4643
 *         ntype = np.int8
 
4644
 *     elif t == adios_short:             # <<<<<<<<<<<<<<
 
4645
 *         ntype = np.int16
 
4646
 *     elif t == adios_integer:
 
4647
 */
 
4648
    case adios_short:
 
4649
 
 
4650
    /* "adios_mpi.pyx":368
 
4651
 *         ntype = np.int8
 
4652
 *     elif t == adios_short:
 
4653
 *         ntype = np.int16             # <<<<<<<<<<<<<<
 
4654
 *     elif t == adios_integer:
 
4655
 *         ntype = np.int32
 
4656
 */
 
4657
    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4658
    __Pyx_GOTREF(__pyx_t_2);
 
4659
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_int16); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4660
    __Pyx_GOTREF(__pyx_t_1);
 
4661
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4662
    if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4663
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_1));
 
4664
    __pyx_t_1 = 0;
 
4665
    break;
 
4666
 
 
4667
    /* "adios_mpi.pyx":369
 
4668
 *     elif t == adios_short:
 
4669
 *         ntype = np.int16
 
4670
 *     elif t == adios_integer:             # <<<<<<<<<<<<<<
 
4671
 *         ntype = np.int32
 
4672
 *     elif t == adios_long:
 
4673
 */
 
4674
    case adios_integer:
 
4675
 
 
4676
    /* "adios_mpi.pyx":370
 
4677
 *         ntype = np.int16
 
4678
 *     elif t == adios_integer:
 
4679
 *         ntype = np.int32             # <<<<<<<<<<<<<<
 
4680
 *     elif t == adios_long:
 
4681
 *         ntype = np.int64
 
4682
 */
 
4683
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4684
    __Pyx_GOTREF(__pyx_t_1);
 
4685
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int32); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4686
    __Pyx_GOTREF(__pyx_t_2);
 
4687
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4688
    if (!(likely(PyType_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4689
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_2));
 
4690
    __pyx_t_2 = 0;
 
4691
    break;
 
4692
 
 
4693
    /* "adios_mpi.pyx":371
 
4694
 *     elif t == adios_integer:
 
4695
 *         ntype = np.int32
 
4696
 *     elif t == adios_long:             # <<<<<<<<<<<<<<
 
4697
 *         ntype = np.int64
 
4698
 *     elif t == adios_unsigned_byte:
 
4699
 */
 
4700
    case adios_long:
 
4701
 
 
4702
    /* "adios_mpi.pyx":372
 
4703
 *         ntype = np.int32
 
4704
 *     elif t == adios_long:
 
4705
 *         ntype = np.int64             # <<<<<<<<<<<<<<
 
4706
 *     elif t == adios_unsigned_byte:
 
4707
 *         ntype = np.uint8
 
4708
 */
 
4709
    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4710
    __Pyx_GOTREF(__pyx_t_2);
 
4711
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_int64); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4712
    __Pyx_GOTREF(__pyx_t_1);
 
4713
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4714
    if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4715
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_1));
 
4716
    __pyx_t_1 = 0;
 
4717
    break;
 
4718
 
 
4719
    /* "adios_mpi.pyx":373
 
4720
 *     elif t == adios_long:
 
4721
 *         ntype = np.int64
 
4722
 *     elif t == adios_unsigned_byte:             # <<<<<<<<<<<<<<
 
4723
 *         ntype = np.uint8
 
4724
 *     elif t == adios_unsigned_short:
 
4725
 */
 
4726
    case adios_unsigned_byte:
 
4727
 
 
4728
    /* "adios_mpi.pyx":374
 
4729
 *         ntype = np.int64
 
4730
 *     elif t == adios_unsigned_byte:
 
4731
 *         ntype = np.uint8             # <<<<<<<<<<<<<<
 
4732
 *     elif t == adios_unsigned_short:
 
4733
 *         ntype = np.uint16
 
4734
 */
 
4735
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4736
    __Pyx_GOTREF(__pyx_t_1);
 
4737
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_uint8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4738
    __Pyx_GOTREF(__pyx_t_2);
 
4739
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4740
    if (!(likely(PyType_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4741
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_2));
 
4742
    __pyx_t_2 = 0;
 
4743
    break;
 
4744
 
 
4745
    /* "adios_mpi.pyx":375
 
4746
 *     elif t == adios_unsigned_byte:
 
4747
 *         ntype = np.uint8
 
4748
 *     elif t == adios_unsigned_short:             # <<<<<<<<<<<<<<
 
4749
 *         ntype = np.uint16
 
4750
 *     elif t == adios_unsigned_integer:
 
4751
 */
 
4752
    case adios_unsigned_short:
 
4753
 
 
4754
    /* "adios_mpi.pyx":376
 
4755
 *         ntype = np.uint8
 
4756
 *     elif t == adios_unsigned_short:
 
4757
 *         ntype = np.uint16             # <<<<<<<<<<<<<<
 
4758
 *     elif t == adios_unsigned_integer:
 
4759
 *         ntype = np.uint32
 
4760
 */
 
4761
    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4762
    __Pyx_GOTREF(__pyx_t_2);
 
4763
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_uint16); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4764
    __Pyx_GOTREF(__pyx_t_1);
 
4765
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4766
    if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4767
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_1));
 
4768
    __pyx_t_1 = 0;
 
4769
    break;
 
4770
 
 
4771
    /* "adios_mpi.pyx":377
 
4772
 *     elif t == adios_unsigned_short:
 
4773
 *         ntype = np.uint16
 
4774
 *     elif t == adios_unsigned_integer:             # <<<<<<<<<<<<<<
 
4775
 *         ntype = np.uint32
 
4776
 *     elif t == adios_unsigned_long:
 
4777
 */
 
4778
    case adios_unsigned_integer:
 
4779
 
 
4780
    /* "adios_mpi.pyx":378
 
4781
 *         ntype = np.uint16
 
4782
 *     elif t == adios_unsigned_integer:
 
4783
 *         ntype = np.uint32             # <<<<<<<<<<<<<<
 
4784
 *     elif t == adios_unsigned_long:
 
4785
 *         ntype = np.uint64
 
4786
 */
 
4787
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4788
    __Pyx_GOTREF(__pyx_t_1);
 
4789
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_uint32); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4790
    __Pyx_GOTREF(__pyx_t_2);
 
4791
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4792
    if (!(likely(PyType_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4793
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_2));
 
4794
    __pyx_t_2 = 0;
 
4795
    break;
 
4796
 
 
4797
    /* "adios_mpi.pyx":379
 
4798
 *     elif t == adios_unsigned_integer:
 
4799
 *         ntype = np.uint32
 
4800
 *     elif t == adios_unsigned_long:             # <<<<<<<<<<<<<<
 
4801
 *         ntype = np.uint64
 
4802
 *     elif t == adios_real:
 
4803
 */
 
4804
    case adios_unsigned_long:
 
4805
 
 
4806
    /* "adios_mpi.pyx":380
 
4807
 *         ntype = np.uint32
 
4808
 *     elif t == adios_unsigned_long:
 
4809
 *         ntype = np.uint64             # <<<<<<<<<<<<<<
 
4810
 *     elif t == adios_real:
 
4811
 *         ntype = np.float32
 
4812
 */
 
4813
    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4814
    __Pyx_GOTREF(__pyx_t_2);
 
4815
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_uint64); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4816
    __Pyx_GOTREF(__pyx_t_1);
 
4817
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4818
    if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4819
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_1));
 
4820
    __pyx_t_1 = 0;
 
4821
    break;
 
4822
 
 
4823
    /* "adios_mpi.pyx":381
 
4824
 *     elif t == adios_unsigned_long:
 
4825
 *         ntype = np.uint64
 
4826
 *     elif t == adios_real:             # <<<<<<<<<<<<<<
 
4827
 *         ntype = np.float32
 
4828
 *     elif t == adios_double:
 
4829
 */
 
4830
    case adios_real:
 
4831
 
 
4832
    /* "adios_mpi.pyx":382
 
4833
 *         ntype = np.uint64
 
4834
 *     elif t == adios_real:
 
4835
 *         ntype = np.float32             # <<<<<<<<<<<<<<
 
4836
 *     elif t == adios_double:
 
4837
 *         ntype = np.float64
 
4838
 */
 
4839
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4840
    __Pyx_GOTREF(__pyx_t_1);
 
4841
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float32); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4842
    __Pyx_GOTREF(__pyx_t_2);
 
4843
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4844
    if (!(likely(PyType_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4845
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_2));
 
4846
    __pyx_t_2 = 0;
 
4847
    break;
 
4848
 
 
4849
    /* "adios_mpi.pyx":383
 
4850
 *     elif t == adios_real:
 
4851
 *         ntype = np.float32
 
4852
 *     elif t == adios_double:             # <<<<<<<<<<<<<<
 
4853
 *         ntype = np.float64
 
4854
 *     elif t == adios_long_double:
 
4855
 */
 
4856
    case adios_double:
 
4857
 
 
4858
    /* "adios_mpi.pyx":384
 
4859
 *         ntype = np.float32
 
4860
 *     elif t == adios_double:
 
4861
 *         ntype = np.float64             # <<<<<<<<<<<<<<
 
4862
 *     elif t == adios_long_double:
 
4863
 *         ntype = np.float128
 
4864
 */
 
4865
    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4866
    __Pyx_GOTREF(__pyx_t_2);
 
4867
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_float64); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4868
    __Pyx_GOTREF(__pyx_t_1);
 
4869
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4870
    if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4871
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_1));
 
4872
    __pyx_t_1 = 0;
 
4873
    break;
 
4874
 
 
4875
    /* "adios_mpi.pyx":385
 
4876
 *     elif t == adios_double:
 
4877
 *         ntype = np.float64
 
4878
 *     elif t == adios_long_double:             # <<<<<<<<<<<<<<
 
4879
 *         ntype = np.float128
 
4880
 *     elif t == adios_complex:
 
4881
 */
 
4882
    case adios_long_double:
 
4883
 
 
4884
    /* "adios_mpi.pyx":386
 
4885
 *         ntype = np.float64
 
4886
 *     elif t == adios_long_double:
 
4887
 *         ntype = np.float128             # <<<<<<<<<<<<<<
 
4888
 *     elif t == adios_complex:
 
4889
 *         ntype = np.complex64
 
4890
 */
 
4891
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4892
    __Pyx_GOTREF(__pyx_t_1);
 
4893
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float128); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4894
    __Pyx_GOTREF(__pyx_t_2);
 
4895
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4896
    if (!(likely(PyType_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4897
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_2));
 
4898
    __pyx_t_2 = 0;
 
4899
    break;
 
4900
 
 
4901
    /* "adios_mpi.pyx":387
 
4902
 *     elif t == adios_long_double:
 
4903
 *         ntype = np.float128
 
4904
 *     elif t == adios_complex:             # <<<<<<<<<<<<<<
 
4905
 *         ntype = np.complex64
 
4906
 *     elif t == adios_double_complex:
 
4907
 */
 
4908
    case adios_complex:
 
4909
 
 
4910
    /* "adios_mpi.pyx":388
 
4911
 *         ntype = np.float128
 
4912
 *     elif t == adios_complex:
 
4913
 *         ntype = np.complex64             # <<<<<<<<<<<<<<
 
4914
 *     elif t == adios_double_complex:
 
4915
 *         ntype = np.complex128
 
4916
 */
 
4917
    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4918
    __Pyx_GOTREF(__pyx_t_2);
 
4919
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_complex64); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4920
    __Pyx_GOTREF(__pyx_t_1);
 
4921
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
4922
    if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4923
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_1));
 
4924
    __pyx_t_1 = 0;
 
4925
    break;
 
4926
 
 
4927
    /* "adios_mpi.pyx":389
 
4928
 *     elif t == adios_complex:
 
4929
 *         ntype = np.complex64
 
4930
 *     elif t == adios_double_complex:             # <<<<<<<<<<<<<<
 
4931
 *         ntype = np.complex128
 
4932
 *     else:
 
4933
 */
 
4934
    case adios_double_complex:
 
4935
 
 
4936
    /* "adios_mpi.pyx":390
 
4937
 *         ntype = np.complex64
 
4938
 *     elif t == adios_double_complex:
 
4939
 *         ntype = np.complex128             # <<<<<<<<<<<<<<
 
4940
 *     else:
 
4941
 *         ntype = None
 
4942
 */
 
4943
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4944
    __Pyx_GOTREF(__pyx_t_1);
 
4945
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_complex128); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4946
    __Pyx_GOTREF(__pyx_t_2);
 
4947
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
4948
    if (!(likely(PyType_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
4949
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)__pyx_t_2));
 
4950
    __pyx_t_2 = 0;
 
4951
    break;
 
4952
    default:
 
4953
 
 
4954
    /* "adios_mpi.pyx":392
 
4955
 *         ntype = np.complex128
 
4956
 *     else:
 
4957
 *         ntype = None             # <<<<<<<<<<<<<<
 
4958
 * 
 
4959
 *     return ntype
 
4960
 */
 
4961
    __Pyx_INCREF(Py_None);
 
4962
    __Pyx_DECREF_SET(__pyx_v_ntype, ((PyObject*)Py_None));
 
4963
    break;
 
4964
  }
 
4965
 
 
4966
  /* "adios_mpi.pyx":394
 
4967
 *         ntype = None
 
4968
 * 
 
4969
 *     return ntype             # <<<<<<<<<<<<<<
 
4970
 * 
 
4971
 * cdef printfile(ADIOS_FILE * f):
 
4972
 */
 
4973
  __Pyx_XDECREF(((PyObject *)__pyx_r));
 
4974
  __Pyx_INCREF(((PyObject *)__pyx_v_ntype));
 
4975
  __pyx_r = __pyx_v_ntype;
 
4976
  goto __pyx_L0;
 
4977
 
 
4978
  /* "adios_mpi.pyx":363
 
4979
 * ## ====================
 
4980
 * 
 
4981
 * cdef type adios2nptype(ADIOS_DATATYPES t):             # <<<<<<<<<<<<<<
 
4982
 *     cdef type ntype = None
 
4983
 *     if t == adios_byte:
 
4984
 */
 
4985
 
 
4986
  /* function exit code */
 
4987
  __pyx_L1_error:;
 
4988
  __Pyx_XDECREF(__pyx_t_1);
 
4989
  __Pyx_XDECREF(__pyx_t_2);
 
4990
  __Pyx_AddTraceback("adios_mpi.adios2nptype", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
4991
  __pyx_r = 0;
 
4992
  __pyx_L0:;
 
4993
  __Pyx_XDECREF(__pyx_v_ntype);
 
4994
  __Pyx_XGIVEREF(__pyx_r);
 
4995
  __Pyx_RefNannyFinishContext();
 
4996
  return __pyx_r;
 
4997
}
 
4998
 
 
4999
/* "adios_mpi.pyx":396
 
5000
 *     return ntype
 
5001
 * 
 
5002
 * cdef printfile(ADIOS_FILE * f):             # <<<<<<<<<<<<<<
 
5003
 *     print '%15s : %lu' % ('fh', f.fh)
 
5004
 *     print '%15s : %d' % ('nvars', f.nvars)
 
5005
 */
 
5006
 
 
5007
static PyObject *__pyx_f_9adios_mpi_printfile(ADIOS_FILE *__pyx_v_f) {
 
5008
  int __pyx_v_i;
 
5009
  PyObject *__pyx_r = NULL;
 
5010
  __Pyx_RefNannyDeclarations
 
5011
  PyObject *__pyx_t_1 = NULL;
 
5012
  PyObject *__pyx_t_2 = NULL;
 
5013
  int __pyx_t_3;
 
5014
  int __pyx_t_4;
 
5015
  int __pyx_lineno = 0;
 
5016
  const char *__pyx_filename = NULL;
 
5017
  int __pyx_clineno = 0;
 
5018
  __Pyx_RefNannySetupContext("printfile", 0);
 
5019
 
 
5020
  /* "adios_mpi.pyx":397
 
5021
 * 
 
5022
 * cdef printfile(ADIOS_FILE * f):
 
5023
 *     print '%15s : %lu' % ('fh', f.fh)             # <<<<<<<<<<<<<<
 
5024
 *     print '%15s : %d' % ('nvars', f.nvars)
 
5025
 *     print '%15s : %s' % ('var_namelist', [f.var_namelist[i] for i in range(f.nvars)])
 
5026
 */
 
5027
  __pyx_t_1 = __Pyx_PyInt_From_uint64_t(__pyx_v_f->fh); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5028
  __Pyx_GOTREF(__pyx_t_1);
 
5029
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5030
  __Pyx_GOTREF(__pyx_t_2);
 
5031
  __Pyx_INCREF(__pyx_n_s_fh);
 
5032
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_fh);
 
5033
  __Pyx_GIVEREF(__pyx_n_s_fh);
 
5034
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5035
  __Pyx_GIVEREF(__pyx_t_1);
 
5036
  __pyx_t_1 = 0;
 
5037
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_lu, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5038
  __Pyx_GOTREF(__pyx_t_1);
 
5039
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5040
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5041
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5042
 
 
5043
  /* "adios_mpi.pyx":398
 
5044
 * cdef printfile(ADIOS_FILE * f):
 
5045
 *     print '%15s : %lu' % ('fh', f.fh)
 
5046
 *     print '%15s : %d' % ('nvars', f.nvars)             # <<<<<<<<<<<<<<
 
5047
 *     print '%15s : %s' % ('var_namelist', [f.var_namelist[i] for i in range(f.nvars)])
 
5048
 *     print '%15s : %d' % ('nattrs', f.nattrs)
 
5049
 */
 
5050
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_f->nvars); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5051
  __Pyx_GOTREF(__pyx_t_1);
 
5052
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5053
  __Pyx_GOTREF(__pyx_t_2);
 
5054
  __Pyx_INCREF(__pyx_n_s_nvars);
 
5055
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_nvars);
 
5056
  __Pyx_GIVEREF(__pyx_n_s_nvars);
 
5057
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5058
  __Pyx_GIVEREF(__pyx_t_1);
 
5059
  __pyx_t_1 = 0;
 
5060
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_d, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5061
  __Pyx_GOTREF(__pyx_t_1);
 
5062
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5063
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5064
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5065
 
 
5066
  /* "adios_mpi.pyx":399
 
5067
 *     print '%15s : %lu' % ('fh', f.fh)
 
5068
 *     print '%15s : %d' % ('nvars', f.nvars)
 
5069
 *     print '%15s : %s' % ('var_namelist', [f.var_namelist[i] for i in range(f.nvars)])             # <<<<<<<<<<<<<<
 
5070
 *     print '%15s : %d' % ('nattrs', f.nattrs)
 
5071
 *     print '%15s : %s' % ('attr_namelist', [f.attr_namelist[i] for i in range(f.nattrs)])
 
5072
 */
 
5073
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5074
  __Pyx_GOTREF(__pyx_t_1);
 
5075
  __pyx_t_3 = __pyx_v_f->nvars;
 
5076
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
 
5077
    __pyx_v_i = __pyx_t_4;
 
5078
    __pyx_t_2 = __Pyx_PyBytes_FromString((__pyx_v_f->var_namelist[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5079
    __Pyx_GOTREF(__pyx_t_2);
 
5080
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5081
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5082
  }
 
5083
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5084
  __Pyx_GOTREF(__pyx_t_2);
 
5085
  __Pyx_INCREF(__pyx_n_s_var_namelist);
 
5086
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_var_namelist);
 
5087
  __Pyx_GIVEREF(__pyx_n_s_var_namelist);
 
5088
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5089
  __Pyx_GIVEREF(__pyx_t_1);
 
5090
  __pyx_t_1 = 0;
 
5091
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_s, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5092
  __Pyx_GOTREF(__pyx_t_1);
 
5093
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5094
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5095
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5096
 
 
5097
  /* "adios_mpi.pyx":400
 
5098
 *     print '%15s : %d' % ('nvars', f.nvars)
 
5099
 *     print '%15s : %s' % ('var_namelist', [f.var_namelist[i] for i in range(f.nvars)])
 
5100
 *     print '%15s : %d' % ('nattrs', f.nattrs)             # <<<<<<<<<<<<<<
 
5101
 *     print '%15s : %s' % ('attr_namelist', [f.attr_namelist[i] for i in range(f.nattrs)])
 
5102
 *     print '%15s : %d' % ('current_step', f.current_step)
 
5103
 */
 
5104
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_f->nattrs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5105
  __Pyx_GOTREF(__pyx_t_1);
 
5106
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5107
  __Pyx_GOTREF(__pyx_t_2);
 
5108
  __Pyx_INCREF(__pyx_n_s_nattrs);
 
5109
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_nattrs);
 
5110
  __Pyx_GIVEREF(__pyx_n_s_nattrs);
 
5111
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5112
  __Pyx_GIVEREF(__pyx_t_1);
 
5113
  __pyx_t_1 = 0;
 
5114
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_d, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5115
  __Pyx_GOTREF(__pyx_t_1);
 
5116
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5117
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5118
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5119
 
 
5120
  /* "adios_mpi.pyx":401
 
5121
 *     print '%15s : %s' % ('var_namelist', [f.var_namelist[i] for i in range(f.nvars)])
 
5122
 *     print '%15s : %d' % ('nattrs', f.nattrs)
 
5123
 *     print '%15s : %s' % ('attr_namelist', [f.attr_namelist[i] for i in range(f.nattrs)])             # <<<<<<<<<<<<<<
 
5124
 *     print '%15s : %d' % ('current_step', f.current_step)
 
5125
 *     print '%15s : %d' % ('last_step', f.last_step)
 
5126
 */
 
5127
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5128
  __Pyx_GOTREF(__pyx_t_1);
 
5129
  __pyx_t_3 = __pyx_v_f->nattrs;
 
5130
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
 
5131
    __pyx_v_i = __pyx_t_4;
 
5132
    __pyx_t_2 = __Pyx_PyBytes_FromString((__pyx_v_f->attr_namelist[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5133
    __Pyx_GOTREF(__pyx_t_2);
 
5134
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5135
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5136
  }
 
5137
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5138
  __Pyx_GOTREF(__pyx_t_2);
 
5139
  __Pyx_INCREF(__pyx_n_s_attr_namelist);
 
5140
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_attr_namelist);
 
5141
  __Pyx_GIVEREF(__pyx_n_s_attr_namelist);
 
5142
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5143
  __Pyx_GIVEREF(__pyx_t_1);
 
5144
  __pyx_t_1 = 0;
 
5145
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_s, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5146
  __Pyx_GOTREF(__pyx_t_1);
 
5147
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5148
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5149
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5150
 
 
5151
  /* "adios_mpi.pyx":402
 
5152
 *     print '%15s : %d' % ('nattrs', f.nattrs)
 
5153
 *     print '%15s : %s' % ('attr_namelist', [f.attr_namelist[i] for i in range(f.nattrs)])
 
5154
 *     print '%15s : %d' % ('current_step', f.current_step)             # <<<<<<<<<<<<<<
 
5155
 *     print '%15s : %d' % ('last_step', f.last_step)
 
5156
 *     print '%15s : %s' % ('path', f.path)
 
5157
 */
 
5158
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_f->current_step); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5159
  __Pyx_GOTREF(__pyx_t_1);
 
5160
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5161
  __Pyx_GOTREF(__pyx_t_2);
 
5162
  __Pyx_INCREF(__pyx_n_s_current_step);
 
5163
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_current_step);
 
5164
  __Pyx_GIVEREF(__pyx_n_s_current_step);
 
5165
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5166
  __Pyx_GIVEREF(__pyx_t_1);
 
5167
  __pyx_t_1 = 0;
 
5168
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_d, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5169
  __Pyx_GOTREF(__pyx_t_1);
 
5170
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5171
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5172
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5173
 
 
5174
  /* "adios_mpi.pyx":403
 
5175
 *     print '%15s : %s' % ('attr_namelist', [f.attr_namelist[i] for i in range(f.nattrs)])
 
5176
 *     print '%15s : %d' % ('current_step', f.current_step)
 
5177
 *     print '%15s : %d' % ('last_step', f.last_step)             # <<<<<<<<<<<<<<
 
5178
 *     print '%15s : %s' % ('path', f.path)
 
5179
 *     print '%15s : %d' % ('endianness', f.endianness)
 
5180
 */
 
5181
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_f->last_step); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5182
  __Pyx_GOTREF(__pyx_t_1);
 
5183
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5184
  __Pyx_GOTREF(__pyx_t_2);
 
5185
  __Pyx_INCREF(__pyx_n_s_last_step);
 
5186
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_last_step);
 
5187
  __Pyx_GIVEREF(__pyx_n_s_last_step);
 
5188
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5189
  __Pyx_GIVEREF(__pyx_t_1);
 
5190
  __pyx_t_1 = 0;
 
5191
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_d, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5192
  __Pyx_GOTREF(__pyx_t_1);
 
5193
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5194
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5195
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5196
 
 
5197
  /* "adios_mpi.pyx":404
 
5198
 *     print '%15s : %d' % ('current_step', f.current_step)
 
5199
 *     print '%15s : %d' % ('last_step', f.last_step)
 
5200
 *     print '%15s : %s' % ('path', f.path)             # <<<<<<<<<<<<<<
 
5201
 *     print '%15s : %d' % ('endianness', f.endianness)
 
5202
 *     print '%15s : %d' % ('version', f.version)
 
5203
 */
 
5204
  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_f->path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5205
  __Pyx_GOTREF(__pyx_t_1);
 
5206
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5207
  __Pyx_GOTREF(__pyx_t_2);
 
5208
  __Pyx_INCREF(__pyx_n_s_path);
 
5209
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_path);
 
5210
  __Pyx_GIVEREF(__pyx_n_s_path);
 
5211
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5212
  __Pyx_GIVEREF(__pyx_t_1);
 
5213
  __pyx_t_1 = 0;
 
5214
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_s, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5215
  __Pyx_GOTREF(__pyx_t_1);
 
5216
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5217
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5218
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5219
 
 
5220
  /* "adios_mpi.pyx":405
 
5221
 *     print '%15s : %d' % ('last_step', f.last_step)
 
5222
 *     print '%15s : %s' % ('path', f.path)
 
5223
 *     print '%15s : %d' % ('endianness', f.endianness)             # <<<<<<<<<<<<<<
 
5224
 *     print '%15s : %d' % ('version', f.version)
 
5225
 *     print '%15s : %lu' % ('file_size', f.file_size)
 
5226
 */
 
5227
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_f->endianness); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5228
  __Pyx_GOTREF(__pyx_t_1);
 
5229
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5230
  __Pyx_GOTREF(__pyx_t_2);
 
5231
  __Pyx_INCREF(__pyx_n_s_endianness);
 
5232
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_endianness);
 
5233
  __Pyx_GIVEREF(__pyx_n_s_endianness);
 
5234
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5235
  __Pyx_GIVEREF(__pyx_t_1);
 
5236
  __pyx_t_1 = 0;
 
5237
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_d, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5238
  __Pyx_GOTREF(__pyx_t_1);
 
5239
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5240
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5241
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5242
 
 
5243
  /* "adios_mpi.pyx":406
 
5244
 *     print '%15s : %s' % ('path', f.path)
 
5245
 *     print '%15s : %d' % ('endianness', f.endianness)
 
5246
 *     print '%15s : %d' % ('version', f.version)             # <<<<<<<<<<<<<<
 
5247
 *     print '%15s : %lu' % ('file_size', f.file_size)
 
5248
 * 
 
5249
 */
 
5250
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_f->version); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5251
  __Pyx_GOTREF(__pyx_t_1);
 
5252
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5253
  __Pyx_GOTREF(__pyx_t_2);
 
5254
  __Pyx_INCREF(__pyx_n_s_version);
 
5255
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_version);
 
5256
  __Pyx_GIVEREF(__pyx_n_s_version);
 
5257
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5258
  __Pyx_GIVEREF(__pyx_t_1);
 
5259
  __pyx_t_1 = 0;
 
5260
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_d, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5261
  __Pyx_GOTREF(__pyx_t_1);
 
5262
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5263
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5264
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5265
 
 
5266
  /* "adios_mpi.pyx":407
 
5267
 *     print '%15s : %d' % ('endianness', f.endianness)
 
5268
 *     print '%15s : %d' % ('version', f.version)
 
5269
 *     print '%15s : %lu' % ('file_size', f.file_size)             # <<<<<<<<<<<<<<
 
5270
 * 
 
5271
 * cdef printvar(ADIOS_VARINFO * v):
 
5272
 */
 
5273
  __pyx_t_1 = __Pyx_PyInt_From_uint64_t(__pyx_v_f->file_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5274
  __Pyx_GOTREF(__pyx_t_1);
 
5275
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5276
  __Pyx_GOTREF(__pyx_t_2);
 
5277
  __Pyx_INCREF(__pyx_n_s_file_size);
 
5278
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_file_size);
 
5279
  __Pyx_GIVEREF(__pyx_n_s_file_size);
 
5280
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5281
  __Pyx_GIVEREF(__pyx_t_1);
 
5282
  __pyx_t_1 = 0;
 
5283
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_lu, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5284
  __Pyx_GOTREF(__pyx_t_1);
 
5285
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5286
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5287
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5288
 
 
5289
  /* "adios_mpi.pyx":396
 
5290
 *     return ntype
 
5291
 * 
 
5292
 * cdef printfile(ADIOS_FILE * f):             # <<<<<<<<<<<<<<
 
5293
 *     print '%15s : %lu' % ('fh', f.fh)
 
5294
 *     print '%15s : %d' % ('nvars', f.nvars)
 
5295
 */
 
5296
 
 
5297
  /* function exit code */
 
5298
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5299
  goto __pyx_L0;
 
5300
  __pyx_L1_error:;
 
5301
  __Pyx_XDECREF(__pyx_t_1);
 
5302
  __Pyx_XDECREF(__pyx_t_2);
 
5303
  __Pyx_AddTraceback("adios_mpi.printfile", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
5304
  __pyx_r = 0;
 
5305
  __pyx_L0:;
 
5306
  __Pyx_XGIVEREF(__pyx_r);
 
5307
  __Pyx_RefNannyFinishContext();
 
5308
  return __pyx_r;
 
5309
}
 
5310
 
 
5311
/* "adios_mpi.pyx":409
 
5312
 *     print '%15s : %lu' % ('file_size', f.file_size)
 
5313
 * 
 
5314
 * cdef printvar(ADIOS_VARINFO * v):             # <<<<<<<<<<<<<<
 
5315
 *     print '%15s : %d' % ('varid', v.varid)
 
5316
 *     print '%15s : %s' % ('type', adios2nptype(v.type))
 
5317
 */
 
5318
 
 
5319
static PyObject *__pyx_f_9adios_mpi_printvar(ADIOS_VARINFO *__pyx_v_v) {
 
5320
  int __pyx_v_i;
 
5321
  PyObject *__pyx_r = NULL;
 
5322
  __Pyx_RefNannyDeclarations
 
5323
  PyObject *__pyx_t_1 = NULL;
 
5324
  PyObject *__pyx_t_2 = NULL;
 
5325
  int __pyx_t_3;
 
5326
  int __pyx_t_4;
 
5327
  int __pyx_lineno = 0;
 
5328
  const char *__pyx_filename = NULL;
 
5329
  int __pyx_clineno = 0;
 
5330
  __Pyx_RefNannySetupContext("printvar", 0);
 
5331
 
 
5332
  /* "adios_mpi.pyx":410
 
5333
 * 
 
5334
 * cdef printvar(ADIOS_VARINFO * v):
 
5335
 *     print '%15s : %d' % ('varid', v.varid)             # <<<<<<<<<<<<<<
 
5336
 *     print '%15s : %s' % ('type', adios2nptype(v.type))
 
5337
 *     print '%15s : %d' % ('ndim', v.ndim)
 
5338
 */
 
5339
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_v->varid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5340
  __Pyx_GOTREF(__pyx_t_1);
 
5341
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5342
  __Pyx_GOTREF(__pyx_t_2);
 
5343
  __Pyx_INCREF(__pyx_n_s_varid);
 
5344
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_varid);
 
5345
  __Pyx_GIVEREF(__pyx_n_s_varid);
 
5346
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5347
  __Pyx_GIVEREF(__pyx_t_1);
 
5348
  __pyx_t_1 = 0;
 
5349
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_d, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5350
  __Pyx_GOTREF(__pyx_t_1);
 
5351
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5352
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5353
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5354
 
 
5355
  /* "adios_mpi.pyx":411
 
5356
 * cdef printvar(ADIOS_VARINFO * v):
 
5357
 *     print '%15s : %d' % ('varid', v.varid)
 
5358
 *     print '%15s : %s' % ('type', adios2nptype(v.type))             # <<<<<<<<<<<<<<
 
5359
 *     print '%15s : %d' % ('ndim', v.ndim)
 
5360
 *     print '%15s : %s' % ('dims', [v.dims[i] for i in range(v.ndim)])
 
5361
 */
 
5362
  __pyx_t_1 = ((PyObject *)__pyx_f_9adios_mpi_adios2nptype(__pyx_v_v->type)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5363
  __Pyx_GOTREF(__pyx_t_1);
 
5364
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5365
  __Pyx_GOTREF(__pyx_t_2);
 
5366
  __Pyx_INCREF(__pyx_n_s_type);
 
5367
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_type);
 
5368
  __Pyx_GIVEREF(__pyx_n_s_type);
 
5369
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5370
  __Pyx_GIVEREF(__pyx_t_1);
 
5371
  __pyx_t_1 = 0;
 
5372
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_s, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5373
  __Pyx_GOTREF(__pyx_t_1);
 
5374
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5375
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5376
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5377
 
 
5378
  /* "adios_mpi.pyx":412
 
5379
 *     print '%15s : %d' % ('varid', v.varid)
 
5380
 *     print '%15s : %s' % ('type', adios2nptype(v.type))
 
5381
 *     print '%15s : %d' % ('ndim', v.ndim)             # <<<<<<<<<<<<<<
 
5382
 *     print '%15s : %s' % ('dims', [v.dims[i] for i in range(v.ndim)])
 
5383
 *     print '%15s : %d' % ('nsteps', v.nsteps)
 
5384
 */
 
5385
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_v->ndim); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5386
  __Pyx_GOTREF(__pyx_t_1);
 
5387
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5388
  __Pyx_GOTREF(__pyx_t_2);
 
5389
  __Pyx_INCREF(__pyx_n_s_ndim);
 
5390
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ndim);
 
5391
  __Pyx_GIVEREF(__pyx_n_s_ndim);
 
5392
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5393
  __Pyx_GIVEREF(__pyx_t_1);
 
5394
  __pyx_t_1 = 0;
 
5395
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_d, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5396
  __Pyx_GOTREF(__pyx_t_1);
 
5397
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5398
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5399
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5400
 
 
5401
  /* "adios_mpi.pyx":413
 
5402
 *     print '%15s : %s' % ('type', adios2nptype(v.type))
 
5403
 *     print '%15s : %d' % ('ndim', v.ndim)
 
5404
 *     print '%15s : %s' % ('dims', [v.dims[i] for i in range(v.ndim)])             # <<<<<<<<<<<<<<
 
5405
 *     print '%15s : %d' % ('nsteps', v.nsteps)
 
5406
 * 
 
5407
 */
 
5408
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5409
  __Pyx_GOTREF(__pyx_t_1);
 
5410
  __pyx_t_3 = __pyx_v_v->ndim;
 
5411
  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
 
5412
    __pyx_v_i = __pyx_t_4;
 
5413
    __pyx_t_2 = __Pyx_PyInt_From_uint64_t((__pyx_v_v->dims[__pyx_v_i])); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5414
    __Pyx_GOTREF(__pyx_t_2);
 
5415
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5416
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5417
  }
 
5418
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5419
  __Pyx_GOTREF(__pyx_t_2);
 
5420
  __Pyx_INCREF(__pyx_n_s_dims);
 
5421
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_dims);
 
5422
  __Pyx_GIVEREF(__pyx_n_s_dims);
 
5423
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5424
  __Pyx_GIVEREF(__pyx_t_1);
 
5425
  __pyx_t_1 = 0;
 
5426
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_s, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5427
  __Pyx_GOTREF(__pyx_t_1);
 
5428
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5429
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5430
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5431
 
 
5432
  /* "adios_mpi.pyx":414
 
5433
 *     print '%15s : %d' % ('ndim', v.ndim)
 
5434
 *     print '%15s : %s' % ('dims', [v.dims[i] for i in range(v.ndim)])
 
5435
 *     print '%15s : %d' % ('nsteps', v.nsteps)             # <<<<<<<<<<<<<<
 
5436
 * 
 
5437
 * ## ====================
 
5438
 */
 
5439
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_v->nsteps); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5440
  __Pyx_GOTREF(__pyx_t_1);
 
5441
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5442
  __Pyx_GOTREF(__pyx_t_2);
 
5443
  __Pyx_INCREF(__pyx_n_s_nsteps);
 
5444
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_nsteps);
 
5445
  __Pyx_GIVEREF(__pyx_n_s_nsteps);
 
5446
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
5447
  __Pyx_GIVEREF(__pyx_t_1);
 
5448
  __pyx_t_1 = 0;
 
5449
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_d, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5450
  __Pyx_GOTREF(__pyx_t_1);
 
5451
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5452
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5453
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5454
 
 
5455
  /* "adios_mpi.pyx":409
 
5456
 *     print '%15s : %lu' % ('file_size', f.file_size)
 
5457
 * 
 
5458
 * cdef printvar(ADIOS_VARINFO * v):             # <<<<<<<<<<<<<<
 
5459
 *     print '%15s : %d' % ('varid', v.varid)
 
5460
 *     print '%15s : %s' % ('type', adios2nptype(v.type))
 
5461
 */
 
5462
 
 
5463
  /* function exit code */
 
5464
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
5465
  goto __pyx_L0;
 
5466
  __pyx_L1_error:;
 
5467
  __Pyx_XDECREF(__pyx_t_1);
 
5468
  __Pyx_XDECREF(__pyx_t_2);
 
5469
  __Pyx_AddTraceback("adios_mpi.printvar", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
5470
  __pyx_r = 0;
 
5471
  __pyx_L0:;
 
5472
  __Pyx_XGIVEREF(__pyx_r);
 
5473
  __Pyx_RefNannyFinishContext();
 
5474
  return __pyx_r;
 
5475
}
 
5476
 
 
5477
/* "adios_mpi.pyx":420
 
5478
 * ## ====================
 
5479
 * 
 
5480
 * cpdef read_init(ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP,             # <<<<<<<<<<<<<<
 
5481
 *                 MPI.Comm comm = MPI.COMM_WORLD,
 
5482
 *                 char * parameters = ""):
 
5483
 */
 
5484
 
 
5485
static PyObject *__pyx_pw_9adios_mpi_33read_init(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
5486
static PyObject *__pyx_f_9adios_mpi_read_init(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_read_init *__pyx_optional_args) {
 
5487
  ADIOS_READ_METHOD __pyx_v_method = __pyx_k__4;
 
5488
  struct PyMPICommObject *__pyx_v_comm = __pyx_k__5;
 
5489
  char *__pyx_v_parameters = ((char *)__pyx_k__6);
 
5490
  PyObject *__pyx_r = NULL;
 
5491
  __Pyx_RefNannyDeclarations
 
5492
  PyObject *__pyx_t_1 = NULL;
 
5493
  int __pyx_lineno = 0;
 
5494
  const char *__pyx_filename = NULL;
 
5495
  int __pyx_clineno = 0;
 
5496
  __Pyx_RefNannySetupContext("read_init", 0);
 
5497
  if (__pyx_optional_args) {
 
5498
    if (__pyx_optional_args->__pyx_n > 0) {
 
5499
      __pyx_v_method = __pyx_optional_args->method;
 
5500
      if (__pyx_optional_args->__pyx_n > 1) {
 
5501
        __pyx_v_comm = __pyx_optional_args->comm;
 
5502
        if (__pyx_optional_args->__pyx_n > 2) {
 
5503
          __pyx_v_parameters = __pyx_optional_args->parameters;
 
5504
        }
 
5505
      }
 
5506
    }
 
5507
  }
 
5508
 
 
5509
  /* "adios_mpi.pyx":423
 
5510
 *                 MPI.Comm comm = MPI.COMM_WORLD,
 
5511
 *                 char * parameters = ""):
 
5512
 *     return adios_read_init_method (method, comm.ob_mpi, parameters)             # <<<<<<<<<<<<<<
 
5513
 * 
 
5514
 * 
 
5515
 */
 
5516
  __Pyx_XDECREF(__pyx_r);
 
5517
  __pyx_t_1 = __Pyx_PyInt_From_int(adios_read_init_method(__pyx_v_method, __pyx_v_comm->ob_mpi, __pyx_v_parameters)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5518
  __Pyx_GOTREF(__pyx_t_1);
 
5519
  __pyx_r = __pyx_t_1;
 
5520
  __pyx_t_1 = 0;
 
5521
  goto __pyx_L0;
 
5522
 
 
5523
  /* "adios_mpi.pyx":420
 
5524
 * ## ====================
 
5525
 * 
 
5526
 * cpdef read_init(ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP,             # <<<<<<<<<<<<<<
 
5527
 *                 MPI.Comm comm = MPI.COMM_WORLD,
 
5528
 *                 char * parameters = ""):
 
5529
 */
 
5530
 
 
5531
  /* function exit code */
 
5532
  __pyx_L1_error:;
 
5533
  __Pyx_XDECREF(__pyx_t_1);
 
5534
  __Pyx_AddTraceback("adios_mpi.read_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
5535
  __pyx_r = 0;
 
5536
  __pyx_L0:;
 
5537
  __Pyx_XGIVEREF(__pyx_r);
 
5538
  __Pyx_RefNannyFinishContext();
 
5539
  return __pyx_r;
 
5540
}
 
5541
 
 
5542
/* Python wrapper */
 
5543
static PyObject *__pyx_pw_9adios_mpi_33read_init(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
5544
static PyObject *__pyx_pw_9adios_mpi_33read_init(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
5545
  ADIOS_READ_METHOD __pyx_v_method;
 
5546
  struct PyMPICommObject *__pyx_v_comm = 0;
 
5547
  char *__pyx_v_parameters;
 
5548
  int __pyx_lineno = 0;
 
5549
  const char *__pyx_filename = NULL;
 
5550
  int __pyx_clineno = 0;
 
5551
  PyObject *__pyx_r = 0;
 
5552
  __Pyx_RefNannyDeclarations
 
5553
  __Pyx_RefNannySetupContext("read_init (wrapper)", 0);
 
5554
  {
 
5555
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method,&__pyx_n_s_comm,&__pyx_n_s_parameters,0};
 
5556
    PyObject* values[3] = {0,0,0};
 
5557
    values[1] = (PyObject *)__pyx_k__5;
 
5558
    if (unlikely(__pyx_kwds)) {
 
5559
      Py_ssize_t kw_args;
 
5560
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
5561
      switch (pos_args) {
 
5562
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
5563
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
5564
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
5565
        case  0: break;
 
5566
        default: goto __pyx_L5_argtuple_error;
 
5567
      }
 
5568
      kw_args = PyDict_Size(__pyx_kwds);
 
5569
      switch (pos_args) {
 
5570
        case  0:
 
5571
        if (kw_args > 0) {
 
5572
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_method);
 
5573
          if (value) { values[0] = value; kw_args--; }
 
5574
        }
 
5575
        case  1:
 
5576
        if (kw_args > 0) {
 
5577
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_comm);
 
5578
          if (value) { values[1] = value; kw_args--; }
 
5579
        }
 
5580
        case  2:
 
5581
        if (kw_args > 0) {
 
5582
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_parameters);
 
5583
          if (value) { values[2] = value; kw_args--; }
 
5584
        }
 
5585
      }
 
5586
      if (unlikely(kw_args > 0)) {
 
5587
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "read_init") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5588
      }
 
5589
    } else {
 
5590
      switch (PyTuple_GET_SIZE(__pyx_args)) {
 
5591
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
5592
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
5593
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
5594
        case  0: break;
 
5595
        default: goto __pyx_L5_argtuple_error;
 
5596
      }
 
5597
    }
 
5598
    if (values[0]) {
 
5599
      __pyx_v_method = ((ADIOS_READ_METHOD)PyInt_AsLong(values[0])); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5600
    } else {
 
5601
      __pyx_v_method = __pyx_k__4;
 
5602
    }
 
5603
    __pyx_v_comm = ((struct PyMPICommObject *)values[1]);
 
5604
    if (values[2]) {
 
5605
      __pyx_v_parameters = __Pyx_PyObject_AsString(values[2]); if (unlikely((!__pyx_v_parameters) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5606
    } else {
 
5607
      __pyx_v_parameters = ((char *)__pyx_k__6);
 
5608
    }
 
5609
  }
 
5610
  goto __pyx_L4_argument_unpacking_done;
 
5611
  __pyx_L5_argtuple_error:;
 
5612
  __Pyx_RaiseArgtupleInvalid("read_init", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5613
  __pyx_L3_error:;
 
5614
  __Pyx_AddTraceback("adios_mpi.read_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
5615
  __Pyx_RefNannyFinishContext();
 
5616
  return NULL;
 
5617
  __pyx_L4_argument_unpacking_done:;
 
5618
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 1, "comm", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5619
  __pyx_r = __pyx_pf_9adios_mpi_32read_init(__pyx_self, __pyx_v_method, __pyx_v_comm, __pyx_v_parameters);
 
5620
 
 
5621
  /* function exit code */
 
5622
  goto __pyx_L0;
 
5623
  __pyx_L1_error:;
 
5624
  __pyx_r = NULL;
 
5625
  __pyx_L0:;
 
5626
  __Pyx_RefNannyFinishContext();
 
5627
  return __pyx_r;
 
5628
}
 
5629
 
 
5630
static PyObject *__pyx_pf_9adios_mpi_32read_init(CYTHON_UNUSED PyObject *__pyx_self, ADIOS_READ_METHOD __pyx_v_method, struct PyMPICommObject *__pyx_v_comm, char *__pyx_v_parameters) {
 
5631
  PyObject *__pyx_r = NULL;
 
5632
  __Pyx_RefNannyDeclarations
 
5633
  PyObject *__pyx_t_1 = NULL;
 
5634
  struct __pyx_opt_args_9adios_mpi_read_init __pyx_t_2;
 
5635
  int __pyx_lineno = 0;
 
5636
  const char *__pyx_filename = NULL;
 
5637
  int __pyx_clineno = 0;
 
5638
  __Pyx_RefNannySetupContext("read_init", 0);
 
5639
  __Pyx_XDECREF(__pyx_r);
 
5640
  __pyx_t_2.__pyx_n = 3;
 
5641
  __pyx_t_2.method = __pyx_v_method;
 
5642
  __pyx_t_2.comm = __pyx_v_comm;
 
5643
  __pyx_t_2.parameters = __pyx_v_parameters;
 
5644
  __pyx_t_1 = __pyx_f_9adios_mpi_read_init(0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5645
  __Pyx_GOTREF(__pyx_t_1);
 
5646
  __pyx_r = __pyx_t_1;
 
5647
  __pyx_t_1 = 0;
 
5648
  goto __pyx_L0;
 
5649
 
 
5650
  /* function exit code */
 
5651
  __pyx_L1_error:;
 
5652
  __Pyx_XDECREF(__pyx_t_1);
 
5653
  __Pyx_AddTraceback("adios_mpi.read_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
5654
  __pyx_r = NULL;
 
5655
  __pyx_L0:;
 
5656
  __Pyx_XGIVEREF(__pyx_r);
 
5657
  __Pyx_RefNannyFinishContext();
 
5658
  return __pyx_r;
 
5659
}
 
5660
 
 
5661
/* "adios_mpi.pyx":426
 
5662
 * 
 
5663
 * 
 
5664
 * cpdef read_finalize(ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP):             # <<<<<<<<<<<<<<
 
5665
 *     return adios_read_finalize_method (method)
 
5666
 * 
 
5667
 */
 
5668
 
 
5669
static PyObject *__pyx_pw_9adios_mpi_35read_finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
5670
static PyObject *__pyx_f_9adios_mpi_read_finalize(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_read_finalize *__pyx_optional_args) {
 
5671
  ADIOS_READ_METHOD __pyx_v_method = __pyx_k__7;
 
5672
  PyObject *__pyx_r = NULL;
 
5673
  __Pyx_RefNannyDeclarations
 
5674
  PyObject *__pyx_t_1 = NULL;
 
5675
  int __pyx_lineno = 0;
 
5676
  const char *__pyx_filename = NULL;
 
5677
  int __pyx_clineno = 0;
 
5678
  __Pyx_RefNannySetupContext("read_finalize", 0);
 
5679
  if (__pyx_optional_args) {
 
5680
    if (__pyx_optional_args->__pyx_n > 0) {
 
5681
      __pyx_v_method = __pyx_optional_args->method;
 
5682
    }
 
5683
  }
 
5684
 
 
5685
  /* "adios_mpi.pyx":427
 
5686
 * 
 
5687
 * cpdef read_finalize(ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP):
 
5688
 *     return adios_read_finalize_method (method)             # <<<<<<<<<<<<<<
 
5689
 * 
 
5690
 * cdef class file:
 
5691
 */
 
5692
  __Pyx_XDECREF(__pyx_r);
 
5693
  __pyx_t_1 = __Pyx_PyInt_From_int(adios_read_finalize_method(__pyx_v_method)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5694
  __Pyx_GOTREF(__pyx_t_1);
 
5695
  __pyx_r = __pyx_t_1;
 
5696
  __pyx_t_1 = 0;
 
5697
  goto __pyx_L0;
 
5698
 
 
5699
  /* "adios_mpi.pyx":426
 
5700
 * 
 
5701
 * 
 
5702
 * cpdef read_finalize(ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP):             # <<<<<<<<<<<<<<
 
5703
 *     return adios_read_finalize_method (method)
 
5704
 * 
 
5705
 */
 
5706
 
 
5707
  /* function exit code */
 
5708
  __pyx_L1_error:;
 
5709
  __Pyx_XDECREF(__pyx_t_1);
 
5710
  __Pyx_AddTraceback("adios_mpi.read_finalize", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
5711
  __pyx_r = 0;
 
5712
  __pyx_L0:;
 
5713
  __Pyx_XGIVEREF(__pyx_r);
 
5714
  __Pyx_RefNannyFinishContext();
 
5715
  return __pyx_r;
 
5716
}
 
5717
 
 
5718
/* Python wrapper */
 
5719
static PyObject *__pyx_pw_9adios_mpi_35read_finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
5720
static PyObject *__pyx_pw_9adios_mpi_35read_finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
5721
  ADIOS_READ_METHOD __pyx_v_method;
 
5722
  int __pyx_lineno = 0;
 
5723
  const char *__pyx_filename = NULL;
 
5724
  int __pyx_clineno = 0;
 
5725
  PyObject *__pyx_r = 0;
 
5726
  __Pyx_RefNannyDeclarations
 
5727
  __Pyx_RefNannySetupContext("read_finalize (wrapper)", 0);
 
5728
  {
 
5729
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_method,0};
 
5730
    PyObject* values[1] = {0};
 
5731
    if (unlikely(__pyx_kwds)) {
 
5732
      Py_ssize_t kw_args;
 
5733
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
5734
      switch (pos_args) {
 
5735
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
5736
        case  0: break;
 
5737
        default: goto __pyx_L5_argtuple_error;
 
5738
      }
 
5739
      kw_args = PyDict_Size(__pyx_kwds);
 
5740
      switch (pos_args) {
 
5741
        case  0:
 
5742
        if (kw_args > 0) {
 
5743
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_method);
 
5744
          if (value) { values[0] = value; kw_args--; }
 
5745
        }
 
5746
      }
 
5747
      if (unlikely(kw_args > 0)) {
 
5748
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "read_finalize") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5749
      }
 
5750
    } else {
 
5751
      switch (PyTuple_GET_SIZE(__pyx_args)) {
 
5752
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
5753
        case  0: break;
 
5754
        default: goto __pyx_L5_argtuple_error;
 
5755
      }
 
5756
    }
 
5757
    if (values[0]) {
 
5758
      __pyx_v_method = ((ADIOS_READ_METHOD)PyInt_AsLong(values[0])); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5759
    } else {
 
5760
      __pyx_v_method = __pyx_k__7;
 
5761
    }
 
5762
  }
 
5763
  goto __pyx_L4_argument_unpacking_done;
 
5764
  __pyx_L5_argtuple_error:;
 
5765
  __Pyx_RaiseArgtupleInvalid("read_finalize", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5766
  __pyx_L3_error:;
 
5767
  __Pyx_AddTraceback("adios_mpi.read_finalize", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
5768
  __Pyx_RefNannyFinishContext();
 
5769
  return NULL;
 
5770
  __pyx_L4_argument_unpacking_done:;
 
5771
  __pyx_r = __pyx_pf_9adios_mpi_34read_finalize(__pyx_self, __pyx_v_method);
 
5772
 
 
5773
  /* function exit code */
 
5774
  __Pyx_RefNannyFinishContext();
 
5775
  return __pyx_r;
 
5776
}
 
5777
 
 
5778
static PyObject *__pyx_pf_9adios_mpi_34read_finalize(CYTHON_UNUSED PyObject *__pyx_self, ADIOS_READ_METHOD __pyx_v_method) {
 
5779
  PyObject *__pyx_r = NULL;
 
5780
  __Pyx_RefNannyDeclarations
 
5781
  PyObject *__pyx_t_1 = NULL;
 
5782
  struct __pyx_opt_args_9adios_mpi_read_finalize __pyx_t_2;
 
5783
  int __pyx_lineno = 0;
 
5784
  const char *__pyx_filename = NULL;
 
5785
  int __pyx_clineno = 0;
 
5786
  __Pyx_RefNannySetupContext("read_finalize", 0);
 
5787
  __Pyx_XDECREF(__pyx_r);
 
5788
  __pyx_t_2.__pyx_n = 1;
 
5789
  __pyx_t_2.method = __pyx_v_method;
 
5790
  __pyx_t_1 = __pyx_f_9adios_mpi_read_finalize(0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5791
  __Pyx_GOTREF(__pyx_t_1);
 
5792
  __pyx_r = __pyx_t_1;
 
5793
  __pyx_t_1 = 0;
 
5794
  goto __pyx_L0;
 
5795
 
 
5796
  /* function exit code */
 
5797
  __pyx_L1_error:;
 
5798
  __Pyx_XDECREF(__pyx_t_1);
 
5799
  __Pyx_AddTraceback("adios_mpi.read_finalize", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
5800
  __pyx_r = NULL;
 
5801
  __pyx_L0:;
 
5802
  __Pyx_XGIVEREF(__pyx_r);
 
5803
  __Pyx_RefNannyFinishContext();
 
5804
  return __pyx_r;
 
5805
}
 
5806
 
 
5807
/* "adios_mpi.pyx":446
 
5808
 *     cpdef public dict attr
 
5809
 * 
 
5810
 *     def __init__(self, char * fname,             # <<<<<<<<<<<<<<
 
5811
 *                  ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP,
 
5812
 *                  MPI.Comm comm = MPI.COMM_WORLD):
 
5813
 */
 
5814
 
 
5815
/* Python wrapper */
 
5816
static int __pyx_pw_9adios_mpi_4file_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
5817
static int __pyx_pw_9adios_mpi_4file_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
5818
  char *__pyx_v_fname;
 
5819
  ADIOS_READ_METHOD __pyx_v_method;
 
5820
  struct PyMPICommObject *__pyx_v_comm = 0;
 
5821
  int __pyx_lineno = 0;
 
5822
  const char *__pyx_filename = NULL;
 
5823
  int __pyx_clineno = 0;
 
5824
  int __pyx_r;
 
5825
  __Pyx_RefNannyDeclarations
 
5826
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
 
5827
  {
 
5828
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fname,&__pyx_n_s_method,&__pyx_n_s_comm,0};
 
5829
    PyObject* values[3] = {0,0,0};
 
5830
    values[2] = (PyObject *)__pyx_k__8;
 
5831
    if (unlikely(__pyx_kwds)) {
 
5832
      Py_ssize_t kw_args;
 
5833
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
5834
      switch (pos_args) {
 
5835
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
5836
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
5837
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
5838
        case  0: break;
 
5839
        default: goto __pyx_L5_argtuple_error;
 
5840
      }
 
5841
      kw_args = PyDict_Size(__pyx_kwds);
 
5842
      switch (pos_args) {
 
5843
        case  0:
 
5844
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fname)) != 0)) kw_args--;
 
5845
        else goto __pyx_L5_argtuple_error;
 
5846
        case  1:
 
5847
        if (kw_args > 0) {
 
5848
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_method);
 
5849
          if (value) { values[1] = value; kw_args--; }
 
5850
        }
 
5851
        case  2:
 
5852
        if (kw_args > 0) {
 
5853
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_comm);
 
5854
          if (value) { values[2] = value; kw_args--; }
 
5855
        }
 
5856
      }
 
5857
      if (unlikely(kw_args > 0)) {
 
5858
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5859
      }
 
5860
    } else {
 
5861
      switch (PyTuple_GET_SIZE(__pyx_args)) {
 
5862
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
5863
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
5864
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
5865
        break;
 
5866
        default: goto __pyx_L5_argtuple_error;
 
5867
      }
 
5868
    }
 
5869
    __pyx_v_fname = __Pyx_PyObject_AsString(values[0]); if (unlikely((!__pyx_v_fname) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5870
    if (values[1]) {
 
5871
      __pyx_v_method = ((ADIOS_READ_METHOD)PyInt_AsLong(values[1])); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5872
    } else {
 
5873
      __pyx_v_method = __pyx_k__9;
 
5874
    }
 
5875
    __pyx_v_comm = ((struct PyMPICommObject *)values[2]);
 
5876
  }
 
5877
  goto __pyx_L4_argument_unpacking_done;
 
5878
  __pyx_L5_argtuple_error:;
 
5879
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
5880
  __pyx_L3_error:;
 
5881
  __Pyx_AddTraceback("adios_mpi.file.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
5882
  __Pyx_RefNannyFinishContext();
 
5883
  return -1;
 
5884
  __pyx_L4_argument_unpacking_done:;
 
5885
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_comm), __pyx_ptype_6mpi4py_3MPI_Comm, 1, "comm", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5886
  __pyx_r = __pyx_pf_9adios_mpi_4file___init__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self), __pyx_v_fname, __pyx_v_method, __pyx_v_comm);
 
5887
 
 
5888
  /* function exit code */
 
5889
  goto __pyx_L0;
 
5890
  __pyx_L1_error:;
 
5891
  __pyx_r = -1;
 
5892
  __pyx_L0:;
 
5893
  __Pyx_RefNannyFinishContext();
 
5894
  return __pyx_r;
 
5895
}
 
5896
 
 
5897
static int __pyx_pf_9adios_mpi_4file___init__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, char *__pyx_v_fname, ADIOS_READ_METHOD __pyx_v_method, struct PyMPICommObject *__pyx_v_comm) {
 
5898
  PyObject *__pyx_v_varname = NULL;
 
5899
  int __pyx_v_i;
 
5900
  int __pyx_r;
 
5901
  __Pyx_RefNannyDeclarations
 
5902
  PyObject *__pyx_t_1 = NULL;
 
5903
  PyObject *__pyx_t_2 = NULL;
 
5904
  int __pyx_t_3;
 
5905
  uint64_t __pyx_t_4;
 
5906
  int __pyx_t_5;
 
5907
  Py_ssize_t __pyx_t_6;
 
5908
  PyObject *__pyx_t_7 = NULL;
 
5909
  int __pyx_lineno = 0;
 
5910
  const char *__pyx_filename = NULL;
 
5911
  int __pyx_clineno = 0;
 
5912
  __Pyx_RefNannySetupContext("__init__", 0);
 
5913
 
 
5914
  /* "adios_mpi.pyx":449
 
5915
 *                  ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP,
 
5916
 *                  MPI.Comm comm = MPI.COMM_WORLD):
 
5917
 *         self.fp = NULL             # <<<<<<<<<<<<<<
 
5918
 *         self.var = {}
 
5919
 *         self.attr = {}
 
5920
 */
 
5921
  __pyx_v_self->fp = NULL;
 
5922
 
 
5923
  /* "adios_mpi.pyx":450
 
5924
 *                  MPI.Comm comm = MPI.COMM_WORLD):
 
5925
 *         self.fp = NULL
 
5926
 *         self.var = {}             # <<<<<<<<<<<<<<
 
5927
 *         self.attr = {}
 
5928
 * 
 
5929
 */
 
5930
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5931
  __Pyx_GOTREF(__pyx_t_1);
 
5932
  __Pyx_GIVEREF(__pyx_t_1);
 
5933
  __Pyx_GOTREF(__pyx_v_self->var);
 
5934
  __Pyx_DECREF(__pyx_v_self->var);
 
5935
  __pyx_v_self->var = ((PyObject*)__pyx_t_1);
 
5936
  __pyx_t_1 = 0;
 
5937
 
 
5938
  /* "adios_mpi.pyx":451
 
5939
 *         self.fp = NULL
 
5940
 *         self.var = {}
 
5941
 *         self.attr = {}             # <<<<<<<<<<<<<<
 
5942
 * 
 
5943
 *         self.fp = adios_read_open_file(fname, method, comm.ob_mpi)
 
5944
 */
 
5945
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5946
  __Pyx_GOTREF(__pyx_t_1);
 
5947
  __Pyx_GIVEREF(__pyx_t_1);
 
5948
  __Pyx_GOTREF(__pyx_v_self->attr);
 
5949
  __Pyx_DECREF(__pyx_v_self->attr);
 
5950
  __pyx_v_self->attr = ((PyObject*)__pyx_t_1);
 
5951
  __pyx_t_1 = 0;
 
5952
 
 
5953
  /* "adios_mpi.pyx":453
 
5954
 *         self.attr = {}
 
5955
 * 
 
5956
 *         self.fp = adios_read_open_file(fname, method, comm.ob_mpi)             # <<<<<<<<<<<<<<
 
5957
 *         assert self.fp != NULL, 'Not an open file'
 
5958
 * 
 
5959
 */
 
5960
  __pyx_v_self->fp = adios_read_open_file(__pyx_v_fname, __pyx_v_method, __pyx_v_comm->ob_mpi);
 
5961
 
 
5962
  /* "adios_mpi.pyx":454
 
5963
 * 
 
5964
 *         self.fp = adios_read_open_file(fname, method, comm.ob_mpi)
 
5965
 *         assert self.fp != NULL, 'Not an open file'             # <<<<<<<<<<<<<<
 
5966
 * 
 
5967
 *         self.name = fname.split('/')[-1]  ## basename
 
5968
 */
 
5969
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
5970
  if (unlikely(!Py_OptimizeFlag)) {
 
5971
    if (unlikely(!((__pyx_v_self->fp != NULL) != 0))) {
 
5972
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Not_an_open_file);
 
5973
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5974
    }
 
5975
  }
 
5976
  #endif
 
5977
 
 
5978
  /* "adios_mpi.pyx":456
 
5979
 *         assert self.fp != NULL, 'Not an open file'
 
5980
 * 
 
5981
 *         self.name = fname.split('/')[-1]  ## basename             # <<<<<<<<<<<<<<
 
5982
 *         self.nvars = self.fp.nvars
 
5983
 *         self.nattrs = self.fp.nattrs
 
5984
 */
 
5985
  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_fname); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5986
  __Pyx_GOTREF(__pyx_t_1);
 
5987
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5988
  __Pyx_GOTREF(__pyx_t_2);
 
5989
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5990
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5991
  __Pyx_GOTREF(__pyx_t_1);
 
5992
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
5993
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, -1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
5994
  __Pyx_GOTREF(__pyx_t_2);
 
5995
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
5996
  if (!(likely(PyBytes_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_2)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
5997
  __Pyx_GIVEREF(__pyx_t_2);
 
5998
  __Pyx_GOTREF(__pyx_v_self->name);
 
5999
  __Pyx_DECREF(__pyx_v_self->name);
 
6000
  __pyx_v_self->name = ((PyObject*)__pyx_t_2);
 
6001
  __pyx_t_2 = 0;
 
6002
 
 
6003
  /* "adios_mpi.pyx":457
 
6004
 * 
 
6005
 *         self.name = fname.split('/')[-1]  ## basename
 
6006
 *         self.nvars = self.fp.nvars             # <<<<<<<<<<<<<<
 
6007
 *         self.nattrs = self.fp.nattrs
 
6008
 *         self.current_step = self.fp.current_step
 
6009
 */
 
6010
  __pyx_t_3 = __pyx_v_self->fp->nvars;
 
6011
  __pyx_v_self->nvars = __pyx_t_3;
 
6012
 
 
6013
  /* "adios_mpi.pyx":458
 
6014
 *         self.name = fname.split('/')[-1]  ## basename
 
6015
 *         self.nvars = self.fp.nvars
 
6016
 *         self.nattrs = self.fp.nattrs             # <<<<<<<<<<<<<<
 
6017
 *         self.current_step = self.fp.current_step
 
6018
 *         self.last_step = self.fp.last_step
 
6019
 */
 
6020
  __pyx_t_3 = __pyx_v_self->fp->nattrs;
 
6021
  __pyx_v_self->nattrs = __pyx_t_3;
 
6022
 
 
6023
  /* "adios_mpi.pyx":459
 
6024
 *         self.nvars = self.fp.nvars
 
6025
 *         self.nattrs = self.fp.nattrs
 
6026
 *         self.current_step = self.fp.current_step             # <<<<<<<<<<<<<<
 
6027
 *         self.last_step = self.fp.last_step
 
6028
 *         self.endianness = self.fp.endianness
 
6029
 */
 
6030
  __pyx_t_3 = __pyx_v_self->fp->current_step;
 
6031
  __pyx_v_self->current_step = __pyx_t_3;
 
6032
 
 
6033
  /* "adios_mpi.pyx":460
 
6034
 *         self.nattrs = self.fp.nattrs
 
6035
 *         self.current_step = self.fp.current_step
 
6036
 *         self.last_step = self.fp.last_step             # <<<<<<<<<<<<<<
 
6037
 *         self.endianness = self.fp.endianness
 
6038
 *         self.version = self.fp.version
 
6039
 */
 
6040
  __pyx_t_3 = __pyx_v_self->fp->last_step;
 
6041
  __pyx_v_self->last_step = __pyx_t_3;
 
6042
 
 
6043
  /* "adios_mpi.pyx":461
 
6044
 *         self.current_step = self.fp.current_step
 
6045
 *         self.last_step = self.fp.last_step
 
6046
 *         self.endianness = self.fp.endianness             # <<<<<<<<<<<<<<
 
6047
 *         self.version = self.fp.version
 
6048
 *         self.file_size = self.fp.file_size
 
6049
 */
 
6050
  __pyx_t_3 = __pyx_v_self->fp->endianness;
 
6051
  __pyx_v_self->endianness = __pyx_t_3;
 
6052
 
 
6053
  /* "adios_mpi.pyx":462
 
6054
 *         self.last_step = self.fp.last_step
 
6055
 *         self.endianness = self.fp.endianness
 
6056
 *         self.version = self.fp.version             # <<<<<<<<<<<<<<
 
6057
 *         self.file_size = self.fp.file_size
 
6058
 * 
 
6059
 */
 
6060
  __pyx_t_3 = __pyx_v_self->fp->version;
 
6061
  __pyx_v_self->version = __pyx_t_3;
 
6062
 
 
6063
  /* "adios_mpi.pyx":463
 
6064
 *         self.endianness = self.fp.endianness
 
6065
 *         self.version = self.fp.version
 
6066
 *         self.file_size = self.fp.file_size             # <<<<<<<<<<<<<<
 
6067
 * 
 
6068
 *         for varname in [self.fp.var_namelist[i] for i in range(self.nvars)]:
 
6069
 */
 
6070
  __pyx_t_4 = __pyx_v_self->fp->file_size;
 
6071
  __pyx_v_self->file_size = __pyx_t_4;
 
6072
 
 
6073
  /* "adios_mpi.pyx":465
 
6074
 *         self.file_size = self.fp.file_size
 
6075
 * 
 
6076
 *         for varname in [self.fp.var_namelist[i] for i in range(self.nvars)]:             # <<<<<<<<<<<<<<
 
6077
 *             self.var[varname] = var(self, varname)
 
6078
 * 
 
6079
 */
 
6080
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6081
  __Pyx_GOTREF(__pyx_t_2);
 
6082
  __pyx_t_3 = __pyx_v_self->nvars;
 
6083
  for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_3; __pyx_t_5+=1) {
 
6084
    __pyx_v_i = __pyx_t_5;
 
6085
    __pyx_t_1 = __Pyx_PyBytes_FromString((__pyx_v_self->fp->var_namelist[__pyx_v_i])); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6086
    __Pyx_GOTREF(__pyx_t_1);
 
6087
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6088
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6089
  }
 
6090
  __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0;
 
6091
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
6092
  for (;;) {
 
6093
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
 
6094
    #if CYTHON_COMPILING_IN_CPYTHON
 
6095
    __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6096
    #else
 
6097
    __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6098
    #endif
 
6099
    __Pyx_XDECREF_SET(__pyx_v_varname, __pyx_t_2);
 
6100
    __pyx_t_2 = 0;
 
6101
 
 
6102
    /* "adios_mpi.pyx":466
 
6103
 * 
 
6104
 *         for varname in [self.fp.var_namelist[i] for i in range(self.nvars)]:
 
6105
 *             self.var[varname] = var(self, varname)             # <<<<<<<<<<<<<<
 
6106
 * 
 
6107
 *     def __del__(self):
 
6108
 */
 
6109
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6110
    __Pyx_GOTREF(__pyx_t_2);
 
6111
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
 
6112
    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self));
 
6113
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
 
6114
    __Pyx_INCREF(__pyx_v_varname);
 
6115
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_varname);
 
6116
    __Pyx_GIVEREF(__pyx_v_varname);
 
6117
    __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_9adios_mpi_var)), __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6118
    __Pyx_GOTREF(__pyx_t_7);
 
6119
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
6120
    if (unlikely(__pyx_v_self->var == Py_None)) {
 
6121
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
 
6122
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6123
    }
 
6124
    if (unlikely(PyDict_SetItem(__pyx_v_self->var, __pyx_v_varname, __pyx_t_7) < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6125
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
6126
  }
 
6127
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6128
 
 
6129
  /* "adios_mpi.pyx":446
 
6130
 *     cpdef public dict attr
 
6131
 * 
 
6132
 *     def __init__(self, char * fname,             # <<<<<<<<<<<<<<
 
6133
 *                  ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP,
 
6134
 *                  MPI.Comm comm = MPI.COMM_WORLD):
 
6135
 */
 
6136
 
 
6137
  /* function exit code */
 
6138
  __pyx_r = 0;
 
6139
  goto __pyx_L0;
 
6140
  __pyx_L1_error:;
 
6141
  __Pyx_XDECREF(__pyx_t_1);
 
6142
  __Pyx_XDECREF(__pyx_t_2);
 
6143
  __Pyx_XDECREF(__pyx_t_7);
 
6144
  __Pyx_AddTraceback("adios_mpi.file.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6145
  __pyx_r = -1;
 
6146
  __pyx_L0:;
 
6147
  __Pyx_XDECREF(__pyx_v_varname);
 
6148
  __Pyx_RefNannyFinishContext();
 
6149
  return __pyx_r;
 
6150
}
 
6151
 
 
6152
/* "adios_mpi.pyx":468
 
6153
 *             self.var[varname] = var(self, varname)
 
6154
 * 
 
6155
 *     def __del__(self):             # <<<<<<<<<<<<<<
 
6156
 *             self.close()
 
6157
 * 
 
6158
 */
 
6159
 
 
6160
/* Python wrapper */
 
6161
static PyObject *__pyx_pw_9adios_mpi_4file_3__del__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 
6162
static PyObject *__pyx_pw_9adios_mpi_4file_3__del__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
 
6163
  PyObject *__pyx_r = 0;
 
6164
  __Pyx_RefNannyDeclarations
 
6165
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
 
6166
  __pyx_r = __pyx_pf_9adios_mpi_4file_2__del__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
6167
 
 
6168
  /* function exit code */
 
6169
  __Pyx_RefNannyFinishContext();
 
6170
  return __pyx_r;
 
6171
}
 
6172
 
 
6173
static PyObject *__pyx_pf_9adios_mpi_4file_2__del__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
6174
  PyObject *__pyx_r = NULL;
 
6175
  __Pyx_RefNannyDeclarations
 
6176
  PyObject *__pyx_t_1 = NULL;
 
6177
  int __pyx_lineno = 0;
 
6178
  const char *__pyx_filename = NULL;
 
6179
  int __pyx_clineno = 0;
 
6180
  __Pyx_RefNannySetupContext("__del__", 0);
 
6181
 
 
6182
  /* "adios_mpi.pyx":469
 
6183
 * 
 
6184
 *     def __del__(self):
 
6185
 *             self.close()             # <<<<<<<<<<<<<<
 
6186
 * 
 
6187
 *     cpdef close(self):
 
6188
 */
 
6189
  __pyx_t_1 = ((struct __pyx_vtabstruct_9adios_mpi_file *)__pyx_v_self->__pyx_vtab)->close(__pyx_v_self, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6190
  __Pyx_GOTREF(__pyx_t_1);
 
6191
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6192
 
 
6193
  /* "adios_mpi.pyx":468
 
6194
 *             self.var[varname] = var(self, varname)
 
6195
 * 
 
6196
 *     def __del__(self):             # <<<<<<<<<<<<<<
 
6197
 *             self.close()
 
6198
 * 
 
6199
 */
 
6200
 
 
6201
  /* function exit code */
 
6202
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6203
  goto __pyx_L0;
 
6204
  __pyx_L1_error:;
 
6205
  __Pyx_XDECREF(__pyx_t_1);
 
6206
  __Pyx_AddTraceback("adios_mpi.file.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6207
  __pyx_r = NULL;
 
6208
  __pyx_L0:;
 
6209
  __Pyx_XGIVEREF(__pyx_r);
 
6210
  __Pyx_RefNannyFinishContext();
 
6211
  return __pyx_r;
 
6212
}
 
6213
 
 
6214
/* "adios_mpi.pyx":471
 
6215
 *             self.close()
 
6216
 * 
 
6217
 *     cpdef close(self):             # <<<<<<<<<<<<<<
 
6218
 *         assert self.fp != NULL, 'Not an open file'
 
6219
 *         adios_read_close(self.fp)
 
6220
 */
 
6221
 
 
6222
static PyObject *__pyx_pw_9adios_mpi_4file_5close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 
6223
static PyObject *__pyx_f_9adios_mpi_4file_close(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, int __pyx_skip_dispatch) {
 
6224
  PyObject *__pyx_r = NULL;
 
6225
  __Pyx_RefNannyDeclarations
 
6226
  PyObject *__pyx_t_1 = NULL;
 
6227
  PyObject *__pyx_t_2 = NULL;
 
6228
  int __pyx_lineno = 0;
 
6229
  const char *__pyx_filename = NULL;
 
6230
  int __pyx_clineno = 0;
 
6231
  __Pyx_RefNannySetupContext("close", 0);
 
6232
  /* Check if called by wrapper */
 
6233
  if (unlikely(__pyx_skip_dispatch)) ;
 
6234
  /* Check if overridden in Python */
 
6235
  else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
 
6236
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_close); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6237
    __Pyx_GOTREF(__pyx_t_1);
 
6238
    if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_9adios_mpi_4file_5close)) {
 
6239
      __Pyx_XDECREF(__pyx_r);
 
6240
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6241
      __Pyx_GOTREF(__pyx_t_2);
 
6242
      __pyx_r = __pyx_t_2;
 
6243
      __pyx_t_2 = 0;
 
6244
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6245
      goto __pyx_L0;
 
6246
    }
 
6247
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6248
  }
 
6249
 
 
6250
  /* "adios_mpi.pyx":472
 
6251
 * 
 
6252
 *     cpdef close(self):
 
6253
 *         assert self.fp != NULL, 'Not an open file'             # <<<<<<<<<<<<<<
 
6254
 *         adios_read_close(self.fp)
 
6255
 *         self.fp = NULL
 
6256
 */
 
6257
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
6258
  if (unlikely(!Py_OptimizeFlag)) {
 
6259
    if (unlikely(!((__pyx_v_self->fp != NULL) != 0))) {
 
6260
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Not_an_open_file);
 
6261
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6262
    }
 
6263
  }
 
6264
  #endif
 
6265
 
 
6266
  /* "adios_mpi.pyx":473
 
6267
 *     cpdef close(self):
 
6268
 *         assert self.fp != NULL, 'Not an open file'
 
6269
 *         adios_read_close(self.fp)             # <<<<<<<<<<<<<<
 
6270
 *         self.fp = NULL
 
6271
 * 
 
6272
 */
 
6273
  adios_read_close(__pyx_v_self->fp);
 
6274
 
 
6275
  /* "adios_mpi.pyx":474
 
6276
 *         assert self.fp != NULL, 'Not an open file'
 
6277
 *         adios_read_close(self.fp)
 
6278
 *         self.fp = NULL             # <<<<<<<<<<<<<<
 
6279
 * 
 
6280
 *     cpdef printself(self):
 
6281
 */
 
6282
  __pyx_v_self->fp = NULL;
 
6283
 
 
6284
  /* "adios_mpi.pyx":471
 
6285
 *             self.close()
 
6286
 * 
 
6287
 *     cpdef close(self):             # <<<<<<<<<<<<<<
 
6288
 *         assert self.fp != NULL, 'Not an open file'
 
6289
 *         adios_read_close(self.fp)
 
6290
 */
 
6291
 
 
6292
  /* function exit code */
 
6293
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6294
  goto __pyx_L0;
 
6295
  __pyx_L1_error:;
 
6296
  __Pyx_XDECREF(__pyx_t_1);
 
6297
  __Pyx_XDECREF(__pyx_t_2);
 
6298
  __Pyx_AddTraceback("adios_mpi.file.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6299
  __pyx_r = 0;
 
6300
  __pyx_L0:;
 
6301
  __Pyx_XGIVEREF(__pyx_r);
 
6302
  __Pyx_RefNannyFinishContext();
 
6303
  return __pyx_r;
 
6304
}
 
6305
 
 
6306
/* Python wrapper */
 
6307
static PyObject *__pyx_pw_9adios_mpi_4file_5close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 
6308
static PyObject *__pyx_pw_9adios_mpi_4file_5close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
 
6309
  PyObject *__pyx_r = 0;
 
6310
  __Pyx_RefNannyDeclarations
 
6311
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
 
6312
  __pyx_r = __pyx_pf_9adios_mpi_4file_4close(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
6313
 
 
6314
  /* function exit code */
 
6315
  __Pyx_RefNannyFinishContext();
 
6316
  return __pyx_r;
 
6317
}
 
6318
 
 
6319
static PyObject *__pyx_pf_9adios_mpi_4file_4close(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
6320
  PyObject *__pyx_r = NULL;
 
6321
  __Pyx_RefNannyDeclarations
 
6322
  PyObject *__pyx_t_1 = NULL;
 
6323
  int __pyx_lineno = 0;
 
6324
  const char *__pyx_filename = NULL;
 
6325
  int __pyx_clineno = 0;
 
6326
  __Pyx_RefNannySetupContext("close", 0);
 
6327
  __Pyx_XDECREF(__pyx_r);
 
6328
  __pyx_t_1 = ((struct __pyx_vtabstruct_9adios_mpi_file *)__pyx_v_self->__pyx_vtab)->close(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6329
  __Pyx_GOTREF(__pyx_t_1);
 
6330
  __pyx_r = __pyx_t_1;
 
6331
  __pyx_t_1 = 0;
 
6332
  goto __pyx_L0;
 
6333
 
 
6334
  /* function exit code */
 
6335
  __pyx_L1_error:;
 
6336
  __Pyx_XDECREF(__pyx_t_1);
 
6337
  __Pyx_AddTraceback("adios_mpi.file.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6338
  __pyx_r = NULL;
 
6339
  __pyx_L0:;
 
6340
  __Pyx_XGIVEREF(__pyx_r);
 
6341
  __Pyx_RefNannyFinishContext();
 
6342
  return __pyx_r;
 
6343
}
 
6344
 
 
6345
/* "adios_mpi.pyx":476
 
6346
 *         self.fp = NULL
 
6347
 * 
 
6348
 *     cpdef printself(self):             # <<<<<<<<<<<<<<
 
6349
 *         assert self.fp != NULL, 'Not an open file'
 
6350
 *         print '=== AdiosFile ==='
 
6351
 */
 
6352
 
 
6353
static PyObject *__pyx_pw_9adios_mpi_4file_7printself(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 
6354
static PyObject *__pyx_f_9adios_mpi_4file_printself(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, int __pyx_skip_dispatch) {
 
6355
  PyObject *__pyx_r = NULL;
 
6356
  __Pyx_RefNannyDeclarations
 
6357
  PyObject *__pyx_t_1 = NULL;
 
6358
  PyObject *__pyx_t_2 = NULL;
 
6359
  int __pyx_lineno = 0;
 
6360
  const char *__pyx_filename = NULL;
 
6361
  int __pyx_clineno = 0;
 
6362
  __Pyx_RefNannySetupContext("printself", 0);
 
6363
  /* Check if called by wrapper */
 
6364
  if (unlikely(__pyx_skip_dispatch)) ;
 
6365
  /* Check if overridden in Python */
 
6366
  else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
 
6367
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_printself); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6368
    __Pyx_GOTREF(__pyx_t_1);
 
6369
    if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_9adios_mpi_4file_7printself)) {
 
6370
      __Pyx_XDECREF(__pyx_r);
 
6371
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6372
      __Pyx_GOTREF(__pyx_t_2);
 
6373
      __pyx_r = __pyx_t_2;
 
6374
      __pyx_t_2 = 0;
 
6375
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6376
      goto __pyx_L0;
 
6377
    }
 
6378
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6379
  }
 
6380
 
 
6381
  /* "adios_mpi.pyx":477
 
6382
 * 
 
6383
 *     cpdef printself(self):
 
6384
 *         assert self.fp != NULL, 'Not an open file'             # <<<<<<<<<<<<<<
 
6385
 *         print '=== AdiosFile ==='
 
6386
 *         print '%15s : %lu' % ('fp', <unsigned long> self.fp)
 
6387
 */
 
6388
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
6389
  if (unlikely(!Py_OptimizeFlag)) {
 
6390
    if (unlikely(!((__pyx_v_self->fp != NULL) != 0))) {
 
6391
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Not_an_open_file);
 
6392
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6393
    }
 
6394
  }
 
6395
  #endif
 
6396
 
 
6397
  /* "adios_mpi.pyx":478
 
6398
 *     cpdef printself(self):
 
6399
 *         assert self.fp != NULL, 'Not an open file'
 
6400
 *         print '=== AdiosFile ==='             # <<<<<<<<<<<<<<
 
6401
 *         print '%15s : %lu' % ('fp', <unsigned long> self.fp)
 
6402
 *         printfile(self.fp)
 
6403
 */
 
6404
  if (__Pyx_PrintOne(0, __pyx_kp_s_AdiosFile) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6405
 
 
6406
  /* "adios_mpi.pyx":479
 
6407
 *         assert self.fp != NULL, 'Not an open file'
 
6408
 *         print '=== AdiosFile ==='
 
6409
 *         print '%15s : %lu' % ('fp', <unsigned long> self.fp)             # <<<<<<<<<<<<<<
 
6410
 *         printfile(self.fp)
 
6411
 * 
 
6412
 */
 
6413
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_long(((unsigned long)__pyx_v_self->fp)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6414
  __Pyx_GOTREF(__pyx_t_1);
 
6415
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6416
  __Pyx_GOTREF(__pyx_t_2);
 
6417
  __Pyx_INCREF(__pyx_n_s_fp);
 
6418
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_fp);
 
6419
  __Pyx_GIVEREF(__pyx_n_s_fp);
 
6420
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
6421
  __Pyx_GIVEREF(__pyx_t_1);
 
6422
  __pyx_t_1 = 0;
 
6423
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_lu, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6424
  __Pyx_GOTREF(__pyx_t_1);
 
6425
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
6426
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6427
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6428
 
 
6429
  /* "adios_mpi.pyx":480
 
6430
 *         print '=== AdiosFile ==='
 
6431
 *         print '%15s : %lu' % ('fp', <unsigned long> self.fp)
 
6432
 *         printfile(self.fp)             # <<<<<<<<<<<<<<
 
6433
 * 
 
6434
 * cdef class var:
 
6435
 */
 
6436
  __pyx_t_1 = __pyx_f_9adios_mpi_printfile(__pyx_v_self->fp); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6437
  __Pyx_GOTREF(__pyx_t_1);
 
6438
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
6439
 
 
6440
  /* "adios_mpi.pyx":476
 
6441
 *         self.fp = NULL
 
6442
 * 
 
6443
 *     cpdef printself(self):             # <<<<<<<<<<<<<<
 
6444
 *         assert self.fp != NULL, 'Not an open file'
 
6445
 *         print '=== AdiosFile ==='
 
6446
 */
 
6447
 
 
6448
  /* function exit code */
 
6449
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
6450
  goto __pyx_L0;
 
6451
  __pyx_L1_error:;
 
6452
  __Pyx_XDECREF(__pyx_t_1);
 
6453
  __Pyx_XDECREF(__pyx_t_2);
 
6454
  __Pyx_AddTraceback("adios_mpi.file.printself", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6455
  __pyx_r = 0;
 
6456
  __pyx_L0:;
 
6457
  __Pyx_XGIVEREF(__pyx_r);
 
6458
  __Pyx_RefNannyFinishContext();
 
6459
  return __pyx_r;
 
6460
}
 
6461
 
 
6462
/* Python wrapper */
 
6463
static PyObject *__pyx_pw_9adios_mpi_4file_7printself(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 
6464
static PyObject *__pyx_pw_9adios_mpi_4file_7printself(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
 
6465
  PyObject *__pyx_r = 0;
 
6466
  __Pyx_RefNannyDeclarations
 
6467
  __Pyx_RefNannySetupContext("printself (wrapper)", 0);
 
6468
  __pyx_r = __pyx_pf_9adios_mpi_4file_6printself(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
6469
 
 
6470
  /* function exit code */
 
6471
  __Pyx_RefNannyFinishContext();
 
6472
  return __pyx_r;
 
6473
}
 
6474
 
 
6475
static PyObject *__pyx_pf_9adios_mpi_4file_6printself(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
6476
  PyObject *__pyx_r = NULL;
 
6477
  __Pyx_RefNannyDeclarations
 
6478
  PyObject *__pyx_t_1 = NULL;
 
6479
  int __pyx_lineno = 0;
 
6480
  const char *__pyx_filename = NULL;
 
6481
  int __pyx_clineno = 0;
 
6482
  __Pyx_RefNannySetupContext("printself", 0);
 
6483
  __Pyx_XDECREF(__pyx_r);
 
6484
  __pyx_t_1 = ((struct __pyx_vtabstruct_9adios_mpi_file *)__pyx_v_self->__pyx_vtab)->printself(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6485
  __Pyx_GOTREF(__pyx_t_1);
 
6486
  __pyx_r = __pyx_t_1;
 
6487
  __pyx_t_1 = 0;
 
6488
  goto __pyx_L0;
 
6489
 
 
6490
  /* function exit code */
 
6491
  __pyx_L1_error:;
 
6492
  __Pyx_XDECREF(__pyx_t_1);
 
6493
  __Pyx_AddTraceback("adios_mpi.file.printself", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6494
  __pyx_r = NULL;
 
6495
  __pyx_L0:;
 
6496
  __Pyx_XGIVEREF(__pyx_r);
 
6497
  __Pyx_RefNannyFinishContext();
 
6498
  return __pyx_r;
 
6499
}
 
6500
 
 
6501
/* "adios_mpi.pyx":434
 
6502
 * 
 
6503
 *     """ Public Memeber """
 
6504
 *     cpdef public bytes name             # <<<<<<<<<<<<<<
 
6505
 *     cpdef public int nvars
 
6506
 *     cpdef public int nattrs
 
6507
 */
 
6508
 
 
6509
/* Python wrapper */
 
6510
static PyObject *__pyx_pw_9adios_mpi_4file_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
 
6511
static PyObject *__pyx_pw_9adios_mpi_4file_4name_1__get__(PyObject *__pyx_v_self) {
 
6512
  PyObject *__pyx_r = 0;
 
6513
  __Pyx_RefNannyDeclarations
 
6514
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
6515
  __pyx_r = __pyx_pf_9adios_mpi_4file_4name___get__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
6516
 
 
6517
  /* function exit code */
 
6518
  __Pyx_RefNannyFinishContext();
 
6519
  return __pyx_r;
 
6520
}
 
6521
 
 
6522
static PyObject *__pyx_pf_9adios_mpi_4file_4name___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
6523
  PyObject *__pyx_r = NULL;
 
6524
  __Pyx_RefNannyDeclarations
 
6525
  __Pyx_RefNannySetupContext("__get__", 0);
 
6526
  __Pyx_XDECREF(__pyx_r);
 
6527
  __Pyx_INCREF(__pyx_v_self->name);
 
6528
  __pyx_r = __pyx_v_self->name;
 
6529
  goto __pyx_L0;
 
6530
 
 
6531
  /* function exit code */
 
6532
  __pyx_L0:;
 
6533
  __Pyx_XGIVEREF(__pyx_r);
 
6534
  __Pyx_RefNannyFinishContext();
 
6535
  return __pyx_r;
 
6536
}
 
6537
 
 
6538
/* Python wrapper */
 
6539
static int __pyx_pw_9adios_mpi_4file_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
6540
static int __pyx_pw_9adios_mpi_4file_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
6541
  int __pyx_r;
 
6542
  __Pyx_RefNannyDeclarations
 
6543
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
6544
  __pyx_r = __pyx_pf_9adios_mpi_4file_4name_2__set__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
6545
 
 
6546
  /* function exit code */
 
6547
  __Pyx_RefNannyFinishContext();
 
6548
  return __pyx_r;
 
6549
}
 
6550
 
 
6551
static int __pyx_pf_9adios_mpi_4file_4name_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value) {
 
6552
  int __pyx_r;
 
6553
  __Pyx_RefNannyDeclarations
 
6554
  PyObject *__pyx_t_1 = NULL;
 
6555
  int __pyx_lineno = 0;
 
6556
  const char *__pyx_filename = NULL;
 
6557
  int __pyx_clineno = 0;
 
6558
  __Pyx_RefNannySetupContext("__set__", 0);
 
6559
  if (!(likely(PyBytes_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6560
  __pyx_t_1 = __pyx_v_value;
 
6561
  __Pyx_INCREF(__pyx_t_1);
 
6562
  __Pyx_GIVEREF(__pyx_t_1);
 
6563
  __Pyx_GOTREF(__pyx_v_self->name);
 
6564
  __Pyx_DECREF(__pyx_v_self->name);
 
6565
  __pyx_v_self->name = ((PyObject*)__pyx_t_1);
 
6566
  __pyx_t_1 = 0;
 
6567
 
 
6568
  /* function exit code */
 
6569
  __pyx_r = 0;
 
6570
  goto __pyx_L0;
 
6571
  __pyx_L1_error:;
 
6572
  __Pyx_XDECREF(__pyx_t_1);
 
6573
  __Pyx_AddTraceback("adios_mpi.file.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6574
  __pyx_r = -1;
 
6575
  __pyx_L0:;
 
6576
  __Pyx_RefNannyFinishContext();
 
6577
  return __pyx_r;
 
6578
}
 
6579
 
 
6580
/* Python wrapper */
 
6581
static int __pyx_pw_9adios_mpi_4file_4name_5__del__(PyObject *__pyx_v_self); /*proto*/
 
6582
static int __pyx_pw_9adios_mpi_4file_4name_5__del__(PyObject *__pyx_v_self) {
 
6583
  int __pyx_r;
 
6584
  __Pyx_RefNannyDeclarations
 
6585
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
 
6586
  __pyx_r = __pyx_pf_9adios_mpi_4file_4name_4__del__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
6587
 
 
6588
  /* function exit code */
 
6589
  __Pyx_RefNannyFinishContext();
 
6590
  return __pyx_r;
 
6591
}
 
6592
 
 
6593
static int __pyx_pf_9adios_mpi_4file_4name_4__del__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
6594
  int __pyx_r;
 
6595
  __Pyx_RefNannyDeclarations
 
6596
  __Pyx_RefNannySetupContext("__del__", 0);
 
6597
  __Pyx_INCREF(Py_None);
 
6598
  __Pyx_GIVEREF(Py_None);
 
6599
  __Pyx_GOTREF(__pyx_v_self->name);
 
6600
  __Pyx_DECREF(__pyx_v_self->name);
 
6601
  __pyx_v_self->name = ((PyObject*)Py_None);
 
6602
 
 
6603
  /* function exit code */
 
6604
  __pyx_r = 0;
 
6605
  __Pyx_RefNannyFinishContext();
 
6606
  return __pyx_r;
 
6607
}
 
6608
 
 
6609
/* "adios_mpi.pyx":435
 
6610
 *     """ Public Memeber """
 
6611
 *     cpdef public bytes name
 
6612
 *     cpdef public int nvars             # <<<<<<<<<<<<<<
 
6613
 *     cpdef public int nattrs
 
6614
 *     cpdef public int current_step
 
6615
 */
 
6616
 
 
6617
/* Python wrapper */
 
6618
static PyObject *__pyx_pw_9adios_mpi_4file_5nvars_1__get__(PyObject *__pyx_v_self); /*proto*/
 
6619
static PyObject *__pyx_pw_9adios_mpi_4file_5nvars_1__get__(PyObject *__pyx_v_self) {
 
6620
  PyObject *__pyx_r = 0;
 
6621
  __Pyx_RefNannyDeclarations
 
6622
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
6623
  __pyx_r = __pyx_pf_9adios_mpi_4file_5nvars___get__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
6624
 
 
6625
  /* function exit code */
 
6626
  __Pyx_RefNannyFinishContext();
 
6627
  return __pyx_r;
 
6628
}
 
6629
 
 
6630
static PyObject *__pyx_pf_9adios_mpi_4file_5nvars___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
6631
  PyObject *__pyx_r = NULL;
 
6632
  __Pyx_RefNannyDeclarations
 
6633
  PyObject *__pyx_t_1 = NULL;
 
6634
  int __pyx_lineno = 0;
 
6635
  const char *__pyx_filename = NULL;
 
6636
  int __pyx_clineno = 0;
 
6637
  __Pyx_RefNannySetupContext("__get__", 0);
 
6638
  __Pyx_XDECREF(__pyx_r);
 
6639
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->nvars); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6640
  __Pyx_GOTREF(__pyx_t_1);
 
6641
  __pyx_r = __pyx_t_1;
 
6642
  __pyx_t_1 = 0;
 
6643
  goto __pyx_L0;
 
6644
 
 
6645
  /* function exit code */
 
6646
  __pyx_L1_error:;
 
6647
  __Pyx_XDECREF(__pyx_t_1);
 
6648
  __Pyx_AddTraceback("adios_mpi.file.nvars.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6649
  __pyx_r = NULL;
 
6650
  __pyx_L0:;
 
6651
  __Pyx_XGIVEREF(__pyx_r);
 
6652
  __Pyx_RefNannyFinishContext();
 
6653
  return __pyx_r;
 
6654
}
 
6655
 
 
6656
/* Python wrapper */
 
6657
static int __pyx_pw_9adios_mpi_4file_5nvars_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
6658
static int __pyx_pw_9adios_mpi_4file_5nvars_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
6659
  int __pyx_r;
 
6660
  __Pyx_RefNannyDeclarations
 
6661
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
6662
  __pyx_r = __pyx_pf_9adios_mpi_4file_5nvars_2__set__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
6663
 
 
6664
  /* function exit code */
 
6665
  __Pyx_RefNannyFinishContext();
 
6666
  return __pyx_r;
 
6667
}
 
6668
 
 
6669
static int __pyx_pf_9adios_mpi_4file_5nvars_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value) {
 
6670
  int __pyx_r;
 
6671
  __Pyx_RefNannyDeclarations
 
6672
  int __pyx_t_1;
 
6673
  int __pyx_lineno = 0;
 
6674
  const char *__pyx_filename = NULL;
 
6675
  int __pyx_clineno = 0;
 
6676
  __Pyx_RefNannySetupContext("__set__", 0);
 
6677
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6678
  __pyx_v_self->nvars = __pyx_t_1;
 
6679
 
 
6680
  /* function exit code */
 
6681
  __pyx_r = 0;
 
6682
  goto __pyx_L0;
 
6683
  __pyx_L1_error:;
 
6684
  __Pyx_AddTraceback("adios_mpi.file.nvars.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6685
  __pyx_r = -1;
 
6686
  __pyx_L0:;
 
6687
  __Pyx_RefNannyFinishContext();
 
6688
  return __pyx_r;
 
6689
}
 
6690
 
 
6691
/* "adios_mpi.pyx":436
 
6692
 *     cpdef public bytes name
 
6693
 *     cpdef public int nvars
 
6694
 *     cpdef public int nattrs             # <<<<<<<<<<<<<<
 
6695
 *     cpdef public int current_step
 
6696
 *     cpdef public int last_step
 
6697
 */
 
6698
 
 
6699
/* Python wrapper */
 
6700
static PyObject *__pyx_pw_9adios_mpi_4file_6nattrs_1__get__(PyObject *__pyx_v_self); /*proto*/
 
6701
static PyObject *__pyx_pw_9adios_mpi_4file_6nattrs_1__get__(PyObject *__pyx_v_self) {
 
6702
  PyObject *__pyx_r = 0;
 
6703
  __Pyx_RefNannyDeclarations
 
6704
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
6705
  __pyx_r = __pyx_pf_9adios_mpi_4file_6nattrs___get__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
6706
 
 
6707
  /* function exit code */
 
6708
  __Pyx_RefNannyFinishContext();
 
6709
  return __pyx_r;
 
6710
}
 
6711
 
 
6712
static PyObject *__pyx_pf_9adios_mpi_4file_6nattrs___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
6713
  PyObject *__pyx_r = NULL;
 
6714
  __Pyx_RefNannyDeclarations
 
6715
  PyObject *__pyx_t_1 = NULL;
 
6716
  int __pyx_lineno = 0;
 
6717
  const char *__pyx_filename = NULL;
 
6718
  int __pyx_clineno = 0;
 
6719
  __Pyx_RefNannySetupContext("__get__", 0);
 
6720
  __Pyx_XDECREF(__pyx_r);
 
6721
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->nattrs); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6722
  __Pyx_GOTREF(__pyx_t_1);
 
6723
  __pyx_r = __pyx_t_1;
 
6724
  __pyx_t_1 = 0;
 
6725
  goto __pyx_L0;
 
6726
 
 
6727
  /* function exit code */
 
6728
  __pyx_L1_error:;
 
6729
  __Pyx_XDECREF(__pyx_t_1);
 
6730
  __Pyx_AddTraceback("adios_mpi.file.nattrs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6731
  __pyx_r = NULL;
 
6732
  __pyx_L0:;
 
6733
  __Pyx_XGIVEREF(__pyx_r);
 
6734
  __Pyx_RefNannyFinishContext();
 
6735
  return __pyx_r;
 
6736
}
 
6737
 
 
6738
/* Python wrapper */
 
6739
static int __pyx_pw_9adios_mpi_4file_6nattrs_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
6740
static int __pyx_pw_9adios_mpi_4file_6nattrs_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
6741
  int __pyx_r;
 
6742
  __Pyx_RefNannyDeclarations
 
6743
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
6744
  __pyx_r = __pyx_pf_9adios_mpi_4file_6nattrs_2__set__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
6745
 
 
6746
  /* function exit code */
 
6747
  __Pyx_RefNannyFinishContext();
 
6748
  return __pyx_r;
 
6749
}
 
6750
 
 
6751
static int __pyx_pf_9adios_mpi_4file_6nattrs_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value) {
 
6752
  int __pyx_r;
 
6753
  __Pyx_RefNannyDeclarations
 
6754
  int __pyx_t_1;
 
6755
  int __pyx_lineno = 0;
 
6756
  const char *__pyx_filename = NULL;
 
6757
  int __pyx_clineno = 0;
 
6758
  __Pyx_RefNannySetupContext("__set__", 0);
 
6759
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6760
  __pyx_v_self->nattrs = __pyx_t_1;
 
6761
 
 
6762
  /* function exit code */
 
6763
  __pyx_r = 0;
 
6764
  goto __pyx_L0;
 
6765
  __pyx_L1_error:;
 
6766
  __Pyx_AddTraceback("adios_mpi.file.nattrs.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6767
  __pyx_r = -1;
 
6768
  __pyx_L0:;
 
6769
  __Pyx_RefNannyFinishContext();
 
6770
  return __pyx_r;
 
6771
}
 
6772
 
 
6773
/* "adios_mpi.pyx":437
 
6774
 *     cpdef public int nvars
 
6775
 *     cpdef public int nattrs
 
6776
 *     cpdef public int current_step             # <<<<<<<<<<<<<<
 
6777
 *     cpdef public int last_step
 
6778
 *     cpdef public int endianness
 
6779
 */
 
6780
 
 
6781
/* Python wrapper */
 
6782
static PyObject *__pyx_pw_9adios_mpi_4file_12current_step_1__get__(PyObject *__pyx_v_self); /*proto*/
 
6783
static PyObject *__pyx_pw_9adios_mpi_4file_12current_step_1__get__(PyObject *__pyx_v_self) {
 
6784
  PyObject *__pyx_r = 0;
 
6785
  __Pyx_RefNannyDeclarations
 
6786
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
6787
  __pyx_r = __pyx_pf_9adios_mpi_4file_12current_step___get__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
6788
 
 
6789
  /* function exit code */
 
6790
  __Pyx_RefNannyFinishContext();
 
6791
  return __pyx_r;
 
6792
}
 
6793
 
 
6794
static PyObject *__pyx_pf_9adios_mpi_4file_12current_step___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
6795
  PyObject *__pyx_r = NULL;
 
6796
  __Pyx_RefNannyDeclarations
 
6797
  PyObject *__pyx_t_1 = NULL;
 
6798
  int __pyx_lineno = 0;
 
6799
  const char *__pyx_filename = NULL;
 
6800
  int __pyx_clineno = 0;
 
6801
  __Pyx_RefNannySetupContext("__get__", 0);
 
6802
  __Pyx_XDECREF(__pyx_r);
 
6803
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->current_step); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6804
  __Pyx_GOTREF(__pyx_t_1);
 
6805
  __pyx_r = __pyx_t_1;
 
6806
  __pyx_t_1 = 0;
 
6807
  goto __pyx_L0;
 
6808
 
 
6809
  /* function exit code */
 
6810
  __pyx_L1_error:;
 
6811
  __Pyx_XDECREF(__pyx_t_1);
 
6812
  __Pyx_AddTraceback("adios_mpi.file.current_step.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6813
  __pyx_r = NULL;
 
6814
  __pyx_L0:;
 
6815
  __Pyx_XGIVEREF(__pyx_r);
 
6816
  __Pyx_RefNannyFinishContext();
 
6817
  return __pyx_r;
 
6818
}
 
6819
 
 
6820
/* Python wrapper */
 
6821
static int __pyx_pw_9adios_mpi_4file_12current_step_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
6822
static int __pyx_pw_9adios_mpi_4file_12current_step_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
6823
  int __pyx_r;
 
6824
  __Pyx_RefNannyDeclarations
 
6825
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
6826
  __pyx_r = __pyx_pf_9adios_mpi_4file_12current_step_2__set__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
6827
 
 
6828
  /* function exit code */
 
6829
  __Pyx_RefNannyFinishContext();
 
6830
  return __pyx_r;
 
6831
}
 
6832
 
 
6833
static int __pyx_pf_9adios_mpi_4file_12current_step_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value) {
 
6834
  int __pyx_r;
 
6835
  __Pyx_RefNannyDeclarations
 
6836
  int __pyx_t_1;
 
6837
  int __pyx_lineno = 0;
 
6838
  const char *__pyx_filename = NULL;
 
6839
  int __pyx_clineno = 0;
 
6840
  __Pyx_RefNannySetupContext("__set__", 0);
 
6841
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6842
  __pyx_v_self->current_step = __pyx_t_1;
 
6843
 
 
6844
  /* function exit code */
 
6845
  __pyx_r = 0;
 
6846
  goto __pyx_L0;
 
6847
  __pyx_L1_error:;
 
6848
  __Pyx_AddTraceback("adios_mpi.file.current_step.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6849
  __pyx_r = -1;
 
6850
  __pyx_L0:;
 
6851
  __Pyx_RefNannyFinishContext();
 
6852
  return __pyx_r;
 
6853
}
 
6854
 
 
6855
/* "adios_mpi.pyx":438
 
6856
 *     cpdef public int nattrs
 
6857
 *     cpdef public int current_step
 
6858
 *     cpdef public int last_step             # <<<<<<<<<<<<<<
 
6859
 *     cpdef public int endianness
 
6860
 *     cpdef public int version
 
6861
 */
 
6862
 
 
6863
/* Python wrapper */
 
6864
static PyObject *__pyx_pw_9adios_mpi_4file_9last_step_1__get__(PyObject *__pyx_v_self); /*proto*/
 
6865
static PyObject *__pyx_pw_9adios_mpi_4file_9last_step_1__get__(PyObject *__pyx_v_self) {
 
6866
  PyObject *__pyx_r = 0;
 
6867
  __Pyx_RefNannyDeclarations
 
6868
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
6869
  __pyx_r = __pyx_pf_9adios_mpi_4file_9last_step___get__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
6870
 
 
6871
  /* function exit code */
 
6872
  __Pyx_RefNannyFinishContext();
 
6873
  return __pyx_r;
 
6874
}
 
6875
 
 
6876
static PyObject *__pyx_pf_9adios_mpi_4file_9last_step___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
6877
  PyObject *__pyx_r = NULL;
 
6878
  __Pyx_RefNannyDeclarations
 
6879
  PyObject *__pyx_t_1 = NULL;
 
6880
  int __pyx_lineno = 0;
 
6881
  const char *__pyx_filename = NULL;
 
6882
  int __pyx_clineno = 0;
 
6883
  __Pyx_RefNannySetupContext("__get__", 0);
 
6884
  __Pyx_XDECREF(__pyx_r);
 
6885
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->last_step); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6886
  __Pyx_GOTREF(__pyx_t_1);
 
6887
  __pyx_r = __pyx_t_1;
 
6888
  __pyx_t_1 = 0;
 
6889
  goto __pyx_L0;
 
6890
 
 
6891
  /* function exit code */
 
6892
  __pyx_L1_error:;
 
6893
  __Pyx_XDECREF(__pyx_t_1);
 
6894
  __Pyx_AddTraceback("adios_mpi.file.last_step.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6895
  __pyx_r = NULL;
 
6896
  __pyx_L0:;
 
6897
  __Pyx_XGIVEREF(__pyx_r);
 
6898
  __Pyx_RefNannyFinishContext();
 
6899
  return __pyx_r;
 
6900
}
 
6901
 
 
6902
/* Python wrapper */
 
6903
static int __pyx_pw_9adios_mpi_4file_9last_step_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
6904
static int __pyx_pw_9adios_mpi_4file_9last_step_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
6905
  int __pyx_r;
 
6906
  __Pyx_RefNannyDeclarations
 
6907
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
6908
  __pyx_r = __pyx_pf_9adios_mpi_4file_9last_step_2__set__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
6909
 
 
6910
  /* function exit code */
 
6911
  __Pyx_RefNannyFinishContext();
 
6912
  return __pyx_r;
 
6913
}
 
6914
 
 
6915
static int __pyx_pf_9adios_mpi_4file_9last_step_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value) {
 
6916
  int __pyx_r;
 
6917
  __Pyx_RefNannyDeclarations
 
6918
  int __pyx_t_1;
 
6919
  int __pyx_lineno = 0;
 
6920
  const char *__pyx_filename = NULL;
 
6921
  int __pyx_clineno = 0;
 
6922
  __Pyx_RefNannySetupContext("__set__", 0);
 
6923
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6924
  __pyx_v_self->last_step = __pyx_t_1;
 
6925
 
 
6926
  /* function exit code */
 
6927
  __pyx_r = 0;
 
6928
  goto __pyx_L0;
 
6929
  __pyx_L1_error:;
 
6930
  __Pyx_AddTraceback("adios_mpi.file.last_step.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6931
  __pyx_r = -1;
 
6932
  __pyx_L0:;
 
6933
  __Pyx_RefNannyFinishContext();
 
6934
  return __pyx_r;
 
6935
}
 
6936
 
 
6937
/* "adios_mpi.pyx":439
 
6938
 *     cpdef public int current_step
 
6939
 *     cpdef public int last_step
 
6940
 *     cpdef public int endianness             # <<<<<<<<<<<<<<
 
6941
 *     cpdef public int version
 
6942
 *     cpdef public int file_size
 
6943
 */
 
6944
 
 
6945
/* Python wrapper */
 
6946
static PyObject *__pyx_pw_9adios_mpi_4file_10endianness_1__get__(PyObject *__pyx_v_self); /*proto*/
 
6947
static PyObject *__pyx_pw_9adios_mpi_4file_10endianness_1__get__(PyObject *__pyx_v_self) {
 
6948
  PyObject *__pyx_r = 0;
 
6949
  __Pyx_RefNannyDeclarations
 
6950
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
6951
  __pyx_r = __pyx_pf_9adios_mpi_4file_10endianness___get__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
6952
 
 
6953
  /* function exit code */
 
6954
  __Pyx_RefNannyFinishContext();
 
6955
  return __pyx_r;
 
6956
}
 
6957
 
 
6958
static PyObject *__pyx_pf_9adios_mpi_4file_10endianness___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
6959
  PyObject *__pyx_r = NULL;
 
6960
  __Pyx_RefNannyDeclarations
 
6961
  PyObject *__pyx_t_1 = NULL;
 
6962
  int __pyx_lineno = 0;
 
6963
  const char *__pyx_filename = NULL;
 
6964
  int __pyx_clineno = 0;
 
6965
  __Pyx_RefNannySetupContext("__get__", 0);
 
6966
  __Pyx_XDECREF(__pyx_r);
 
6967
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->endianness); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
6968
  __Pyx_GOTREF(__pyx_t_1);
 
6969
  __pyx_r = __pyx_t_1;
 
6970
  __pyx_t_1 = 0;
 
6971
  goto __pyx_L0;
 
6972
 
 
6973
  /* function exit code */
 
6974
  __pyx_L1_error:;
 
6975
  __Pyx_XDECREF(__pyx_t_1);
 
6976
  __Pyx_AddTraceback("adios_mpi.file.endianness.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
6977
  __pyx_r = NULL;
 
6978
  __pyx_L0:;
 
6979
  __Pyx_XGIVEREF(__pyx_r);
 
6980
  __Pyx_RefNannyFinishContext();
 
6981
  return __pyx_r;
 
6982
}
 
6983
 
 
6984
/* Python wrapper */
 
6985
static int __pyx_pw_9adios_mpi_4file_10endianness_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
6986
static int __pyx_pw_9adios_mpi_4file_10endianness_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
6987
  int __pyx_r;
 
6988
  __Pyx_RefNannyDeclarations
 
6989
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
6990
  __pyx_r = __pyx_pf_9adios_mpi_4file_10endianness_2__set__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
6991
 
 
6992
  /* function exit code */
 
6993
  __Pyx_RefNannyFinishContext();
 
6994
  return __pyx_r;
 
6995
}
 
6996
 
 
6997
static int __pyx_pf_9adios_mpi_4file_10endianness_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value) {
 
6998
  int __pyx_r;
 
6999
  __Pyx_RefNannyDeclarations
 
7000
  int __pyx_t_1;
 
7001
  int __pyx_lineno = 0;
 
7002
  const char *__pyx_filename = NULL;
 
7003
  int __pyx_clineno = 0;
 
7004
  __Pyx_RefNannySetupContext("__set__", 0);
 
7005
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7006
  __pyx_v_self->endianness = __pyx_t_1;
 
7007
 
 
7008
  /* function exit code */
 
7009
  __pyx_r = 0;
 
7010
  goto __pyx_L0;
 
7011
  __pyx_L1_error:;
 
7012
  __Pyx_AddTraceback("adios_mpi.file.endianness.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7013
  __pyx_r = -1;
 
7014
  __pyx_L0:;
 
7015
  __Pyx_RefNannyFinishContext();
 
7016
  return __pyx_r;
 
7017
}
 
7018
 
 
7019
/* "adios_mpi.pyx":440
 
7020
 *     cpdef public int last_step
 
7021
 *     cpdef public int endianness
 
7022
 *     cpdef public int version             # <<<<<<<<<<<<<<
 
7023
 *     cpdef public int file_size
 
7024
 * 
 
7025
 */
 
7026
 
 
7027
/* Python wrapper */
 
7028
static PyObject *__pyx_pw_9adios_mpi_4file_7version_1__get__(PyObject *__pyx_v_self); /*proto*/
 
7029
static PyObject *__pyx_pw_9adios_mpi_4file_7version_1__get__(PyObject *__pyx_v_self) {
 
7030
  PyObject *__pyx_r = 0;
 
7031
  __Pyx_RefNannyDeclarations
 
7032
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
7033
  __pyx_r = __pyx_pf_9adios_mpi_4file_7version___get__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
7034
 
 
7035
  /* function exit code */
 
7036
  __Pyx_RefNannyFinishContext();
 
7037
  return __pyx_r;
 
7038
}
 
7039
 
 
7040
static PyObject *__pyx_pf_9adios_mpi_4file_7version___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
7041
  PyObject *__pyx_r = NULL;
 
7042
  __Pyx_RefNannyDeclarations
 
7043
  PyObject *__pyx_t_1 = NULL;
 
7044
  int __pyx_lineno = 0;
 
7045
  const char *__pyx_filename = NULL;
 
7046
  int __pyx_clineno = 0;
 
7047
  __Pyx_RefNannySetupContext("__get__", 0);
 
7048
  __Pyx_XDECREF(__pyx_r);
 
7049
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->version); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7050
  __Pyx_GOTREF(__pyx_t_1);
 
7051
  __pyx_r = __pyx_t_1;
 
7052
  __pyx_t_1 = 0;
 
7053
  goto __pyx_L0;
 
7054
 
 
7055
  /* function exit code */
 
7056
  __pyx_L1_error:;
 
7057
  __Pyx_XDECREF(__pyx_t_1);
 
7058
  __Pyx_AddTraceback("adios_mpi.file.version.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7059
  __pyx_r = NULL;
 
7060
  __pyx_L0:;
 
7061
  __Pyx_XGIVEREF(__pyx_r);
 
7062
  __Pyx_RefNannyFinishContext();
 
7063
  return __pyx_r;
 
7064
}
 
7065
 
 
7066
/* Python wrapper */
 
7067
static int __pyx_pw_9adios_mpi_4file_7version_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
7068
static int __pyx_pw_9adios_mpi_4file_7version_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
7069
  int __pyx_r;
 
7070
  __Pyx_RefNannyDeclarations
 
7071
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
7072
  __pyx_r = __pyx_pf_9adios_mpi_4file_7version_2__set__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
7073
 
 
7074
  /* function exit code */
 
7075
  __Pyx_RefNannyFinishContext();
 
7076
  return __pyx_r;
 
7077
}
 
7078
 
 
7079
static int __pyx_pf_9adios_mpi_4file_7version_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value) {
 
7080
  int __pyx_r;
 
7081
  __Pyx_RefNannyDeclarations
 
7082
  int __pyx_t_1;
 
7083
  int __pyx_lineno = 0;
 
7084
  const char *__pyx_filename = NULL;
 
7085
  int __pyx_clineno = 0;
 
7086
  __Pyx_RefNannySetupContext("__set__", 0);
 
7087
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7088
  __pyx_v_self->version = __pyx_t_1;
 
7089
 
 
7090
  /* function exit code */
 
7091
  __pyx_r = 0;
 
7092
  goto __pyx_L0;
 
7093
  __pyx_L1_error:;
 
7094
  __Pyx_AddTraceback("adios_mpi.file.version.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7095
  __pyx_r = -1;
 
7096
  __pyx_L0:;
 
7097
  __Pyx_RefNannyFinishContext();
 
7098
  return __pyx_r;
 
7099
}
 
7100
 
 
7101
/* "adios_mpi.pyx":441
 
7102
 *     cpdef public int endianness
 
7103
 *     cpdef public int version
 
7104
 *     cpdef public int file_size             # <<<<<<<<<<<<<<
 
7105
 * 
 
7106
 *     cpdef public dict var
 
7107
 */
 
7108
 
 
7109
/* Python wrapper */
 
7110
static PyObject *__pyx_pw_9adios_mpi_4file_9file_size_1__get__(PyObject *__pyx_v_self); /*proto*/
 
7111
static PyObject *__pyx_pw_9adios_mpi_4file_9file_size_1__get__(PyObject *__pyx_v_self) {
 
7112
  PyObject *__pyx_r = 0;
 
7113
  __Pyx_RefNannyDeclarations
 
7114
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
7115
  __pyx_r = __pyx_pf_9adios_mpi_4file_9file_size___get__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
7116
 
 
7117
  /* function exit code */
 
7118
  __Pyx_RefNannyFinishContext();
 
7119
  return __pyx_r;
 
7120
}
 
7121
 
 
7122
static PyObject *__pyx_pf_9adios_mpi_4file_9file_size___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
7123
  PyObject *__pyx_r = NULL;
 
7124
  __Pyx_RefNannyDeclarations
 
7125
  PyObject *__pyx_t_1 = NULL;
 
7126
  int __pyx_lineno = 0;
 
7127
  const char *__pyx_filename = NULL;
 
7128
  int __pyx_clineno = 0;
 
7129
  __Pyx_RefNannySetupContext("__get__", 0);
 
7130
  __Pyx_XDECREF(__pyx_r);
 
7131
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->file_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7132
  __Pyx_GOTREF(__pyx_t_1);
 
7133
  __pyx_r = __pyx_t_1;
 
7134
  __pyx_t_1 = 0;
 
7135
  goto __pyx_L0;
 
7136
 
 
7137
  /* function exit code */
 
7138
  __pyx_L1_error:;
 
7139
  __Pyx_XDECREF(__pyx_t_1);
 
7140
  __Pyx_AddTraceback("adios_mpi.file.file_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7141
  __pyx_r = NULL;
 
7142
  __pyx_L0:;
 
7143
  __Pyx_XGIVEREF(__pyx_r);
 
7144
  __Pyx_RefNannyFinishContext();
 
7145
  return __pyx_r;
 
7146
}
 
7147
 
 
7148
/* Python wrapper */
 
7149
static int __pyx_pw_9adios_mpi_4file_9file_size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
7150
static int __pyx_pw_9adios_mpi_4file_9file_size_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
7151
  int __pyx_r;
 
7152
  __Pyx_RefNannyDeclarations
 
7153
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
7154
  __pyx_r = __pyx_pf_9adios_mpi_4file_9file_size_2__set__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
7155
 
 
7156
  /* function exit code */
 
7157
  __Pyx_RefNannyFinishContext();
 
7158
  return __pyx_r;
 
7159
}
 
7160
 
 
7161
static int __pyx_pf_9adios_mpi_4file_9file_size_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value) {
 
7162
  int __pyx_r;
 
7163
  __Pyx_RefNannyDeclarations
 
7164
  int __pyx_t_1;
 
7165
  int __pyx_lineno = 0;
 
7166
  const char *__pyx_filename = NULL;
 
7167
  int __pyx_clineno = 0;
 
7168
  __Pyx_RefNannySetupContext("__set__", 0);
 
7169
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7170
  __pyx_v_self->file_size = __pyx_t_1;
 
7171
 
 
7172
  /* function exit code */
 
7173
  __pyx_r = 0;
 
7174
  goto __pyx_L0;
 
7175
  __pyx_L1_error:;
 
7176
  __Pyx_AddTraceback("adios_mpi.file.file_size.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7177
  __pyx_r = -1;
 
7178
  __pyx_L0:;
 
7179
  __Pyx_RefNannyFinishContext();
 
7180
  return __pyx_r;
 
7181
}
 
7182
 
 
7183
/* "adios_mpi.pyx":443
 
7184
 *     cpdef public int file_size
 
7185
 * 
 
7186
 *     cpdef public dict var             # <<<<<<<<<<<<<<
 
7187
 *     cpdef public dict attr
 
7188
 * 
 
7189
 */
 
7190
 
 
7191
/* Python wrapper */
 
7192
static PyObject *__pyx_pw_9adios_mpi_4file_3var_1__get__(PyObject *__pyx_v_self); /*proto*/
 
7193
static PyObject *__pyx_pw_9adios_mpi_4file_3var_1__get__(PyObject *__pyx_v_self) {
 
7194
  PyObject *__pyx_r = 0;
 
7195
  __Pyx_RefNannyDeclarations
 
7196
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
7197
  __pyx_r = __pyx_pf_9adios_mpi_4file_3var___get__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
7198
 
 
7199
  /* function exit code */
 
7200
  __Pyx_RefNannyFinishContext();
 
7201
  return __pyx_r;
 
7202
}
 
7203
 
 
7204
static PyObject *__pyx_pf_9adios_mpi_4file_3var___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
7205
  PyObject *__pyx_r = NULL;
 
7206
  __Pyx_RefNannyDeclarations
 
7207
  __Pyx_RefNannySetupContext("__get__", 0);
 
7208
  __Pyx_XDECREF(__pyx_r);
 
7209
  __Pyx_INCREF(__pyx_v_self->var);
 
7210
  __pyx_r = __pyx_v_self->var;
 
7211
  goto __pyx_L0;
 
7212
 
 
7213
  /* function exit code */
 
7214
  __pyx_L0:;
 
7215
  __Pyx_XGIVEREF(__pyx_r);
 
7216
  __Pyx_RefNannyFinishContext();
 
7217
  return __pyx_r;
 
7218
}
 
7219
 
 
7220
/* Python wrapper */
 
7221
static int __pyx_pw_9adios_mpi_4file_3var_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
7222
static int __pyx_pw_9adios_mpi_4file_3var_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
7223
  int __pyx_r;
 
7224
  __Pyx_RefNannyDeclarations
 
7225
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
7226
  __pyx_r = __pyx_pf_9adios_mpi_4file_3var_2__set__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
7227
 
 
7228
  /* function exit code */
 
7229
  __Pyx_RefNannyFinishContext();
 
7230
  return __pyx_r;
 
7231
}
 
7232
 
 
7233
static int __pyx_pf_9adios_mpi_4file_3var_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value) {
 
7234
  int __pyx_r;
 
7235
  __Pyx_RefNannyDeclarations
 
7236
  PyObject *__pyx_t_1 = NULL;
 
7237
  int __pyx_lineno = 0;
 
7238
  const char *__pyx_filename = NULL;
 
7239
  int __pyx_clineno = 0;
 
7240
  __Pyx_RefNannySetupContext("__set__", 0);
 
7241
  if (!(likely(PyDict_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7242
  __pyx_t_1 = __pyx_v_value;
 
7243
  __Pyx_INCREF(__pyx_t_1);
 
7244
  __Pyx_GIVEREF(__pyx_t_1);
 
7245
  __Pyx_GOTREF(__pyx_v_self->var);
 
7246
  __Pyx_DECREF(__pyx_v_self->var);
 
7247
  __pyx_v_self->var = ((PyObject*)__pyx_t_1);
 
7248
  __pyx_t_1 = 0;
 
7249
 
 
7250
  /* function exit code */
 
7251
  __pyx_r = 0;
 
7252
  goto __pyx_L0;
 
7253
  __pyx_L1_error:;
 
7254
  __Pyx_XDECREF(__pyx_t_1);
 
7255
  __Pyx_AddTraceback("adios_mpi.file.var.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7256
  __pyx_r = -1;
 
7257
  __pyx_L0:;
 
7258
  __Pyx_RefNannyFinishContext();
 
7259
  return __pyx_r;
 
7260
}
 
7261
 
 
7262
/* Python wrapper */
 
7263
static int __pyx_pw_9adios_mpi_4file_3var_5__del__(PyObject *__pyx_v_self); /*proto*/
 
7264
static int __pyx_pw_9adios_mpi_4file_3var_5__del__(PyObject *__pyx_v_self) {
 
7265
  int __pyx_r;
 
7266
  __Pyx_RefNannyDeclarations
 
7267
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
 
7268
  __pyx_r = __pyx_pf_9adios_mpi_4file_3var_4__del__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
7269
 
 
7270
  /* function exit code */
 
7271
  __Pyx_RefNannyFinishContext();
 
7272
  return __pyx_r;
 
7273
}
 
7274
 
 
7275
static int __pyx_pf_9adios_mpi_4file_3var_4__del__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
7276
  int __pyx_r;
 
7277
  __Pyx_RefNannyDeclarations
 
7278
  __Pyx_RefNannySetupContext("__del__", 0);
 
7279
  __Pyx_INCREF(Py_None);
 
7280
  __Pyx_GIVEREF(Py_None);
 
7281
  __Pyx_GOTREF(__pyx_v_self->var);
 
7282
  __Pyx_DECREF(__pyx_v_self->var);
 
7283
  __pyx_v_self->var = ((PyObject*)Py_None);
 
7284
 
 
7285
  /* function exit code */
 
7286
  __pyx_r = 0;
 
7287
  __Pyx_RefNannyFinishContext();
 
7288
  return __pyx_r;
 
7289
}
 
7290
 
 
7291
/* "adios_mpi.pyx":444
 
7292
 * 
 
7293
 *     cpdef public dict var
 
7294
 *     cpdef public dict attr             # <<<<<<<<<<<<<<
 
7295
 * 
 
7296
 *     def __init__(self, char * fname,
 
7297
 */
 
7298
 
 
7299
/* Python wrapper */
 
7300
static PyObject *__pyx_pw_9adios_mpi_4file_4attr_1__get__(PyObject *__pyx_v_self); /*proto*/
 
7301
static PyObject *__pyx_pw_9adios_mpi_4file_4attr_1__get__(PyObject *__pyx_v_self) {
 
7302
  PyObject *__pyx_r = 0;
 
7303
  __Pyx_RefNannyDeclarations
 
7304
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
7305
  __pyx_r = __pyx_pf_9adios_mpi_4file_4attr___get__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
7306
 
 
7307
  /* function exit code */
 
7308
  __Pyx_RefNannyFinishContext();
 
7309
  return __pyx_r;
 
7310
}
 
7311
 
 
7312
static PyObject *__pyx_pf_9adios_mpi_4file_4attr___get__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
7313
  PyObject *__pyx_r = NULL;
 
7314
  __Pyx_RefNannyDeclarations
 
7315
  __Pyx_RefNannySetupContext("__get__", 0);
 
7316
  __Pyx_XDECREF(__pyx_r);
 
7317
  __Pyx_INCREF(__pyx_v_self->attr);
 
7318
  __pyx_r = __pyx_v_self->attr;
 
7319
  goto __pyx_L0;
 
7320
 
 
7321
  /* function exit code */
 
7322
  __pyx_L0:;
 
7323
  __Pyx_XGIVEREF(__pyx_r);
 
7324
  __Pyx_RefNannyFinishContext();
 
7325
  return __pyx_r;
 
7326
}
 
7327
 
 
7328
/* Python wrapper */
 
7329
static int __pyx_pw_9adios_mpi_4file_4attr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
7330
static int __pyx_pw_9adios_mpi_4file_4attr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
7331
  int __pyx_r;
 
7332
  __Pyx_RefNannyDeclarations
 
7333
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
7334
  __pyx_r = __pyx_pf_9adios_mpi_4file_4attr_2__set__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
7335
 
 
7336
  /* function exit code */
 
7337
  __Pyx_RefNannyFinishContext();
 
7338
  return __pyx_r;
 
7339
}
 
7340
 
 
7341
static int __pyx_pf_9adios_mpi_4file_4attr_2__set__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self, PyObject *__pyx_v_value) {
 
7342
  int __pyx_r;
 
7343
  __Pyx_RefNannyDeclarations
 
7344
  PyObject *__pyx_t_1 = NULL;
 
7345
  int __pyx_lineno = 0;
 
7346
  const char *__pyx_filename = NULL;
 
7347
  int __pyx_clineno = 0;
 
7348
  __Pyx_RefNannySetupContext("__set__", 0);
 
7349
  if (!(likely(PyDict_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7350
  __pyx_t_1 = __pyx_v_value;
 
7351
  __Pyx_INCREF(__pyx_t_1);
 
7352
  __Pyx_GIVEREF(__pyx_t_1);
 
7353
  __Pyx_GOTREF(__pyx_v_self->attr);
 
7354
  __Pyx_DECREF(__pyx_v_self->attr);
 
7355
  __pyx_v_self->attr = ((PyObject*)__pyx_t_1);
 
7356
  __pyx_t_1 = 0;
 
7357
 
 
7358
  /* function exit code */
 
7359
  __pyx_r = 0;
 
7360
  goto __pyx_L0;
 
7361
  __pyx_L1_error:;
 
7362
  __Pyx_XDECREF(__pyx_t_1);
 
7363
  __Pyx_AddTraceback("adios_mpi.file.attr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7364
  __pyx_r = -1;
 
7365
  __pyx_L0:;
 
7366
  __Pyx_RefNannyFinishContext();
 
7367
  return __pyx_r;
 
7368
}
 
7369
 
 
7370
/* Python wrapper */
 
7371
static int __pyx_pw_9adios_mpi_4file_4attr_5__del__(PyObject *__pyx_v_self); /*proto*/
 
7372
static int __pyx_pw_9adios_mpi_4file_4attr_5__del__(PyObject *__pyx_v_self) {
 
7373
  int __pyx_r;
 
7374
  __Pyx_RefNannyDeclarations
 
7375
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
 
7376
  __pyx_r = __pyx_pf_9adios_mpi_4file_4attr_4__del__(((struct __pyx_obj_9adios_mpi_file *)__pyx_v_self));
 
7377
 
 
7378
  /* function exit code */
 
7379
  __Pyx_RefNannyFinishContext();
 
7380
  return __pyx_r;
 
7381
}
 
7382
 
 
7383
static int __pyx_pf_9adios_mpi_4file_4attr_4__del__(struct __pyx_obj_9adios_mpi_file *__pyx_v_self) {
 
7384
  int __pyx_r;
 
7385
  __Pyx_RefNannyDeclarations
 
7386
  __Pyx_RefNannySetupContext("__del__", 0);
 
7387
  __Pyx_INCREF(Py_None);
 
7388
  __Pyx_GIVEREF(Py_None);
 
7389
  __Pyx_GOTREF(__pyx_v_self->attr);
 
7390
  __Pyx_DECREF(__pyx_v_self->attr);
 
7391
  __pyx_v_self->attr = ((PyObject*)Py_None);
 
7392
 
 
7393
  /* function exit code */
 
7394
  __pyx_r = 0;
 
7395
  __Pyx_RefNannyFinishContext();
 
7396
  return __pyx_r;
 
7397
}
 
7398
 
 
7399
/* "adios_mpi.pyx":495
 
7400
 *     cpdef public int nsteps
 
7401
 * 
 
7402
 *     def __init__(self, file file, char * name):             # <<<<<<<<<<<<<<
 
7403
 *         self.file = file
 
7404
 *         self.vp = NULL
 
7405
 */
 
7406
 
 
7407
/* Python wrapper */
 
7408
static int __pyx_pw_9adios_mpi_3var_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
7409
static int __pyx_pw_9adios_mpi_3var_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
7410
  struct __pyx_obj_9adios_mpi_file *__pyx_v_file = 0;
 
7411
  char *__pyx_v_name;
 
7412
  int __pyx_lineno = 0;
 
7413
  const char *__pyx_filename = NULL;
 
7414
  int __pyx_clineno = 0;
 
7415
  int __pyx_r;
 
7416
  __Pyx_RefNannyDeclarations
 
7417
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
 
7418
  {
 
7419
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_file,&__pyx_n_s_name,0};
 
7420
    PyObject* values[2] = {0,0};
 
7421
    if (unlikely(__pyx_kwds)) {
 
7422
      Py_ssize_t kw_args;
 
7423
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
7424
      switch (pos_args) {
 
7425
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
7426
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
7427
        case  0: break;
 
7428
        default: goto __pyx_L5_argtuple_error;
 
7429
      }
 
7430
      kw_args = PyDict_Size(__pyx_kwds);
 
7431
      switch (pos_args) {
 
7432
        case  0:
 
7433
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_file)) != 0)) kw_args--;
 
7434
        else goto __pyx_L5_argtuple_error;
 
7435
        case  1:
 
7436
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
 
7437
        else {
 
7438
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7439
        }
 
7440
      }
 
7441
      if (unlikely(kw_args > 0)) {
 
7442
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7443
      }
 
7444
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
 
7445
      goto __pyx_L5_argtuple_error;
 
7446
    } else {
 
7447
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
7448
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
7449
    }
 
7450
    __pyx_v_file = ((struct __pyx_obj_9adios_mpi_file *)values[0]);
 
7451
    __pyx_v_name = __Pyx_PyObject_AsString(values[1]); if (unlikely((!__pyx_v_name) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7452
  }
 
7453
  goto __pyx_L4_argument_unpacking_done;
 
7454
  __pyx_L5_argtuple_error:;
 
7455
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
7456
  __pyx_L3_error:;
 
7457
  __Pyx_AddTraceback("adios_mpi.var.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7458
  __Pyx_RefNannyFinishContext();
 
7459
  return -1;
 
7460
  __pyx_L4_argument_unpacking_done:;
 
7461
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_file), __pyx_ptype_9adios_mpi_file, 1, "file", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7462
  __pyx_r = __pyx_pf_9adios_mpi_3var___init__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self), __pyx_v_file, __pyx_v_name);
 
7463
 
 
7464
  /* function exit code */
 
7465
  goto __pyx_L0;
 
7466
  __pyx_L1_error:;
 
7467
  __pyx_r = -1;
 
7468
  __pyx_L0:;
 
7469
  __Pyx_RefNannyFinishContext();
 
7470
  return __pyx_r;
 
7471
}
 
7472
 
 
7473
static int __pyx_pf_9adios_mpi_3var___init__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, struct __pyx_obj_9adios_mpi_file *__pyx_v_file, char *__pyx_v_name) {
 
7474
  int __pyx_v_i;
 
7475
  int __pyx_r;
 
7476
  __Pyx_RefNannyDeclarations
 
7477
  PyObject *__pyx_t_1 = NULL;
 
7478
  int __pyx_t_2;
 
7479
  int __pyx_t_3;
 
7480
  PyObject *__pyx_t_4 = NULL;
 
7481
  int __pyx_lineno = 0;
 
7482
  const char *__pyx_filename = NULL;
 
7483
  int __pyx_clineno = 0;
 
7484
  __Pyx_RefNannySetupContext("__init__", 0);
 
7485
 
 
7486
  /* "adios_mpi.pyx":496
 
7487
 * 
 
7488
 *     def __init__(self, file file, char * name):
 
7489
 *         self.file = file             # <<<<<<<<<<<<<<
 
7490
 *         self.vp = NULL
 
7491
 * 
 
7492
 */
 
7493
  __Pyx_INCREF(((PyObject *)__pyx_v_file));
 
7494
  __Pyx_GIVEREF(((PyObject *)__pyx_v_file));
 
7495
  __Pyx_GOTREF(__pyx_v_self->file);
 
7496
  __Pyx_DECREF(((PyObject *)__pyx_v_self->file));
 
7497
  __pyx_v_self->file = __pyx_v_file;
 
7498
 
 
7499
  /* "adios_mpi.pyx":497
 
7500
 *     def __init__(self, file file, char * name):
 
7501
 *         self.file = file
 
7502
 *         self.vp = NULL             # <<<<<<<<<<<<<<
 
7503
 * 
 
7504
 *         assert self.file.fp != NULL, 'Not an open file'
 
7505
 */
 
7506
  __pyx_v_self->vp = NULL;
 
7507
 
 
7508
  /* "adios_mpi.pyx":499
 
7509
 *         self.vp = NULL
 
7510
 * 
 
7511
 *         assert self.file.fp != NULL, 'Not an open file'             # <<<<<<<<<<<<<<
 
7512
 *         self.vp = adios_inq_var(self.file.fp, name)
 
7513
 *         assert self.vp != NULL, 'Not a valid var'
 
7514
 */
 
7515
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
7516
  if (unlikely(!Py_OptimizeFlag)) {
 
7517
    if (unlikely(!((__pyx_v_self->file->fp != NULL) != 0))) {
 
7518
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Not_an_open_file);
 
7519
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7520
    }
 
7521
  }
 
7522
  #endif
 
7523
 
 
7524
  /* "adios_mpi.pyx":500
 
7525
 * 
 
7526
 *         assert self.file.fp != NULL, 'Not an open file'
 
7527
 *         self.vp = adios_inq_var(self.file.fp, name)             # <<<<<<<<<<<<<<
 
7528
 *         assert self.vp != NULL, 'Not a valid var'
 
7529
 * 
 
7530
 */
 
7531
  __pyx_v_self->vp = adios_inq_var(__pyx_v_self->file->fp, __pyx_v_name);
 
7532
 
 
7533
  /* "adios_mpi.pyx":501
 
7534
 *         assert self.file.fp != NULL, 'Not an open file'
 
7535
 *         self.vp = adios_inq_var(self.file.fp, name)
 
7536
 *         assert self.vp != NULL, 'Not a valid var'             # <<<<<<<<<<<<<<
 
7537
 * 
 
7538
 *         self.name = name
 
7539
 */
 
7540
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
7541
  if (unlikely(!Py_OptimizeFlag)) {
 
7542
    if (unlikely(!((__pyx_v_self->vp != NULL) != 0))) {
 
7543
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Not_a_valid_var);
 
7544
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7545
    }
 
7546
  }
 
7547
  #endif
 
7548
 
 
7549
  /* "adios_mpi.pyx":503
 
7550
 *         assert self.vp != NULL, 'Not a valid var'
 
7551
 * 
 
7552
 *         self.name = name             # <<<<<<<<<<<<<<
 
7553
 *         self.varid = self.vp.varid
 
7554
 *         self.type = adios2nptype(self.vp.type)
 
7555
 */
 
7556
  __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7557
  __Pyx_GOTREF(__pyx_t_1);
 
7558
  __Pyx_GIVEREF(__pyx_t_1);
 
7559
  __Pyx_GOTREF(__pyx_v_self->name);
 
7560
  __Pyx_DECREF(__pyx_v_self->name);
 
7561
  __pyx_v_self->name = ((PyObject*)__pyx_t_1);
 
7562
  __pyx_t_1 = 0;
 
7563
 
 
7564
  /* "adios_mpi.pyx":504
 
7565
 * 
 
7566
 *         self.name = name
 
7567
 *         self.varid = self.vp.varid             # <<<<<<<<<<<<<<
 
7568
 *         self.type = adios2nptype(self.vp.type)
 
7569
 *         self.ndim = self.vp.ndim
 
7570
 */
 
7571
  __pyx_t_2 = __pyx_v_self->vp->varid;
 
7572
  __pyx_v_self->varid = __pyx_t_2;
 
7573
 
 
7574
  /* "adios_mpi.pyx":505
 
7575
 *         self.name = name
 
7576
 *         self.varid = self.vp.varid
 
7577
 *         self.type = adios2nptype(self.vp.type)             # <<<<<<<<<<<<<<
 
7578
 *         self.ndim = self.vp.ndim
 
7579
 *         self.dims = tuple([self.vp.dims[i] for i in range(self.vp.ndim)])
 
7580
 */
 
7581
  __pyx_t_1 = ((PyObject *)__pyx_f_9adios_mpi_adios2nptype(__pyx_v_self->vp->type)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7582
  __Pyx_GOTREF(__pyx_t_1);
 
7583
  __Pyx_GIVEREF(__pyx_t_1);
 
7584
  __Pyx_GOTREF(__pyx_v_self->type);
 
7585
  __Pyx_DECREF(((PyObject *)__pyx_v_self->type));
 
7586
  __pyx_v_self->type = ((PyObject*)__pyx_t_1);
 
7587
  __pyx_t_1 = 0;
 
7588
 
 
7589
  /* "adios_mpi.pyx":506
 
7590
 *         self.varid = self.vp.varid
 
7591
 *         self.type = adios2nptype(self.vp.type)
 
7592
 *         self.ndim = self.vp.ndim             # <<<<<<<<<<<<<<
 
7593
 *         self.dims = tuple([self.vp.dims[i] for i in range(self.vp.ndim)])
 
7594
 *         self.nsteps = self.vp.nsteps
 
7595
 */
 
7596
  __pyx_t_2 = __pyx_v_self->vp->ndim;
 
7597
  __pyx_v_self->ndim = __pyx_t_2;
 
7598
 
 
7599
  /* "adios_mpi.pyx":507
 
7600
 *         self.type = adios2nptype(self.vp.type)
 
7601
 *         self.ndim = self.vp.ndim
 
7602
 *         self.dims = tuple([self.vp.dims[i] for i in range(self.vp.ndim)])             # <<<<<<<<<<<<<<
 
7603
 *         self.nsteps = self.vp.nsteps
 
7604
 * 
 
7605
 */
 
7606
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7607
  __Pyx_GOTREF(__pyx_t_1);
 
7608
  __pyx_t_2 = __pyx_v_self->vp->ndim;
 
7609
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
 
7610
    __pyx_v_i = __pyx_t_3;
 
7611
    __pyx_t_4 = __Pyx_PyInt_From_uint64_t((__pyx_v_self->vp->dims[__pyx_v_i])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7612
    __Pyx_GOTREF(__pyx_t_4);
 
7613
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7614
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
7615
  }
 
7616
  __pyx_t_4 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7617
  __Pyx_GOTREF(__pyx_t_4);
 
7618
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7619
  __Pyx_GIVEREF(__pyx_t_4);
 
7620
  __Pyx_GOTREF(__pyx_v_self->dims);
 
7621
  __Pyx_DECREF(__pyx_v_self->dims);
 
7622
  __pyx_v_self->dims = ((PyObject*)__pyx_t_4);
 
7623
  __pyx_t_4 = 0;
 
7624
 
 
7625
  /* "adios_mpi.pyx":508
 
7626
 *         self.ndim = self.vp.ndim
 
7627
 *         self.dims = tuple([self.vp.dims[i] for i in range(self.vp.ndim)])
 
7628
 *         self.nsteps = self.vp.nsteps             # <<<<<<<<<<<<<<
 
7629
 * 
 
7630
 *     def __del__(self):
 
7631
 */
 
7632
  __pyx_t_2 = __pyx_v_self->vp->nsteps;
 
7633
  __pyx_v_self->nsteps = __pyx_t_2;
 
7634
 
 
7635
  /* "adios_mpi.pyx":495
 
7636
 *     cpdef public int nsteps
 
7637
 * 
 
7638
 *     def __init__(self, file file, char * name):             # <<<<<<<<<<<<<<
 
7639
 *         self.file = file
 
7640
 *         self.vp = NULL
 
7641
 */
 
7642
 
 
7643
  /* function exit code */
 
7644
  __pyx_r = 0;
 
7645
  goto __pyx_L0;
 
7646
  __pyx_L1_error:;
 
7647
  __Pyx_XDECREF(__pyx_t_1);
 
7648
  __Pyx_XDECREF(__pyx_t_4);
 
7649
  __Pyx_AddTraceback("adios_mpi.var.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7650
  __pyx_r = -1;
 
7651
  __pyx_L0:;
 
7652
  __Pyx_RefNannyFinishContext();
 
7653
  return __pyx_r;
 
7654
}
 
7655
 
 
7656
/* "adios_mpi.pyx":510
 
7657
 *         self.nsteps = self.vp.nsteps
 
7658
 * 
 
7659
 *     def __del__(self):             # <<<<<<<<<<<<<<
 
7660
 *         self.close()
 
7661
 * 
 
7662
 */
 
7663
 
 
7664
/* Python wrapper */
 
7665
static PyObject *__pyx_pw_9adios_mpi_3var_3__del__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 
7666
static PyObject *__pyx_pw_9adios_mpi_3var_3__del__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
 
7667
  PyObject *__pyx_r = 0;
 
7668
  __Pyx_RefNannyDeclarations
 
7669
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
 
7670
  __pyx_r = __pyx_pf_9adios_mpi_3var_2__del__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
7671
 
 
7672
  /* function exit code */
 
7673
  __Pyx_RefNannyFinishContext();
 
7674
  return __pyx_r;
 
7675
}
 
7676
 
 
7677
static PyObject *__pyx_pf_9adios_mpi_3var_2__del__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
7678
  PyObject *__pyx_r = NULL;
 
7679
  __Pyx_RefNannyDeclarations
 
7680
  PyObject *__pyx_t_1 = NULL;
 
7681
  int __pyx_lineno = 0;
 
7682
  const char *__pyx_filename = NULL;
 
7683
  int __pyx_clineno = 0;
 
7684
  __Pyx_RefNannySetupContext("__del__", 0);
 
7685
 
 
7686
  /* "adios_mpi.pyx":511
 
7687
 * 
 
7688
 *     def __del__(self):
 
7689
 *         self.close()             # <<<<<<<<<<<<<<
 
7690
 * 
 
7691
 *     cpdef close(self):
 
7692
 */
 
7693
  __pyx_t_1 = ((struct __pyx_vtabstruct_9adios_mpi_var *)__pyx_v_self->__pyx_vtab)->close(__pyx_v_self, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7694
  __Pyx_GOTREF(__pyx_t_1);
 
7695
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7696
 
 
7697
  /* "adios_mpi.pyx":510
 
7698
 *         self.nsteps = self.vp.nsteps
 
7699
 * 
 
7700
 *     def __del__(self):             # <<<<<<<<<<<<<<
 
7701
 *         self.close()
 
7702
 * 
 
7703
 */
 
7704
 
 
7705
  /* function exit code */
 
7706
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
7707
  goto __pyx_L0;
 
7708
  __pyx_L1_error:;
 
7709
  __Pyx_XDECREF(__pyx_t_1);
 
7710
  __Pyx_AddTraceback("adios_mpi.var.__del__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7711
  __pyx_r = NULL;
 
7712
  __pyx_L0:;
 
7713
  __Pyx_XGIVEREF(__pyx_r);
 
7714
  __Pyx_RefNannyFinishContext();
 
7715
  return __pyx_r;
 
7716
}
 
7717
 
 
7718
/* "adios_mpi.pyx":513
 
7719
 *         self.close()
 
7720
 * 
 
7721
 *     cpdef close(self):             # <<<<<<<<<<<<<<
 
7722
 *         assert self.vp != NULL, 'Not an open var'
 
7723
 *         adios_free_varinfo(self.vp)
 
7724
 */
 
7725
 
 
7726
static PyObject *__pyx_pw_9adios_mpi_3var_5close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 
7727
static PyObject *__pyx_f_9adios_mpi_3var_close(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, int __pyx_skip_dispatch) {
 
7728
  PyObject *__pyx_r = NULL;
 
7729
  __Pyx_RefNannyDeclarations
 
7730
  PyObject *__pyx_t_1 = NULL;
 
7731
  PyObject *__pyx_t_2 = NULL;
 
7732
  int __pyx_lineno = 0;
 
7733
  const char *__pyx_filename = NULL;
 
7734
  int __pyx_clineno = 0;
 
7735
  __Pyx_RefNannySetupContext("close", 0);
 
7736
  /* Check if called by wrapper */
 
7737
  if (unlikely(__pyx_skip_dispatch)) ;
 
7738
  /* Check if overridden in Python */
 
7739
  else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
 
7740
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_close); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7741
    __Pyx_GOTREF(__pyx_t_1);
 
7742
    if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_9adios_mpi_3var_5close)) {
 
7743
      __Pyx_XDECREF(__pyx_r);
 
7744
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7745
      __Pyx_GOTREF(__pyx_t_2);
 
7746
      __pyx_r = __pyx_t_2;
 
7747
      __pyx_t_2 = 0;
 
7748
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7749
      goto __pyx_L0;
 
7750
    }
 
7751
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7752
  }
 
7753
 
 
7754
  /* "adios_mpi.pyx":514
 
7755
 * 
 
7756
 *     cpdef close(self):
 
7757
 *         assert self.vp != NULL, 'Not an open var'             # <<<<<<<<<<<<<<
 
7758
 *         adios_free_varinfo(self.vp)
 
7759
 *         self.vp = NULL
 
7760
 */
 
7761
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
7762
  if (unlikely(!Py_OptimizeFlag)) {
 
7763
    if (unlikely(!((__pyx_v_self->vp != NULL) != 0))) {
 
7764
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Not_an_open_var);
 
7765
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7766
    }
 
7767
  }
 
7768
  #endif
 
7769
 
 
7770
  /* "adios_mpi.pyx":515
 
7771
 *     cpdef close(self):
 
7772
 *         assert self.vp != NULL, 'Not an open var'
 
7773
 *         adios_free_varinfo(self.vp)             # <<<<<<<<<<<<<<
 
7774
 *         self.vp = NULL
 
7775
 * 
 
7776
 */
 
7777
  adios_free_varinfo(__pyx_v_self->vp);
 
7778
 
 
7779
  /* "adios_mpi.pyx":516
 
7780
 *         assert self.vp != NULL, 'Not an open var'
 
7781
 *         adios_free_varinfo(self.vp)
 
7782
 *         self.vp = NULL             # <<<<<<<<<<<<<<
 
7783
 * 
 
7784
 *     cpdef read(self, tuple offset = (), tuple count = (), from_steps = 0, nsteps = 1):
 
7785
 */
 
7786
  __pyx_v_self->vp = NULL;
 
7787
 
 
7788
  /* "adios_mpi.pyx":513
 
7789
 *         self.close()
 
7790
 * 
 
7791
 *     cpdef close(self):             # <<<<<<<<<<<<<<
 
7792
 *         assert self.vp != NULL, 'Not an open var'
 
7793
 *         adios_free_varinfo(self.vp)
 
7794
 */
 
7795
 
 
7796
  /* function exit code */
 
7797
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
7798
  goto __pyx_L0;
 
7799
  __pyx_L1_error:;
 
7800
  __Pyx_XDECREF(__pyx_t_1);
 
7801
  __Pyx_XDECREF(__pyx_t_2);
 
7802
  __Pyx_AddTraceback("adios_mpi.var.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7803
  __pyx_r = 0;
 
7804
  __pyx_L0:;
 
7805
  __Pyx_XGIVEREF(__pyx_r);
 
7806
  __Pyx_RefNannyFinishContext();
 
7807
  return __pyx_r;
 
7808
}
 
7809
 
 
7810
/* Python wrapper */
 
7811
static PyObject *__pyx_pw_9adios_mpi_3var_5close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 
7812
static PyObject *__pyx_pw_9adios_mpi_3var_5close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
 
7813
  PyObject *__pyx_r = 0;
 
7814
  __Pyx_RefNannyDeclarations
 
7815
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
 
7816
  __pyx_r = __pyx_pf_9adios_mpi_3var_4close(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
7817
 
 
7818
  /* function exit code */
 
7819
  __Pyx_RefNannyFinishContext();
 
7820
  return __pyx_r;
 
7821
}
 
7822
 
 
7823
static PyObject *__pyx_pf_9adios_mpi_3var_4close(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
7824
  PyObject *__pyx_r = NULL;
 
7825
  __Pyx_RefNannyDeclarations
 
7826
  PyObject *__pyx_t_1 = NULL;
 
7827
  int __pyx_lineno = 0;
 
7828
  const char *__pyx_filename = NULL;
 
7829
  int __pyx_clineno = 0;
 
7830
  __Pyx_RefNannySetupContext("close", 0);
 
7831
  __Pyx_XDECREF(__pyx_r);
 
7832
  __pyx_t_1 = ((struct __pyx_vtabstruct_9adios_mpi_var *)__pyx_v_self->__pyx_vtab)->close(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7833
  __Pyx_GOTREF(__pyx_t_1);
 
7834
  __pyx_r = __pyx_t_1;
 
7835
  __pyx_t_1 = 0;
 
7836
  goto __pyx_L0;
 
7837
 
 
7838
  /* function exit code */
 
7839
  __pyx_L1_error:;
 
7840
  __Pyx_XDECREF(__pyx_t_1);
 
7841
  __Pyx_AddTraceback("adios_mpi.var.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
7842
  __pyx_r = NULL;
 
7843
  __pyx_L0:;
 
7844
  __Pyx_XGIVEREF(__pyx_r);
 
7845
  __Pyx_RefNannyFinishContext();
 
7846
  return __pyx_r;
 
7847
}
 
7848
 
 
7849
/* "adios_mpi.pyx":518
 
7850
 *         self.vp = NULL
 
7851
 * 
 
7852
 *     cpdef read(self, tuple offset = (), tuple count = (), from_steps = 0, nsteps = 1):             # <<<<<<<<<<<<<<
 
7853
 *         assert self.type is not None, 'Data type is not supported yet'
 
7854
 *         assert from_steps + nsteps <= self.nsteps, 'Step index is out of range'
 
7855
 */
 
7856
 
 
7857
static PyObject *__pyx_pw_9adios_mpi_3var_7read(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
7858
static PyObject *__pyx_f_9adios_mpi_3var_read(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_3var_read *__pyx_optional_args) {
 
7859
  PyObject *__pyx_v_offset = ((PyObject*)__pyx_empty_tuple);
 
7860
  PyObject *__pyx_v_count = ((PyObject*)__pyx_empty_tuple);
 
7861
  PyObject *__pyx_v_from_steps = ((PyObject *)__pyx_int_0);
 
7862
  PyObject *__pyx_v_nsteps = ((PyObject *)__pyx_int_1);
 
7863
  PyObject *__pyx_v_lshape = 0;
 
7864
  PyArrayObject *__pyx_v_npshape = 0;
 
7865
  PyArrayObject *__pyx_v_npoffset = 0;
 
7866
  PyArrayObject *__pyx_v_npcount = 0;
 
7867
  PyObject *__pyx_v_shape = NULL;
 
7868
  PyArrayObject *__pyx_v_var = 0;
 
7869
  ADIOS_SELECTION *__pyx_v_sel;
 
7870
  int __pyx_v_i;
 
7871
  PyObject *__pyx_r = NULL;
 
7872
  __Pyx_RefNannyDeclarations
 
7873
  PyObject *__pyx_t_1 = NULL;
 
7874
  PyObject *__pyx_t_2 = NULL;
 
7875
  PyObject *__pyx_t_3 = NULL;
 
7876
  int __pyx_t_4;
 
7877
  int __pyx_t_5;
 
7878
  int __pyx_t_6;
 
7879
  PyObject *__pyx_t_7 = NULL;
 
7880
  PyObject *__pyx_t_8 = NULL;
 
7881
  Py_ssize_t __pyx_t_9;
 
7882
  int __pyx_t_10;
 
7883
  int __pyx_lineno = 0;
 
7884
  const char *__pyx_filename = NULL;
 
7885
  int __pyx_clineno = 0;
 
7886
  __Pyx_RefNannySetupContext("read", 0);
 
7887
  if (__pyx_optional_args) {
 
7888
    if (__pyx_optional_args->__pyx_n > 0) {
 
7889
      __pyx_v_offset = __pyx_optional_args->offset;
 
7890
      if (__pyx_optional_args->__pyx_n > 1) {
 
7891
        __pyx_v_count = __pyx_optional_args->count;
 
7892
        if (__pyx_optional_args->__pyx_n > 2) {
 
7893
          __pyx_v_from_steps = __pyx_optional_args->from_steps;
 
7894
          if (__pyx_optional_args->__pyx_n > 3) {
 
7895
            __pyx_v_nsteps = __pyx_optional_args->nsteps;
 
7896
          }
 
7897
        }
 
7898
      }
 
7899
    }
 
7900
  }
 
7901
  /* Check if called by wrapper */
 
7902
  if (unlikely(__pyx_skip_dispatch)) ;
 
7903
  /* Check if overridden in Python */
 
7904
  else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
 
7905
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_read); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7906
    __Pyx_GOTREF(__pyx_t_1);
 
7907
    if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_9adios_mpi_3var_7read)) {
 
7908
      __Pyx_XDECREF(__pyx_r);
 
7909
      __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7910
      __Pyx_GOTREF(__pyx_t_2);
 
7911
      __Pyx_INCREF(__pyx_v_offset);
 
7912
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_offset);
 
7913
      __Pyx_GIVEREF(__pyx_v_offset);
 
7914
      __Pyx_INCREF(__pyx_v_count);
 
7915
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_count);
 
7916
      __Pyx_GIVEREF(__pyx_v_count);
 
7917
      __Pyx_INCREF(__pyx_v_from_steps);
 
7918
      PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_from_steps);
 
7919
      __Pyx_GIVEREF(__pyx_v_from_steps);
 
7920
      __Pyx_INCREF(__pyx_v_nsteps);
 
7921
      PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_nsteps);
 
7922
      __Pyx_GIVEREF(__pyx_v_nsteps);
 
7923
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7924
      __Pyx_GOTREF(__pyx_t_3);
 
7925
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
7926
      __pyx_r = __pyx_t_3;
 
7927
      __pyx_t_3 = 0;
 
7928
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7929
      goto __pyx_L0;
 
7930
    }
 
7931
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7932
  }
 
7933
 
 
7934
  /* "adios_mpi.pyx":519
 
7935
 * 
 
7936
 *     cpdef read(self, tuple offset = (), tuple count = (), from_steps = 0, nsteps = 1):
 
7937
 *         assert self.type is not None, 'Data type is not supported yet'             # <<<<<<<<<<<<<<
 
7938
 *         assert from_steps + nsteps <= self.nsteps, 'Step index is out of range'
 
7939
 * 
 
7940
 */
 
7941
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
7942
  if (unlikely(!Py_OptimizeFlag)) {
 
7943
    __pyx_t_4 = (__pyx_v_self->type != ((PyObject*)Py_None));
 
7944
    if (unlikely(!(__pyx_t_4 != 0))) {
 
7945
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Data_type_is_not_supported_yet);
 
7946
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7947
    }
 
7948
  }
 
7949
  #endif
 
7950
 
 
7951
  /* "adios_mpi.pyx":520
 
7952
 *     cpdef read(self, tuple offset = (), tuple count = (), from_steps = 0, nsteps = 1):
 
7953
 *         assert self.type is not None, 'Data type is not supported yet'
 
7954
 *         assert from_steps + nsteps <= self.nsteps, 'Step index is out of range'             # <<<<<<<<<<<<<<
 
7955
 * 
 
7956
 *         cdef list lshape = [self.vp.dims[i] for i in range(self.vp.ndim)]
 
7957
 */
 
7958
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
7959
  if (unlikely(!Py_OptimizeFlag)) {
 
7960
    __pyx_t_1 = PyNumber_Add(__pyx_v_from_steps, __pyx_v_nsteps); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7961
    __Pyx_GOTREF(__pyx_t_1);
 
7962
    __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->nsteps); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7963
    __Pyx_GOTREF(__pyx_t_3);
 
7964
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7965
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
7966
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
7967
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7968
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
7969
    if (unlikely(!__pyx_t_4)) {
 
7970
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Step_index_is_out_of_range);
 
7971
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7972
    }
 
7973
  }
 
7974
  #endif
 
7975
 
 
7976
  /* "adios_mpi.pyx":522
 
7977
 *         assert from_steps + nsteps <= self.nsteps, 'Step index is out of range'
 
7978
 * 
 
7979
 *         cdef list lshape = [self.vp.dims[i] for i in range(self.vp.ndim)]             # <<<<<<<<<<<<<<
 
7980
 *         cdef np.ndarray npshape = np.array(lshape, dtype=np.int64)
 
7981
 * 
 
7982
 */
 
7983
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7984
  __Pyx_GOTREF(__pyx_t_2);
 
7985
  __pyx_t_5 = __pyx_v_self->vp->ndim;
 
7986
  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
 
7987
    __pyx_v_i = __pyx_t_6;
 
7988
    __pyx_t_3 = __Pyx_PyInt_From_uint64_t((__pyx_v_self->vp->dims[__pyx_v_i])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7989
    __Pyx_GOTREF(__pyx_t_3);
 
7990
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
7991
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
7992
  }
 
7993
  __pyx_v_lshape = ((PyObject*)__pyx_t_2);
 
7994
  __pyx_t_2 = 0;
 
7995
 
 
7996
  /* "adios_mpi.pyx":523
 
7997
 * 
 
7998
 *         cdef list lshape = [self.vp.dims[i] for i in range(self.vp.ndim)]
 
7999
 *         cdef np.ndarray npshape = np.array(lshape, dtype=np.int64)             # <<<<<<<<<<<<<<
 
8000
 * 
 
8001
 *         cdef np.ndarray npoffset
 
8002
 */
 
8003
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8004
  __Pyx_GOTREF(__pyx_t_2);
 
8005
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8006
  __Pyx_GOTREF(__pyx_t_3);
 
8007
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
8008
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8009
  __Pyx_GOTREF(__pyx_t_2);
 
8010
  __Pyx_INCREF(__pyx_v_lshape);
 
8011
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_lshape);
 
8012
  __Pyx_GIVEREF(__pyx_v_lshape);
 
8013
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8014
  __Pyx_GOTREF(__pyx_t_1);
 
8015
  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8016
  __Pyx_GOTREF(__pyx_t_7);
 
8017
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8018
  __Pyx_GOTREF(__pyx_t_8);
 
8019
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
8020
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8021
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
8022
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8023
  __Pyx_GOTREF(__pyx_t_8);
 
8024
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
8025
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
8026
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
8027
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8028
  __pyx_v_npshape = ((PyArrayObject *)__pyx_t_8);
 
8029
  __pyx_t_8 = 0;
 
8030
 
 
8031
  /* "adios_mpi.pyx":526
 
8032
 * 
 
8033
 *         cdef np.ndarray npoffset
 
8034
 *         if len(offset) == 0:             # <<<<<<<<<<<<<<
 
8035
 *             npoffset = npshape.copy()
 
8036
 *             npoffset.fill(0)
 
8037
 */
 
8038
  if (unlikely(__pyx_v_offset == Py_None)) {
 
8039
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
 
8040
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8041
  }
 
8042
  __pyx_t_9 = PyTuple_GET_SIZE(__pyx_v_offset); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8043
  __pyx_t_4 = ((__pyx_t_9 == 0) != 0);
 
8044
  if (__pyx_t_4) {
 
8045
 
 
8046
    /* "adios_mpi.pyx":527
 
8047
 *         cdef np.ndarray npoffset
 
8048
 *         if len(offset) == 0:
 
8049
 *             npoffset = npshape.copy()             # <<<<<<<<<<<<<<
 
8050
 *             npoffset.fill(0)
 
8051
 *         else:
 
8052
 */
 
8053
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_npshape), __pyx_n_s_copy); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8054
    __Pyx_GOTREF(__pyx_t_8);
 
8055
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8056
    __Pyx_GOTREF(__pyx_t_1);
 
8057
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
8058
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8059
    __pyx_v_npoffset = ((PyArrayObject *)__pyx_t_1);
 
8060
    __pyx_t_1 = 0;
 
8061
 
 
8062
    /* "adios_mpi.pyx":528
 
8063
 *         if len(offset) == 0:
 
8064
 *             npoffset = npshape.copy()
 
8065
 *             npoffset.fill(0)             # <<<<<<<<<<<<<<
 
8066
 *         else:
 
8067
 *             npoffset = np.array(offset, dtype=np.int64)
 
8068
 */
 
8069
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_npoffset), __pyx_n_s_fill); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8070
    __Pyx_GOTREF(__pyx_t_1);
 
8071
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8072
    __Pyx_GOTREF(__pyx_t_8);
 
8073
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
8074
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
8075
    goto __pyx_L5;
 
8076
  }
 
8077
  /*else*/ {
 
8078
 
 
8079
    /* "adios_mpi.pyx":530
 
8080
 *             npoffset.fill(0)
 
8081
 *         else:
 
8082
 *             npoffset = np.array(offset, dtype=np.int64)             # <<<<<<<<<<<<<<
 
8083
 * 
 
8084
 *         cdef np.ndarray npcount
 
8085
 */
 
8086
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8087
    __Pyx_GOTREF(__pyx_t_8);
 
8088
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_array); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8089
    __Pyx_GOTREF(__pyx_t_1);
 
8090
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
8091
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8092
    __Pyx_GOTREF(__pyx_t_8);
 
8093
    __Pyx_INCREF(__pyx_v_offset);
 
8094
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_offset);
 
8095
    __Pyx_GIVEREF(__pyx_v_offset);
 
8096
    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8097
    __Pyx_GOTREF(__pyx_t_2);
 
8098
    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8099
    __Pyx_GOTREF(__pyx_t_3);
 
8100
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_int64); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8101
    __Pyx_GOTREF(__pyx_t_7);
 
8102
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
8103
    if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8104
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
8105
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8106
    __Pyx_GOTREF(__pyx_t_7);
 
8107
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
8108
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
8109
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
8110
    if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8111
    __pyx_v_npoffset = ((PyArrayObject *)__pyx_t_7);
 
8112
    __pyx_t_7 = 0;
 
8113
  }
 
8114
  __pyx_L5:;
 
8115
 
 
8116
  /* "adios_mpi.pyx":533
 
8117
 * 
 
8118
 *         cdef np.ndarray npcount
 
8119
 *         if len(count) == 0:             # <<<<<<<<<<<<<<
 
8120
 *             npcount = npshape - npoffset
 
8121
 *         else:
 
8122
 */
 
8123
  if (unlikely(__pyx_v_count == Py_None)) {
 
8124
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
 
8125
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8126
  }
 
8127
  __pyx_t_9 = PyTuple_GET_SIZE(__pyx_v_count); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8128
  __pyx_t_4 = ((__pyx_t_9 == 0) != 0);
 
8129
  if (__pyx_t_4) {
 
8130
 
 
8131
    /* "adios_mpi.pyx":534
 
8132
 *         cdef np.ndarray npcount
 
8133
 *         if len(count) == 0:
 
8134
 *             npcount = npshape - npoffset             # <<<<<<<<<<<<<<
 
8135
 *         else:
 
8136
 *             npcount = np.array(count, dtype=np.int64)
 
8137
 */
 
8138
    __pyx_t_7 = PyNumber_Subtract(((PyObject *)__pyx_v_npshape), ((PyObject *)__pyx_v_npoffset)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8139
    __Pyx_GOTREF(__pyx_t_7);
 
8140
    if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8141
    __pyx_v_npcount = ((PyArrayObject *)__pyx_t_7);
 
8142
    __pyx_t_7 = 0;
 
8143
    goto __pyx_L6;
 
8144
  }
 
8145
  /*else*/ {
 
8146
 
 
8147
    /* "adios_mpi.pyx":536
 
8148
 *             npcount = npshape - npoffset
 
8149
 *         else:
 
8150
 *             npcount = np.array(count, dtype=np.int64)             # <<<<<<<<<<<<<<
 
8151
 * 
 
8152
 *         assert npshape.ndim == npoffset.ndim, 'Offset dimension mismatch'
 
8153
 */
 
8154
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8155
    __Pyx_GOTREF(__pyx_t_7);
 
8156
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8157
    __Pyx_GOTREF(__pyx_t_2);
 
8158
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
8159
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8160
    __Pyx_GOTREF(__pyx_t_7);
 
8161
    __Pyx_INCREF(__pyx_v_count);
 
8162
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_count);
 
8163
    __Pyx_GIVEREF(__pyx_v_count);
 
8164
    __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8165
    __Pyx_GOTREF(__pyx_t_8);
 
8166
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8167
    __Pyx_GOTREF(__pyx_t_1);
 
8168
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int64); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8169
    __Pyx_GOTREF(__pyx_t_3);
 
8170
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
8171
    if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8172
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
8173
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8174
    __Pyx_GOTREF(__pyx_t_3);
 
8175
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
8176
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
8177
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
8178
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8179
    __pyx_v_npcount = ((PyArrayObject *)__pyx_t_3);
 
8180
    __pyx_t_3 = 0;
 
8181
  }
 
8182
  __pyx_L6:;
 
8183
 
 
8184
  /* "adios_mpi.pyx":538
 
8185
 *             npcount = np.array(count, dtype=np.int64)
 
8186
 * 
 
8187
 *         assert npshape.ndim == npoffset.ndim, 'Offset dimension mismatch'             # <<<<<<<<<<<<<<
 
8188
 *         assert npshape.ndim == npcount.ndim, 'Count dimension mismatch.'
 
8189
 *         assert (npshape - npoffset >= npcount).all(), 'Count is larger than shape.'
 
8190
 */
 
8191
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
8192
  if (unlikely(!Py_OptimizeFlag)) {
 
8193
    if (unlikely(!((__pyx_v_npshape->nd == __pyx_v_npoffset->nd) != 0))) {
 
8194
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Offset_dimension_mismatch);
 
8195
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8196
    }
 
8197
  }
 
8198
  #endif
 
8199
 
 
8200
  /* "adios_mpi.pyx":539
 
8201
 * 
 
8202
 *         assert npshape.ndim == npoffset.ndim, 'Offset dimension mismatch'
 
8203
 *         assert npshape.ndim == npcount.ndim, 'Count dimension mismatch.'             # <<<<<<<<<<<<<<
 
8204
 *         assert (npshape - npoffset >= npcount).all(), 'Count is larger than shape.'
 
8205
 * 
 
8206
 */
 
8207
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
8208
  if (unlikely(!Py_OptimizeFlag)) {
 
8209
    if (unlikely(!((__pyx_v_npshape->nd == __pyx_v_npcount->nd) != 0))) {
 
8210
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Count_dimension_mismatch);
 
8211
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8212
    }
 
8213
  }
 
8214
  #endif
 
8215
 
 
8216
  /* "adios_mpi.pyx":540
 
8217
 *         assert npshape.ndim == npoffset.ndim, 'Offset dimension mismatch'
 
8218
 *         assert npshape.ndim == npcount.ndim, 'Count dimension mismatch.'
 
8219
 *         assert (npshape - npoffset >= npcount).all(), 'Count is larger than shape.'             # <<<<<<<<<<<<<<
 
8220
 * 
 
8221
 *         shape = list(npcount)
 
8222
 */
 
8223
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
8224
  if (unlikely(!Py_OptimizeFlag)) {
 
8225
    __pyx_t_3 = PyNumber_Subtract(((PyObject *)__pyx_v_npshape), ((PyObject *)__pyx_v_npoffset)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8226
    __Pyx_GOTREF(__pyx_t_3);
 
8227
    __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_v_npcount), Py_GE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8228
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
8229
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_all); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8230
    __Pyx_GOTREF(__pyx_t_3);
 
8231
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
8232
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8233
    __Pyx_GOTREF(__pyx_t_8);
 
8234
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
8235
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8236
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
8237
    if (unlikely(!__pyx_t_4)) {
 
8238
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Count_is_larger_than_shape);
 
8239
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8240
    }
 
8241
  }
 
8242
  #endif
 
8243
 
 
8244
  /* "adios_mpi.pyx":542
 
8245
 *         assert (npshape - npoffset >= npcount).all(), 'Count is larger than shape.'
 
8246
 * 
 
8247
 *         shape = list(npcount)             # <<<<<<<<<<<<<<
 
8248
 *         if (nsteps > 1):
 
8249
 *             shape.insert(0, nsteps)
 
8250
 */
 
8251
  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8252
  __Pyx_GOTREF(__pyx_t_8);
 
8253
  __Pyx_INCREF(((PyObject *)__pyx_v_npcount));
 
8254
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_npcount));
 
8255
  __Pyx_GIVEREF(((PyObject *)__pyx_v_npcount));
 
8256
  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8257
  __Pyx_GOTREF(__pyx_t_3);
 
8258
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
8259
  __pyx_v_shape = ((PyObject*)__pyx_t_3);
 
8260
  __pyx_t_3 = 0;
 
8261
 
 
8262
  /* "adios_mpi.pyx":543
 
8263
 * 
 
8264
 *         shape = list(npcount)
 
8265
 *         if (nsteps > 1):             # <<<<<<<<<<<<<<
 
8266
 *             shape.insert(0, nsteps)
 
8267
 *         cdef np.ndarray var = np.zeros(shape, dtype=self.type)
 
8268
 */
 
8269
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_nsteps, __pyx_int_1, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8270
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8271
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
8272
  if (__pyx_t_4) {
 
8273
 
 
8274
    /* "adios_mpi.pyx":544
 
8275
 *         shape = list(npcount)
 
8276
 *         if (nsteps > 1):
 
8277
 *             shape.insert(0, nsteps)             # <<<<<<<<<<<<<<
 
8278
 *         cdef np.ndarray var = np.zeros(shape, dtype=self.type)
 
8279
 * 
 
8280
 */
 
8281
    __pyx_t_10 = PyList_Insert(__pyx_v_shape, 0, __pyx_v_nsteps); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8282
    goto __pyx_L7;
 
8283
  }
 
8284
  __pyx_L7:;
 
8285
 
 
8286
  /* "adios_mpi.pyx":545
 
8287
 *         if (nsteps > 1):
 
8288
 *             shape.insert(0, nsteps)
 
8289
 *         cdef np.ndarray var = np.zeros(shape, dtype=self.type)             # <<<<<<<<<<<<<<
 
8290
 * 
 
8291
 *         cdef ADIOS_SELECTION * sel
 
8292
 */
 
8293
  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_np); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8294
  __Pyx_GOTREF(__pyx_t_3);
 
8295
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8296
  __Pyx_GOTREF(__pyx_t_8);
 
8297
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
8298
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8299
  __Pyx_GOTREF(__pyx_t_3);
 
8300
  __Pyx_INCREF(__pyx_v_shape);
 
8301
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_shape);
 
8302
  __Pyx_GIVEREF(__pyx_v_shape);
 
8303
  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8304
  __Pyx_GOTREF(__pyx_t_7);
 
8305
  if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, ((PyObject *)__pyx_v_self->type)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8306
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8307
  __Pyx_GOTREF(__pyx_t_2);
 
8308
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
8309
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
8310
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
8311
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8312
  __pyx_v_var = ((PyArrayObject *)__pyx_t_2);
 
8313
  __pyx_t_2 = 0;
 
8314
 
 
8315
  /* "adios_mpi.pyx":548
 
8316
 * 
 
8317
 *         cdef ADIOS_SELECTION * sel
 
8318
 *         sel = adios_selection_boundingbox (self.vp.ndim, <uint64_t *> npoffset.data, <uint64_t *> npcount.data)             # <<<<<<<<<<<<<<
 
8319
 * 
 
8320
 *         adios_schedule_read_byid (self.file.fp, sel, self.vp.varid, from_steps, nsteps, <void *> var.data)
 
8321
 */
 
8322
  __pyx_v_sel = adios_selection_boundingbox(__pyx_v_self->vp->ndim, ((uint64_t *)__pyx_v_npoffset->data), ((uint64_t *)__pyx_v_npcount->data));
 
8323
 
 
8324
  /* "adios_mpi.pyx":550
 
8325
 *         sel = adios_selection_boundingbox (self.vp.ndim, <uint64_t *> npoffset.data, <uint64_t *> npcount.data)
 
8326
 * 
 
8327
 *         adios_schedule_read_byid (self.file.fp, sel, self.vp.varid, from_steps, nsteps, <void *> var.data)             # <<<<<<<<<<<<<<
 
8328
 *         adios_perform_reads(self.file.fp, 1)
 
8329
 * 
 
8330
 */
 
8331
  __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_v_from_steps); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8332
  __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_v_nsteps); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8333
  adios_schedule_read_byid(__pyx_v_self->file->fp, __pyx_v_sel, __pyx_v_self->vp->varid, __pyx_t_5, __pyx_t_6, ((void *)__pyx_v_var->data));
 
8334
 
 
8335
  /* "adios_mpi.pyx":551
 
8336
 * 
 
8337
 *         adios_schedule_read_byid (self.file.fp, sel, self.vp.varid, from_steps, nsteps, <void *> var.data)
 
8338
 *         adios_perform_reads(self.file.fp, 1)             # <<<<<<<<<<<<<<
 
8339
 * 
 
8340
 *         return var
 
8341
 */
 
8342
  adios_perform_reads(__pyx_v_self->file->fp, 1);
 
8343
 
 
8344
  /* "adios_mpi.pyx":553
 
8345
 *         adios_perform_reads(self.file.fp, 1)
 
8346
 * 
 
8347
 *         return var             # <<<<<<<<<<<<<<
 
8348
 * 
 
8349
 *     """ Print self """
 
8350
 */
 
8351
  __Pyx_XDECREF(__pyx_r);
 
8352
  __Pyx_INCREF(((PyObject *)__pyx_v_var));
 
8353
  __pyx_r = ((PyObject *)__pyx_v_var);
 
8354
  goto __pyx_L0;
 
8355
 
 
8356
  /* "adios_mpi.pyx":518
 
8357
 *         self.vp = NULL
 
8358
 * 
 
8359
 *     cpdef read(self, tuple offset = (), tuple count = (), from_steps = 0, nsteps = 1):             # <<<<<<<<<<<<<<
 
8360
 *         assert self.type is not None, 'Data type is not supported yet'
 
8361
 *         assert from_steps + nsteps <= self.nsteps, 'Step index is out of range'
 
8362
 */
 
8363
 
 
8364
  /* function exit code */
 
8365
  __pyx_L1_error:;
 
8366
  __Pyx_XDECREF(__pyx_t_1);
 
8367
  __Pyx_XDECREF(__pyx_t_2);
 
8368
  __Pyx_XDECREF(__pyx_t_3);
 
8369
  __Pyx_XDECREF(__pyx_t_7);
 
8370
  __Pyx_XDECREF(__pyx_t_8);
 
8371
  __Pyx_AddTraceback("adios_mpi.var.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
8372
  __pyx_r = 0;
 
8373
  __pyx_L0:;
 
8374
  __Pyx_XDECREF(__pyx_v_lshape);
 
8375
  __Pyx_XDECREF((PyObject *)__pyx_v_npshape);
 
8376
  __Pyx_XDECREF((PyObject *)__pyx_v_npoffset);
 
8377
  __Pyx_XDECREF((PyObject *)__pyx_v_npcount);
 
8378
  __Pyx_XDECREF(__pyx_v_shape);
 
8379
  __Pyx_XDECREF((PyObject *)__pyx_v_var);
 
8380
  __Pyx_XGIVEREF(__pyx_r);
 
8381
  __Pyx_RefNannyFinishContext();
 
8382
  return __pyx_r;
 
8383
}
 
8384
 
 
8385
/* Python wrapper */
 
8386
static PyObject *__pyx_pw_9adios_mpi_3var_7read(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
8387
static PyObject *__pyx_pw_9adios_mpi_3var_7read(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
8388
  PyObject *__pyx_v_offset = 0;
 
8389
  PyObject *__pyx_v_count = 0;
 
8390
  PyObject *__pyx_v_from_steps = 0;
 
8391
  PyObject *__pyx_v_nsteps = 0;
 
8392
  int __pyx_lineno = 0;
 
8393
  const char *__pyx_filename = NULL;
 
8394
  int __pyx_clineno = 0;
 
8395
  PyObject *__pyx_r = 0;
 
8396
  __Pyx_RefNannyDeclarations
 
8397
  __Pyx_RefNannySetupContext("read (wrapper)", 0);
 
8398
  {
 
8399
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_offset,&__pyx_n_s_count,&__pyx_n_s_from_steps,&__pyx_n_s_nsteps,0};
 
8400
    PyObject* values[4] = {0,0,0,0};
 
8401
    values[0] = ((PyObject*)__pyx_empty_tuple);
 
8402
    values[1] = ((PyObject*)__pyx_empty_tuple);
 
8403
    values[2] = ((PyObject *)__pyx_int_0);
 
8404
    values[3] = ((PyObject *)__pyx_int_1);
 
8405
    if (unlikely(__pyx_kwds)) {
 
8406
      Py_ssize_t kw_args;
 
8407
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
8408
      switch (pos_args) {
 
8409
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 
8410
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
8411
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
8412
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
8413
        case  0: break;
 
8414
        default: goto __pyx_L5_argtuple_error;
 
8415
      }
 
8416
      kw_args = PyDict_Size(__pyx_kwds);
 
8417
      switch (pos_args) {
 
8418
        case  0:
 
8419
        if (kw_args > 0) {
 
8420
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_offset);
 
8421
          if (value) { values[0] = value; kw_args--; }
 
8422
        }
 
8423
        case  1:
 
8424
        if (kw_args > 0) {
 
8425
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_count);
 
8426
          if (value) { values[1] = value; kw_args--; }
 
8427
        }
 
8428
        case  2:
 
8429
        if (kw_args > 0) {
 
8430
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_from_steps);
 
8431
          if (value) { values[2] = value; kw_args--; }
 
8432
        }
 
8433
        case  3:
 
8434
        if (kw_args > 0) {
 
8435
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nsteps);
 
8436
          if (value) { values[3] = value; kw_args--; }
 
8437
        }
 
8438
      }
 
8439
      if (unlikely(kw_args > 0)) {
 
8440
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "read") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
8441
      }
 
8442
    } else {
 
8443
      switch (PyTuple_GET_SIZE(__pyx_args)) {
 
8444
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
 
8445
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
 
8446
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
8447
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
8448
        case  0: break;
 
8449
        default: goto __pyx_L5_argtuple_error;
 
8450
      }
 
8451
    }
 
8452
    __pyx_v_offset = ((PyObject*)values[0]);
 
8453
    __pyx_v_count = ((PyObject*)values[1]);
 
8454
    __pyx_v_from_steps = values[2];
 
8455
    __pyx_v_nsteps = values[3];
 
8456
  }
 
8457
  goto __pyx_L4_argument_unpacking_done;
 
8458
  __pyx_L5_argtuple_error:;
 
8459
  __Pyx_RaiseArgtupleInvalid("read", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
8460
  __pyx_L3_error:;
 
8461
  __Pyx_AddTraceback("adios_mpi.var.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
8462
  __Pyx_RefNannyFinishContext();
 
8463
  return NULL;
 
8464
  __pyx_L4_argument_unpacking_done:;
 
8465
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_offset), (&PyTuple_Type), 1, "offset", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8466
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_count), (&PyTuple_Type), 1, "count", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8467
  __pyx_r = __pyx_pf_9adios_mpi_3var_6read(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self), __pyx_v_offset, __pyx_v_count, __pyx_v_from_steps, __pyx_v_nsteps);
 
8468
 
 
8469
  /* function exit code */
 
8470
  goto __pyx_L0;
 
8471
  __pyx_L1_error:;
 
8472
  __pyx_r = NULL;
 
8473
  __pyx_L0:;
 
8474
  __Pyx_RefNannyFinishContext();
 
8475
  return __pyx_r;
 
8476
}
 
8477
 
 
8478
static PyObject *__pyx_pf_9adios_mpi_3var_6read(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_offset, PyObject *__pyx_v_count, PyObject *__pyx_v_from_steps, PyObject *__pyx_v_nsteps) {
 
8479
  PyObject *__pyx_r = NULL;
 
8480
  __Pyx_RefNannyDeclarations
 
8481
  PyObject *__pyx_t_1 = NULL;
 
8482
  struct __pyx_opt_args_9adios_mpi_3var_read __pyx_t_2;
 
8483
  int __pyx_lineno = 0;
 
8484
  const char *__pyx_filename = NULL;
 
8485
  int __pyx_clineno = 0;
 
8486
  __Pyx_RefNannySetupContext("read", 0);
 
8487
  __Pyx_XDECREF(__pyx_r);
 
8488
  __pyx_t_2.__pyx_n = 4;
 
8489
  __pyx_t_2.offset = __pyx_v_offset;
 
8490
  __pyx_t_2.count = __pyx_v_count;
 
8491
  __pyx_t_2.from_steps = __pyx_v_from_steps;
 
8492
  __pyx_t_2.nsteps = __pyx_v_nsteps;
 
8493
  __pyx_t_1 = ((struct __pyx_vtabstruct_9adios_mpi_var *)__pyx_v_self->__pyx_vtab)->read(__pyx_v_self, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8494
  __Pyx_GOTREF(__pyx_t_1);
 
8495
  __pyx_r = __pyx_t_1;
 
8496
  __pyx_t_1 = 0;
 
8497
  goto __pyx_L0;
 
8498
 
 
8499
  /* function exit code */
 
8500
  __pyx_L1_error:;
 
8501
  __Pyx_XDECREF(__pyx_t_1);
 
8502
  __Pyx_AddTraceback("adios_mpi.var.read", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
8503
  __pyx_r = NULL;
 
8504
  __pyx_L0:;
 
8505
  __Pyx_XGIVEREF(__pyx_r);
 
8506
  __Pyx_RefNannyFinishContext();
 
8507
  return __pyx_r;
 
8508
}
 
8509
 
 
8510
/* "adios_mpi.pyx":556
 
8511
 * 
 
8512
 *     """ Print self """
 
8513
 *     cpdef printself(self):             # <<<<<<<<<<<<<<
 
8514
 *         assert self.vp != NULL, 'Not an open variable'
 
8515
 *         print '=== AdiosVariable ==='
 
8516
 */
 
8517
 
 
8518
static PyObject *__pyx_pw_9adios_mpi_3var_9printself(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 
8519
static PyObject *__pyx_f_9adios_mpi_3var_printself(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, int __pyx_skip_dispatch) {
 
8520
  PyObject *__pyx_r = NULL;
 
8521
  __Pyx_RefNannyDeclarations
 
8522
  PyObject *__pyx_t_1 = NULL;
 
8523
  PyObject *__pyx_t_2 = NULL;
 
8524
  int __pyx_lineno = 0;
 
8525
  const char *__pyx_filename = NULL;
 
8526
  int __pyx_clineno = 0;
 
8527
  __Pyx_RefNannySetupContext("printself", 0);
 
8528
  /* Check if called by wrapper */
 
8529
  if (unlikely(__pyx_skip_dispatch)) ;
 
8530
  /* Check if overridden in Python */
 
8531
  else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
 
8532
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_printself); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8533
    __Pyx_GOTREF(__pyx_t_1);
 
8534
    if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_9adios_mpi_3var_9printself)) {
 
8535
      __Pyx_XDECREF(__pyx_r);
 
8536
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8537
      __Pyx_GOTREF(__pyx_t_2);
 
8538
      __pyx_r = __pyx_t_2;
 
8539
      __pyx_t_2 = 0;
 
8540
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
8541
      goto __pyx_L0;
 
8542
    }
 
8543
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
8544
  }
 
8545
 
 
8546
  /* "adios_mpi.pyx":557
 
8547
 *     """ Print self """
 
8548
 *     cpdef printself(self):
 
8549
 *         assert self.vp != NULL, 'Not an open variable'             # <<<<<<<<<<<<<<
 
8550
 *         print '=== AdiosVariable ==='
 
8551
 *         print '%15s : %lu' % ('vp', <unsigned long> self.vp)
 
8552
 */
 
8553
  #ifndef CYTHON_WITHOUT_ASSERTIONS
 
8554
  if (unlikely(!Py_OptimizeFlag)) {
 
8555
    if (unlikely(!((__pyx_v_self->vp != NULL) != 0))) {
 
8556
      PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Not_an_open_variable);
 
8557
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8558
    }
 
8559
  }
 
8560
  #endif
 
8561
 
 
8562
  /* "adios_mpi.pyx":558
 
8563
 *     cpdef printself(self):
 
8564
 *         assert self.vp != NULL, 'Not an open variable'
 
8565
 *         print '=== AdiosVariable ==='             # <<<<<<<<<<<<<<
 
8566
 *         print '%15s : %lu' % ('vp', <unsigned long> self.vp)
 
8567
 *         print '%15s : %lu' % ('fp', <unsigned long> self.file.fp)
 
8568
 */
 
8569
  if (__Pyx_PrintOne(0, __pyx_kp_s_AdiosVariable) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8570
 
 
8571
  /* "adios_mpi.pyx":559
 
8572
 *         assert self.vp != NULL, 'Not an open variable'
 
8573
 *         print '=== AdiosVariable ==='
 
8574
 *         print '%15s : %lu' % ('vp', <unsigned long> self.vp)             # <<<<<<<<<<<<<<
 
8575
 *         print '%15s : %lu' % ('fp', <unsigned long> self.file.fp)
 
8576
 *         printvar(self.vp)
 
8577
 */
 
8578
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_long(((unsigned long)__pyx_v_self->vp)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8579
  __Pyx_GOTREF(__pyx_t_1);
 
8580
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8581
  __Pyx_GOTREF(__pyx_t_2);
 
8582
  __Pyx_INCREF(__pyx_n_s_vp);
 
8583
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_vp);
 
8584
  __Pyx_GIVEREF(__pyx_n_s_vp);
 
8585
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
8586
  __Pyx_GIVEREF(__pyx_t_1);
 
8587
  __pyx_t_1 = 0;
 
8588
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_lu, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8589
  __Pyx_GOTREF(__pyx_t_1);
 
8590
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
8591
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8592
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
8593
 
 
8594
  /* "adios_mpi.pyx":560
 
8595
 *         print '=== AdiosVariable ==='
 
8596
 *         print '%15s : %lu' % ('vp', <unsigned long> self.vp)
 
8597
 *         print '%15s : %lu' % ('fp', <unsigned long> self.file.fp)             # <<<<<<<<<<<<<<
 
8598
 *         printvar(self.vp)
 
8599
 * 
 
8600
 */
 
8601
  __pyx_t_1 = __Pyx_PyInt_From_unsigned_long(((unsigned long)__pyx_v_self->file->fp)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8602
  __Pyx_GOTREF(__pyx_t_1);
 
8603
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8604
  __Pyx_GOTREF(__pyx_t_2);
 
8605
  __Pyx_INCREF(__pyx_n_s_fp);
 
8606
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_fp);
 
8607
  __Pyx_GIVEREF(__pyx_n_s_fp);
 
8608
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
 
8609
  __Pyx_GIVEREF(__pyx_t_1);
 
8610
  __pyx_t_1 = 0;
 
8611
  __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_15s_lu, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8612
  __Pyx_GOTREF(__pyx_t_1);
 
8613
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
8614
  if (__Pyx_PrintOne(0, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8615
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
8616
 
 
8617
  /* "adios_mpi.pyx":561
 
8618
 *         print '%15s : %lu' % ('vp', <unsigned long> self.vp)
 
8619
 *         print '%15s : %lu' % ('fp', <unsigned long> self.file.fp)
 
8620
 *         printvar(self.vp)             # <<<<<<<<<<<<<<
 
8621
 * 
 
8622
 * ## ====================
 
8623
 */
 
8624
  __pyx_t_1 = __pyx_f_9adios_mpi_printvar(__pyx_v_self->vp); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8625
  __Pyx_GOTREF(__pyx_t_1);
 
8626
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
8627
 
 
8628
  /* "adios_mpi.pyx":556
 
8629
 * 
 
8630
 *     """ Print self """
 
8631
 *     cpdef printself(self):             # <<<<<<<<<<<<<<
 
8632
 *         assert self.vp != NULL, 'Not an open variable'
 
8633
 *         print '=== AdiosVariable ==='
 
8634
 */
 
8635
 
 
8636
  /* function exit code */
 
8637
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
8638
  goto __pyx_L0;
 
8639
  __pyx_L1_error:;
 
8640
  __Pyx_XDECREF(__pyx_t_1);
 
8641
  __Pyx_XDECREF(__pyx_t_2);
 
8642
  __Pyx_AddTraceback("adios_mpi.var.printself", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
8643
  __pyx_r = 0;
 
8644
  __pyx_L0:;
 
8645
  __Pyx_XGIVEREF(__pyx_r);
 
8646
  __Pyx_RefNannyFinishContext();
 
8647
  return __pyx_r;
 
8648
}
 
8649
 
 
8650
/* Python wrapper */
 
8651
static PyObject *__pyx_pw_9adios_mpi_3var_9printself(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 
8652
static PyObject *__pyx_pw_9adios_mpi_3var_9printself(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
 
8653
  PyObject *__pyx_r = 0;
 
8654
  __Pyx_RefNannyDeclarations
 
8655
  __Pyx_RefNannySetupContext("printself (wrapper)", 0);
 
8656
  __pyx_r = __pyx_pf_9adios_mpi_3var_8printself(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
8657
 
 
8658
  /* function exit code */
 
8659
  __Pyx_RefNannyFinishContext();
 
8660
  return __pyx_r;
 
8661
}
 
8662
 
 
8663
static PyObject *__pyx_pf_9adios_mpi_3var_8printself(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
8664
  PyObject *__pyx_r = NULL;
 
8665
  __Pyx_RefNannyDeclarations
 
8666
  PyObject *__pyx_t_1 = NULL;
 
8667
  int __pyx_lineno = 0;
 
8668
  const char *__pyx_filename = NULL;
 
8669
  int __pyx_clineno = 0;
 
8670
  __Pyx_RefNannySetupContext("printself", 0);
 
8671
  __Pyx_XDECREF(__pyx_r);
 
8672
  __pyx_t_1 = ((struct __pyx_vtabstruct_9adios_mpi_var *)__pyx_v_self->__pyx_vtab)->printself(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8673
  __Pyx_GOTREF(__pyx_t_1);
 
8674
  __pyx_r = __pyx_t_1;
 
8675
  __pyx_t_1 = 0;
 
8676
  goto __pyx_L0;
 
8677
 
 
8678
  /* function exit code */
 
8679
  __pyx_L1_error:;
 
8680
  __Pyx_XDECREF(__pyx_t_1);
 
8681
  __Pyx_AddTraceback("adios_mpi.var.printself", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
8682
  __pyx_r = NULL;
 
8683
  __pyx_L0:;
 
8684
  __Pyx_XGIVEREF(__pyx_r);
 
8685
  __Pyx_RefNannyFinishContext();
 
8686
  return __pyx_r;
 
8687
}
 
8688
 
 
8689
/* "adios_mpi.pyx":488
 
8690
 * 
 
8691
 *     """ Public Memeber """
 
8692
 *     cpdef public bytes name             # <<<<<<<<<<<<<<
 
8693
 *     cpdef public int varid
 
8694
 *     cpdef public type type
 
8695
 */
 
8696
 
 
8697
/* Python wrapper */
 
8698
static PyObject *__pyx_pw_9adios_mpi_3var_4name_1__get__(PyObject *__pyx_v_self); /*proto*/
 
8699
static PyObject *__pyx_pw_9adios_mpi_3var_4name_1__get__(PyObject *__pyx_v_self) {
 
8700
  PyObject *__pyx_r = 0;
 
8701
  __Pyx_RefNannyDeclarations
 
8702
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
8703
  __pyx_r = __pyx_pf_9adios_mpi_3var_4name___get__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
8704
 
 
8705
  /* function exit code */
 
8706
  __Pyx_RefNannyFinishContext();
 
8707
  return __pyx_r;
 
8708
}
 
8709
 
 
8710
static PyObject *__pyx_pf_9adios_mpi_3var_4name___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
8711
  PyObject *__pyx_r = NULL;
 
8712
  __Pyx_RefNannyDeclarations
 
8713
  __Pyx_RefNannySetupContext("__get__", 0);
 
8714
  __Pyx_XDECREF(__pyx_r);
 
8715
  __Pyx_INCREF(__pyx_v_self->name);
 
8716
  __pyx_r = __pyx_v_self->name;
 
8717
  goto __pyx_L0;
 
8718
 
 
8719
  /* function exit code */
 
8720
  __pyx_L0:;
 
8721
  __Pyx_XGIVEREF(__pyx_r);
 
8722
  __Pyx_RefNannyFinishContext();
 
8723
  return __pyx_r;
 
8724
}
 
8725
 
 
8726
/* Python wrapper */
 
8727
static int __pyx_pw_9adios_mpi_3var_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
8728
static int __pyx_pw_9adios_mpi_3var_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
8729
  int __pyx_r;
 
8730
  __Pyx_RefNannyDeclarations
 
8731
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
8732
  __pyx_r = __pyx_pf_9adios_mpi_3var_4name_2__set__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
8733
 
 
8734
  /* function exit code */
 
8735
  __Pyx_RefNannyFinishContext();
 
8736
  return __pyx_r;
 
8737
}
 
8738
 
 
8739
static int __pyx_pf_9adios_mpi_3var_4name_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value) {
 
8740
  int __pyx_r;
 
8741
  __Pyx_RefNannyDeclarations
 
8742
  PyObject *__pyx_t_1 = NULL;
 
8743
  int __pyx_lineno = 0;
 
8744
  const char *__pyx_filename = NULL;
 
8745
  int __pyx_clineno = 0;
 
8746
  __Pyx_RefNannySetupContext("__set__", 0);
 
8747
  if (!(likely(PyBytes_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8748
  __pyx_t_1 = __pyx_v_value;
 
8749
  __Pyx_INCREF(__pyx_t_1);
 
8750
  __Pyx_GIVEREF(__pyx_t_1);
 
8751
  __Pyx_GOTREF(__pyx_v_self->name);
 
8752
  __Pyx_DECREF(__pyx_v_self->name);
 
8753
  __pyx_v_self->name = ((PyObject*)__pyx_t_1);
 
8754
  __pyx_t_1 = 0;
 
8755
 
 
8756
  /* function exit code */
 
8757
  __pyx_r = 0;
 
8758
  goto __pyx_L0;
 
8759
  __pyx_L1_error:;
 
8760
  __Pyx_XDECREF(__pyx_t_1);
 
8761
  __Pyx_AddTraceback("adios_mpi.var.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
8762
  __pyx_r = -1;
 
8763
  __pyx_L0:;
 
8764
  __Pyx_RefNannyFinishContext();
 
8765
  return __pyx_r;
 
8766
}
 
8767
 
 
8768
/* Python wrapper */
 
8769
static int __pyx_pw_9adios_mpi_3var_4name_5__del__(PyObject *__pyx_v_self); /*proto*/
 
8770
static int __pyx_pw_9adios_mpi_3var_4name_5__del__(PyObject *__pyx_v_self) {
 
8771
  int __pyx_r;
 
8772
  __Pyx_RefNannyDeclarations
 
8773
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
 
8774
  __pyx_r = __pyx_pf_9adios_mpi_3var_4name_4__del__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
8775
 
 
8776
  /* function exit code */
 
8777
  __Pyx_RefNannyFinishContext();
 
8778
  return __pyx_r;
 
8779
}
 
8780
 
 
8781
static int __pyx_pf_9adios_mpi_3var_4name_4__del__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
8782
  int __pyx_r;
 
8783
  __Pyx_RefNannyDeclarations
 
8784
  __Pyx_RefNannySetupContext("__del__", 0);
 
8785
  __Pyx_INCREF(Py_None);
 
8786
  __Pyx_GIVEREF(Py_None);
 
8787
  __Pyx_GOTREF(__pyx_v_self->name);
 
8788
  __Pyx_DECREF(__pyx_v_self->name);
 
8789
  __pyx_v_self->name = ((PyObject*)Py_None);
 
8790
 
 
8791
  /* function exit code */
 
8792
  __pyx_r = 0;
 
8793
  __Pyx_RefNannyFinishContext();
 
8794
  return __pyx_r;
 
8795
}
 
8796
 
 
8797
/* "adios_mpi.pyx":489
 
8798
 *     """ Public Memeber """
 
8799
 *     cpdef public bytes name
 
8800
 *     cpdef public int varid             # <<<<<<<<<<<<<<
 
8801
 *     cpdef public type type
 
8802
 *     cpdef public int ndim
 
8803
 */
 
8804
 
 
8805
/* Python wrapper */
 
8806
static PyObject *__pyx_pw_9adios_mpi_3var_5varid_1__get__(PyObject *__pyx_v_self); /*proto*/
 
8807
static PyObject *__pyx_pw_9adios_mpi_3var_5varid_1__get__(PyObject *__pyx_v_self) {
 
8808
  PyObject *__pyx_r = 0;
 
8809
  __Pyx_RefNannyDeclarations
 
8810
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
8811
  __pyx_r = __pyx_pf_9adios_mpi_3var_5varid___get__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
8812
 
 
8813
  /* function exit code */
 
8814
  __Pyx_RefNannyFinishContext();
 
8815
  return __pyx_r;
 
8816
}
 
8817
 
 
8818
static PyObject *__pyx_pf_9adios_mpi_3var_5varid___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
8819
  PyObject *__pyx_r = NULL;
 
8820
  __Pyx_RefNannyDeclarations
 
8821
  PyObject *__pyx_t_1 = NULL;
 
8822
  int __pyx_lineno = 0;
 
8823
  const char *__pyx_filename = NULL;
 
8824
  int __pyx_clineno = 0;
 
8825
  __Pyx_RefNannySetupContext("__get__", 0);
 
8826
  __Pyx_XDECREF(__pyx_r);
 
8827
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->varid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8828
  __Pyx_GOTREF(__pyx_t_1);
 
8829
  __pyx_r = __pyx_t_1;
 
8830
  __pyx_t_1 = 0;
 
8831
  goto __pyx_L0;
 
8832
 
 
8833
  /* function exit code */
 
8834
  __pyx_L1_error:;
 
8835
  __Pyx_XDECREF(__pyx_t_1);
 
8836
  __Pyx_AddTraceback("adios_mpi.var.varid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
8837
  __pyx_r = NULL;
 
8838
  __pyx_L0:;
 
8839
  __Pyx_XGIVEREF(__pyx_r);
 
8840
  __Pyx_RefNannyFinishContext();
 
8841
  return __pyx_r;
 
8842
}
 
8843
 
 
8844
/* Python wrapper */
 
8845
static int __pyx_pw_9adios_mpi_3var_5varid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
8846
static int __pyx_pw_9adios_mpi_3var_5varid_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
8847
  int __pyx_r;
 
8848
  __Pyx_RefNannyDeclarations
 
8849
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
8850
  __pyx_r = __pyx_pf_9adios_mpi_3var_5varid_2__set__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
8851
 
 
8852
  /* function exit code */
 
8853
  __Pyx_RefNannyFinishContext();
 
8854
  return __pyx_r;
 
8855
}
 
8856
 
 
8857
static int __pyx_pf_9adios_mpi_3var_5varid_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value) {
 
8858
  int __pyx_r;
 
8859
  __Pyx_RefNannyDeclarations
 
8860
  int __pyx_t_1;
 
8861
  int __pyx_lineno = 0;
 
8862
  const char *__pyx_filename = NULL;
 
8863
  int __pyx_clineno = 0;
 
8864
  __Pyx_RefNannySetupContext("__set__", 0);
 
8865
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8866
  __pyx_v_self->varid = __pyx_t_1;
 
8867
 
 
8868
  /* function exit code */
 
8869
  __pyx_r = 0;
 
8870
  goto __pyx_L0;
 
8871
  __pyx_L1_error:;
 
8872
  __Pyx_AddTraceback("adios_mpi.var.varid.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
8873
  __pyx_r = -1;
 
8874
  __pyx_L0:;
 
8875
  __Pyx_RefNannyFinishContext();
 
8876
  return __pyx_r;
 
8877
}
 
8878
 
 
8879
/* "adios_mpi.pyx":490
 
8880
 *     cpdef public bytes name
 
8881
 *     cpdef public int varid
 
8882
 *     cpdef public type type             # <<<<<<<<<<<<<<
 
8883
 *     cpdef public int ndim
 
8884
 *     cpdef public tuple dims
 
8885
 */
 
8886
 
 
8887
/* Python wrapper */
 
8888
static PyObject *__pyx_pw_9adios_mpi_3var_4type_1__get__(PyObject *__pyx_v_self); /*proto*/
 
8889
static PyObject *__pyx_pw_9adios_mpi_3var_4type_1__get__(PyObject *__pyx_v_self) {
 
8890
  PyObject *__pyx_r = 0;
 
8891
  __Pyx_RefNannyDeclarations
 
8892
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
8893
  __pyx_r = __pyx_pf_9adios_mpi_3var_4type___get__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
8894
 
 
8895
  /* function exit code */
 
8896
  __Pyx_RefNannyFinishContext();
 
8897
  return __pyx_r;
 
8898
}
 
8899
 
 
8900
static PyObject *__pyx_pf_9adios_mpi_3var_4type___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
8901
  PyObject *__pyx_r = NULL;
 
8902
  __Pyx_RefNannyDeclarations
 
8903
  __Pyx_RefNannySetupContext("__get__", 0);
 
8904
  __Pyx_XDECREF(__pyx_r);
 
8905
  __Pyx_INCREF(((PyObject *)__pyx_v_self->type));
 
8906
  __pyx_r = ((PyObject *)__pyx_v_self->type);
 
8907
  goto __pyx_L0;
 
8908
 
 
8909
  /* function exit code */
 
8910
  __pyx_L0:;
 
8911
  __Pyx_XGIVEREF(__pyx_r);
 
8912
  __Pyx_RefNannyFinishContext();
 
8913
  return __pyx_r;
 
8914
}
 
8915
 
 
8916
/* Python wrapper */
 
8917
static int __pyx_pw_9adios_mpi_3var_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
8918
static int __pyx_pw_9adios_mpi_3var_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
8919
  int __pyx_r;
 
8920
  __Pyx_RefNannyDeclarations
 
8921
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
8922
  __pyx_r = __pyx_pf_9adios_mpi_3var_4type_2__set__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
8923
 
 
8924
  /* function exit code */
 
8925
  __Pyx_RefNannyFinishContext();
 
8926
  return __pyx_r;
 
8927
}
 
8928
 
 
8929
static int __pyx_pf_9adios_mpi_3var_4type_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value) {
 
8930
  int __pyx_r;
 
8931
  __Pyx_RefNannyDeclarations
 
8932
  PyObject *__pyx_t_1 = NULL;
 
8933
  int __pyx_lineno = 0;
 
8934
  const char *__pyx_filename = NULL;
 
8935
  int __pyx_clineno = 0;
 
8936
  __Pyx_RefNannySetupContext("__set__", 0);
 
8937
  if (!(likely(PyType_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
8938
  __pyx_t_1 = __pyx_v_value;
 
8939
  __Pyx_INCREF(__pyx_t_1);
 
8940
  __Pyx_GIVEREF(__pyx_t_1);
 
8941
  __Pyx_GOTREF(__pyx_v_self->type);
 
8942
  __Pyx_DECREF(((PyObject *)__pyx_v_self->type));
 
8943
  __pyx_v_self->type = ((PyObject*)__pyx_t_1);
 
8944
  __pyx_t_1 = 0;
 
8945
 
 
8946
  /* function exit code */
 
8947
  __pyx_r = 0;
 
8948
  goto __pyx_L0;
 
8949
  __pyx_L1_error:;
 
8950
  __Pyx_XDECREF(__pyx_t_1);
 
8951
  __Pyx_AddTraceback("adios_mpi.var.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
8952
  __pyx_r = -1;
 
8953
  __pyx_L0:;
 
8954
  __Pyx_RefNannyFinishContext();
 
8955
  return __pyx_r;
 
8956
}
 
8957
 
 
8958
/* Python wrapper */
 
8959
static int __pyx_pw_9adios_mpi_3var_4type_5__del__(PyObject *__pyx_v_self); /*proto*/
 
8960
static int __pyx_pw_9adios_mpi_3var_4type_5__del__(PyObject *__pyx_v_self) {
 
8961
  int __pyx_r;
 
8962
  __Pyx_RefNannyDeclarations
 
8963
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
 
8964
  __pyx_r = __pyx_pf_9adios_mpi_3var_4type_4__del__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
8965
 
 
8966
  /* function exit code */
 
8967
  __Pyx_RefNannyFinishContext();
 
8968
  return __pyx_r;
 
8969
}
 
8970
 
 
8971
static int __pyx_pf_9adios_mpi_3var_4type_4__del__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
8972
  int __pyx_r;
 
8973
  __Pyx_RefNannyDeclarations
 
8974
  __Pyx_RefNannySetupContext("__del__", 0);
 
8975
  __Pyx_INCREF(Py_None);
 
8976
  __Pyx_GIVEREF(Py_None);
 
8977
  __Pyx_GOTREF(__pyx_v_self->type);
 
8978
  __Pyx_DECREF(((PyObject *)__pyx_v_self->type));
 
8979
  __pyx_v_self->type = ((PyObject*)Py_None);
 
8980
 
 
8981
  /* function exit code */
 
8982
  __pyx_r = 0;
 
8983
  __Pyx_RefNannyFinishContext();
 
8984
  return __pyx_r;
 
8985
}
 
8986
 
 
8987
/* "adios_mpi.pyx":491
 
8988
 *     cpdef public int varid
 
8989
 *     cpdef public type type
 
8990
 *     cpdef public int ndim             # <<<<<<<<<<<<<<
 
8991
 *     cpdef public tuple dims
 
8992
 *     cpdef public int nsteps
 
8993
 */
 
8994
 
 
8995
/* Python wrapper */
 
8996
static PyObject *__pyx_pw_9adios_mpi_3var_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/
 
8997
static PyObject *__pyx_pw_9adios_mpi_3var_4ndim_1__get__(PyObject *__pyx_v_self) {
 
8998
  PyObject *__pyx_r = 0;
 
8999
  __Pyx_RefNannyDeclarations
 
9000
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
9001
  __pyx_r = __pyx_pf_9adios_mpi_3var_4ndim___get__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
9002
 
 
9003
  /* function exit code */
 
9004
  __Pyx_RefNannyFinishContext();
 
9005
  return __pyx_r;
 
9006
}
 
9007
 
 
9008
static PyObject *__pyx_pf_9adios_mpi_3var_4ndim___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
9009
  PyObject *__pyx_r = NULL;
 
9010
  __Pyx_RefNannyDeclarations
 
9011
  PyObject *__pyx_t_1 = NULL;
 
9012
  int __pyx_lineno = 0;
 
9013
  const char *__pyx_filename = NULL;
 
9014
  int __pyx_clineno = 0;
 
9015
  __Pyx_RefNannySetupContext("__get__", 0);
 
9016
  __Pyx_XDECREF(__pyx_r);
 
9017
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->ndim); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9018
  __Pyx_GOTREF(__pyx_t_1);
 
9019
  __pyx_r = __pyx_t_1;
 
9020
  __pyx_t_1 = 0;
 
9021
  goto __pyx_L0;
 
9022
 
 
9023
  /* function exit code */
 
9024
  __pyx_L1_error:;
 
9025
  __Pyx_XDECREF(__pyx_t_1);
 
9026
  __Pyx_AddTraceback("adios_mpi.var.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
9027
  __pyx_r = NULL;
 
9028
  __pyx_L0:;
 
9029
  __Pyx_XGIVEREF(__pyx_r);
 
9030
  __Pyx_RefNannyFinishContext();
 
9031
  return __pyx_r;
 
9032
}
 
9033
 
 
9034
/* Python wrapper */
 
9035
static int __pyx_pw_9adios_mpi_3var_4ndim_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
9036
static int __pyx_pw_9adios_mpi_3var_4ndim_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
9037
  int __pyx_r;
 
9038
  __Pyx_RefNannyDeclarations
 
9039
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
9040
  __pyx_r = __pyx_pf_9adios_mpi_3var_4ndim_2__set__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
9041
 
 
9042
  /* function exit code */
 
9043
  __Pyx_RefNannyFinishContext();
 
9044
  return __pyx_r;
 
9045
}
 
9046
 
 
9047
static int __pyx_pf_9adios_mpi_3var_4ndim_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value) {
 
9048
  int __pyx_r;
 
9049
  __Pyx_RefNannyDeclarations
 
9050
  int __pyx_t_1;
 
9051
  int __pyx_lineno = 0;
 
9052
  const char *__pyx_filename = NULL;
 
9053
  int __pyx_clineno = 0;
 
9054
  __Pyx_RefNannySetupContext("__set__", 0);
 
9055
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9056
  __pyx_v_self->ndim = __pyx_t_1;
 
9057
 
 
9058
  /* function exit code */
 
9059
  __pyx_r = 0;
 
9060
  goto __pyx_L0;
 
9061
  __pyx_L1_error:;
 
9062
  __Pyx_AddTraceback("adios_mpi.var.ndim.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
9063
  __pyx_r = -1;
 
9064
  __pyx_L0:;
 
9065
  __Pyx_RefNannyFinishContext();
 
9066
  return __pyx_r;
 
9067
}
 
9068
 
 
9069
/* "adios_mpi.pyx":492
 
9070
 *     cpdef public type type
 
9071
 *     cpdef public int ndim
 
9072
 *     cpdef public tuple dims             # <<<<<<<<<<<<<<
 
9073
 *     cpdef public int nsteps
 
9074
 * 
 
9075
 */
 
9076
 
 
9077
/* Python wrapper */
 
9078
static PyObject *__pyx_pw_9adios_mpi_3var_4dims_1__get__(PyObject *__pyx_v_self); /*proto*/
 
9079
static PyObject *__pyx_pw_9adios_mpi_3var_4dims_1__get__(PyObject *__pyx_v_self) {
 
9080
  PyObject *__pyx_r = 0;
 
9081
  __Pyx_RefNannyDeclarations
 
9082
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
9083
  __pyx_r = __pyx_pf_9adios_mpi_3var_4dims___get__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
9084
 
 
9085
  /* function exit code */
 
9086
  __Pyx_RefNannyFinishContext();
 
9087
  return __pyx_r;
 
9088
}
 
9089
 
 
9090
static PyObject *__pyx_pf_9adios_mpi_3var_4dims___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
9091
  PyObject *__pyx_r = NULL;
 
9092
  __Pyx_RefNannyDeclarations
 
9093
  __Pyx_RefNannySetupContext("__get__", 0);
 
9094
  __Pyx_XDECREF(__pyx_r);
 
9095
  __Pyx_INCREF(__pyx_v_self->dims);
 
9096
  __pyx_r = __pyx_v_self->dims;
 
9097
  goto __pyx_L0;
 
9098
 
 
9099
  /* function exit code */
 
9100
  __pyx_L0:;
 
9101
  __Pyx_XGIVEREF(__pyx_r);
 
9102
  __Pyx_RefNannyFinishContext();
 
9103
  return __pyx_r;
 
9104
}
 
9105
 
 
9106
/* Python wrapper */
 
9107
static int __pyx_pw_9adios_mpi_3var_4dims_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
9108
static int __pyx_pw_9adios_mpi_3var_4dims_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
9109
  int __pyx_r;
 
9110
  __Pyx_RefNannyDeclarations
 
9111
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
9112
  __pyx_r = __pyx_pf_9adios_mpi_3var_4dims_2__set__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
9113
 
 
9114
  /* function exit code */
 
9115
  __Pyx_RefNannyFinishContext();
 
9116
  return __pyx_r;
 
9117
}
 
9118
 
 
9119
static int __pyx_pf_9adios_mpi_3var_4dims_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value) {
 
9120
  int __pyx_r;
 
9121
  __Pyx_RefNannyDeclarations
 
9122
  PyObject *__pyx_t_1 = NULL;
 
9123
  int __pyx_lineno = 0;
 
9124
  const char *__pyx_filename = NULL;
 
9125
  int __pyx_clineno = 0;
 
9126
  __Pyx_RefNannySetupContext("__set__", 0);
 
9127
  if (!(likely(PyTuple_CheckExact(__pyx_v_value))||((__pyx_v_value) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v_value)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9128
  __pyx_t_1 = __pyx_v_value;
 
9129
  __Pyx_INCREF(__pyx_t_1);
 
9130
  __Pyx_GIVEREF(__pyx_t_1);
 
9131
  __Pyx_GOTREF(__pyx_v_self->dims);
 
9132
  __Pyx_DECREF(__pyx_v_self->dims);
 
9133
  __pyx_v_self->dims = ((PyObject*)__pyx_t_1);
 
9134
  __pyx_t_1 = 0;
 
9135
 
 
9136
  /* function exit code */
 
9137
  __pyx_r = 0;
 
9138
  goto __pyx_L0;
 
9139
  __pyx_L1_error:;
 
9140
  __Pyx_XDECREF(__pyx_t_1);
 
9141
  __Pyx_AddTraceback("adios_mpi.var.dims.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
9142
  __pyx_r = -1;
 
9143
  __pyx_L0:;
 
9144
  __Pyx_RefNannyFinishContext();
 
9145
  return __pyx_r;
 
9146
}
 
9147
 
 
9148
/* Python wrapper */
 
9149
static int __pyx_pw_9adios_mpi_3var_4dims_5__del__(PyObject *__pyx_v_self); /*proto*/
 
9150
static int __pyx_pw_9adios_mpi_3var_4dims_5__del__(PyObject *__pyx_v_self) {
 
9151
  int __pyx_r;
 
9152
  __Pyx_RefNannyDeclarations
 
9153
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
 
9154
  __pyx_r = __pyx_pf_9adios_mpi_3var_4dims_4__del__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
9155
 
 
9156
  /* function exit code */
 
9157
  __Pyx_RefNannyFinishContext();
 
9158
  return __pyx_r;
 
9159
}
 
9160
 
 
9161
static int __pyx_pf_9adios_mpi_3var_4dims_4__del__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
9162
  int __pyx_r;
 
9163
  __Pyx_RefNannyDeclarations
 
9164
  __Pyx_RefNannySetupContext("__del__", 0);
 
9165
  __Pyx_INCREF(Py_None);
 
9166
  __Pyx_GIVEREF(Py_None);
 
9167
  __Pyx_GOTREF(__pyx_v_self->dims);
 
9168
  __Pyx_DECREF(__pyx_v_self->dims);
 
9169
  __pyx_v_self->dims = ((PyObject*)Py_None);
 
9170
 
 
9171
  /* function exit code */
 
9172
  __pyx_r = 0;
 
9173
  __Pyx_RefNannyFinishContext();
 
9174
  return __pyx_r;
 
9175
}
 
9176
 
 
9177
/* "adios_mpi.pyx":493
 
9178
 *     cpdef public int ndim
 
9179
 *     cpdef public tuple dims
 
9180
 *     cpdef public int nsteps             # <<<<<<<<<<<<<<
 
9181
 * 
 
9182
 *     def __init__(self, file file, char * name):
 
9183
 */
 
9184
 
 
9185
/* Python wrapper */
 
9186
static PyObject *__pyx_pw_9adios_mpi_3var_6nsteps_1__get__(PyObject *__pyx_v_self); /*proto*/
 
9187
static PyObject *__pyx_pw_9adios_mpi_3var_6nsteps_1__get__(PyObject *__pyx_v_self) {
 
9188
  PyObject *__pyx_r = 0;
 
9189
  __Pyx_RefNannyDeclarations
 
9190
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
 
9191
  __pyx_r = __pyx_pf_9adios_mpi_3var_6nsteps___get__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self));
 
9192
 
 
9193
  /* function exit code */
 
9194
  __Pyx_RefNannyFinishContext();
 
9195
  return __pyx_r;
 
9196
}
 
9197
 
 
9198
static PyObject *__pyx_pf_9adios_mpi_3var_6nsteps___get__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self) {
 
9199
  PyObject *__pyx_r = NULL;
 
9200
  __Pyx_RefNannyDeclarations
 
9201
  PyObject *__pyx_t_1 = NULL;
 
9202
  int __pyx_lineno = 0;
 
9203
  const char *__pyx_filename = NULL;
 
9204
  int __pyx_clineno = 0;
 
9205
  __Pyx_RefNannySetupContext("__get__", 0);
 
9206
  __Pyx_XDECREF(__pyx_r);
 
9207
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->nsteps); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9208
  __Pyx_GOTREF(__pyx_t_1);
 
9209
  __pyx_r = __pyx_t_1;
 
9210
  __pyx_t_1 = 0;
 
9211
  goto __pyx_L0;
 
9212
 
 
9213
  /* function exit code */
 
9214
  __pyx_L1_error:;
 
9215
  __Pyx_XDECREF(__pyx_t_1);
 
9216
  __Pyx_AddTraceback("adios_mpi.var.nsteps.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
9217
  __pyx_r = NULL;
 
9218
  __pyx_L0:;
 
9219
  __Pyx_XGIVEREF(__pyx_r);
 
9220
  __Pyx_RefNannyFinishContext();
 
9221
  return __pyx_r;
 
9222
}
 
9223
 
 
9224
/* Python wrapper */
 
9225
static int __pyx_pw_9adios_mpi_3var_6nsteps_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
 
9226
static int __pyx_pw_9adios_mpi_3var_6nsteps_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
 
9227
  int __pyx_r;
 
9228
  __Pyx_RefNannyDeclarations
 
9229
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
 
9230
  __pyx_r = __pyx_pf_9adios_mpi_3var_6nsteps_2__set__(((struct __pyx_obj_9adios_mpi_var *)__pyx_v_self), ((PyObject *)__pyx_v_value));
 
9231
 
 
9232
  /* function exit code */
 
9233
  __Pyx_RefNannyFinishContext();
 
9234
  return __pyx_r;
 
9235
}
 
9236
 
 
9237
static int __pyx_pf_9adios_mpi_3var_6nsteps_2__set__(struct __pyx_obj_9adios_mpi_var *__pyx_v_self, PyObject *__pyx_v_value) {
 
9238
  int __pyx_r;
 
9239
  __Pyx_RefNannyDeclarations
 
9240
  int __pyx_t_1;
 
9241
  int __pyx_lineno = 0;
 
9242
  const char *__pyx_filename = NULL;
 
9243
  int __pyx_clineno = 0;
 
9244
  __Pyx_RefNannySetupContext("__set__", 0);
 
9245
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9246
  __pyx_v_self->nsteps = __pyx_t_1;
 
9247
 
 
9248
  /* function exit code */
 
9249
  __pyx_r = 0;
 
9250
  goto __pyx_L0;
 
9251
  __pyx_L1_error:;
 
9252
  __Pyx_AddTraceback("adios_mpi.var.nsteps.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
9253
  __pyx_r = -1;
 
9254
  __pyx_L0:;
 
9255
  __Pyx_RefNannyFinishContext();
 
9256
  return __pyx_r;
 
9257
}
 
9258
 
 
9259
/* "adios_mpi.pyx":567
 
9260
 * ## ====================
 
9261
 * 
 
9262
 * def readvar(fname, varname):             # <<<<<<<<<<<<<<
 
9263
 *     f = file(fname, comm=MPI.COMM_SELF)
 
9264
 *     if not f.var.has_key(varname):
 
9265
 */
 
9266
 
 
9267
/* Python wrapper */
 
9268
static PyObject *__pyx_pw_9adios_mpi_37readvar(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 
9269
static PyMethodDef __pyx_mdef_9adios_mpi_37readvar = {__Pyx_NAMESTR("readvar"), (PyCFunction)__pyx_pw_9adios_mpi_37readvar, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
 
9270
static PyObject *__pyx_pw_9adios_mpi_37readvar(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
 
9271
  PyObject *__pyx_v_fname = 0;
 
9272
  PyObject *__pyx_v_varname = 0;
 
9273
  int __pyx_lineno = 0;
 
9274
  const char *__pyx_filename = NULL;
 
9275
  int __pyx_clineno = 0;
 
9276
  PyObject *__pyx_r = 0;
 
9277
  __Pyx_RefNannyDeclarations
 
9278
  __Pyx_RefNannySetupContext("readvar (wrapper)", 0);
 
9279
  {
 
9280
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fname,&__pyx_n_s_varname,0};
 
9281
    PyObject* values[2] = {0,0};
 
9282
    if (unlikely(__pyx_kwds)) {
 
9283
      Py_ssize_t kw_args;
 
9284
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
 
9285
      switch (pos_args) {
 
9286
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
9287
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
9288
        case  0: break;
 
9289
        default: goto __pyx_L5_argtuple_error;
 
9290
      }
 
9291
      kw_args = PyDict_Size(__pyx_kwds);
 
9292
      switch (pos_args) {
 
9293
        case  0:
 
9294
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_fname)) != 0)) kw_args--;
 
9295
        else goto __pyx_L5_argtuple_error;
 
9296
        case  1:
 
9297
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_varname)) != 0)) kw_args--;
 
9298
        else {
 
9299
          __Pyx_RaiseArgtupleInvalid("readvar", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
9300
        }
 
9301
      }
 
9302
      if (unlikely(kw_args > 0)) {
 
9303
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "readvar") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
9304
      }
 
9305
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
 
9306
      goto __pyx_L5_argtuple_error;
 
9307
    } else {
 
9308
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
 
9309
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
 
9310
    }
 
9311
    __pyx_v_fname = values[0];
 
9312
    __pyx_v_varname = values[1];
 
9313
  }
 
9314
  goto __pyx_L4_argument_unpacking_done;
 
9315
  __pyx_L5_argtuple_error:;
 
9316
  __Pyx_RaiseArgtupleInvalid("readvar", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
 
9317
  __pyx_L3_error:;
 
9318
  __Pyx_AddTraceback("adios_mpi.readvar", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
9319
  __Pyx_RefNannyFinishContext();
 
9320
  return NULL;
 
9321
  __pyx_L4_argument_unpacking_done:;
 
9322
  __pyx_r = __pyx_pf_9adios_mpi_36readvar(__pyx_self, __pyx_v_fname, __pyx_v_varname);
 
9323
 
 
9324
  /* function exit code */
 
9325
  __Pyx_RefNannyFinishContext();
 
9326
  return __pyx_r;
 
9327
}
 
9328
 
 
9329
static PyObject *__pyx_pf_9adios_mpi_36readvar(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_fname, PyObject *__pyx_v_varname) {
 
9330
  struct __pyx_obj_9adios_mpi_file *__pyx_v_f = NULL;
 
9331
  PyObject *__pyx_v_v = NULL;
 
9332
  PyObject *__pyx_r = NULL;
 
9333
  __Pyx_RefNannyDeclarations
 
9334
  PyObject *__pyx_t_1 = NULL;
 
9335
  PyObject *__pyx_t_2 = NULL;
 
9336
  PyObject *__pyx_t_3 = NULL;
 
9337
  PyObject *__pyx_t_4 = NULL;
 
9338
  int __pyx_t_5;
 
9339
  int __pyx_t_6;
 
9340
  int __pyx_lineno = 0;
 
9341
  const char *__pyx_filename = NULL;
 
9342
  int __pyx_clineno = 0;
 
9343
  __Pyx_RefNannySetupContext("readvar", 0);
 
9344
 
 
9345
  /* "adios_mpi.pyx":568
 
9346
 * 
 
9347
 * def readvar(fname, varname):
 
9348
 *     f = file(fname, comm=MPI.COMM_SELF)             # <<<<<<<<<<<<<<
 
9349
 *     if not f.var.has_key(varname):
 
9350
 *         print "No valid variable"
 
9351
 */
 
9352
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9353
  __Pyx_GOTREF(__pyx_t_1);
 
9354
  __Pyx_INCREF(__pyx_v_fname);
 
9355
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_fname);
 
9356
  __Pyx_GIVEREF(__pyx_v_fname);
 
9357
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9358
  __Pyx_GOTREF(__pyx_t_2);
 
9359
  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_MPI); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9360
  __Pyx_GOTREF(__pyx_t_3);
 
9361
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_COMM_SELF); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9362
  __Pyx_GOTREF(__pyx_t_4);
 
9363
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
9364
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_comm, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9365
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
9366
  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_9adios_mpi_file)), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9367
  __Pyx_GOTREF(__pyx_t_4);
 
9368
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9369
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9370
  __pyx_v_f = ((struct __pyx_obj_9adios_mpi_file *)__pyx_t_4);
 
9371
  __pyx_t_4 = 0;
 
9372
 
 
9373
  /* "adios_mpi.pyx":569
 
9374
 * def readvar(fname, varname):
 
9375
 *     f = file(fname, comm=MPI.COMM_SELF)
 
9376
 *     if not f.var.has_key(varname):             # <<<<<<<<<<<<<<
 
9377
 *         print "No valid variable"
 
9378
 *         return
 
9379
 */
 
9380
  if (unlikely(__pyx_v_f->var == Py_None)) {
 
9381
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "has_key");
 
9382
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9383
  }
 
9384
  __pyx_t_5 = PyDict_Contains(__pyx_v_f->var, __pyx_v_varname); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9385
  __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
 
9386
  if (__pyx_t_6) {
 
9387
 
 
9388
    /* "adios_mpi.pyx":570
 
9389
 *     f = file(fname, comm=MPI.COMM_SELF)
 
9390
 *     if not f.var.has_key(varname):
 
9391
 *         print "No valid variable"             # <<<<<<<<<<<<<<
 
9392
 *         return
 
9393
 * 
 
9394
 */
 
9395
    if (__Pyx_PrintOne(0, __pyx_kp_s_No_valid_variable) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9396
 
 
9397
    /* "adios_mpi.pyx":571
 
9398
 *     if not f.var.has_key(varname):
 
9399
 *         print "No valid variable"
 
9400
 *         return             # <<<<<<<<<<<<<<
 
9401
 * 
 
9402
 *     v = f.var[varname]
 
9403
 */
 
9404
    __Pyx_XDECREF(__pyx_r);
 
9405
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
 
9406
    goto __pyx_L0;
 
9407
  }
 
9408
 
 
9409
  /* "adios_mpi.pyx":573
 
9410
 *         return
 
9411
 * 
 
9412
 *     v = f.var[varname]             # <<<<<<<<<<<<<<
 
9413
 *     return v.read(from_steps=0, nsteps=v.nsteps)
 
9414
 * 
 
9415
 */
 
9416
  if (unlikely(__pyx_v_f->var == Py_None)) {
 
9417
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
 
9418
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9419
  }
 
9420
  __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_f->var, __pyx_v_varname); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
9421
  __Pyx_GOTREF(__pyx_t_4);
 
9422
  __pyx_v_v = __pyx_t_4;
 
9423
  __pyx_t_4 = 0;
 
9424
 
 
9425
  /* "adios_mpi.pyx":574
 
9426
 * 
 
9427
 *     v = f.var[varname]
 
9428
 *     return v.read(from_steps=0, nsteps=v.nsteps)             # <<<<<<<<<<<<<<
 
9429
 * 
 
9430
 * def bpls(fname):
 
9431
 */
 
9432
  __Pyx_XDECREF(__pyx_r);
 
9433
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_v, __pyx_n_s_read); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9434
  __Pyx_GOTREF(__pyx_t_4);
 
9435
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9436
  __Pyx_GOTREF(__pyx_t_2);
 
9437
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_from_steps, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9438
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_v, __pyx_n_s_nsteps); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9439
  __Pyx_GOTREF(__pyx_t_1);
 
9440
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_nsteps, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9441
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9442
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9443
  __Pyx_GOTREF(__pyx_t_1);
 
9444
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
9445
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9446
  __pyx_r = __pyx_t_1;
 
9447
  __pyx_t_1 = 0;
 
9448
  goto __pyx_L0;
 
9449
 
 
9450
  /* "adios_mpi.pyx":567
 
9451
 * ## ====================
 
9452
 * 
 
9453
 * def readvar(fname, varname):             # <<<<<<<<<<<<<<
 
9454
 *     f = file(fname, comm=MPI.COMM_SELF)
 
9455
 *     if not f.var.has_key(varname):
 
9456
 */
 
9457
 
 
9458
  /* function exit code */
 
9459
  __pyx_L1_error:;
 
9460
  __Pyx_XDECREF(__pyx_t_1);
 
9461
  __Pyx_XDECREF(__pyx_t_2);
 
9462
  __Pyx_XDECREF(__pyx_t_3);
 
9463
  __Pyx_XDECREF(__pyx_t_4);
 
9464
  __Pyx_AddTraceback("adios_mpi.readvar", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
9465
  __pyx_r = NULL;
 
9466
  __pyx_L0:;
 
9467
  __Pyx_XDECREF((PyObject *)__pyx_v_f);
 
9468
  __Pyx_XDECREF(__pyx_v_v);
 
9469
  __Pyx_XGIVEREF(__pyx_r);
 
9470
  __Pyx_RefNannyFinishContext();
 
9471
  return __pyx_r;
 
9472
}
 
9473
 
 
9474
/* "adios_mpi.pyx":576
 
9475
 *     return v.read(from_steps=0, nsteps=v.nsteps)
 
9476
 * 
 
9477
 * def bpls(fname):             # <<<<<<<<<<<<<<
 
9478
 *     f = file(fname, comm=MPI.COMM_SELF)
 
9479
 *     return {'nvars': f.nvars,
 
9480
 */
 
9481
 
 
9482
/* Python wrapper */
 
9483
static PyObject *__pyx_pw_9adios_mpi_39bpls(PyObject *__pyx_self, PyObject *__pyx_v_fname); /*proto*/
 
9484
static PyMethodDef __pyx_mdef_9adios_mpi_39bpls = {__Pyx_NAMESTR("bpls"), (PyCFunction)__pyx_pw_9adios_mpi_39bpls, METH_O, __Pyx_DOCSTR(0)};
 
9485
static PyObject *__pyx_pw_9adios_mpi_39bpls(PyObject *__pyx_self, PyObject *__pyx_v_fname) {
 
9486
  PyObject *__pyx_r = 0;
 
9487
  __Pyx_RefNannyDeclarations
 
9488
  __Pyx_RefNannySetupContext("bpls (wrapper)", 0);
 
9489
  __pyx_r = __pyx_pf_9adios_mpi_38bpls(__pyx_self, ((PyObject *)__pyx_v_fname));
 
9490
 
 
9491
  /* function exit code */
 
9492
  __Pyx_RefNannyFinishContext();
 
9493
  return __pyx_r;
 
9494
}
 
9495
 
 
9496
static PyObject *__pyx_pf_9adios_mpi_38bpls(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_fname) {
 
9497
  struct __pyx_obj_9adios_mpi_file *__pyx_v_f = NULL;
 
9498
  PyObject *__pyx_v_k = NULL;
 
9499
  PyObject *__pyx_r = NULL;
 
9500
  __Pyx_RefNannyDeclarations
 
9501
  PyObject *__pyx_t_1 = NULL;
 
9502
  PyObject *__pyx_t_2 = NULL;
 
9503
  PyObject *__pyx_t_3 = NULL;
 
9504
  PyObject *__pyx_t_4 = NULL;
 
9505
  Py_ssize_t __pyx_t_5;
 
9506
  Py_ssize_t __pyx_t_6;
 
9507
  int __pyx_t_7;
 
9508
  int __pyx_t_8;
 
9509
  int __pyx_lineno = 0;
 
9510
  const char *__pyx_filename = NULL;
 
9511
  int __pyx_clineno = 0;
 
9512
  __Pyx_RefNannySetupContext("bpls", 0);
 
9513
 
 
9514
  /* "adios_mpi.pyx":577
 
9515
 * 
 
9516
 * def bpls(fname):
 
9517
 *     f = file(fname, comm=MPI.COMM_SELF)             # <<<<<<<<<<<<<<
 
9518
 *     return {'nvars': f.nvars,
 
9519
 *             'nattrs': f.nattrs,
 
9520
 */
 
9521
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9522
  __Pyx_GOTREF(__pyx_t_1);
 
9523
  __Pyx_INCREF(__pyx_v_fname);
 
9524
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_fname);
 
9525
  __Pyx_GIVEREF(__pyx_v_fname);
 
9526
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9527
  __Pyx_GOTREF(__pyx_t_2);
 
9528
  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_MPI); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9529
  __Pyx_GOTREF(__pyx_t_3);
 
9530
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_COMM_SELF); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9531
  __Pyx_GOTREF(__pyx_t_4);
 
9532
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
9533
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_comm, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9534
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
9535
  __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_9adios_mpi_file)), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9536
  __Pyx_GOTREF(__pyx_t_4);
 
9537
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9538
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9539
  __pyx_v_f = ((struct __pyx_obj_9adios_mpi_file *)__pyx_t_4);
 
9540
  __pyx_t_4 = 0;
 
9541
 
 
9542
  /* "adios_mpi.pyx":578
 
9543
 * def bpls(fname):
 
9544
 *     f = file(fname, comm=MPI.COMM_SELF)
 
9545
 *     return {'nvars': f.nvars,             # <<<<<<<<<<<<<<
 
9546
 *             'nattrs': f.nattrs,
 
9547
 *             'vars': tuple([ k for k in f.var.iterkeys() ]),
 
9548
 */
 
9549
  __Pyx_XDECREF(__pyx_r);
 
9550
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9551
  __Pyx_GOTREF(__pyx_t_4);
 
9552
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_f->nvars); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9553
  __Pyx_GOTREF(__pyx_t_2);
 
9554
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_nvars, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9555
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9556
 
 
9557
  /* "adios_mpi.pyx":579
 
9558
 *     f = file(fname, comm=MPI.COMM_SELF)
 
9559
 *     return {'nvars': f.nvars,
 
9560
 *             'nattrs': f.nattrs,             # <<<<<<<<<<<<<<
 
9561
 *             'vars': tuple([ k for k in f.var.iterkeys() ]),
 
9562
 *             'attrs': tuple([ k for k in f.attr.iterkeys() ]),
 
9563
 */
 
9564
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_f->nattrs); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9565
  __Pyx_GOTREF(__pyx_t_2);
 
9566
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_nattrs, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9567
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9568
 
 
9569
  /* "adios_mpi.pyx":580
 
9570
 *     return {'nvars': f.nvars,
 
9571
 *             'nattrs': f.nattrs,
 
9572
 *             'vars': tuple([ k for k in f.var.iterkeys() ]),             # <<<<<<<<<<<<<<
 
9573
 *             'attrs': tuple([ k for k in f.attr.iterkeys() ]),
 
9574
 *             'time_steps': (f.current_step, f.last_step),
 
9575
 */
 
9576
  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9577
  __Pyx_GOTREF(__pyx_t_2);
 
9578
  __pyx_t_5 = 0;
 
9579
  if (unlikely(__pyx_v_f->var == Py_None)) {
 
9580
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iterkeys");
 
9581
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9582
  }
 
9583
  __pyx_t_3 = __Pyx_dict_iterator(__pyx_v_f->var, 1, __pyx_n_s_iterkeys, (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9584
  __Pyx_GOTREF(__pyx_t_3);
 
9585
  __Pyx_XDECREF(__pyx_t_1);
 
9586
  __pyx_t_1 = __pyx_t_3;
 
9587
  __pyx_t_3 = 0;
 
9588
  while (1) {
 
9589
    __pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_6, &__pyx_t_5, &__pyx_t_3, NULL, NULL, __pyx_t_7);
 
9590
    if (unlikely(__pyx_t_8 == 0)) break;
 
9591
    if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9592
    __Pyx_GOTREF(__pyx_t_3);
 
9593
    __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_3);
 
9594
    __pyx_t_3 = 0;
 
9595
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_k))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9596
  }
 
9597
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9598
  __pyx_t_1 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9599
  __Pyx_GOTREF(__pyx_t_1);
 
9600
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9601
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_vars, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9602
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9603
 
 
9604
  /* "adios_mpi.pyx":581
 
9605
 *             'nattrs': f.nattrs,
 
9606
 *             'vars': tuple([ k for k in f.var.iterkeys() ]),
 
9607
 *             'attrs': tuple([ k for k in f.attr.iterkeys() ]),             # <<<<<<<<<<<<<<
 
9608
 *             'time_steps': (f.current_step, f.last_step),
 
9609
 *             'file_size': f.file_size}
 
9610
 */
 
9611
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9612
  __Pyx_GOTREF(__pyx_t_1);
 
9613
  __pyx_t_6 = 0;
 
9614
  if (unlikely(__pyx_v_f->attr == Py_None)) {
 
9615
    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iterkeys");
 
9616
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9617
  }
 
9618
  __pyx_t_3 = __Pyx_dict_iterator(__pyx_v_f->attr, 1, __pyx_n_s_iterkeys, (&__pyx_t_5), (&__pyx_t_7)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9619
  __Pyx_GOTREF(__pyx_t_3);
 
9620
  __Pyx_XDECREF(__pyx_t_2);
 
9621
  __pyx_t_2 = __pyx_t_3;
 
9622
  __pyx_t_3 = 0;
 
9623
  while (1) {
 
9624
    __pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_5, &__pyx_t_6, &__pyx_t_3, NULL, NULL, __pyx_t_7);
 
9625
    if (unlikely(__pyx_t_8 == 0)) break;
 
9626
    if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9627
    __Pyx_GOTREF(__pyx_t_3);
 
9628
    __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_3);
 
9629
    __pyx_t_3 = 0;
 
9630
    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_v_k))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9631
  }
 
9632
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9633
  __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9634
  __Pyx_GOTREF(__pyx_t_2);
 
9635
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
9636
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_attrs, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9637
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
9638
 
 
9639
  /* "adios_mpi.pyx":582
 
9640
 *             'vars': tuple([ k for k in f.var.iterkeys() ]),
 
9641
 *             'attrs': tuple([ k for k in f.attr.iterkeys() ]),
 
9642
 *             'time_steps': (f.current_step, f.last_step),             # <<<<<<<<<<<<<<
 
9643
 *             'file_size': f.file_size}
 
9644
 * 
 
9645
 */
 
9646
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_f->current_step); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9647
  __Pyx_GOTREF(__pyx_t_2);
 
9648
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_f->last_step); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9649
  __Pyx_GOTREF(__pyx_t_1);
 
9650
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9651
  __Pyx_GOTREF(__pyx_t_3);
 
9652
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
 
9653
  __Pyx_GIVEREF(__pyx_t_2);
 
9654
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
 
9655
  __Pyx_GIVEREF(__pyx_t_1);
 
9656
  __pyx_t_2 = 0;
 
9657
  __pyx_t_1 = 0;
 
9658
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_time_steps, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9659
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
9660
 
 
9661
  /* "adios_mpi.pyx":583
 
9662
 *             'attrs': tuple([ k for k in f.attr.iterkeys() ]),
 
9663
 *             'time_steps': (f.current_step, f.last_step),
 
9664
 *             'file_size': f.file_size}             # <<<<<<<<<<<<<<
 
9665
 * 
 
9666
 */
 
9667
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_f->file_size); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9668
  __Pyx_GOTREF(__pyx_t_3);
 
9669
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_file_size, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9670
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
9671
  __pyx_r = __pyx_t_4;
 
9672
  __pyx_t_4 = 0;
 
9673
  goto __pyx_L0;
 
9674
 
 
9675
  /* "adios_mpi.pyx":576
 
9676
 *     return v.read(from_steps=0, nsteps=v.nsteps)
 
9677
 * 
 
9678
 * def bpls(fname):             # <<<<<<<<<<<<<<
 
9679
 *     f = file(fname, comm=MPI.COMM_SELF)
 
9680
 *     return {'nvars': f.nvars,
 
9681
 */
 
9682
 
 
9683
  /* function exit code */
 
9684
  __pyx_L1_error:;
 
9685
  __Pyx_XDECREF(__pyx_t_1);
 
9686
  __Pyx_XDECREF(__pyx_t_2);
 
9687
  __Pyx_XDECREF(__pyx_t_3);
 
9688
  __Pyx_XDECREF(__pyx_t_4);
 
9689
  __Pyx_AddTraceback("adios_mpi.bpls", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
9690
  __pyx_r = NULL;
 
9691
  __pyx_L0:;
 
9692
  __Pyx_XDECREF((PyObject *)__pyx_v_f);
 
9693
  __Pyx_XDECREF(__pyx_v_k);
 
9694
  __Pyx_XGIVEREF(__pyx_r);
 
9695
  __Pyx_RefNannyFinishContext();
 
9696
  return __pyx_r;
 
9697
}
 
9698
 
 
9699
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":194
 
9700
 *         # experimental exception made for __getbuffer__ and __releasebuffer__
 
9701
 *         # -- the details of this may change.
 
9702
 *         def __getbuffer__(ndarray self, Py_buffer* info, int flags):             # <<<<<<<<<<<<<<
 
9703
 *             # This implementation of getbuffer is geared towards Cython
 
9704
 *             # requirements, and does not yet fullfill the PEP.
 
9705
 */
 
9706
 
 
9707
/* Python wrapper */
 
9708
static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
 
9709
static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
 
9710
  int __pyx_r;
 
9711
  __Pyx_RefNannyDeclarations
 
9712
  __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
 
9713
  __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));
 
9714
 
 
9715
  /* function exit code */
 
9716
  __Pyx_RefNannyFinishContext();
 
9717
  return __pyx_r;
 
9718
}
 
9719
 
 
9720
static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
 
9721
  int __pyx_v_copy_shape;
 
9722
  int __pyx_v_i;
 
9723
  int __pyx_v_ndim;
 
9724
  int __pyx_v_endian_detector;
 
9725
  int __pyx_v_little_endian;
 
9726
  int __pyx_v_t;
 
9727
  char *__pyx_v_f;
 
9728
  PyArray_Descr *__pyx_v_descr = 0;
 
9729
  int __pyx_v_offset;
 
9730
  int __pyx_v_hasfields;
 
9731
  int __pyx_r;
 
9732
  __Pyx_RefNannyDeclarations
 
9733
  int __pyx_t_1;
 
9734
  int __pyx_t_2;
 
9735
  int __pyx_t_3;
 
9736
  PyObject *__pyx_t_4 = NULL;
 
9737
  int __pyx_t_5;
 
9738
  int __pyx_t_6;
 
9739
  int __pyx_t_7;
 
9740
  PyObject *__pyx_t_8 = NULL;
 
9741
  char *__pyx_t_9;
 
9742
  int __pyx_lineno = 0;
 
9743
  const char *__pyx_filename = NULL;
 
9744
  int __pyx_clineno = 0;
 
9745
  __Pyx_RefNannySetupContext("__getbuffer__", 0);
 
9746
  if (__pyx_v_info != NULL) {
 
9747
    __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
 
9748
    __Pyx_GIVEREF(__pyx_v_info->obj);
 
9749
  }
 
9750
 
 
9751
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":200
 
9752
 *             # of flags
 
9753
 * 
 
9754
 *             if info == NULL: return             # <<<<<<<<<<<<<<
 
9755
 * 
 
9756
 *             cdef int copy_shape, i, ndim
 
9757
 */
 
9758
  __pyx_t_1 = ((__pyx_v_info == NULL) != 0);
 
9759
  if (__pyx_t_1) {
 
9760
    __pyx_r = 0;
 
9761
    goto __pyx_L0;
 
9762
  }
 
9763
 
 
9764
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":203
 
9765
 * 
 
9766
 *             cdef int copy_shape, i, ndim
 
9767
 *             cdef int endian_detector = 1             # <<<<<<<<<<<<<<
 
9768
 *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
 
9769
 * 
 
9770
 */
 
9771
  __pyx_v_endian_detector = 1;
 
9772
 
 
9773
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":204
 
9774
 *             cdef int copy_shape, i, ndim
 
9775
 *             cdef int endian_detector = 1
 
9776
 *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)             # <<<<<<<<<<<<<<
 
9777
 * 
 
9778
 *             ndim = PyArray_NDIM(self)
 
9779
 */
 
9780
  __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);
 
9781
 
 
9782
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":206
 
9783
 *             cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
 
9784
 * 
 
9785
 *             ndim = PyArray_NDIM(self)             # <<<<<<<<<<<<<<
 
9786
 * 
 
9787
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
 
9788
 */
 
9789
  __pyx_v_ndim = PyArray_NDIM(__pyx_v_self);
 
9790
 
 
9791
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":208
 
9792
 *             ndim = PyArray_NDIM(self)
 
9793
 * 
 
9794
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
 
9795
 *                 copy_shape = 1
 
9796
 *             else:
 
9797
 */
 
9798
  __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0);
 
9799
  if (__pyx_t_1) {
 
9800
 
 
9801
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":209
 
9802
 * 
 
9803
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
 
9804
 *                 copy_shape = 1             # <<<<<<<<<<<<<<
 
9805
 *             else:
 
9806
 *                 copy_shape = 0
 
9807
 */
 
9808
    __pyx_v_copy_shape = 1;
 
9809
    goto __pyx_L4;
 
9810
  }
 
9811
  /*else*/ {
 
9812
 
 
9813
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":211
 
9814
 *                 copy_shape = 1
 
9815
 *             else:
 
9816
 *                 copy_shape = 0             # <<<<<<<<<<<<<<
 
9817
 * 
 
9818
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
 
9819
 */
 
9820
    __pyx_v_copy_shape = 0;
 
9821
  }
 
9822
  __pyx_L4:;
 
9823
 
 
9824
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":213
 
9825
 *                 copy_shape = 0
 
9826
 * 
 
9827
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)             # <<<<<<<<<<<<<<
 
9828
 *                 and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)):
 
9829
 *                 raise ValueError(u"ndarray is not C contiguous")
 
9830
 */
 
9831
  __pyx_t_1 = (((__pyx_v_flags & PyBUF_C_CONTIGUOUS) == PyBUF_C_CONTIGUOUS) != 0);
 
9832
  if (__pyx_t_1) {
 
9833
 
 
9834
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":214
 
9835
 * 
 
9836
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
 
9837
 *                 and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)):             # <<<<<<<<<<<<<<
 
9838
 *                 raise ValueError(u"ndarray is not C contiguous")
 
9839
 * 
 
9840
 */
 
9841
    __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_C_CONTIGUOUS) != 0)) != 0);
 
9842
    __pyx_t_3 = __pyx_t_2;
 
9843
  } else {
 
9844
    __pyx_t_3 = __pyx_t_1;
 
9845
  }
 
9846
  if (__pyx_t_3) {
 
9847
 
 
9848
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":215
 
9849
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
 
9850
 *                 and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)):
 
9851
 *                 raise ValueError(u"ndarray is not C contiguous")             # <<<<<<<<<<<<<<
 
9852
 * 
 
9853
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
 
9854
 */
 
9855
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9856
    __Pyx_GOTREF(__pyx_t_4);
 
9857
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
 
9858
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
9859
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9860
  }
 
9861
 
 
9862
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":217
 
9863
 *                 raise ValueError(u"ndarray is not C contiguous")
 
9864
 * 
 
9865
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)             # <<<<<<<<<<<<<<
 
9866
 *                 and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)):
 
9867
 *                 raise ValueError(u"ndarray is not Fortran contiguous")
 
9868
 */
 
9869
  __pyx_t_3 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0);
 
9870
  if (__pyx_t_3) {
 
9871
 
 
9872
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":218
 
9873
 * 
 
9874
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
 
9875
 *                 and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)):             # <<<<<<<<<<<<<<
 
9876
 *                 raise ValueError(u"ndarray is not Fortran contiguous")
 
9877
 * 
 
9878
 */
 
9879
    __pyx_t_1 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_F_CONTIGUOUS) != 0)) != 0);
 
9880
    __pyx_t_2 = __pyx_t_1;
 
9881
  } else {
 
9882
    __pyx_t_2 = __pyx_t_3;
 
9883
  }
 
9884
  if (__pyx_t_2) {
 
9885
 
 
9886
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":219
 
9887
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
 
9888
 *                 and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)):
 
9889
 *                 raise ValueError(u"ndarray is not Fortran contiguous")             # <<<<<<<<<<<<<<
 
9890
 * 
 
9891
 *             info.buf = PyArray_DATA(self)
 
9892
 */
 
9893
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9894
    __Pyx_GOTREF(__pyx_t_4);
 
9895
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
 
9896
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
9897
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
9898
  }
 
9899
 
 
9900
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":221
 
9901
 *                 raise ValueError(u"ndarray is not Fortran contiguous")
 
9902
 * 
 
9903
 *             info.buf = PyArray_DATA(self)             # <<<<<<<<<<<<<<
 
9904
 *             info.ndim = ndim
 
9905
 *             if copy_shape:
 
9906
 */
 
9907
  __pyx_v_info->buf = PyArray_DATA(__pyx_v_self);
 
9908
 
 
9909
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":222
 
9910
 * 
 
9911
 *             info.buf = PyArray_DATA(self)
 
9912
 *             info.ndim = ndim             # <<<<<<<<<<<<<<
 
9913
 *             if copy_shape:
 
9914
 *                 # Allocate new buffer for strides and shape info.
 
9915
 */
 
9916
  __pyx_v_info->ndim = __pyx_v_ndim;
 
9917
 
 
9918
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":223
 
9919
 *             info.buf = PyArray_DATA(self)
 
9920
 *             info.ndim = ndim
 
9921
 *             if copy_shape:             # <<<<<<<<<<<<<<
 
9922
 *                 # Allocate new buffer for strides and shape info.
 
9923
 *                 # This is allocated as one block, strides first.
 
9924
 */
 
9925
  __pyx_t_2 = (__pyx_v_copy_shape != 0);
 
9926
  if (__pyx_t_2) {
 
9927
 
 
9928
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":226
 
9929
 *                 # Allocate new buffer for strides and shape info.
 
9930
 *                 # This is allocated as one block, strides first.
 
9931
 *                 info.strides = <Py_ssize_t*>stdlib.malloc(sizeof(Py_ssize_t) * <size_t>ndim * 2)             # <<<<<<<<<<<<<<
 
9932
 *                 info.shape = info.strides + ndim
 
9933
 *                 for i in range(ndim):
 
9934
 */
 
9935
    __pyx_v_info->strides = ((Py_ssize_t *)malloc((((sizeof(Py_ssize_t)) * ((size_t)__pyx_v_ndim)) * 2)));
 
9936
 
 
9937
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":227
 
9938
 *                 # This is allocated as one block, strides first.
 
9939
 *                 info.strides = <Py_ssize_t*>stdlib.malloc(sizeof(Py_ssize_t) * <size_t>ndim * 2)
 
9940
 *                 info.shape = info.strides + ndim             # <<<<<<<<<<<<<<
 
9941
 *                 for i in range(ndim):
 
9942
 *                     info.strides[i] = PyArray_STRIDES(self)[i]
 
9943
 */
 
9944
    __pyx_v_info->shape = (__pyx_v_info->strides + __pyx_v_ndim);
 
9945
 
 
9946
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":228
 
9947
 *                 info.strides = <Py_ssize_t*>stdlib.malloc(sizeof(Py_ssize_t) * <size_t>ndim * 2)
 
9948
 *                 info.shape = info.strides + ndim
 
9949
 *                 for i in range(ndim):             # <<<<<<<<<<<<<<
 
9950
 *                     info.strides[i] = PyArray_STRIDES(self)[i]
 
9951
 *                     info.shape[i] = PyArray_DIMS(self)[i]
 
9952
 */
 
9953
    __pyx_t_5 = __pyx_v_ndim;
 
9954
    for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
 
9955
      __pyx_v_i = __pyx_t_6;
 
9956
 
 
9957
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":229
 
9958
 *                 info.shape = info.strides + ndim
 
9959
 *                 for i in range(ndim):
 
9960
 *                     info.strides[i] = PyArray_STRIDES(self)[i]             # <<<<<<<<<<<<<<
 
9961
 *                     info.shape[i] = PyArray_DIMS(self)[i]
 
9962
 *             else:
 
9963
 */
 
9964
      (__pyx_v_info->strides[__pyx_v_i]) = (PyArray_STRIDES(__pyx_v_self)[__pyx_v_i]);
 
9965
 
 
9966
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":230
 
9967
 *                 for i in range(ndim):
 
9968
 *                     info.strides[i] = PyArray_STRIDES(self)[i]
 
9969
 *                     info.shape[i] = PyArray_DIMS(self)[i]             # <<<<<<<<<<<<<<
 
9970
 *             else:
 
9971
 *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
 
9972
 */
 
9973
      (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]);
 
9974
    }
 
9975
    goto __pyx_L7;
 
9976
  }
 
9977
  /*else*/ {
 
9978
 
 
9979
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":232
 
9980
 *                     info.shape[i] = PyArray_DIMS(self)[i]
 
9981
 *             else:
 
9982
 *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)             # <<<<<<<<<<<<<<
 
9983
 *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
 
9984
 *             info.suboffsets = NULL
 
9985
 */
 
9986
    __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self));
 
9987
 
 
9988
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":233
 
9989
 *             else:
 
9990
 *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
 
9991
 *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)             # <<<<<<<<<<<<<<
 
9992
 *             info.suboffsets = NULL
 
9993
 *             info.itemsize = PyArray_ITEMSIZE(self)
 
9994
 */
 
9995
    __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self));
 
9996
  }
 
9997
  __pyx_L7:;
 
9998
 
 
9999
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":234
 
10000
 *                 info.strides = <Py_ssize_t*>PyArray_STRIDES(self)
 
10001
 *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
 
10002
 *             info.suboffsets = NULL             # <<<<<<<<<<<<<<
 
10003
 *             info.itemsize = PyArray_ITEMSIZE(self)
 
10004
 *             info.readonly = not PyArray_ISWRITEABLE(self)
 
10005
 */
 
10006
  __pyx_v_info->suboffsets = NULL;
 
10007
 
 
10008
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":235
 
10009
 *                 info.shape = <Py_ssize_t*>PyArray_DIMS(self)
 
10010
 *             info.suboffsets = NULL
 
10011
 *             info.itemsize = PyArray_ITEMSIZE(self)             # <<<<<<<<<<<<<<
 
10012
 *             info.readonly = not PyArray_ISWRITEABLE(self)
 
10013
 * 
 
10014
 */
 
10015
  __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self);
 
10016
 
 
10017
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":236
 
10018
 *             info.suboffsets = NULL
 
10019
 *             info.itemsize = PyArray_ITEMSIZE(self)
 
10020
 *             info.readonly = not PyArray_ISWRITEABLE(self)             # <<<<<<<<<<<<<<
 
10021
 * 
 
10022
 *             cdef int t
 
10023
 */
 
10024
  __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0));
 
10025
 
 
10026
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":239
 
10027
 * 
 
10028
 *             cdef int t
 
10029
 *             cdef char* f = NULL             # <<<<<<<<<<<<<<
 
10030
 *             cdef dtype descr = self.descr
 
10031
 *             cdef list stack
 
10032
 */
 
10033
  __pyx_v_f = NULL;
 
10034
 
 
10035
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":240
 
10036
 *             cdef int t
 
10037
 *             cdef char* f = NULL
 
10038
 *             cdef dtype descr = self.descr             # <<<<<<<<<<<<<<
 
10039
 *             cdef list stack
 
10040
 *             cdef int offset
 
10041
 */
 
10042
  __pyx_t_4 = ((PyObject *)__pyx_v_self->descr);
 
10043
  __Pyx_INCREF(__pyx_t_4);
 
10044
  __pyx_v_descr = ((PyArray_Descr *)__pyx_t_4);
 
10045
  __pyx_t_4 = 0;
 
10046
 
 
10047
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":244
 
10048
 *             cdef int offset
 
10049
 * 
 
10050
 *             cdef bint hasfields = PyDataType_HASFIELDS(descr)             # <<<<<<<<<<<<<<
 
10051
 * 
 
10052
 *             if not hasfields and not copy_shape:
 
10053
 */
 
10054
  __pyx_v_hasfields = PyDataType_HASFIELDS(__pyx_v_descr);
 
10055
 
 
10056
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":246
 
10057
 *             cdef bint hasfields = PyDataType_HASFIELDS(descr)
 
10058
 * 
 
10059
 *             if not hasfields and not copy_shape:             # <<<<<<<<<<<<<<
 
10060
 *                 # do not call releasebuffer
 
10061
 *                 info.obj = None
 
10062
 */
 
10063
  __pyx_t_2 = ((!(__pyx_v_hasfields != 0)) != 0);
 
10064
  if (__pyx_t_2) {
 
10065
    __pyx_t_3 = ((!(__pyx_v_copy_shape != 0)) != 0);
 
10066
    __pyx_t_1 = __pyx_t_3;
 
10067
  } else {
 
10068
    __pyx_t_1 = __pyx_t_2;
 
10069
  }
 
10070
  if (__pyx_t_1) {
 
10071
 
 
10072
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":248
 
10073
 *             if not hasfields and not copy_shape:
 
10074
 *                 # do not call releasebuffer
 
10075
 *                 info.obj = None             # <<<<<<<<<<<<<<
 
10076
 *             else:
 
10077
 *                 # need to call releasebuffer
 
10078
 */
 
10079
    __Pyx_INCREF(Py_None);
 
10080
    __Pyx_GIVEREF(Py_None);
 
10081
    __Pyx_GOTREF(__pyx_v_info->obj);
 
10082
    __Pyx_DECREF(__pyx_v_info->obj);
 
10083
    __pyx_v_info->obj = Py_None;
 
10084
    goto __pyx_L10;
 
10085
  }
 
10086
  /*else*/ {
 
10087
 
 
10088
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":251
 
10089
 *             else:
 
10090
 *                 # need to call releasebuffer
 
10091
 *                 info.obj = self             # <<<<<<<<<<<<<<
 
10092
 * 
 
10093
 *             if not hasfields:
 
10094
 */
 
10095
    __Pyx_INCREF(((PyObject *)__pyx_v_self));
 
10096
    __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
 
10097
    __Pyx_GOTREF(__pyx_v_info->obj);
 
10098
    __Pyx_DECREF(__pyx_v_info->obj);
 
10099
    __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
 
10100
  }
 
10101
  __pyx_L10:;
 
10102
 
 
10103
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":253
 
10104
 *                 info.obj = self
 
10105
 * 
 
10106
 *             if not hasfields:             # <<<<<<<<<<<<<<
 
10107
 *                 t = descr.type_num
 
10108
 *                 if ((descr.byteorder == c'>' and little_endian) or
 
10109
 */
 
10110
  __pyx_t_1 = ((!(__pyx_v_hasfields != 0)) != 0);
 
10111
  if (__pyx_t_1) {
 
10112
 
 
10113
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":254
 
10114
 * 
 
10115
 *             if not hasfields:
 
10116
 *                 t = descr.type_num             # <<<<<<<<<<<<<<
 
10117
 *                 if ((descr.byteorder == c'>' and little_endian) or
 
10118
 *                     (descr.byteorder == c'<' and not little_endian)):
 
10119
 */
 
10120
    __pyx_t_5 = __pyx_v_descr->type_num;
 
10121
    __pyx_v_t = __pyx_t_5;
 
10122
 
 
10123
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":255
 
10124
 *             if not hasfields:
 
10125
 *                 t = descr.type_num
 
10126
 *                 if ((descr.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
 
10127
 *                     (descr.byteorder == c'<' and not little_endian)):
 
10128
 *                     raise ValueError(u"Non-native byte order not supported")
 
10129
 */
 
10130
    __pyx_t_1 = ((__pyx_v_descr->byteorder == '>') != 0);
 
10131
    if (__pyx_t_1) {
 
10132
      __pyx_t_2 = (__pyx_v_little_endian != 0);
 
10133
    } else {
 
10134
      __pyx_t_2 = __pyx_t_1;
 
10135
    }
 
10136
    if (!__pyx_t_2) {
 
10137
 
 
10138
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":256
 
10139
 *                 t = descr.type_num
 
10140
 *                 if ((descr.byteorder == c'>' and little_endian) or
 
10141
 *                     (descr.byteorder == c'<' and not little_endian)):             # <<<<<<<<<<<<<<
 
10142
 *                     raise ValueError(u"Non-native byte order not supported")
 
10143
 *                 if   t == NPY_BYTE:        f = "b"
 
10144
 */
 
10145
      __pyx_t_1 = ((__pyx_v_descr->byteorder == '<') != 0);
 
10146
      if (__pyx_t_1) {
 
10147
        __pyx_t_3 = ((!(__pyx_v_little_endian != 0)) != 0);
 
10148
        __pyx_t_7 = __pyx_t_3;
 
10149
      } else {
 
10150
        __pyx_t_7 = __pyx_t_1;
 
10151
      }
 
10152
      __pyx_t_1 = __pyx_t_7;
 
10153
    } else {
 
10154
      __pyx_t_1 = __pyx_t_2;
 
10155
    }
 
10156
    if (__pyx_t_1) {
 
10157
 
 
10158
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":257
 
10159
 *                 if ((descr.byteorder == c'>' and little_endian) or
 
10160
 *                     (descr.byteorder == c'<' and not little_endian)):
 
10161
 *                     raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
 
10162
 *                 if   t == NPY_BYTE:        f = "b"
 
10163
 *                 elif t == NPY_UBYTE:       f = "B"
 
10164
 */
 
10165
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10166
      __Pyx_GOTREF(__pyx_t_4);
 
10167
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
 
10168
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
10169
      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10170
    }
 
10171
 
 
10172
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":274
 
10173
 *                 elif t == NPY_CDOUBLE:     f = "Zd"
 
10174
 *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
 
10175
 *                 elif t == NPY_OBJECT:      f = "O"             # <<<<<<<<<<<<<<
 
10176
 *                 else:
 
10177
 *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 
10178
 */
 
10179
    switch (__pyx_v_t) {
 
10180
 
 
10181
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":258
 
10182
 *                     (descr.byteorder == c'<' and not little_endian)):
 
10183
 *                     raise ValueError(u"Non-native byte order not supported")
 
10184
 *                 if   t == NPY_BYTE:        f = "b"             # <<<<<<<<<<<<<<
 
10185
 *                 elif t == NPY_UBYTE:       f = "B"
 
10186
 *                 elif t == NPY_SHORT:       f = "h"
 
10187
 */
 
10188
      case NPY_BYTE:
 
10189
      __pyx_v_f = __pyx_k_b;
 
10190
      break;
 
10191
 
 
10192
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":259
 
10193
 *                     raise ValueError(u"Non-native byte order not supported")
 
10194
 *                 if   t == NPY_BYTE:        f = "b"
 
10195
 *                 elif t == NPY_UBYTE:       f = "B"             # <<<<<<<<<<<<<<
 
10196
 *                 elif t == NPY_SHORT:       f = "h"
 
10197
 *                 elif t == NPY_USHORT:      f = "H"
 
10198
 */
 
10199
      case NPY_UBYTE:
 
10200
      __pyx_v_f = __pyx_k_B;
 
10201
      break;
 
10202
 
 
10203
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":260
 
10204
 *                 if   t == NPY_BYTE:        f = "b"
 
10205
 *                 elif t == NPY_UBYTE:       f = "B"
 
10206
 *                 elif t == NPY_SHORT:       f = "h"             # <<<<<<<<<<<<<<
 
10207
 *                 elif t == NPY_USHORT:      f = "H"
 
10208
 *                 elif t == NPY_INT:         f = "i"
 
10209
 */
 
10210
      case NPY_SHORT:
 
10211
      __pyx_v_f = __pyx_k_h;
 
10212
      break;
 
10213
 
 
10214
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":261
 
10215
 *                 elif t == NPY_UBYTE:       f = "B"
 
10216
 *                 elif t == NPY_SHORT:       f = "h"
 
10217
 *                 elif t == NPY_USHORT:      f = "H"             # <<<<<<<<<<<<<<
 
10218
 *                 elif t == NPY_INT:         f = "i"
 
10219
 *                 elif t == NPY_UINT:        f = "I"
 
10220
 */
 
10221
      case NPY_USHORT:
 
10222
      __pyx_v_f = __pyx_k_H;
 
10223
      break;
 
10224
 
 
10225
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":262
 
10226
 *                 elif t == NPY_SHORT:       f = "h"
 
10227
 *                 elif t == NPY_USHORT:      f = "H"
 
10228
 *                 elif t == NPY_INT:         f = "i"             # <<<<<<<<<<<<<<
 
10229
 *                 elif t == NPY_UINT:        f = "I"
 
10230
 *                 elif t == NPY_LONG:        f = "l"
 
10231
 */
 
10232
      case NPY_INT:
 
10233
      __pyx_v_f = __pyx_k_i;
 
10234
      break;
 
10235
 
 
10236
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":263
 
10237
 *                 elif t == NPY_USHORT:      f = "H"
 
10238
 *                 elif t == NPY_INT:         f = "i"
 
10239
 *                 elif t == NPY_UINT:        f = "I"             # <<<<<<<<<<<<<<
 
10240
 *                 elif t == NPY_LONG:        f = "l"
 
10241
 *                 elif t == NPY_ULONG:       f = "L"
 
10242
 */
 
10243
      case NPY_UINT:
 
10244
      __pyx_v_f = __pyx_k_I;
 
10245
      break;
 
10246
 
 
10247
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":264
 
10248
 *                 elif t == NPY_INT:         f = "i"
 
10249
 *                 elif t == NPY_UINT:        f = "I"
 
10250
 *                 elif t == NPY_LONG:        f = "l"             # <<<<<<<<<<<<<<
 
10251
 *                 elif t == NPY_ULONG:       f = "L"
 
10252
 *                 elif t == NPY_LONGLONG:    f = "q"
 
10253
 */
 
10254
      case NPY_LONG:
 
10255
      __pyx_v_f = __pyx_k_l;
 
10256
      break;
 
10257
 
 
10258
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":265
 
10259
 *                 elif t == NPY_UINT:        f = "I"
 
10260
 *                 elif t == NPY_LONG:        f = "l"
 
10261
 *                 elif t == NPY_ULONG:       f = "L"             # <<<<<<<<<<<<<<
 
10262
 *                 elif t == NPY_LONGLONG:    f = "q"
 
10263
 *                 elif t == NPY_ULONGLONG:   f = "Q"
 
10264
 */
 
10265
      case NPY_ULONG:
 
10266
      __pyx_v_f = __pyx_k_L;
 
10267
      break;
 
10268
 
 
10269
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":266
 
10270
 *                 elif t == NPY_LONG:        f = "l"
 
10271
 *                 elif t == NPY_ULONG:       f = "L"
 
10272
 *                 elif t == NPY_LONGLONG:    f = "q"             # <<<<<<<<<<<<<<
 
10273
 *                 elif t == NPY_ULONGLONG:   f = "Q"
 
10274
 *                 elif t == NPY_FLOAT:       f = "f"
 
10275
 */
 
10276
      case NPY_LONGLONG:
 
10277
      __pyx_v_f = __pyx_k_q;
 
10278
      break;
 
10279
 
 
10280
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":267
 
10281
 *                 elif t == NPY_ULONG:       f = "L"
 
10282
 *                 elif t == NPY_LONGLONG:    f = "q"
 
10283
 *                 elif t == NPY_ULONGLONG:   f = "Q"             # <<<<<<<<<<<<<<
 
10284
 *                 elif t == NPY_FLOAT:       f = "f"
 
10285
 *                 elif t == NPY_DOUBLE:      f = "d"
 
10286
 */
 
10287
      case NPY_ULONGLONG:
 
10288
      __pyx_v_f = __pyx_k_Q;
 
10289
      break;
 
10290
 
 
10291
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":268
 
10292
 *                 elif t == NPY_LONGLONG:    f = "q"
 
10293
 *                 elif t == NPY_ULONGLONG:   f = "Q"
 
10294
 *                 elif t == NPY_FLOAT:       f = "f"             # <<<<<<<<<<<<<<
 
10295
 *                 elif t == NPY_DOUBLE:      f = "d"
 
10296
 *                 elif t == NPY_LONGDOUBLE:  f = "g"
 
10297
 */
 
10298
      case NPY_FLOAT:
 
10299
      __pyx_v_f = __pyx_k_f;
 
10300
      break;
 
10301
 
 
10302
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":269
 
10303
 *                 elif t == NPY_ULONGLONG:   f = "Q"
 
10304
 *                 elif t == NPY_FLOAT:       f = "f"
 
10305
 *                 elif t == NPY_DOUBLE:      f = "d"             # <<<<<<<<<<<<<<
 
10306
 *                 elif t == NPY_LONGDOUBLE:  f = "g"
 
10307
 *                 elif t == NPY_CFLOAT:      f = "Zf"
 
10308
 */
 
10309
      case NPY_DOUBLE:
 
10310
      __pyx_v_f = __pyx_k_d;
 
10311
      break;
 
10312
 
 
10313
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":270
 
10314
 *                 elif t == NPY_FLOAT:       f = "f"
 
10315
 *                 elif t == NPY_DOUBLE:      f = "d"
 
10316
 *                 elif t == NPY_LONGDOUBLE:  f = "g"             # <<<<<<<<<<<<<<
 
10317
 *                 elif t == NPY_CFLOAT:      f = "Zf"
 
10318
 *                 elif t == NPY_CDOUBLE:     f = "Zd"
 
10319
 */
 
10320
      case NPY_LONGDOUBLE:
 
10321
      __pyx_v_f = __pyx_k_g;
 
10322
      break;
 
10323
 
 
10324
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":271
 
10325
 *                 elif t == NPY_DOUBLE:      f = "d"
 
10326
 *                 elif t == NPY_LONGDOUBLE:  f = "g"
 
10327
 *                 elif t == NPY_CFLOAT:      f = "Zf"             # <<<<<<<<<<<<<<
 
10328
 *                 elif t == NPY_CDOUBLE:     f = "Zd"
 
10329
 *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
 
10330
 */
 
10331
      case NPY_CFLOAT:
 
10332
      __pyx_v_f = __pyx_k_Zf;
 
10333
      break;
 
10334
 
 
10335
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":272
 
10336
 *                 elif t == NPY_LONGDOUBLE:  f = "g"
 
10337
 *                 elif t == NPY_CFLOAT:      f = "Zf"
 
10338
 *                 elif t == NPY_CDOUBLE:     f = "Zd"             # <<<<<<<<<<<<<<
 
10339
 *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
 
10340
 *                 elif t == NPY_OBJECT:      f = "O"
 
10341
 */
 
10342
      case NPY_CDOUBLE:
 
10343
      __pyx_v_f = __pyx_k_Zd;
 
10344
      break;
 
10345
 
 
10346
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":273
 
10347
 *                 elif t == NPY_CFLOAT:      f = "Zf"
 
10348
 *                 elif t == NPY_CDOUBLE:     f = "Zd"
 
10349
 *                 elif t == NPY_CLONGDOUBLE: f = "Zg"             # <<<<<<<<<<<<<<
 
10350
 *                 elif t == NPY_OBJECT:      f = "O"
 
10351
 *                 else:
 
10352
 */
 
10353
      case NPY_CLONGDOUBLE:
 
10354
      __pyx_v_f = __pyx_k_Zg;
 
10355
      break;
 
10356
 
 
10357
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":274
 
10358
 *                 elif t == NPY_CDOUBLE:     f = "Zd"
 
10359
 *                 elif t == NPY_CLONGDOUBLE: f = "Zg"
 
10360
 *                 elif t == NPY_OBJECT:      f = "O"             # <<<<<<<<<<<<<<
 
10361
 *                 else:
 
10362
 *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 
10363
 */
 
10364
      case NPY_OBJECT:
 
10365
      __pyx_v_f = __pyx_k_O;
 
10366
      break;
 
10367
      default:
 
10368
 
 
10369
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":276
 
10370
 *                 elif t == NPY_OBJECT:      f = "O"
 
10371
 *                 else:
 
10372
 *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)             # <<<<<<<<<<<<<<
 
10373
 *                 info.format = f
 
10374
 *                 return
 
10375
 */
 
10376
      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_t); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10377
      __Pyx_GOTREF(__pyx_t_4);
 
10378
      __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10379
      __Pyx_GOTREF(__pyx_t_8);
 
10380
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
10381
      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10382
      __Pyx_GOTREF(__pyx_t_4);
 
10383
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8);
 
10384
      __Pyx_GIVEREF(__pyx_t_8);
 
10385
      __pyx_t_8 = 0;
 
10386
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10387
      __Pyx_GOTREF(__pyx_t_8);
 
10388
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
10389
      __Pyx_Raise(__pyx_t_8, 0, 0, 0);
 
10390
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
10391
      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10392
      break;
 
10393
    }
 
10394
 
 
10395
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":277
 
10396
 *                 else:
 
10397
 *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 
10398
 *                 info.format = f             # <<<<<<<<<<<<<<
 
10399
 *                 return
 
10400
 *             else:
 
10401
 */
 
10402
    __pyx_v_info->format = __pyx_v_f;
 
10403
 
 
10404
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":278
 
10405
 *                     raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 
10406
 *                 info.format = f
 
10407
 *                 return             # <<<<<<<<<<<<<<
 
10408
 *             else:
 
10409
 *                 info.format = <char*>stdlib.malloc(_buffer_format_string_len)
 
10410
 */
 
10411
    __pyx_r = 0;
 
10412
    goto __pyx_L0;
 
10413
  }
 
10414
  /*else*/ {
 
10415
 
 
10416
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":280
 
10417
 *                 return
 
10418
 *             else:
 
10419
 *                 info.format = <char*>stdlib.malloc(_buffer_format_string_len)             # <<<<<<<<<<<<<<
 
10420
 *                 info.format[0] = c'^' # Native data types, manual alignment
 
10421
 *                 offset = 0
 
10422
 */
 
10423
    __pyx_v_info->format = ((char *)malloc(255));
 
10424
 
 
10425
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":281
 
10426
 *             else:
 
10427
 *                 info.format = <char*>stdlib.malloc(_buffer_format_string_len)
 
10428
 *                 info.format[0] = c'^' # Native data types, manual alignment             # <<<<<<<<<<<<<<
 
10429
 *                 offset = 0
 
10430
 *                 f = _util_dtypestring(descr, info.format + 1,
 
10431
 */
 
10432
    (__pyx_v_info->format[0]) = '^';
 
10433
 
 
10434
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":282
 
10435
 *                 info.format = <char*>stdlib.malloc(_buffer_format_string_len)
 
10436
 *                 info.format[0] = c'^' # Native data types, manual alignment
 
10437
 *                 offset = 0             # <<<<<<<<<<<<<<
 
10438
 *                 f = _util_dtypestring(descr, info.format + 1,
 
10439
 *                                       info.format + _buffer_format_string_len,
 
10440
 */
 
10441
    __pyx_v_offset = 0;
 
10442
 
 
10443
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":283
 
10444
 *                 info.format[0] = c'^' # Native data types, manual alignment
 
10445
 *                 offset = 0
 
10446
 *                 f = _util_dtypestring(descr, info.format + 1,             # <<<<<<<<<<<<<<
 
10447
 *                                       info.format + _buffer_format_string_len,
 
10448
 *                                       &offset)
 
10449
 */
 
10450
    __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_descr, (__pyx_v_info->format + 1), (__pyx_v_info->format + 255), (&__pyx_v_offset)); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10451
    __pyx_v_f = __pyx_t_9;
 
10452
 
 
10453
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":286
 
10454
 *                                       info.format + _buffer_format_string_len,
 
10455
 *                                       &offset)
 
10456
 *                 f[0] = c'\0' # Terminate format string             # <<<<<<<<<<<<<<
 
10457
 * 
 
10458
 *         def __releasebuffer__(ndarray self, Py_buffer* info):
 
10459
 */
 
10460
    (__pyx_v_f[0]) = '\x00';
 
10461
  }
 
10462
 
 
10463
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":194
 
10464
 *         # experimental exception made for __getbuffer__ and __releasebuffer__
 
10465
 *         # -- the details of this may change.
 
10466
 *         def __getbuffer__(ndarray self, Py_buffer* info, int flags):             # <<<<<<<<<<<<<<
 
10467
 *             # This implementation of getbuffer is geared towards Cython
 
10468
 *             # requirements, and does not yet fullfill the PEP.
 
10469
 */
 
10470
 
 
10471
  /* function exit code */
 
10472
  __pyx_r = 0;
 
10473
  goto __pyx_L0;
 
10474
  __pyx_L1_error:;
 
10475
  __Pyx_XDECREF(__pyx_t_4);
 
10476
  __Pyx_XDECREF(__pyx_t_8);
 
10477
  __Pyx_AddTraceback("numpy.ndarray.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
10478
  __pyx_r = -1;
 
10479
  if (__pyx_v_info != NULL && __pyx_v_info->obj != NULL) {
 
10480
    __Pyx_GOTREF(__pyx_v_info->obj);
 
10481
    __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = NULL;
 
10482
  }
 
10483
  goto __pyx_L2;
 
10484
  __pyx_L0:;
 
10485
  if (__pyx_v_info != NULL && __pyx_v_info->obj == Py_None) {
 
10486
    __Pyx_GOTREF(Py_None);
 
10487
    __Pyx_DECREF(Py_None); __pyx_v_info->obj = NULL;
 
10488
  }
 
10489
  __pyx_L2:;
 
10490
  __Pyx_XDECREF((PyObject *)__pyx_v_descr);
 
10491
  __Pyx_RefNannyFinishContext();
 
10492
  return __pyx_r;
 
10493
}
 
10494
 
 
10495
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":288
 
10496
 *                 f[0] = c'\0' # Terminate format string
 
10497
 * 
 
10498
 *         def __releasebuffer__(ndarray self, Py_buffer* info):             # <<<<<<<<<<<<<<
 
10499
 *             if PyArray_HASFIELDS(self):
 
10500
 *                 stdlib.free(info.format)
 
10501
 */
 
10502
 
 
10503
/* Python wrapper */
 
10504
static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info); /*proto*/
 
10505
static CYTHON_UNUSED void __pyx_pw_5numpy_7ndarray_3__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
 
10506
  __Pyx_RefNannyDeclarations
 
10507
  __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0);
 
10508
  __pyx_pf_5numpy_7ndarray_2__releasebuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info));
 
10509
 
 
10510
  /* function exit code */
 
10511
  __Pyx_RefNannyFinishContext();
 
10512
}
 
10513
 
 
10514
static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info) {
 
10515
  __Pyx_RefNannyDeclarations
 
10516
  int __pyx_t_1;
 
10517
  __Pyx_RefNannySetupContext("__releasebuffer__", 0);
 
10518
 
 
10519
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":289
 
10520
 * 
 
10521
 *         def __releasebuffer__(ndarray self, Py_buffer* info):
 
10522
 *             if PyArray_HASFIELDS(self):             # <<<<<<<<<<<<<<
 
10523
 *                 stdlib.free(info.format)
 
10524
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
 
10525
 */
 
10526
  __pyx_t_1 = (PyArray_HASFIELDS(__pyx_v_self) != 0);
 
10527
  if (__pyx_t_1) {
 
10528
 
 
10529
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":290
 
10530
 *         def __releasebuffer__(ndarray self, Py_buffer* info):
 
10531
 *             if PyArray_HASFIELDS(self):
 
10532
 *                 stdlib.free(info.format)             # <<<<<<<<<<<<<<
 
10533
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
 
10534
 *                 stdlib.free(info.strides)
 
10535
 */
 
10536
    free(__pyx_v_info->format);
 
10537
    goto __pyx_L3;
 
10538
  }
 
10539
  __pyx_L3:;
 
10540
 
 
10541
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":291
 
10542
 *             if PyArray_HASFIELDS(self):
 
10543
 *                 stdlib.free(info.format)
 
10544
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):             # <<<<<<<<<<<<<<
 
10545
 *                 stdlib.free(info.strides)
 
10546
 *                 # info.shape was stored after info.strides in the same block
 
10547
 */
 
10548
  __pyx_t_1 = (((sizeof(npy_intp)) != (sizeof(Py_ssize_t))) != 0);
 
10549
  if (__pyx_t_1) {
 
10550
 
 
10551
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":292
 
10552
 *                 stdlib.free(info.format)
 
10553
 *             if sizeof(npy_intp) != sizeof(Py_ssize_t):
 
10554
 *                 stdlib.free(info.strides)             # <<<<<<<<<<<<<<
 
10555
 *                 # info.shape was stored after info.strides in the same block
 
10556
 * 
 
10557
 */
 
10558
    free(__pyx_v_info->strides);
 
10559
    goto __pyx_L4;
 
10560
  }
 
10561
  __pyx_L4:;
 
10562
 
 
10563
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":288
 
10564
 *                 f[0] = c'\0' # Terminate format string
 
10565
 * 
 
10566
 *         def __releasebuffer__(ndarray self, Py_buffer* info):             # <<<<<<<<<<<<<<
 
10567
 *             if PyArray_HASFIELDS(self):
 
10568
 *                 stdlib.free(info.format)
 
10569
 */
 
10570
 
 
10571
  /* function exit code */
 
10572
  __Pyx_RefNannyFinishContext();
 
10573
}
 
10574
 
 
10575
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":768
 
10576
 * ctypedef npy_cdouble     complex_t
 
10577
 * 
 
10578
 * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
 
10579
 *     return PyArray_MultiIterNew(1, <void*>a)
 
10580
 * 
 
10581
 */
 
10582
 
 
10583
static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
 
10584
  PyObject *__pyx_r = NULL;
 
10585
  __Pyx_RefNannyDeclarations
 
10586
  PyObject *__pyx_t_1 = NULL;
 
10587
  int __pyx_lineno = 0;
 
10588
  const char *__pyx_filename = NULL;
 
10589
  int __pyx_clineno = 0;
 
10590
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0);
 
10591
 
 
10592
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":769
 
10593
 * 
 
10594
 * cdef inline object PyArray_MultiIterNew1(a):
 
10595
 *     return PyArray_MultiIterNew(1, <void*>a)             # <<<<<<<<<<<<<<
 
10596
 * 
 
10597
 * cdef inline object PyArray_MultiIterNew2(a, b):
 
10598
 */
 
10599
  __Pyx_XDECREF(__pyx_r);
 
10600
  __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10601
  __Pyx_GOTREF(__pyx_t_1);
 
10602
  __pyx_r = __pyx_t_1;
 
10603
  __pyx_t_1 = 0;
 
10604
  goto __pyx_L0;
 
10605
 
 
10606
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":768
 
10607
 * ctypedef npy_cdouble     complex_t
 
10608
 * 
 
10609
 * cdef inline object PyArray_MultiIterNew1(a):             # <<<<<<<<<<<<<<
 
10610
 *     return PyArray_MultiIterNew(1, <void*>a)
 
10611
 * 
 
10612
 */
 
10613
 
 
10614
  /* function exit code */
 
10615
  __pyx_L1_error:;
 
10616
  __Pyx_XDECREF(__pyx_t_1);
 
10617
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
10618
  __pyx_r = 0;
 
10619
  __pyx_L0:;
 
10620
  __Pyx_XGIVEREF(__pyx_r);
 
10621
  __Pyx_RefNannyFinishContext();
 
10622
  return __pyx_r;
 
10623
}
 
10624
 
 
10625
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":771
 
10626
 *     return PyArray_MultiIterNew(1, <void*>a)
 
10627
 * 
 
10628
 * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
 
10629
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 
10630
 * 
 
10631
 */
 
10632
 
 
10633
static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
 
10634
  PyObject *__pyx_r = NULL;
 
10635
  __Pyx_RefNannyDeclarations
 
10636
  PyObject *__pyx_t_1 = NULL;
 
10637
  int __pyx_lineno = 0;
 
10638
  const char *__pyx_filename = NULL;
 
10639
  int __pyx_clineno = 0;
 
10640
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0);
 
10641
 
 
10642
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":772
 
10643
 * 
 
10644
 * cdef inline object PyArray_MultiIterNew2(a, b):
 
10645
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)             # <<<<<<<<<<<<<<
 
10646
 * 
 
10647
 * cdef inline object PyArray_MultiIterNew3(a, b, c):
 
10648
 */
 
10649
  __Pyx_XDECREF(__pyx_r);
 
10650
  __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10651
  __Pyx_GOTREF(__pyx_t_1);
 
10652
  __pyx_r = __pyx_t_1;
 
10653
  __pyx_t_1 = 0;
 
10654
  goto __pyx_L0;
 
10655
 
 
10656
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":771
 
10657
 *     return PyArray_MultiIterNew(1, <void*>a)
 
10658
 * 
 
10659
 * cdef inline object PyArray_MultiIterNew2(a, b):             # <<<<<<<<<<<<<<
 
10660
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 
10661
 * 
 
10662
 */
 
10663
 
 
10664
  /* function exit code */
 
10665
  __pyx_L1_error:;
 
10666
  __Pyx_XDECREF(__pyx_t_1);
 
10667
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
10668
  __pyx_r = 0;
 
10669
  __pyx_L0:;
 
10670
  __Pyx_XGIVEREF(__pyx_r);
 
10671
  __Pyx_RefNannyFinishContext();
 
10672
  return __pyx_r;
 
10673
}
 
10674
 
 
10675
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":774
 
10676
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 
10677
 * 
 
10678
 * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
 
10679
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 
10680
 * 
 
10681
 */
 
10682
 
 
10683
static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
 
10684
  PyObject *__pyx_r = NULL;
 
10685
  __Pyx_RefNannyDeclarations
 
10686
  PyObject *__pyx_t_1 = NULL;
 
10687
  int __pyx_lineno = 0;
 
10688
  const char *__pyx_filename = NULL;
 
10689
  int __pyx_clineno = 0;
 
10690
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0);
 
10691
 
 
10692
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":775
 
10693
 * 
 
10694
 * cdef inline object PyArray_MultiIterNew3(a, b, c):
 
10695
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)             # <<<<<<<<<<<<<<
 
10696
 * 
 
10697
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
 
10698
 */
 
10699
  __Pyx_XDECREF(__pyx_r);
 
10700
  __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10701
  __Pyx_GOTREF(__pyx_t_1);
 
10702
  __pyx_r = __pyx_t_1;
 
10703
  __pyx_t_1 = 0;
 
10704
  goto __pyx_L0;
 
10705
 
 
10706
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":774
 
10707
 *     return PyArray_MultiIterNew(2, <void*>a, <void*>b)
 
10708
 * 
 
10709
 * cdef inline object PyArray_MultiIterNew3(a, b, c):             # <<<<<<<<<<<<<<
 
10710
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 
10711
 * 
 
10712
 */
 
10713
 
 
10714
  /* function exit code */
 
10715
  __pyx_L1_error:;
 
10716
  __Pyx_XDECREF(__pyx_t_1);
 
10717
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
10718
  __pyx_r = 0;
 
10719
  __pyx_L0:;
 
10720
  __Pyx_XGIVEREF(__pyx_r);
 
10721
  __Pyx_RefNannyFinishContext();
 
10722
  return __pyx_r;
 
10723
}
 
10724
 
 
10725
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":777
 
10726
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 
10727
 * 
 
10728
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
 
10729
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 
10730
 * 
 
10731
 */
 
10732
 
 
10733
static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
 
10734
  PyObject *__pyx_r = NULL;
 
10735
  __Pyx_RefNannyDeclarations
 
10736
  PyObject *__pyx_t_1 = NULL;
 
10737
  int __pyx_lineno = 0;
 
10738
  const char *__pyx_filename = NULL;
 
10739
  int __pyx_clineno = 0;
 
10740
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0);
 
10741
 
 
10742
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":778
 
10743
 * 
 
10744
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
 
10745
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)             # <<<<<<<<<<<<<<
 
10746
 * 
 
10747
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
 
10748
 */
 
10749
  __Pyx_XDECREF(__pyx_r);
 
10750
  __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10751
  __Pyx_GOTREF(__pyx_t_1);
 
10752
  __pyx_r = __pyx_t_1;
 
10753
  __pyx_t_1 = 0;
 
10754
  goto __pyx_L0;
 
10755
 
 
10756
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":777
 
10757
 *     return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
 
10758
 * 
 
10759
 * cdef inline object PyArray_MultiIterNew4(a, b, c, d):             # <<<<<<<<<<<<<<
 
10760
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 
10761
 * 
 
10762
 */
 
10763
 
 
10764
  /* function exit code */
 
10765
  __pyx_L1_error:;
 
10766
  __Pyx_XDECREF(__pyx_t_1);
 
10767
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
10768
  __pyx_r = 0;
 
10769
  __pyx_L0:;
 
10770
  __Pyx_XGIVEREF(__pyx_r);
 
10771
  __Pyx_RefNannyFinishContext();
 
10772
  return __pyx_r;
 
10773
}
 
10774
 
 
10775
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":780
 
10776
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 
10777
 * 
 
10778
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
 
10779
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 
10780
 * 
 
10781
 */
 
10782
 
 
10783
static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {
 
10784
  PyObject *__pyx_r = NULL;
 
10785
  __Pyx_RefNannyDeclarations
 
10786
  PyObject *__pyx_t_1 = NULL;
 
10787
  int __pyx_lineno = 0;
 
10788
  const char *__pyx_filename = NULL;
 
10789
  int __pyx_clineno = 0;
 
10790
  __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0);
 
10791
 
 
10792
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":781
 
10793
 * 
 
10794
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
 
10795
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)             # <<<<<<<<<<<<<<
 
10796
 * 
 
10797
 * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:
 
10798
 */
 
10799
  __Pyx_XDECREF(__pyx_r);
 
10800
  __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 781; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10801
  __Pyx_GOTREF(__pyx_t_1);
 
10802
  __pyx_r = __pyx_t_1;
 
10803
  __pyx_t_1 = 0;
 
10804
  goto __pyx_L0;
 
10805
 
 
10806
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":780
 
10807
 *     return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
 
10808
 * 
 
10809
 * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):             # <<<<<<<<<<<<<<
 
10810
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 
10811
 * 
 
10812
 */
 
10813
 
 
10814
  /* function exit code */
 
10815
  __pyx_L1_error:;
 
10816
  __Pyx_XDECREF(__pyx_t_1);
 
10817
  __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
10818
  __pyx_r = 0;
 
10819
  __pyx_L0:;
 
10820
  __Pyx_XGIVEREF(__pyx_r);
 
10821
  __Pyx_RefNannyFinishContext();
 
10822
  return __pyx_r;
 
10823
}
 
10824
 
 
10825
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":783
 
10826
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 
10827
 * 
 
10828
 * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:             # <<<<<<<<<<<<<<
 
10829
 *     # Recursive utility function used in __getbuffer__ to get format
 
10830
 *     # string. The new location in the format string is returned.
 
10831
 */
 
10832
 
 
10833
static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) {
 
10834
  PyArray_Descr *__pyx_v_child = 0;
 
10835
  int __pyx_v_endian_detector;
 
10836
  int __pyx_v_little_endian;
 
10837
  PyObject *__pyx_v_fields = 0;
 
10838
  PyObject *__pyx_v_childname = NULL;
 
10839
  PyObject *__pyx_v_new_offset = NULL;
 
10840
  PyObject *__pyx_v_t = NULL;
 
10841
  char *__pyx_r;
 
10842
  __Pyx_RefNannyDeclarations
 
10843
  PyObject *__pyx_t_1 = NULL;
 
10844
  Py_ssize_t __pyx_t_2;
 
10845
  PyObject *__pyx_t_3 = NULL;
 
10846
  PyObject *__pyx_t_4 = NULL;
 
10847
  int __pyx_t_5;
 
10848
  int __pyx_t_6;
 
10849
  int __pyx_t_7;
 
10850
  int __pyx_t_8;
 
10851
  int __pyx_t_9;
 
10852
  long __pyx_t_10;
 
10853
  char *__pyx_t_11;
 
10854
  int __pyx_lineno = 0;
 
10855
  const char *__pyx_filename = NULL;
 
10856
  int __pyx_clineno = 0;
 
10857
  __Pyx_RefNannySetupContext("_util_dtypestring", 0);
 
10858
 
 
10859
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":790
 
10860
 *     cdef int delta_offset
 
10861
 *     cdef tuple i
 
10862
 *     cdef int endian_detector = 1             # <<<<<<<<<<<<<<
 
10863
 *     cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)
 
10864
 *     cdef tuple fields
 
10865
 */
 
10866
  __pyx_v_endian_detector = 1;
 
10867
 
 
10868
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":791
 
10869
 *     cdef tuple i
 
10870
 *     cdef int endian_detector = 1
 
10871
 *     cdef bint little_endian = ((<char*>&endian_detector)[0] != 0)             # <<<<<<<<<<<<<<
 
10872
 *     cdef tuple fields
 
10873
 * 
 
10874
 */
 
10875
  __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0);
 
10876
 
 
10877
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":794
 
10878
 *     cdef tuple fields
 
10879
 * 
 
10880
 *     for childname in descr.names:             # <<<<<<<<<<<<<<
 
10881
 *         fields = descr.fields[childname]
 
10882
 *         child, new_offset = fields
 
10883
 */
 
10884
  if (unlikely(__pyx_v_descr->names == Py_None)) {
 
10885
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
 
10886
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10887
  }
 
10888
  __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
 
10889
  for (;;) {
 
10890
    if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
 
10891
    #if CYTHON_COMPILING_IN_CPYTHON
 
10892
    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10893
    #else
 
10894
    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10895
    #endif
 
10896
    __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3);
 
10897
    __pyx_t_3 = 0;
 
10898
 
 
10899
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":795
 
10900
 * 
 
10901
 *     for childname in descr.names:
 
10902
 *         fields = descr.fields[childname]             # <<<<<<<<<<<<<<
 
10903
 *         child, new_offset = fields
 
10904
 * 
 
10905
 */
 
10906
    __pyx_t_3 = PyObject_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
10907
    __Pyx_GOTREF(__pyx_t_3);
 
10908
    if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10909
    __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3));
 
10910
    __pyx_t_3 = 0;
 
10911
 
 
10912
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":796
 
10913
 *     for childname in descr.names:
 
10914
 *         fields = descr.fields[childname]
 
10915
 *         child, new_offset = fields             # <<<<<<<<<<<<<<
 
10916
 * 
 
10917
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:
 
10918
 */
 
10919
    if (likely(__pyx_v_fields != Py_None)) {
 
10920
      PyObject* sequence = __pyx_v_fields;
 
10921
      #if CYTHON_COMPILING_IN_CPYTHON
 
10922
      Py_ssize_t size = Py_SIZE(sequence);
 
10923
      #else
 
10924
      Py_ssize_t size = PySequence_Size(sequence);
 
10925
      #endif
 
10926
      if (unlikely(size != 2)) {
 
10927
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
 
10928
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
 
10929
        {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10930
      }
 
10931
      #if CYTHON_COMPILING_IN_CPYTHON
 
10932
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
 
10933
      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
 
10934
      __Pyx_INCREF(__pyx_t_3);
 
10935
      __Pyx_INCREF(__pyx_t_4);
 
10936
      #else
 
10937
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10938
      __Pyx_GOTREF(__pyx_t_3);
 
10939
      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10940
      __Pyx_GOTREF(__pyx_t_4);
 
10941
      #endif
 
10942
    } else {
 
10943
      __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10944
    }
 
10945
    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10946
    __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3));
 
10947
    __pyx_t_3 = 0;
 
10948
    __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4);
 
10949
    __pyx_t_4 = 0;
 
10950
 
 
10951
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":798
 
10952
 *         child, new_offset = fields
 
10953
 * 
 
10954
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:             # <<<<<<<<<<<<<<
 
10955
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 
10956
 * 
 
10957
 */
 
10958
    __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10959
    __Pyx_GOTREF(__pyx_t_4);
 
10960
    __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10961
    __Pyx_GOTREF(__pyx_t_3);
 
10962
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
10963
    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10964
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
10965
    __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0);
 
10966
    if (__pyx_t_6) {
 
10967
 
 
10968
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":799
 
10969
 * 
 
10970
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:
 
10971
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")             # <<<<<<<<<<<<<<
 
10972
 * 
 
10973
 *         if ((child.byteorder == c'>' and little_endian) or
 
10974
 */
 
10975
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10976
      __Pyx_GOTREF(__pyx_t_3);
 
10977
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
 
10978
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
10979
      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
10980
    }
 
10981
 
 
10982
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":801
 
10983
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")
 
10984
 * 
 
10985
 *         if ((child.byteorder == c'>' and little_endian) or             # <<<<<<<<<<<<<<
 
10986
 *             (child.byteorder == c'<' and not little_endian)):
 
10987
 *             raise ValueError(u"Non-native byte order not supported")
 
10988
 */
 
10989
    __pyx_t_6 = ((__pyx_v_child->byteorder == '>') != 0);
 
10990
    if (__pyx_t_6) {
 
10991
      __pyx_t_7 = (__pyx_v_little_endian != 0);
 
10992
    } else {
 
10993
      __pyx_t_7 = __pyx_t_6;
 
10994
    }
 
10995
    if (!__pyx_t_7) {
 
10996
 
 
10997
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":802
 
10998
 * 
 
10999
 *         if ((child.byteorder == c'>' and little_endian) or
 
11000
 *             (child.byteorder == c'<' and not little_endian)):             # <<<<<<<<<<<<<<
 
11001
 *             raise ValueError(u"Non-native byte order not supported")
 
11002
 *             # One could encode it in the format string and have Cython
 
11003
 */
 
11004
      __pyx_t_6 = ((__pyx_v_child->byteorder == '<') != 0);
 
11005
      if (__pyx_t_6) {
 
11006
        __pyx_t_8 = ((!(__pyx_v_little_endian != 0)) != 0);
 
11007
        __pyx_t_9 = __pyx_t_8;
 
11008
      } else {
 
11009
        __pyx_t_9 = __pyx_t_6;
 
11010
      }
 
11011
      __pyx_t_6 = __pyx_t_9;
 
11012
    } else {
 
11013
      __pyx_t_6 = __pyx_t_7;
 
11014
    }
 
11015
    if (__pyx_t_6) {
 
11016
 
 
11017
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":803
 
11018
 *         if ((child.byteorder == c'>' and little_endian) or
 
11019
 *             (child.byteorder == c'<' and not little_endian)):
 
11020
 *             raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
 
11021
 *             # One could encode it in the format string and have Cython
 
11022
 *             # complain instead, BUT: < and > in format strings also imply
 
11023
 */
 
11024
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11025
      __Pyx_GOTREF(__pyx_t_3);
 
11026
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
 
11027
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11028
      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11029
    }
 
11030
 
 
11031
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":813
 
11032
 * 
 
11033
 *         # Output padding bytes
 
11034
 *         while offset[0] < new_offset:             # <<<<<<<<<<<<<<
 
11035
 *             f[0] = 120 # "x"; pad byte
 
11036
 *             f += 1
 
11037
 */
 
11038
    while (1) {
 
11039
      __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11040
      __Pyx_GOTREF(__pyx_t_3);
 
11041
      __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11042
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11043
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11044
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11045
      if (!__pyx_t_6) break;
 
11046
 
 
11047
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":814
 
11048
 *         # Output padding bytes
 
11049
 *         while offset[0] < new_offset:
 
11050
 *             f[0] = 120 # "x"; pad byte             # <<<<<<<<<<<<<<
 
11051
 *             f += 1
 
11052
 *             offset[0] += 1
 
11053
 */
 
11054
      (__pyx_v_f[0]) = 120;
 
11055
 
 
11056
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":815
 
11057
 *         while offset[0] < new_offset:
 
11058
 *             f[0] = 120 # "x"; pad byte
 
11059
 *             f += 1             # <<<<<<<<<<<<<<
 
11060
 *             offset[0] += 1
 
11061
 * 
 
11062
 */
 
11063
      __pyx_v_f = (__pyx_v_f + 1);
 
11064
 
 
11065
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":816
 
11066
 *             f[0] = 120 # "x"; pad byte
 
11067
 *             f += 1
 
11068
 *             offset[0] += 1             # <<<<<<<<<<<<<<
 
11069
 * 
 
11070
 *         offset[0] += child.itemsize
 
11071
 */
 
11072
      __pyx_t_10 = 0;
 
11073
      (__pyx_v_offset[__pyx_t_10]) = ((__pyx_v_offset[__pyx_t_10]) + 1);
 
11074
    }
 
11075
 
 
11076
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":818
 
11077
 *             offset[0] += 1
 
11078
 * 
 
11079
 *         offset[0] += child.itemsize             # <<<<<<<<<<<<<<
 
11080
 * 
 
11081
 *         if not PyDataType_HASFIELDS(child):
 
11082
 */
 
11083
    __pyx_t_10 = 0;
 
11084
    (__pyx_v_offset[__pyx_t_10]) = ((__pyx_v_offset[__pyx_t_10]) + __pyx_v_child->elsize);
 
11085
 
 
11086
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":820
 
11087
 *         offset[0] += child.itemsize
 
11088
 * 
 
11089
 *         if not PyDataType_HASFIELDS(child):             # <<<<<<<<<<<<<<
 
11090
 *             t = child.type_num
 
11091
 *             if end - f < 5:
 
11092
 */
 
11093
    __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0);
 
11094
    if (__pyx_t_6) {
 
11095
 
 
11096
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":821
 
11097
 * 
 
11098
 *         if not PyDataType_HASFIELDS(child):
 
11099
 *             t = child.type_num             # <<<<<<<<<<<<<<
 
11100
 *             if end - f < 5:
 
11101
 *                 raise RuntimeError(u"Format string allocated too short.")
 
11102
 */
 
11103
      __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11104
      __Pyx_GOTREF(__pyx_t_4);
 
11105
      __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4);
 
11106
      __pyx_t_4 = 0;
 
11107
 
 
11108
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":822
 
11109
 *         if not PyDataType_HASFIELDS(child):
 
11110
 *             t = child.type_num
 
11111
 *             if end - f < 5:             # <<<<<<<<<<<<<<
 
11112
 *                 raise RuntimeError(u"Format string allocated too short.")
 
11113
 * 
 
11114
 */
 
11115
      __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0);
 
11116
      if (__pyx_t_6) {
 
11117
 
 
11118
        /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":823
 
11119
 *             t = child.type_num
 
11120
 *             if end - f < 5:
 
11121
 *                 raise RuntimeError(u"Format string allocated too short.")             # <<<<<<<<<<<<<<
 
11122
 * 
 
11123
 *             # Until ticket #99 is fixed, use integers to avoid warnings
 
11124
 */
 
11125
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11126
        __Pyx_GOTREF(__pyx_t_4);
 
11127
        __Pyx_Raise(__pyx_t_4, 0, 0, 0);
 
11128
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11129
        {__pyx_filename = __pyx_f[1]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11130
      }
 
11131
 
 
11132
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":826
 
11133
 * 
 
11134
 *             # Until ticket #99 is fixed, use integers to avoid warnings
 
11135
 *             if   t == NPY_BYTE:        f[0] =  98 #"b"             # <<<<<<<<<<<<<<
 
11136
 *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
 
11137
 *             elif t == NPY_SHORT:       f[0] = 104 #"h"
 
11138
 */
 
11139
      __pyx_t_4 = PyInt_FromLong(NPY_BYTE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11140
      __Pyx_GOTREF(__pyx_t_4);
 
11141
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11142
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11143
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11144
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11145
      if (__pyx_t_6) {
 
11146
        (__pyx_v_f[0]) = 98;
 
11147
        goto __pyx_L11;
 
11148
      }
 
11149
 
 
11150
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":827
 
11151
 *             # Until ticket #99 is fixed, use integers to avoid warnings
 
11152
 *             if   t == NPY_BYTE:        f[0] =  98 #"b"
 
11153
 *             elif t == NPY_UBYTE:       f[0] =  66 #"B"             # <<<<<<<<<<<<<<
 
11154
 *             elif t == NPY_SHORT:       f[0] = 104 #"h"
 
11155
 *             elif t == NPY_USHORT:      f[0] =  72 #"H"
 
11156
 */
 
11157
      __pyx_t_3 = PyInt_FromLong(NPY_UBYTE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11158
      __Pyx_GOTREF(__pyx_t_3);
 
11159
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11160
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11161
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11162
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11163
      if (__pyx_t_6) {
 
11164
        (__pyx_v_f[0]) = 66;
 
11165
        goto __pyx_L11;
 
11166
      }
 
11167
 
 
11168
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":828
 
11169
 *             if   t == NPY_BYTE:        f[0] =  98 #"b"
 
11170
 *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
 
11171
 *             elif t == NPY_SHORT:       f[0] = 104 #"h"             # <<<<<<<<<<<<<<
 
11172
 *             elif t == NPY_USHORT:      f[0] =  72 #"H"
 
11173
 *             elif t == NPY_INT:         f[0] = 105 #"i"
 
11174
 */
 
11175
      __pyx_t_4 = PyInt_FromLong(NPY_SHORT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11176
      __Pyx_GOTREF(__pyx_t_4);
 
11177
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11178
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11179
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11180
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11181
      if (__pyx_t_6) {
 
11182
        (__pyx_v_f[0]) = 104;
 
11183
        goto __pyx_L11;
 
11184
      }
 
11185
 
 
11186
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":829
 
11187
 *             elif t == NPY_UBYTE:       f[0] =  66 #"B"
 
11188
 *             elif t == NPY_SHORT:       f[0] = 104 #"h"
 
11189
 *             elif t == NPY_USHORT:      f[0] =  72 #"H"             # <<<<<<<<<<<<<<
 
11190
 *             elif t == NPY_INT:         f[0] = 105 #"i"
 
11191
 *             elif t == NPY_UINT:        f[0] =  73 #"I"
 
11192
 */
 
11193
      __pyx_t_3 = PyInt_FromLong(NPY_USHORT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11194
      __Pyx_GOTREF(__pyx_t_3);
 
11195
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11196
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11197
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11198
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11199
      if (__pyx_t_6) {
 
11200
        (__pyx_v_f[0]) = 72;
 
11201
        goto __pyx_L11;
 
11202
      }
 
11203
 
 
11204
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":830
 
11205
 *             elif t == NPY_SHORT:       f[0] = 104 #"h"
 
11206
 *             elif t == NPY_USHORT:      f[0] =  72 #"H"
 
11207
 *             elif t == NPY_INT:         f[0] = 105 #"i"             # <<<<<<<<<<<<<<
 
11208
 *             elif t == NPY_UINT:        f[0] =  73 #"I"
 
11209
 *             elif t == NPY_LONG:        f[0] = 108 #"l"
 
11210
 */
 
11211
      __pyx_t_4 = PyInt_FromLong(NPY_INT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11212
      __Pyx_GOTREF(__pyx_t_4);
 
11213
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11214
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11215
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11216
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11217
      if (__pyx_t_6) {
 
11218
        (__pyx_v_f[0]) = 105;
 
11219
        goto __pyx_L11;
 
11220
      }
 
11221
 
 
11222
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":831
 
11223
 *             elif t == NPY_USHORT:      f[0] =  72 #"H"
 
11224
 *             elif t == NPY_INT:         f[0] = 105 #"i"
 
11225
 *             elif t == NPY_UINT:        f[0] =  73 #"I"             # <<<<<<<<<<<<<<
 
11226
 *             elif t == NPY_LONG:        f[0] = 108 #"l"
 
11227
 *             elif t == NPY_ULONG:       f[0] = 76  #"L"
 
11228
 */
 
11229
      __pyx_t_3 = PyInt_FromLong(NPY_UINT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11230
      __Pyx_GOTREF(__pyx_t_3);
 
11231
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11232
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11233
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11234
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11235
      if (__pyx_t_6) {
 
11236
        (__pyx_v_f[0]) = 73;
 
11237
        goto __pyx_L11;
 
11238
      }
 
11239
 
 
11240
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":832
 
11241
 *             elif t == NPY_INT:         f[0] = 105 #"i"
 
11242
 *             elif t == NPY_UINT:        f[0] =  73 #"I"
 
11243
 *             elif t == NPY_LONG:        f[0] = 108 #"l"             # <<<<<<<<<<<<<<
 
11244
 *             elif t == NPY_ULONG:       f[0] = 76  #"L"
 
11245
 *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
 
11246
 */
 
11247
      __pyx_t_4 = PyInt_FromLong(NPY_LONG); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11248
      __Pyx_GOTREF(__pyx_t_4);
 
11249
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11250
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11251
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11252
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11253
      if (__pyx_t_6) {
 
11254
        (__pyx_v_f[0]) = 108;
 
11255
        goto __pyx_L11;
 
11256
      }
 
11257
 
 
11258
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":833
 
11259
 *             elif t == NPY_UINT:        f[0] =  73 #"I"
 
11260
 *             elif t == NPY_LONG:        f[0] = 108 #"l"
 
11261
 *             elif t == NPY_ULONG:       f[0] = 76  #"L"             # <<<<<<<<<<<<<<
 
11262
 *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
 
11263
 *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
 
11264
 */
 
11265
      __pyx_t_3 = PyInt_FromLong(NPY_ULONG); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11266
      __Pyx_GOTREF(__pyx_t_3);
 
11267
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11268
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11269
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11270
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11271
      if (__pyx_t_6) {
 
11272
        (__pyx_v_f[0]) = 76;
 
11273
        goto __pyx_L11;
 
11274
      }
 
11275
 
 
11276
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":834
 
11277
 *             elif t == NPY_LONG:        f[0] = 108 #"l"
 
11278
 *             elif t == NPY_ULONG:       f[0] = 76  #"L"
 
11279
 *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"             # <<<<<<<<<<<<<<
 
11280
 *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
 
11281
 *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
 
11282
 */
 
11283
      __pyx_t_4 = PyInt_FromLong(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11284
      __Pyx_GOTREF(__pyx_t_4);
 
11285
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11286
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11287
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11288
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11289
      if (__pyx_t_6) {
 
11290
        (__pyx_v_f[0]) = 113;
 
11291
        goto __pyx_L11;
 
11292
      }
 
11293
 
 
11294
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":835
 
11295
 *             elif t == NPY_ULONG:       f[0] = 76  #"L"
 
11296
 *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
 
11297
 *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"             # <<<<<<<<<<<<<<
 
11298
 *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
 
11299
 *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
 
11300
 */
 
11301
      __pyx_t_3 = PyInt_FromLong(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11302
      __Pyx_GOTREF(__pyx_t_3);
 
11303
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11304
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11305
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11306
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11307
      if (__pyx_t_6) {
 
11308
        (__pyx_v_f[0]) = 81;
 
11309
        goto __pyx_L11;
 
11310
      }
 
11311
 
 
11312
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":836
 
11313
 *             elif t == NPY_LONGLONG:    f[0] = 113 #"q"
 
11314
 *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
 
11315
 *             elif t == NPY_FLOAT:       f[0] = 102 #"f"             # <<<<<<<<<<<<<<
 
11316
 *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
 
11317
 *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
 
11318
 */
 
11319
      __pyx_t_4 = PyInt_FromLong(NPY_FLOAT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11320
      __Pyx_GOTREF(__pyx_t_4);
 
11321
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11322
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11323
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11324
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11325
      if (__pyx_t_6) {
 
11326
        (__pyx_v_f[0]) = 102;
 
11327
        goto __pyx_L11;
 
11328
      }
 
11329
 
 
11330
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":837
 
11331
 *             elif t == NPY_ULONGLONG:   f[0] = 81  #"Q"
 
11332
 *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
 
11333
 *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"             # <<<<<<<<<<<<<<
 
11334
 *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
 
11335
 *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
 
11336
 */
 
11337
      __pyx_t_3 = PyInt_FromLong(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11338
      __Pyx_GOTREF(__pyx_t_3);
 
11339
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11340
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11341
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11342
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11343
      if (__pyx_t_6) {
 
11344
        (__pyx_v_f[0]) = 100;
 
11345
        goto __pyx_L11;
 
11346
      }
 
11347
 
 
11348
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":838
 
11349
 *             elif t == NPY_FLOAT:       f[0] = 102 #"f"
 
11350
 *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
 
11351
 *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"             # <<<<<<<<<<<<<<
 
11352
 *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
 
11353
 *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
 
11354
 */
 
11355
      __pyx_t_4 = PyInt_FromLong(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11356
      __Pyx_GOTREF(__pyx_t_4);
 
11357
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11358
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11359
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11360
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11361
      if (__pyx_t_6) {
 
11362
        (__pyx_v_f[0]) = 103;
 
11363
        goto __pyx_L11;
 
11364
      }
 
11365
 
 
11366
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":839
 
11367
 *             elif t == NPY_DOUBLE:      f[0] = 100 #"d"
 
11368
 *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
 
11369
 *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf             # <<<<<<<<<<<<<<
 
11370
 *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
 
11371
 *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
 
11372
 */
 
11373
      __pyx_t_3 = PyInt_FromLong(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11374
      __Pyx_GOTREF(__pyx_t_3);
 
11375
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11376
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11377
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11378
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11379
      if (__pyx_t_6) {
 
11380
        (__pyx_v_f[0]) = 90;
 
11381
        (__pyx_v_f[1]) = 102;
 
11382
        __pyx_v_f = (__pyx_v_f + 1);
 
11383
        goto __pyx_L11;
 
11384
      }
 
11385
 
 
11386
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":840
 
11387
 *             elif t == NPY_LONGDOUBLE:  f[0] = 103 #"g"
 
11388
 *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
 
11389
 *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd             # <<<<<<<<<<<<<<
 
11390
 *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
 
11391
 *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
 
11392
 */
 
11393
      __pyx_t_4 = PyInt_FromLong(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11394
      __Pyx_GOTREF(__pyx_t_4);
 
11395
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11396
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11397
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11398
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11399
      if (__pyx_t_6) {
 
11400
        (__pyx_v_f[0]) = 90;
 
11401
        (__pyx_v_f[1]) = 100;
 
11402
        __pyx_v_f = (__pyx_v_f + 1);
 
11403
        goto __pyx_L11;
 
11404
      }
 
11405
 
 
11406
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":841
 
11407
 *             elif t == NPY_CFLOAT:      f[0] = 90; f[1] = 102; f += 1 # Zf
 
11408
 *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
 
11409
 *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg             # <<<<<<<<<<<<<<
 
11410
 *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
 
11411
 *             else:
 
11412
 */
 
11413
      __pyx_t_3 = PyInt_FromLong(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11414
      __Pyx_GOTREF(__pyx_t_3);
 
11415
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11416
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11417
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11418
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11419
      if (__pyx_t_6) {
 
11420
        (__pyx_v_f[0]) = 90;
 
11421
        (__pyx_v_f[1]) = 103;
 
11422
        __pyx_v_f = (__pyx_v_f + 1);
 
11423
        goto __pyx_L11;
 
11424
      }
 
11425
 
 
11426
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":842
 
11427
 *             elif t == NPY_CDOUBLE:     f[0] = 90; f[1] = 100; f += 1 # Zd
 
11428
 *             elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg
 
11429
 *             elif t == NPY_OBJECT:      f[0] = 79 #"O"             # <<<<<<<<<<<<<<
 
11430
 *             else:
 
11431
 *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 
11432
 */
 
11433
      __pyx_t_4 = PyInt_FromLong(NPY_OBJECT); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11434
      __Pyx_GOTREF(__pyx_t_4);
 
11435
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11436
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11437
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11438
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11439
      if (__pyx_t_6) {
 
11440
        (__pyx_v_f[0]) = 79;
 
11441
        goto __pyx_L11;
 
11442
      }
 
11443
      /*else*/ {
 
11444
 
 
11445
        /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":844
 
11446
 *             elif t == NPY_OBJECT:      f[0] = 79 #"O"
 
11447
 *             else:
 
11448
 *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)             # <<<<<<<<<<<<<<
 
11449
 *             f += 1
 
11450
 *         else:
 
11451
 */
 
11452
        __pyx_t_3 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11453
        __Pyx_GOTREF(__pyx_t_3);
 
11454
        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11455
        __Pyx_GOTREF(__pyx_t_4);
 
11456
        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
 
11457
        __Pyx_GIVEREF(__pyx_t_3);
 
11458
        __pyx_t_3 = 0;
 
11459
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11460
        __Pyx_GOTREF(__pyx_t_3);
 
11461
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
11462
        __Pyx_Raise(__pyx_t_3, 0, 0, 0);
 
11463
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
11464
        {__pyx_filename = __pyx_f[1]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11465
      }
 
11466
      __pyx_L11:;
 
11467
 
 
11468
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":845
 
11469
 *             else:
 
11470
 *                 raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t)
 
11471
 *             f += 1             # <<<<<<<<<<<<<<
 
11472
 *         else:
 
11473
 *             # Cython ignores struct boundary information ("T{...}"),
 
11474
 */
 
11475
      __pyx_v_f = (__pyx_v_f + 1);
 
11476
      goto __pyx_L9;
 
11477
    }
 
11478
    /*else*/ {
 
11479
 
 
11480
      /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":849
 
11481
 *             # Cython ignores struct boundary information ("T{...}"),
 
11482
 *             # so don't output it
 
11483
 *             f = _util_dtypestring(child, f, end, offset)             # <<<<<<<<<<<<<<
 
11484
 *     return f
 
11485
 * 
 
11486
 */
 
11487
      __pyx_t_11 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
11488
      __pyx_v_f = __pyx_t_11;
 
11489
    }
 
11490
    __pyx_L9:;
 
11491
  }
 
11492
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
11493
 
 
11494
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":850
 
11495
 *             # so don't output it
 
11496
 *             f = _util_dtypestring(child, f, end, offset)
 
11497
 *     return f             # <<<<<<<<<<<<<<
 
11498
 * 
 
11499
 * 
 
11500
 */
 
11501
  __pyx_r = __pyx_v_f;
 
11502
  goto __pyx_L0;
 
11503
 
 
11504
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":783
 
11505
 *     return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
 
11506
 * 
 
11507
 * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL:             # <<<<<<<<<<<<<<
 
11508
 *     # Recursive utility function used in __getbuffer__ to get format
 
11509
 *     # string. The new location in the format string is returned.
 
11510
 */
 
11511
 
 
11512
  /* function exit code */
 
11513
  __pyx_L1_error:;
 
11514
  __Pyx_XDECREF(__pyx_t_1);
 
11515
  __Pyx_XDECREF(__pyx_t_3);
 
11516
  __Pyx_XDECREF(__pyx_t_4);
 
11517
  __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
11518
  __pyx_r = NULL;
 
11519
  __pyx_L0:;
 
11520
  __Pyx_XDECREF((PyObject *)__pyx_v_child);
 
11521
  __Pyx_XDECREF(__pyx_v_fields);
 
11522
  __Pyx_XDECREF(__pyx_v_childname);
 
11523
  __Pyx_XDECREF(__pyx_v_new_offset);
 
11524
  __Pyx_XDECREF(__pyx_v_t);
 
11525
  __Pyx_RefNannyFinishContext();
 
11526
  return __pyx_r;
 
11527
}
 
11528
 
 
11529
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":966
 
11530
 * 
 
11531
 * 
 
11532
 * cdef inline void set_array_base(ndarray arr, object base):             # <<<<<<<<<<<<<<
 
11533
 *      cdef PyObject* baseptr
 
11534
 *      if base is None:
 
11535
 */
 
11536
 
 
11537
static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
 
11538
  PyObject *__pyx_v_baseptr;
 
11539
  __Pyx_RefNannyDeclarations
 
11540
  int __pyx_t_1;
 
11541
  int __pyx_t_2;
 
11542
  __Pyx_RefNannySetupContext("set_array_base", 0);
 
11543
 
 
11544
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":968
 
11545
 * cdef inline void set_array_base(ndarray arr, object base):
 
11546
 *      cdef PyObject* baseptr
 
11547
 *      if base is None:             # <<<<<<<<<<<<<<
 
11548
 *          baseptr = NULL
 
11549
 *      else:
 
11550
 */
 
11551
  __pyx_t_1 = (__pyx_v_base == Py_None);
 
11552
  __pyx_t_2 = (__pyx_t_1 != 0);
 
11553
  if (__pyx_t_2) {
 
11554
 
 
11555
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":969
 
11556
 *      cdef PyObject* baseptr
 
11557
 *      if base is None:
 
11558
 *          baseptr = NULL             # <<<<<<<<<<<<<<
 
11559
 *      else:
 
11560
 *          Py_INCREF(base) # important to do this before decref below!
 
11561
 */
 
11562
    __pyx_v_baseptr = NULL;
 
11563
    goto __pyx_L3;
 
11564
  }
 
11565
  /*else*/ {
 
11566
 
 
11567
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":971
 
11568
 *          baseptr = NULL
 
11569
 *      else:
 
11570
 *          Py_INCREF(base) # important to do this before decref below!             # <<<<<<<<<<<<<<
 
11571
 *          baseptr = <PyObject*>base
 
11572
 *      Py_XDECREF(arr.base)
 
11573
 */
 
11574
    Py_INCREF(__pyx_v_base);
 
11575
 
 
11576
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":972
 
11577
 *      else:
 
11578
 *          Py_INCREF(base) # important to do this before decref below!
 
11579
 *          baseptr = <PyObject*>base             # <<<<<<<<<<<<<<
 
11580
 *      Py_XDECREF(arr.base)
 
11581
 *      arr.base = baseptr
 
11582
 */
 
11583
    __pyx_v_baseptr = ((PyObject *)__pyx_v_base);
 
11584
  }
 
11585
  __pyx_L3:;
 
11586
 
 
11587
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":973
 
11588
 *          Py_INCREF(base) # important to do this before decref below!
 
11589
 *          baseptr = <PyObject*>base
 
11590
 *      Py_XDECREF(arr.base)             # <<<<<<<<<<<<<<
 
11591
 *      arr.base = baseptr
 
11592
 * 
 
11593
 */
 
11594
  Py_XDECREF(__pyx_v_arr->base);
 
11595
 
 
11596
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":974
 
11597
 *          baseptr = <PyObject*>base
 
11598
 *      Py_XDECREF(arr.base)
 
11599
 *      arr.base = baseptr             # <<<<<<<<<<<<<<
 
11600
 * 
 
11601
 * cdef inline object get_array_base(ndarray arr):
 
11602
 */
 
11603
  __pyx_v_arr->base = __pyx_v_baseptr;
 
11604
 
 
11605
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":966
 
11606
 * 
 
11607
 * 
 
11608
 * cdef inline void set_array_base(ndarray arr, object base):             # <<<<<<<<<<<<<<
 
11609
 *      cdef PyObject* baseptr
 
11610
 *      if base is None:
 
11611
 */
 
11612
 
 
11613
  /* function exit code */
 
11614
  __Pyx_RefNannyFinishContext();
 
11615
}
 
11616
 
 
11617
/* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":976
 
11618
 *      arr.base = baseptr
 
11619
 * 
 
11620
 * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
 
11621
 *     if arr.base is NULL:
 
11622
 *         return None
 
11623
 */
 
11624
 
 
11625
static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
 
11626
  PyObject *__pyx_r = NULL;
 
11627
  __Pyx_RefNannyDeclarations
 
11628
  int __pyx_t_1;
 
11629
  __Pyx_RefNannySetupContext("get_array_base", 0);
 
11630
 
 
11631
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":977
 
11632
 * 
 
11633
 * cdef inline object get_array_base(ndarray arr):
 
11634
 *     if arr.base is NULL:             # <<<<<<<<<<<<<<
 
11635
 *         return None
 
11636
 *     else:
 
11637
 */
 
11638
  __pyx_t_1 = ((__pyx_v_arr->base == NULL) != 0);
 
11639
  if (__pyx_t_1) {
 
11640
 
 
11641
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":978
 
11642
 * cdef inline object get_array_base(ndarray arr):
 
11643
 *     if arr.base is NULL:
 
11644
 *         return None             # <<<<<<<<<<<<<<
 
11645
 *     else:
 
11646
 *         return <object>arr.base
 
11647
 */
 
11648
    __Pyx_XDECREF(__pyx_r);
 
11649
    __Pyx_INCREF(Py_None);
 
11650
    __pyx_r = Py_None;
 
11651
    goto __pyx_L0;
 
11652
  }
 
11653
  /*else*/ {
 
11654
 
 
11655
    /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":980
 
11656
 *         return None
 
11657
 *     else:
 
11658
 *         return <object>arr.base             # <<<<<<<<<<<<<<
 
11659
 */
 
11660
    __Pyx_XDECREF(__pyx_r);
 
11661
    __Pyx_INCREF(((PyObject *)__pyx_v_arr->base));
 
11662
    __pyx_r = ((PyObject *)__pyx_v_arr->base);
 
11663
    goto __pyx_L0;
 
11664
  }
 
11665
 
 
11666
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":976
 
11667
 *      arr.base = baseptr
 
11668
 * 
 
11669
 * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
 
11670
 *     if arr.base is NULL:
 
11671
 *         return None
 
11672
 */
 
11673
 
 
11674
  /* function exit code */
 
11675
  __pyx_L0:;
 
11676
  __Pyx_XGIVEREF(__pyx_r);
 
11677
  __Pyx_RefNannyFinishContext();
 
11678
  return __pyx_r;
 
11679
}
 
11680
static struct __pyx_vtabstruct_9adios_mpi_file __pyx_vtable_9adios_mpi_file;
 
11681
 
 
11682
static PyObject *__pyx_tp_new_9adios_mpi_file(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
 
11683
  struct __pyx_obj_9adios_mpi_file *p;
 
11684
  PyObject *o;
 
11685
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
 
11686
    o = (*t->tp_alloc)(t, 0);
 
11687
  } else {
 
11688
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
 
11689
  }
 
11690
  if (unlikely(!o)) return 0;
 
11691
  p = ((struct __pyx_obj_9adios_mpi_file *)o);
 
11692
  p->__pyx_vtab = __pyx_vtabptr_9adios_mpi_file;
 
11693
  p->name = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
11694
  p->var = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
11695
  p->attr = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
11696
  return o;
 
11697
}
 
11698
 
 
11699
static void __pyx_tp_dealloc_9adios_mpi_file(PyObject *o) {
 
11700
  struct __pyx_obj_9adios_mpi_file *p = (struct __pyx_obj_9adios_mpi_file *)o;
 
11701
  #if PY_VERSION_HEX >= 0x030400a1
 
11702
  if (unlikely(Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
 
11703
    if (PyObject_CallFinalizerFromDealloc(o)) return;
 
11704
  }
 
11705
  #endif
 
11706
  PyObject_GC_UnTrack(o);
 
11707
  Py_CLEAR(p->name);
 
11708
  Py_CLEAR(p->var);
 
11709
  Py_CLEAR(p->attr);
 
11710
  (*Py_TYPE(o)->tp_free)(o);
 
11711
}
 
11712
 
 
11713
static int __pyx_tp_traverse_9adios_mpi_file(PyObject *o, visitproc v, void *a) {
 
11714
  int e;
 
11715
  struct __pyx_obj_9adios_mpi_file *p = (struct __pyx_obj_9adios_mpi_file *)o;
 
11716
  if (p->var) {
 
11717
    e = (*v)(p->var, a); if (e) return e;
 
11718
  }
 
11719
  if (p->attr) {
 
11720
    e = (*v)(p->attr, a); if (e) return e;
 
11721
  }
 
11722
  return 0;
 
11723
}
 
11724
 
 
11725
static int __pyx_tp_clear_9adios_mpi_file(PyObject *o) {
 
11726
  PyObject* tmp;
 
11727
  struct __pyx_obj_9adios_mpi_file *p = (struct __pyx_obj_9adios_mpi_file *)o;
 
11728
  tmp = ((PyObject*)p->var);
 
11729
  p->var = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
11730
  Py_XDECREF(tmp);
 
11731
  tmp = ((PyObject*)p->attr);
 
11732
  p->attr = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
11733
  Py_XDECREF(tmp);
 
11734
  return 0;
 
11735
}
 
11736
 
 
11737
static PyObject *__pyx_getprop_9adios_mpi_4file_name(PyObject *o, CYTHON_UNUSED void *x) {
 
11738
  return __pyx_pw_9adios_mpi_4file_4name_1__get__(o);
 
11739
}
 
11740
 
 
11741
static int __pyx_setprop_9adios_mpi_4file_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
11742
  if (v) {
 
11743
    return __pyx_pw_9adios_mpi_4file_4name_3__set__(o, v);
 
11744
  }
 
11745
  else {
 
11746
    return __pyx_pw_9adios_mpi_4file_4name_5__del__(o);
 
11747
  }
 
11748
}
 
11749
 
 
11750
static PyObject *__pyx_getprop_9adios_mpi_4file_nvars(PyObject *o, CYTHON_UNUSED void *x) {
 
11751
  return __pyx_pw_9adios_mpi_4file_5nvars_1__get__(o);
 
11752
}
 
11753
 
 
11754
static int __pyx_setprop_9adios_mpi_4file_nvars(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
11755
  if (v) {
 
11756
    return __pyx_pw_9adios_mpi_4file_5nvars_3__set__(o, v);
 
11757
  }
 
11758
  else {
 
11759
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
 
11760
    return -1;
 
11761
  }
 
11762
}
 
11763
 
 
11764
static PyObject *__pyx_getprop_9adios_mpi_4file_nattrs(PyObject *o, CYTHON_UNUSED void *x) {
 
11765
  return __pyx_pw_9adios_mpi_4file_6nattrs_1__get__(o);
 
11766
}
 
11767
 
 
11768
static int __pyx_setprop_9adios_mpi_4file_nattrs(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
11769
  if (v) {
 
11770
    return __pyx_pw_9adios_mpi_4file_6nattrs_3__set__(o, v);
 
11771
  }
 
11772
  else {
 
11773
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
 
11774
    return -1;
 
11775
  }
 
11776
}
 
11777
 
 
11778
static PyObject *__pyx_getprop_9adios_mpi_4file_current_step(PyObject *o, CYTHON_UNUSED void *x) {
 
11779
  return __pyx_pw_9adios_mpi_4file_12current_step_1__get__(o);
 
11780
}
 
11781
 
 
11782
static int __pyx_setprop_9adios_mpi_4file_current_step(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
11783
  if (v) {
 
11784
    return __pyx_pw_9adios_mpi_4file_12current_step_3__set__(o, v);
 
11785
  }
 
11786
  else {
 
11787
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
 
11788
    return -1;
 
11789
  }
 
11790
}
 
11791
 
 
11792
static PyObject *__pyx_getprop_9adios_mpi_4file_last_step(PyObject *o, CYTHON_UNUSED void *x) {
 
11793
  return __pyx_pw_9adios_mpi_4file_9last_step_1__get__(o);
 
11794
}
 
11795
 
 
11796
static int __pyx_setprop_9adios_mpi_4file_last_step(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
11797
  if (v) {
 
11798
    return __pyx_pw_9adios_mpi_4file_9last_step_3__set__(o, v);
 
11799
  }
 
11800
  else {
 
11801
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
 
11802
    return -1;
 
11803
  }
 
11804
}
 
11805
 
 
11806
static PyObject *__pyx_getprop_9adios_mpi_4file_endianness(PyObject *o, CYTHON_UNUSED void *x) {
 
11807
  return __pyx_pw_9adios_mpi_4file_10endianness_1__get__(o);
 
11808
}
 
11809
 
 
11810
static int __pyx_setprop_9adios_mpi_4file_endianness(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
11811
  if (v) {
 
11812
    return __pyx_pw_9adios_mpi_4file_10endianness_3__set__(o, v);
 
11813
  }
 
11814
  else {
 
11815
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
 
11816
    return -1;
 
11817
  }
 
11818
}
 
11819
 
 
11820
static PyObject *__pyx_getprop_9adios_mpi_4file_version(PyObject *o, CYTHON_UNUSED void *x) {
 
11821
  return __pyx_pw_9adios_mpi_4file_7version_1__get__(o);
 
11822
}
 
11823
 
 
11824
static int __pyx_setprop_9adios_mpi_4file_version(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
11825
  if (v) {
 
11826
    return __pyx_pw_9adios_mpi_4file_7version_3__set__(o, v);
 
11827
  }
 
11828
  else {
 
11829
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
 
11830
    return -1;
 
11831
  }
 
11832
}
 
11833
 
 
11834
static PyObject *__pyx_getprop_9adios_mpi_4file_file_size(PyObject *o, CYTHON_UNUSED void *x) {
 
11835
  return __pyx_pw_9adios_mpi_4file_9file_size_1__get__(o);
 
11836
}
 
11837
 
 
11838
static int __pyx_setprop_9adios_mpi_4file_file_size(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
11839
  if (v) {
 
11840
    return __pyx_pw_9adios_mpi_4file_9file_size_3__set__(o, v);
 
11841
  }
 
11842
  else {
 
11843
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
 
11844
    return -1;
 
11845
  }
 
11846
}
 
11847
 
 
11848
static PyObject *__pyx_getprop_9adios_mpi_4file_var(PyObject *o, CYTHON_UNUSED void *x) {
 
11849
  return __pyx_pw_9adios_mpi_4file_3var_1__get__(o);
 
11850
}
 
11851
 
 
11852
static int __pyx_setprop_9adios_mpi_4file_var(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
11853
  if (v) {
 
11854
    return __pyx_pw_9adios_mpi_4file_3var_3__set__(o, v);
 
11855
  }
 
11856
  else {
 
11857
    return __pyx_pw_9adios_mpi_4file_3var_5__del__(o);
 
11858
  }
 
11859
}
 
11860
 
 
11861
static PyObject *__pyx_getprop_9adios_mpi_4file_attr(PyObject *o, CYTHON_UNUSED void *x) {
 
11862
  return __pyx_pw_9adios_mpi_4file_4attr_1__get__(o);
 
11863
}
 
11864
 
 
11865
static int __pyx_setprop_9adios_mpi_4file_attr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
11866
  if (v) {
 
11867
    return __pyx_pw_9adios_mpi_4file_4attr_3__set__(o, v);
 
11868
  }
 
11869
  else {
 
11870
    return __pyx_pw_9adios_mpi_4file_4attr_5__del__(o);
 
11871
  }
 
11872
}
 
11873
 
 
11874
static PyMethodDef __pyx_methods_9adios_mpi_file[] = {
 
11875
  {__Pyx_NAMESTR("__del__"), (PyCFunction)__pyx_pw_9adios_mpi_4file_3__del__, METH_NOARGS, __Pyx_DOCSTR(0)},
 
11876
  {__Pyx_NAMESTR("close"), (PyCFunction)__pyx_pw_9adios_mpi_4file_5close, METH_NOARGS, __Pyx_DOCSTR(0)},
 
11877
  {__Pyx_NAMESTR("printself"), (PyCFunction)__pyx_pw_9adios_mpi_4file_7printself, METH_NOARGS, __Pyx_DOCSTR(0)},
 
11878
  {0, 0, 0, 0}
 
11879
};
 
11880
 
 
11881
static struct PyGetSetDef __pyx_getsets_9adios_mpi_file[] = {
 
11882
  {(char *)"name", __pyx_getprop_9adios_mpi_4file_name, __pyx_setprop_9adios_mpi_4file_name, 0, 0},
 
11883
  {(char *)"nvars", __pyx_getprop_9adios_mpi_4file_nvars, __pyx_setprop_9adios_mpi_4file_nvars, 0, 0},
 
11884
  {(char *)"nattrs", __pyx_getprop_9adios_mpi_4file_nattrs, __pyx_setprop_9adios_mpi_4file_nattrs, 0, 0},
 
11885
  {(char *)"current_step", __pyx_getprop_9adios_mpi_4file_current_step, __pyx_setprop_9adios_mpi_4file_current_step, 0, 0},
 
11886
  {(char *)"last_step", __pyx_getprop_9adios_mpi_4file_last_step, __pyx_setprop_9adios_mpi_4file_last_step, 0, 0},
 
11887
  {(char *)"endianness", __pyx_getprop_9adios_mpi_4file_endianness, __pyx_setprop_9adios_mpi_4file_endianness, 0, 0},
 
11888
  {(char *)"version", __pyx_getprop_9adios_mpi_4file_version, __pyx_setprop_9adios_mpi_4file_version, 0, 0},
 
11889
  {(char *)"file_size", __pyx_getprop_9adios_mpi_4file_file_size, __pyx_setprop_9adios_mpi_4file_file_size, 0, 0},
 
11890
  {(char *)"var", __pyx_getprop_9adios_mpi_4file_var, __pyx_setprop_9adios_mpi_4file_var, 0, 0},
 
11891
  {(char *)"attr", __pyx_getprop_9adios_mpi_4file_attr, __pyx_setprop_9adios_mpi_4file_attr, 0, 0},
 
11892
  {0, 0, 0, 0, 0}
 
11893
};
 
11894
 
 
11895
static PyTypeObject __pyx_type_9adios_mpi_file = {
 
11896
  PyVarObject_HEAD_INIT(0, 0)
 
11897
  __Pyx_NAMESTR("adios_mpi.file"), /*tp_name*/
 
11898
  sizeof(struct __pyx_obj_9adios_mpi_file), /*tp_basicsize*/
 
11899
  0, /*tp_itemsize*/
 
11900
  __pyx_tp_dealloc_9adios_mpi_file, /*tp_dealloc*/
 
11901
  0, /*tp_print*/
 
11902
  0, /*tp_getattr*/
 
11903
  0, /*tp_setattr*/
 
11904
  #if PY_MAJOR_VERSION < 3
 
11905
  0, /*tp_compare*/
 
11906
  #else
 
11907
  0, /*reserved*/
 
11908
  #endif
 
11909
  0, /*tp_repr*/
 
11910
  0, /*tp_as_number*/
 
11911
  0, /*tp_as_sequence*/
 
11912
  0, /*tp_as_mapping*/
 
11913
  0, /*tp_hash*/
 
11914
  0, /*tp_call*/
 
11915
  0, /*tp_str*/
 
11916
  0, /*tp_getattro*/
 
11917
  0, /*tp_setattro*/
 
11918
  0, /*tp_as_buffer*/
 
11919
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
 
11920
  __Pyx_DOCSTR(" Private Memeber "), /*tp_doc*/
 
11921
  __pyx_tp_traverse_9adios_mpi_file, /*tp_traverse*/
 
11922
  __pyx_tp_clear_9adios_mpi_file, /*tp_clear*/
 
11923
  0, /*tp_richcompare*/
 
11924
  0, /*tp_weaklistoffset*/
 
11925
  0, /*tp_iter*/
 
11926
  0, /*tp_iternext*/
 
11927
  __pyx_methods_9adios_mpi_file, /*tp_methods*/
 
11928
  0, /*tp_members*/
 
11929
  __pyx_getsets_9adios_mpi_file, /*tp_getset*/
 
11930
  0, /*tp_base*/
 
11931
  0, /*tp_dict*/
 
11932
  0, /*tp_descr_get*/
 
11933
  0, /*tp_descr_set*/
 
11934
  0, /*tp_dictoffset*/
 
11935
  __pyx_pw_9adios_mpi_4file_1__init__, /*tp_init*/
 
11936
  0, /*tp_alloc*/
 
11937
  __pyx_tp_new_9adios_mpi_file, /*tp_new*/
 
11938
  0, /*tp_free*/
 
11939
  0, /*tp_is_gc*/
 
11940
  0, /*tp_bases*/
 
11941
  0, /*tp_mro*/
 
11942
  0, /*tp_cache*/
 
11943
  0, /*tp_subclasses*/
 
11944
  0, /*tp_weaklist*/
 
11945
  0, /*tp_del*/
 
11946
  #if PY_VERSION_HEX >= 0x02060000
 
11947
  0, /*tp_version_tag*/
 
11948
  #endif
 
11949
  #if PY_VERSION_HEX >= 0x030400a1
 
11950
  0, /*tp_finalize*/
 
11951
  #endif
 
11952
};
 
11953
static struct __pyx_vtabstruct_9adios_mpi_var __pyx_vtable_9adios_mpi_var;
 
11954
 
 
11955
static PyObject *__pyx_tp_new_9adios_mpi_var(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
 
11956
  struct __pyx_obj_9adios_mpi_var *p;
 
11957
  PyObject *o;
 
11958
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
 
11959
    o = (*t->tp_alloc)(t, 0);
 
11960
  } else {
 
11961
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
 
11962
  }
 
11963
  if (unlikely(!o)) return 0;
 
11964
  p = ((struct __pyx_obj_9adios_mpi_var *)o);
 
11965
  p->__pyx_vtab = __pyx_vtabptr_9adios_mpi_var;
 
11966
  p->file = ((struct __pyx_obj_9adios_mpi_file *)Py_None); Py_INCREF(Py_None);
 
11967
  p->name = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
11968
  p->type = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
11969
  p->dims = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
11970
  return o;
 
11971
}
 
11972
 
 
11973
static void __pyx_tp_dealloc_9adios_mpi_var(PyObject *o) {
 
11974
  struct __pyx_obj_9adios_mpi_var *p = (struct __pyx_obj_9adios_mpi_var *)o;
 
11975
  #if PY_VERSION_HEX >= 0x030400a1
 
11976
  if (unlikely(Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) {
 
11977
    if (PyObject_CallFinalizerFromDealloc(o)) return;
 
11978
  }
 
11979
  #endif
 
11980
  PyObject_GC_UnTrack(o);
 
11981
  Py_CLEAR(p->file);
 
11982
  Py_CLEAR(p->name);
 
11983
  Py_CLEAR(p->type);
 
11984
  Py_CLEAR(p->dims);
 
11985
  (*Py_TYPE(o)->tp_free)(o);
 
11986
}
 
11987
 
 
11988
static int __pyx_tp_traverse_9adios_mpi_var(PyObject *o, visitproc v, void *a) {
 
11989
  int e;
 
11990
  struct __pyx_obj_9adios_mpi_var *p = (struct __pyx_obj_9adios_mpi_var *)o;
 
11991
  if (p->file) {
 
11992
    e = (*v)(((PyObject*)p->file), a); if (e) return e;
 
11993
  }
 
11994
  if (p->type) {
 
11995
    e = (*v)(p->type, a); if (e) return e;
 
11996
  }
 
11997
  if (p->dims) {
 
11998
    e = (*v)(p->dims, a); if (e) return e;
 
11999
  }
 
12000
  return 0;
 
12001
}
 
12002
 
 
12003
static int __pyx_tp_clear_9adios_mpi_var(PyObject *o) {
 
12004
  PyObject* tmp;
 
12005
  struct __pyx_obj_9adios_mpi_var *p = (struct __pyx_obj_9adios_mpi_var *)o;
 
12006
  tmp = ((PyObject*)p->file);
 
12007
  p->file = ((struct __pyx_obj_9adios_mpi_file *)Py_None); Py_INCREF(Py_None);
 
12008
  Py_XDECREF(tmp);
 
12009
  tmp = ((PyObject*)p->type);
 
12010
  p->type = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
12011
  Py_XDECREF(tmp);
 
12012
  tmp = ((PyObject*)p->dims);
 
12013
  p->dims = ((PyObject*)Py_None); Py_INCREF(Py_None);
 
12014
  Py_XDECREF(tmp);
 
12015
  return 0;
 
12016
}
 
12017
 
 
12018
static PyObject *__pyx_getprop_9adios_mpi_3var_name(PyObject *o, CYTHON_UNUSED void *x) {
 
12019
  return __pyx_pw_9adios_mpi_3var_4name_1__get__(o);
 
12020
}
 
12021
 
 
12022
static int __pyx_setprop_9adios_mpi_3var_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
12023
  if (v) {
 
12024
    return __pyx_pw_9adios_mpi_3var_4name_3__set__(o, v);
 
12025
  }
 
12026
  else {
 
12027
    return __pyx_pw_9adios_mpi_3var_4name_5__del__(o);
 
12028
  }
 
12029
}
 
12030
 
 
12031
static PyObject *__pyx_getprop_9adios_mpi_3var_varid(PyObject *o, CYTHON_UNUSED void *x) {
 
12032
  return __pyx_pw_9adios_mpi_3var_5varid_1__get__(o);
 
12033
}
 
12034
 
 
12035
static int __pyx_setprop_9adios_mpi_3var_varid(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
12036
  if (v) {
 
12037
    return __pyx_pw_9adios_mpi_3var_5varid_3__set__(o, v);
 
12038
  }
 
12039
  else {
 
12040
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
 
12041
    return -1;
 
12042
  }
 
12043
}
 
12044
 
 
12045
static PyObject *__pyx_getprop_9adios_mpi_3var_type(PyObject *o, CYTHON_UNUSED void *x) {
 
12046
  return __pyx_pw_9adios_mpi_3var_4type_1__get__(o);
 
12047
}
 
12048
 
 
12049
static int __pyx_setprop_9adios_mpi_3var_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
12050
  if (v) {
 
12051
    return __pyx_pw_9adios_mpi_3var_4type_3__set__(o, v);
 
12052
  }
 
12053
  else {
 
12054
    return __pyx_pw_9adios_mpi_3var_4type_5__del__(o);
 
12055
  }
 
12056
}
 
12057
 
 
12058
static PyObject *__pyx_getprop_9adios_mpi_3var_ndim(PyObject *o, CYTHON_UNUSED void *x) {
 
12059
  return __pyx_pw_9adios_mpi_3var_4ndim_1__get__(o);
 
12060
}
 
12061
 
 
12062
static int __pyx_setprop_9adios_mpi_3var_ndim(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
12063
  if (v) {
 
12064
    return __pyx_pw_9adios_mpi_3var_4ndim_3__set__(o, v);
 
12065
  }
 
12066
  else {
 
12067
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
 
12068
    return -1;
 
12069
  }
 
12070
}
 
12071
 
 
12072
static PyObject *__pyx_getprop_9adios_mpi_3var_dims(PyObject *o, CYTHON_UNUSED void *x) {
 
12073
  return __pyx_pw_9adios_mpi_3var_4dims_1__get__(o);
 
12074
}
 
12075
 
 
12076
static int __pyx_setprop_9adios_mpi_3var_dims(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
12077
  if (v) {
 
12078
    return __pyx_pw_9adios_mpi_3var_4dims_3__set__(o, v);
 
12079
  }
 
12080
  else {
 
12081
    return __pyx_pw_9adios_mpi_3var_4dims_5__del__(o);
 
12082
  }
 
12083
}
 
12084
 
 
12085
static PyObject *__pyx_getprop_9adios_mpi_3var_nsteps(PyObject *o, CYTHON_UNUSED void *x) {
 
12086
  return __pyx_pw_9adios_mpi_3var_6nsteps_1__get__(o);
 
12087
}
 
12088
 
 
12089
static int __pyx_setprop_9adios_mpi_3var_nsteps(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
 
12090
  if (v) {
 
12091
    return __pyx_pw_9adios_mpi_3var_6nsteps_3__set__(o, v);
 
12092
  }
 
12093
  else {
 
12094
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
 
12095
    return -1;
 
12096
  }
 
12097
}
 
12098
 
 
12099
static PyMethodDef __pyx_methods_9adios_mpi_var[] = {
 
12100
  {__Pyx_NAMESTR("__del__"), (PyCFunction)__pyx_pw_9adios_mpi_3var_3__del__, METH_NOARGS, __Pyx_DOCSTR(0)},
 
12101
  {__Pyx_NAMESTR("close"), (PyCFunction)__pyx_pw_9adios_mpi_3var_5close, METH_NOARGS, __Pyx_DOCSTR(0)},
 
12102
  {__Pyx_NAMESTR("read"), (PyCFunction)__pyx_pw_9adios_mpi_3var_7read, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12103
  {__Pyx_NAMESTR("printself"), (PyCFunction)__pyx_pw_9adios_mpi_3var_9printself, METH_NOARGS, __Pyx_DOCSTR(0)},
 
12104
  {0, 0, 0, 0}
 
12105
};
 
12106
 
 
12107
static struct PyGetSetDef __pyx_getsets_9adios_mpi_var[] = {
 
12108
  {(char *)"name", __pyx_getprop_9adios_mpi_3var_name, __pyx_setprop_9adios_mpi_3var_name, 0, 0},
 
12109
  {(char *)"varid", __pyx_getprop_9adios_mpi_3var_varid, __pyx_setprop_9adios_mpi_3var_varid, 0, 0},
 
12110
  {(char *)"type", __pyx_getprop_9adios_mpi_3var_type, __pyx_setprop_9adios_mpi_3var_type, 0, 0},
 
12111
  {(char *)"ndim", __pyx_getprop_9adios_mpi_3var_ndim, __pyx_setprop_9adios_mpi_3var_ndim, 0, 0},
 
12112
  {(char *)"dims", __pyx_getprop_9adios_mpi_3var_dims, __pyx_setprop_9adios_mpi_3var_dims, 0, 0},
 
12113
  {(char *)"nsteps", __pyx_getprop_9adios_mpi_3var_nsteps, __pyx_setprop_9adios_mpi_3var_nsteps, 0, 0},
 
12114
  {0, 0, 0, 0, 0}
 
12115
};
 
12116
 
 
12117
static PyTypeObject __pyx_type_9adios_mpi_var = {
 
12118
  PyVarObject_HEAD_INIT(0, 0)
 
12119
  __Pyx_NAMESTR("adios_mpi.var"), /*tp_name*/
 
12120
  sizeof(struct __pyx_obj_9adios_mpi_var), /*tp_basicsize*/
 
12121
  0, /*tp_itemsize*/
 
12122
  __pyx_tp_dealloc_9adios_mpi_var, /*tp_dealloc*/
 
12123
  0, /*tp_print*/
 
12124
  0, /*tp_getattr*/
 
12125
  0, /*tp_setattr*/
 
12126
  #if PY_MAJOR_VERSION < 3
 
12127
  0, /*tp_compare*/
 
12128
  #else
 
12129
  0, /*reserved*/
 
12130
  #endif
 
12131
  0, /*tp_repr*/
 
12132
  0, /*tp_as_number*/
 
12133
  0, /*tp_as_sequence*/
 
12134
  0, /*tp_as_mapping*/
 
12135
  0, /*tp_hash*/
 
12136
  0, /*tp_call*/
 
12137
  0, /*tp_str*/
 
12138
  0, /*tp_getattro*/
 
12139
  0, /*tp_setattro*/
 
12140
  0, /*tp_as_buffer*/
 
12141
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
 
12142
  __Pyx_DOCSTR(" Private Memeber "), /*tp_doc*/
 
12143
  __pyx_tp_traverse_9adios_mpi_var, /*tp_traverse*/
 
12144
  __pyx_tp_clear_9adios_mpi_var, /*tp_clear*/
 
12145
  0, /*tp_richcompare*/
 
12146
  0, /*tp_weaklistoffset*/
 
12147
  0, /*tp_iter*/
 
12148
  0, /*tp_iternext*/
 
12149
  __pyx_methods_9adios_mpi_var, /*tp_methods*/
 
12150
  0, /*tp_members*/
 
12151
  __pyx_getsets_9adios_mpi_var, /*tp_getset*/
 
12152
  0, /*tp_base*/
 
12153
  0, /*tp_dict*/
 
12154
  0, /*tp_descr_get*/
 
12155
  0, /*tp_descr_set*/
 
12156
  0, /*tp_dictoffset*/
 
12157
  __pyx_pw_9adios_mpi_3var_1__init__, /*tp_init*/
 
12158
  0, /*tp_alloc*/
 
12159
  __pyx_tp_new_9adios_mpi_var, /*tp_new*/
 
12160
  0, /*tp_free*/
 
12161
  0, /*tp_is_gc*/
 
12162
  0, /*tp_bases*/
 
12163
  0, /*tp_mro*/
 
12164
  0, /*tp_cache*/
 
12165
  0, /*tp_subclasses*/
 
12166
  0, /*tp_weaklist*/
 
12167
  0, /*tp_del*/
 
12168
  #if PY_VERSION_HEX >= 0x02060000
 
12169
  0, /*tp_version_tag*/
 
12170
  #endif
 
12171
  #if PY_VERSION_HEX >= 0x030400a1
 
12172
  0, /*tp_finalize*/
 
12173
  #endif
 
12174
};
 
12175
 
 
12176
static PyMethodDef __pyx_methods[] = {
 
12177
  {__Pyx_NAMESTR("init"), (PyCFunction)__pyx_pw_9adios_mpi_1init, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12178
  {__Pyx_NAMESTR("open"), (PyCFunction)__pyx_pw_9adios_mpi_3open, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12179
  {__Pyx_NAMESTR("set_group_size"), (PyCFunction)__pyx_pw_9adios_mpi_5set_group_size, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12180
  {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pw_9adios_mpi_7write, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12181
  {__Pyx_NAMESTR("write_int"), (PyCFunction)__pyx_pw_9adios_mpi_9write_int, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12182
  {__Pyx_NAMESTR("write_long"), (PyCFunction)__pyx_pw_9adios_mpi_11write_long, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12183
  {__Pyx_NAMESTR("write_float"), (PyCFunction)__pyx_pw_9adios_mpi_13write_float, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12184
  {__Pyx_NAMESTR("read"), (PyCFunction)__pyx_pw_9adios_mpi_15read, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12185
  {__Pyx_NAMESTR("close"), (PyCFunction)__pyx_pw_9adios_mpi_17close, METH_O, __Pyx_DOCSTR(0)},
 
12186
  {__Pyx_NAMESTR("finalize"), (PyCFunction)__pyx_pw_9adios_mpi_19finalize, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12187
  {__Pyx_NAMESTR("init_noxml"), (PyCFunction)__pyx_pw_9adios_mpi_21init_noxml, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12188
  {__Pyx_NAMESTR("allocate_buffer"), (PyCFunction)__pyx_pw_9adios_mpi_23allocate_buffer, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12189
  {__Pyx_NAMESTR("declare_group"), (PyCFunction)__pyx_pw_9adios_mpi_25declare_group, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12190
  {__Pyx_NAMESTR("define_var"), (PyCFunction)__pyx_pw_9adios_mpi_27define_var, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12191
  {__Pyx_NAMESTR("define_attribute"), (PyCFunction)__pyx_pw_9adios_mpi_29define_attribute, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12192
  {__Pyx_NAMESTR("select_method"), (PyCFunction)__pyx_pw_9adios_mpi_31select_method, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12193
  {__Pyx_NAMESTR("read_init"), (PyCFunction)__pyx_pw_9adios_mpi_33read_init, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12194
  {__Pyx_NAMESTR("read_finalize"), (PyCFunction)__pyx_pw_9adios_mpi_35read_finalize, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
 
12195
  {0, 0, 0, 0}
 
12196
};
 
12197
 
 
12198
#if PY_MAJOR_VERSION >= 3
 
12199
static struct PyModuleDef __pyx_moduledef = {
 
12200
  #if PY_VERSION_HEX < 0x03020000
 
12201
    { PyObject_HEAD_INIT(NULL) NULL, 0, NULL },
 
12202
  #else
 
12203
    PyModuleDef_HEAD_INIT,
 
12204
  #endif
 
12205
    __Pyx_NAMESTR("adios_mpi"),
 
12206
    __Pyx_DOCSTR(__pyx_k_ADIOS_is_freely_available_under), /* m_doc */
 
12207
    -1, /* m_size */
 
12208
    __pyx_methods /* m_methods */,
 
12209
    NULL, /* m_reload */
 
12210
    NULL, /* m_traverse */
 
12211
    NULL, /* m_clear */
 
12212
    NULL /* m_free */
 
12213
};
 
12214
#endif
 
12215
 
 
12216
static __Pyx_StringTabEntry __pyx_string_tab[] = {
 
12217
  {&__pyx_kp_s_15s_d, __pyx_k_15s_d, sizeof(__pyx_k_15s_d), 0, 0, 1, 0},
 
12218
  {&__pyx_kp_s_15s_lu, __pyx_k_15s_lu, sizeof(__pyx_k_15s_lu), 0, 0, 1, 0},
 
12219
  {&__pyx_kp_s_15s_s, __pyx_k_15s_s, sizeof(__pyx_k_15s_s), 0, 0, 1, 0},
 
12220
  {&__pyx_kp_s_AdiosFile, __pyx_k_AdiosFile, sizeof(__pyx_k_AdiosFile), 0, 0, 1, 0},
 
12221
  {&__pyx_kp_s_AdiosVariable, __pyx_k_AdiosVariable, sizeof(__pyx_k_AdiosVariable), 0, 0, 1, 0},
 
12222
  {&__pyx_n_s_BUFFER_ALLOC_WHEN, __pyx_k_BUFFER_ALLOC_WHEN, sizeof(__pyx_k_BUFFER_ALLOC_WHEN), 0, 0, 1, 1},
 
12223
  {&__pyx_n_s_COMM_SELF, __pyx_k_COMM_SELF, sizeof(__pyx_k_COMM_SELF), 0, 0, 1, 1},
 
12224
  {&__pyx_n_s_COMM_WORLD, __pyx_k_COMM_WORLD, sizeof(__pyx_k_COMM_WORLD), 0, 0, 1, 1},
 
12225
  {&__pyx_kp_s_Count_dimension_mismatch, __pyx_k_Count_dimension_mismatch, sizeof(__pyx_k_Count_dimension_mismatch), 0, 0, 1, 0},
 
12226
  {&__pyx_kp_s_Count_is_larger_than_shape, __pyx_k_Count_is_larger_than_shape, sizeof(__pyx_k_Count_is_larger_than_shape), 0, 0, 1, 0},
 
12227
  {&__pyx_n_s_DATATYPE, __pyx_k_DATATYPE, sizeof(__pyx_k_DATATYPE), 0, 0, 1, 1},
 
12228
  {&__pyx_kp_s_Data_type_is_not_supported_yet, __pyx_k_Data_type_is_not_supported_yet, sizeof(__pyx_k_Data_type_is_not_supported_yet), 0, 0, 1, 0},
 
12229
  {&__pyx_n_s_FLAG, __pyx_k_FLAG, sizeof(__pyx_k_FLAG), 0, 0, 1, 1},
 
12230
  {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0},
 
12231
  {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0},
 
12232
  {&__pyx_n_s_LATER, __pyx_k_LATER, sizeof(__pyx_k_LATER), 0, 0, 1, 1},
 
12233
  {&__pyx_n_s_MPI, __pyx_k_MPI, sizeof(__pyx_k_MPI), 0, 0, 1, 1},
 
12234
  {&__pyx_n_s_NO, __pyx_k_NO, sizeof(__pyx_k_NO), 0, 0, 1, 1},
 
12235
  {&__pyx_n_s_NOW, __pyx_k_NOW, sizeof(__pyx_k_NOW), 0, 0, 1, 1},
 
12236
  {&__pyx_kp_s_No_valid_variable, __pyx_k_No_valid_variable, sizeof(__pyx_k_No_valid_variable), 0, 0, 1, 0},
 
12237
  {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0},
 
12238
  {&__pyx_kp_s_Not_a_valid_var, __pyx_k_Not_a_valid_var, sizeof(__pyx_k_Not_a_valid_var), 0, 0, 1, 0},
 
12239
  {&__pyx_kp_s_Not_an_open_file, __pyx_k_Not_an_open_file, sizeof(__pyx_k_Not_an_open_file), 0, 0, 1, 0},
 
12240
  {&__pyx_kp_s_Not_an_open_var, __pyx_k_Not_an_open_var, sizeof(__pyx_k_Not_an_open_var), 0, 0, 1, 0},
 
12241
  {&__pyx_kp_s_Not_an_open_variable, __pyx_k_Not_an_open_variable, sizeof(__pyx_k_Not_an_open_variable), 0, 0, 1, 0},
 
12242
  {&__pyx_kp_s_Offset_dimension_mismatch, __pyx_k_Offset_dimension_mismatch, sizeof(__pyx_k_Offset_dimension_mismatch), 0, 0, 1, 0},
 
12243
  {&__pyx_kp_s_Only_contiguous_arrays_are_suppo, __pyx_k_Only_contiguous_arrays_are_suppo, sizeof(__pyx_k_Only_contiguous_arrays_are_suppo), 0, 0, 1, 0},
 
12244
  {&__pyx_kp_s_Reading, __pyx_k_Reading, sizeof(__pyx_k_Reading), 0, 0, 1, 0},
 
12245
  {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1},
 
12246
  {&__pyx_kp_s_Step_index_is_out_of_range, __pyx_k_Step_index_is_out_of_range, sizeof(__pyx_k_Step_index_is_out_of_range), 0, 0, 1, 0},
 
12247
  {&__pyx_n_s_UNKNOWN, __pyx_k_UNKNOWN, sizeof(__pyx_k_UNKNOWN), 0, 0, 1, 1},
 
12248
  {&__pyx_kp_s_Users_jyc_project_adios_devel_w, __pyx_k_Users_jyc_project_adios_devel_w, sizeof(__pyx_k_Users_jyc_project_adios_devel_w), 0, 0, 1, 0},
 
12249
  {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
 
12250
  {&__pyx_n_s_YES, __pyx_k_YES, sizeof(__pyx_k_YES), 0, 0, 1, 1},
 
12251
  {&__pyx_kp_s__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 0, 1, 0},
 
12252
  {&__pyx_n_s__19, __pyx_k__19, sizeof(__pyx_k__19), 0, 0, 1, 1},
 
12253
  {&__pyx_n_s_adios_mpi, __pyx_k_adios_mpi, sizeof(__pyx_k_adios_mpi), 0, 0, 1, 1},
 
12254
  {&__pyx_n_s_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 0, 1, 1},
 
12255
  {&__pyx_n_s_array, __pyx_k_array, sizeof(__pyx_k_array), 0, 0, 1, 1},
 
12256
  {&__pyx_n_s_attr_namelist, __pyx_k_attr_namelist, sizeof(__pyx_k_attr_namelist), 0, 0, 1, 1},
 
12257
  {&__pyx_n_s_attrs, __pyx_k_attrs, sizeof(__pyx_k_attrs), 0, 0, 1, 1},
 
12258
  {&__pyx_n_s_base_path, __pyx_k_base_path, sizeof(__pyx_k_base_path), 0, 0, 1, 1},
 
12259
  {&__pyx_n_s_bpls, __pyx_k_bpls, sizeof(__pyx_k_bpls), 0, 0, 1, 1},
 
12260
  {&__pyx_n_s_buffer_size, __pyx_k_buffer_size, sizeof(__pyx_k_buffer_size), 0, 0, 1, 1},
 
12261
  {&__pyx_n_s_byte, __pyx_k_byte, sizeof(__pyx_k_byte), 0, 0, 1, 1},
 
12262
  {&__pyx_kp_s_bytes, __pyx_k_bytes, sizeof(__pyx_k_bytes), 0, 0, 1, 0},
 
12263
  {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
 
12264
  {&__pyx_n_s_comm, __pyx_k_comm, sizeof(__pyx_k_comm), 0, 0, 1, 1},
 
12265
  {&__pyx_n_s_complex, __pyx_k_complex, sizeof(__pyx_k_complex), 0, 0, 1, 1},
 
12266
  {&__pyx_n_s_complex128, __pyx_k_complex128, sizeof(__pyx_k_complex128), 0, 0, 1, 1},
 
12267
  {&__pyx_n_s_complex64, __pyx_k_complex64, sizeof(__pyx_k_complex64), 0, 0, 1, 1},
 
12268
  {&__pyx_n_s_config, __pyx_k_config, sizeof(__pyx_k_config), 0, 0, 1, 1},
 
12269
  {&__pyx_n_s_contiguous, __pyx_k_contiguous, sizeof(__pyx_k_contiguous), 0, 0, 1, 1},
 
12270
  {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1},
 
12271
  {&__pyx_n_s_count, __pyx_k_count, sizeof(__pyx_k_count), 0, 0, 1, 1},
 
12272
  {&__pyx_n_s_current_step, __pyx_k_current_step, sizeof(__pyx_k_current_step), 0, 0, 1, 1},
 
12273
  {&__pyx_n_s_data_size, __pyx_k_data_size, sizeof(__pyx_k_data_size), 0, 0, 1, 1},
 
12274
  {&__pyx_n_s_dimensions, __pyx_k_dimensions, sizeof(__pyx_k_dimensions), 0, 0, 1, 1},
 
12275
  {&__pyx_n_s_dims, __pyx_k_dims, sizeof(__pyx_k_dims), 0, 0, 1, 1},
 
12276
  {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1},
 
12277
  {&__pyx_n_s_double, __pyx_k_double, sizeof(__pyx_k_double), 0, 0, 1, 1},
 
12278
  {&__pyx_n_s_double_complex, __pyx_k_double_complex, sizeof(__pyx_k_double_complex), 0, 0, 1, 1},
 
12279
  {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1},
 
12280
  {&__pyx_n_s_end, __pyx_k_end, sizeof(__pyx_k_end), 0, 0, 1, 1},
 
12281
  {&__pyx_n_s_endianness, __pyx_k_endianness, sizeof(__pyx_k_endianness), 0, 0, 1, 1},
 
12282
  {&__pyx_n_s_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 0, 1, 1},
 
12283
  {&__pyx_n_s_fd_p, __pyx_k_fd_p, sizeof(__pyx_k_fd_p), 0, 0, 1, 1},
 
12284
  {&__pyx_n_s_fh, __pyx_k_fh, sizeof(__pyx_k_fh), 0, 0, 1, 1},
 
12285
  {&__pyx_n_s_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 0, 1, 1},
 
12286
  {&__pyx_n_s_file_size, __pyx_k_file_size, sizeof(__pyx_k_file_size), 0, 0, 1, 1},
 
12287
  {&__pyx_n_s_fill, __pyx_k_fill, sizeof(__pyx_k_fill), 0, 0, 1, 1},
 
12288
  {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1},
 
12289
  {&__pyx_n_s_float128, __pyx_k_float128, sizeof(__pyx_k_float128), 0, 0, 1, 1},
 
12290
  {&__pyx_n_s_float32, __pyx_k_float32, sizeof(__pyx_k_float32), 0, 0, 1, 1},
 
12291
  {&__pyx_n_s_float64, __pyx_k_float64, sizeof(__pyx_k_float64), 0, 0, 1, 1},
 
12292
  {&__pyx_n_s_fname, __pyx_k_fname, sizeof(__pyx_k_fname), 0, 0, 1, 1},
 
12293
  {&__pyx_n_s_fp, __pyx_k_fp, sizeof(__pyx_k_fp), 0, 0, 1, 1},
 
12294
  {&__pyx_n_s_from_steps, __pyx_k_from_steps, sizeof(__pyx_k_from_steps), 0, 0, 1, 1},
 
12295
  {&__pyx_n_s_global_dimensions, __pyx_k_global_dimensions, sizeof(__pyx_k_global_dimensions), 0, 0, 1, 1},
 
12296
  {&__pyx_n_s_group, __pyx_k_group, sizeof(__pyx_k_group), 0, 0, 1, 1},
 
12297
  {&__pyx_n_s_group_id, __pyx_k_group_id, sizeof(__pyx_k_group_id), 0, 0, 1, 1},
 
12298
  {&__pyx_n_s_group_name, __pyx_k_group_name, sizeof(__pyx_k_group_name), 0, 0, 1, 1},
 
12299
  {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
 
12300
  {&__pyx_n_s_int16, __pyx_k_int16, sizeof(__pyx_k_int16), 0, 0, 1, 1},
 
12301
  {&__pyx_n_s_int32, __pyx_k_int32, sizeof(__pyx_k_int32), 0, 0, 1, 1},
 
12302
  {&__pyx_n_s_int64, __pyx_k_int64, sizeof(__pyx_k_int64), 0, 0, 1, 1},
 
12303
  {&__pyx_n_s_int8, __pyx_k_int8, sizeof(__pyx_k_int8), 0, 0, 1, 1},
 
12304
  {&__pyx_n_s_integer, __pyx_k_integer, sizeof(__pyx_k_integer), 0, 0, 1, 1},
 
12305
  {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1},
 
12306
  {&__pyx_n_s_iterkeys, __pyx_k_iterkeys, sizeof(__pyx_k_iterkeys), 0, 0, 1, 1},
 
12307
  {&__pyx_n_s_k, __pyx_k_k, sizeof(__pyx_k_k), 0, 0, 1, 1},
 
12308
  {&__pyx_n_s_last_step, __pyx_k_last_step, sizeof(__pyx_k_last_step), 0, 0, 1, 1},
 
12309
  {&__pyx_n_s_local_offsets, __pyx_k_local_offsets, sizeof(__pyx_k_local_offsets), 0, 0, 1, 1},
 
12310
  {&__pyx_n_s_long, __pyx_k_long, sizeof(__pyx_k_long), 0, 0, 1, 1},
 
12311
  {&__pyx_n_s_long_double, __pyx_k_long_double, sizeof(__pyx_k_long_double), 0, 0, 1, 1},
 
12312
  {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
 
12313
  {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1},
 
12314
  {&__pyx_n_s_method, __pyx_k_method, sizeof(__pyx_k_method), 0, 0, 1, 1},
 
12315
  {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1},
 
12316
  {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1},
 
12317
  {&__pyx_n_s_mpi4py_MPI, __pyx_k_mpi4py_MPI, sizeof(__pyx_k_mpi4py_MPI), 0, 0, 1, 1},
 
12318
  {&__pyx_n_s_mype, __pyx_k_mype, sizeof(__pyx_k_mype), 0, 0, 1, 1},
 
12319
  {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
 
12320
  {&__pyx_n_s_nattrs, __pyx_k_nattrs, sizeof(__pyx_k_nattrs), 0, 0, 1, 1},
 
12321
  {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0},
 
12322
  {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0},
 
12323
  {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1},
 
12324
  {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1},
 
12325
  {&__pyx_n_s_nsteps, __pyx_k_nsteps, sizeof(__pyx_k_nsteps), 0, 0, 1, 1},
 
12326
  {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
 
12327
  {&__pyx_n_s_nvars, __pyx_k_nvars, sizeof(__pyx_k_nvars), 0, 0, 1, 1},
 
12328
  {&__pyx_n_s_offset, __pyx_k_offset, sizeof(__pyx_k_offset), 0, 0, 1, 1},
 
12329
  {&__pyx_n_s_parameters, __pyx_k_parameters, sizeof(__pyx_k_parameters), 0, 0, 1, 1},
 
12330
  {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1},
 
12331
  {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1},
 
12332
  {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1},
 
12333
  {&__pyx_n_s_printself, __pyx_k_printself, sizeof(__pyx_k_printself), 0, 0, 1, 1},
 
12334
  {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
 
12335
  {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1},
 
12336
  {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
 
12337
  {&__pyx_n_s_read, __pyx_k_read, sizeof(__pyx_k_read), 0, 0, 1, 1},
 
12338
  {&__pyx_n_s_readvar, __pyx_k_readvar, sizeof(__pyx_k_readvar), 0, 0, 1, 1},
 
12339
  {&__pyx_n_s_real, __pyx_k_real, sizeof(__pyx_k_real), 0, 0, 1, 1},
 
12340
  {&__pyx_n_s_short, __pyx_k_short, sizeof(__pyx_k_short), 0, 0, 1, 1},
 
12341
  {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1},
 
12342
  {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1},
 
12343
  {&__pyx_n_s_stats, __pyx_k_stats, sizeof(__pyx_k_stats), 0, 0, 1, 1},
 
12344
  {&__pyx_n_s_string, __pyx_k_string, sizeof(__pyx_k_string), 0, 0, 1, 1},
 
12345
  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
 
12346
  {&__pyx_n_s_time_index, __pyx_k_time_index, sizeof(__pyx_k_time_index), 0, 0, 1, 1},
 
12347
  {&__pyx_n_s_time_steps, __pyx_k_time_steps, sizeof(__pyx_k_time_steps), 0, 0, 1, 1},
 
12348
  {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1},
 
12349
  {&__pyx_n_s_uint16, __pyx_k_uint16, sizeof(__pyx_k_uint16), 0, 0, 1, 1},
 
12350
  {&__pyx_n_s_uint32, __pyx_k_uint32, sizeof(__pyx_k_uint32), 0, 0, 1, 1},
 
12351
  {&__pyx_n_s_uint64, __pyx_k_uint64, sizeof(__pyx_k_uint64), 0, 0, 1, 1},
 
12352
  {&__pyx_n_s_uint8, __pyx_k_uint8, sizeof(__pyx_k_uint8), 0, 0, 1, 1},
 
12353
  {&__pyx_n_s_unknown, __pyx_k_unknown, sizeof(__pyx_k_unknown), 0, 0, 1, 1},
 
12354
  {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0},
 
12355
  {&__pyx_n_s_unsigned_byte, __pyx_k_unsigned_byte, sizeof(__pyx_k_unsigned_byte), 0, 0, 1, 1},
 
12356
  {&__pyx_n_s_unsigned_integer, __pyx_k_unsigned_integer, sizeof(__pyx_k_unsigned_integer), 0, 0, 1, 1},
 
12357
  {&__pyx_n_s_unsigned_long, __pyx_k_unsigned_long, sizeof(__pyx_k_unsigned_long), 0, 0, 1, 1},
 
12358
  {&__pyx_n_s_unsigned_short, __pyx_k_unsigned_short, sizeof(__pyx_k_unsigned_short), 0, 0, 1, 1},
 
12359
  {&__pyx_n_s_v, __pyx_k_v, sizeof(__pyx_k_v), 0, 0, 1, 1},
 
12360
  {&__pyx_n_s_val, __pyx_k_val, sizeof(__pyx_k_val), 0, 0, 1, 1},
 
12361
  {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
 
12362
  {&__pyx_n_s_var, __pyx_k_var, sizeof(__pyx_k_var), 0, 0, 1, 1},
 
12363
  {&__pyx_n_s_var_namelist, __pyx_k_var_namelist, sizeof(__pyx_k_var_namelist), 0, 0, 1, 1},
 
12364
  {&__pyx_n_s_varid, __pyx_k_varid, sizeof(__pyx_k_varid), 0, 0, 1, 1},
 
12365
  {&__pyx_n_s_varname, __pyx_k_varname, sizeof(__pyx_k_varname), 0, 0, 1, 1},
 
12366
  {&__pyx_n_s_vars, __pyx_k_vars, sizeof(__pyx_k_vars), 0, 0, 1, 1},
 
12367
  {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1},
 
12368
  {&__pyx_n_s_vp, __pyx_k_vp, sizeof(__pyx_k_vp), 0, 0, 1, 1},
 
12369
  {&__pyx_n_s_when, __pyx_k_when, sizeof(__pyx_k_when), 0, 0, 1, 1},
 
12370
  {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1},
 
12371
  {0, 0, 0, 0, 0, 0, 0}
 
12372
};
 
12373
static int __Pyx_InitCachedBuiltins(void) {
 
12374
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12375
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12376
  __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12377
  return 0;
 
12378
  __pyx_L1_error:;
 
12379
  return -1;
 
12380
}
 
12381
 
 
12382
static int __Pyx_InitCachedConstants(void) {
 
12383
  __Pyx_RefNannyDeclarations
 
12384
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
 
12385
 
 
12386
  /* "adios_mpi.pyx":456
 
12387
 *         assert self.fp != NULL, 'Not an open file'
 
12388
 * 
 
12389
 *         self.name = fname.split('/')[-1]  ## basename             # <<<<<<<<<<<<<<
 
12390
 *         self.nvars = self.fp.nvars
 
12391
 *         self.nattrs = self.fp.nattrs
 
12392
 */
 
12393
  __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s__10); if (unlikely(!__pyx_tuple__11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12394
  __Pyx_GOTREF(__pyx_tuple__11);
 
12395
  __Pyx_GIVEREF(__pyx_tuple__11);
 
12396
 
 
12397
  /* "adios_mpi.pyx":528
 
12398
 *         if len(offset) == 0:
 
12399
 *             npoffset = npshape.copy()
 
12400
 *             npoffset.fill(0)             # <<<<<<<<<<<<<<
 
12401
 *         else:
 
12402
 *             npoffset = np.array(offset, dtype=np.int64)
 
12403
 */
 
12404
  __pyx_tuple__12 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_tuple__12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12405
  __Pyx_GOTREF(__pyx_tuple__12);
 
12406
  __Pyx_GIVEREF(__pyx_tuple__12);
 
12407
 
 
12408
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":215
 
12409
 *             if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS)
 
12410
 *                 and not PyArray_CHKFLAGS(self, NPY_C_CONTIGUOUS)):
 
12411
 *                 raise ValueError(u"ndarray is not C contiguous")             # <<<<<<<<<<<<<<
 
12412
 * 
 
12413
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
 
12414
 */
 
12415
  __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__13)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12416
  __Pyx_GOTREF(__pyx_tuple__13);
 
12417
  __Pyx_GIVEREF(__pyx_tuple__13);
 
12418
 
 
12419
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":219
 
12420
 *             if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS)
 
12421
 *                 and not PyArray_CHKFLAGS(self, NPY_F_CONTIGUOUS)):
 
12422
 *                 raise ValueError(u"ndarray is not Fortran contiguous")             # <<<<<<<<<<<<<<
 
12423
 * 
 
12424
 *             info.buf = PyArray_DATA(self)
 
12425
 */
 
12426
  __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__14)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12427
  __Pyx_GOTREF(__pyx_tuple__14);
 
12428
  __Pyx_GIVEREF(__pyx_tuple__14);
 
12429
 
 
12430
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":257
 
12431
 *                 if ((descr.byteorder == c'>' and little_endian) or
 
12432
 *                     (descr.byteorder == c'<' and not little_endian)):
 
12433
 *                     raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
 
12434
 *                 if   t == NPY_BYTE:        f = "b"
 
12435
 *                 elif t == NPY_UBYTE:       f = "B"
 
12436
 */
 
12437
  __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__15)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12438
  __Pyx_GOTREF(__pyx_tuple__15);
 
12439
  __Pyx_GIVEREF(__pyx_tuple__15);
 
12440
 
 
12441
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":799
 
12442
 * 
 
12443
 *         if (end - f) - <int>(new_offset - offset[0]) < 15:
 
12444
 *             raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd")             # <<<<<<<<<<<<<<
 
12445
 * 
 
12446
 *         if ((child.byteorder == c'>' and little_endian) or
 
12447
 */
 
12448
  __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12449
  __Pyx_GOTREF(__pyx_tuple__16);
 
12450
  __Pyx_GIVEREF(__pyx_tuple__16);
 
12451
 
 
12452
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":803
 
12453
 *         if ((child.byteorder == c'>' and little_endian) or
 
12454
 *             (child.byteorder == c'<' and not little_endian)):
 
12455
 *             raise ValueError(u"Non-native byte order not supported")             # <<<<<<<<<<<<<<
 
12456
 *             # One could encode it in the format string and have Cython
 
12457
 *             # complain instead, BUT: < and > in format strings also imply
 
12458
 */
 
12459
  __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__17)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12460
  __Pyx_GOTREF(__pyx_tuple__17);
 
12461
  __Pyx_GIVEREF(__pyx_tuple__17);
 
12462
 
 
12463
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":823
 
12464
 *             t = child.type_num
 
12465
 *             if end - f < 5:
 
12466
 *                 raise RuntimeError(u"Format string allocated too short.")             # <<<<<<<<<<<<<<
 
12467
 * 
 
12468
 *             # Until ticket #99 is fixed, use integers to avoid warnings
 
12469
 */
 
12470
  __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__18)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12471
  __Pyx_GOTREF(__pyx_tuple__18);
 
12472
  __Pyx_GIVEREF(__pyx_tuple__18);
 
12473
 
 
12474
  /* "adios_mpi.pyx":567
 
12475
 * ## ====================
 
12476
 * 
 
12477
 * def readvar(fname, varname):             # <<<<<<<<<<<<<<
 
12478
 *     f = file(fname, comm=MPI.COMM_SELF)
 
12479
 *     if not f.var.has_key(varname):
 
12480
 */
 
12481
  __pyx_tuple__20 = PyTuple_Pack(4, __pyx_n_s_fname, __pyx_n_s_varname, __pyx_n_s_f, __pyx_n_s_v); if (unlikely(!__pyx_tuple__20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12482
  __Pyx_GOTREF(__pyx_tuple__20);
 
12483
  __Pyx_GIVEREF(__pyx_tuple__20);
 
12484
  __pyx_codeobj__21 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__20, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jyc_project_adios_devel_w, __pyx_n_s_readvar, 567, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12485
 
 
12486
  /* "adios_mpi.pyx":576
 
12487
 *     return v.read(from_steps=0, nsteps=v.nsteps)
 
12488
 * 
 
12489
 * def bpls(fname):             # <<<<<<<<<<<<<<
 
12490
 *     f = file(fname, comm=MPI.COMM_SELF)
 
12491
 *     return {'nvars': f.nvars,
 
12492
 */
 
12493
  __pyx_tuple__22 = PyTuple_Pack(3, __pyx_n_s_fname, __pyx_n_s_f, __pyx_n_s_k); if (unlikely(!__pyx_tuple__22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12494
  __Pyx_GOTREF(__pyx_tuple__22);
 
12495
  __Pyx_GIVEREF(__pyx_tuple__22);
 
12496
  __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_Users_jyc_project_adios_devel_w, __pyx_n_s_bpls, 576, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12497
  __Pyx_RefNannyFinishContext();
 
12498
  return 0;
 
12499
  __pyx_L1_error:;
 
12500
  __Pyx_RefNannyFinishContext();
 
12501
  return -1;
 
12502
}
 
12503
 
 
12504
static int __Pyx_InitGlobals(void) {
 
12505
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
12506
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12507
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12508
  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12509
  __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12510
  __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12511
  __pyx_int_6 = PyInt_FromLong(6); if (unlikely(!__pyx_int_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12512
  __pyx_int_7 = PyInt_FromLong(7); if (unlikely(!__pyx_int_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12513
  __pyx_int_9 = PyInt_FromLong(9); if (unlikely(!__pyx_int_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12514
  __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12515
  __pyx_int_11 = PyInt_FromLong(11); if (unlikely(!__pyx_int_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12516
  __pyx_int_50 = PyInt_FromLong(50); if (unlikely(!__pyx_int_50)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12517
  __pyx_int_51 = PyInt_FromLong(51); if (unlikely(!__pyx_int_51)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12518
  __pyx_int_52 = PyInt_FromLong(52); if (unlikely(!__pyx_int_52)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12519
  __pyx_int_54 = PyInt_FromLong(54); if (unlikely(!__pyx_int_54)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12520
  __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12521
  return 0;
 
12522
  __pyx_L1_error:;
 
12523
  return -1;
 
12524
}
 
12525
 
 
12526
#if PY_MAJOR_VERSION < 3
 
12527
PyMODINIT_FUNC initadios_mpi(void); /*proto*/
 
12528
PyMODINIT_FUNC initadios_mpi(void)
 
12529
#else
 
12530
PyMODINIT_FUNC PyInit_adios_mpi(void); /*proto*/
 
12531
PyMODINIT_FUNC PyInit_adios_mpi(void)
 
12532
#endif
 
12533
{
 
12534
  PyObject *__pyx_t_1 = NULL;
 
12535
  PyObject *__pyx_t_2 = NULL;
 
12536
  int __pyx_lineno = 0;
 
12537
  const char *__pyx_filename = NULL;
 
12538
  int __pyx_clineno = 0;
 
12539
  __Pyx_RefNannyDeclarations
 
12540
  #if CYTHON_REFNANNY
 
12541
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
 
12542
  if (!__Pyx_RefNanny) {
 
12543
      PyErr_Clear();
 
12544
      __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
 
12545
      if (!__Pyx_RefNanny)
 
12546
          Py_FatalError("failed to import 'refnanny' module");
 
12547
  }
 
12548
  #endif
 
12549
  __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_adios_mpi(void)", 0);
 
12550
  if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12551
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12552
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12553
  #ifdef __Pyx_CyFunction_USED
 
12554
  if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12555
  #endif
 
12556
  #ifdef __Pyx_FusedFunction_USED
 
12557
  if (__pyx_FusedFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12558
  #endif
 
12559
  #ifdef __Pyx_Generator_USED
 
12560
  if (__pyx_Generator_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12561
  #endif
 
12562
  /*--- Library function declarations ---*/
 
12563
  /*--- Threads initialization code ---*/
 
12564
  #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
 
12565
  #ifdef WITH_THREAD /* Python build with threading support? */
 
12566
  PyEval_InitThreads();
 
12567
  #endif
 
12568
  #endif
 
12569
  /*--- Module creation code ---*/
 
12570
  #if PY_MAJOR_VERSION < 3
 
12571
  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("adios_mpi"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_ADIOS_is_freely_available_under), 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
 
12572
  #else
 
12573
  __pyx_m = PyModule_Create(&__pyx_moduledef);
 
12574
  #endif
 
12575
  if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12576
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12577
  Py_INCREF(__pyx_d);
 
12578
  __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); if (unlikely(!__pyx_b)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12579
  #if CYTHON_COMPILING_IN_PYPY
 
12580
  Py_INCREF(__pyx_b);
 
12581
  #endif
 
12582
  if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
12583
  /*--- Initialize various global constants etc. ---*/
 
12584
  if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12585
  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
 
12586
  if (__Pyx_init_sys_getdefaultencoding_params() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12587
  #endif
 
12588
  if (__pyx_module_is_main_adios_mpi) {
 
12589
    if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s_main) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
 
12590
  }
 
12591
  #if PY_MAJOR_VERSION >= 3
 
12592
  {
 
12593
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12594
    if (!PyDict_GetItemString(modules, "adios_mpi")) {
 
12595
      if (unlikely(PyDict_SetItemString(modules, "adios_mpi", __pyx_m) < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12596
    }
 
12597
  }
 
12598
  #endif
 
12599
  /*--- Builtin init code ---*/
 
12600
  if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12601
  /*--- Constants init code ---*/
 
12602
  if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12603
  /*--- Global init code ---*/
 
12604
  /*--- Variable export code ---*/
 
12605
  /*--- Function export code ---*/
 
12606
  /*--- Type init code ---*/
 
12607
  __pyx_vtabptr_9adios_mpi_file = &__pyx_vtable_9adios_mpi_file;
 
12608
  __pyx_vtable_9adios_mpi_file.close = (PyObject *(*)(struct __pyx_obj_9adios_mpi_file *, int __pyx_skip_dispatch))__pyx_f_9adios_mpi_4file_close;
 
12609
  __pyx_vtable_9adios_mpi_file.printself = (PyObject *(*)(struct __pyx_obj_9adios_mpi_file *, int __pyx_skip_dispatch))__pyx_f_9adios_mpi_4file_printself;
 
12610
  if (PyType_Ready(&__pyx_type_9adios_mpi_file) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12611
  __pyx_type_9adios_mpi_file.tp_print = 0;
 
12612
  if (__Pyx_SetVtable(__pyx_type_9adios_mpi_file.tp_dict, __pyx_vtabptr_9adios_mpi_file) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12613
  if (__Pyx_SetAttrString(__pyx_m, "file", (PyObject *)&__pyx_type_9adios_mpi_file) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12614
  __pyx_ptype_9adios_mpi_file = &__pyx_type_9adios_mpi_file;
 
12615
  __pyx_vtabptr_9adios_mpi_var = &__pyx_vtable_9adios_mpi_var;
 
12616
  __pyx_vtable_9adios_mpi_var.close = (PyObject *(*)(struct __pyx_obj_9adios_mpi_var *, int __pyx_skip_dispatch))__pyx_f_9adios_mpi_3var_close;
 
12617
  __pyx_vtable_9adios_mpi_var.read = (PyObject *(*)(struct __pyx_obj_9adios_mpi_var *, int __pyx_skip_dispatch, struct __pyx_opt_args_9adios_mpi_3var_read *__pyx_optional_args))__pyx_f_9adios_mpi_3var_read;
 
12618
  __pyx_vtable_9adios_mpi_var.printself = (PyObject *(*)(struct __pyx_obj_9adios_mpi_var *, int __pyx_skip_dispatch))__pyx_f_9adios_mpi_3var_printself;
 
12619
  if (PyType_Ready(&__pyx_type_9adios_mpi_var) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12620
  __pyx_type_9adios_mpi_var.tp_print = 0;
 
12621
  if (__Pyx_SetVtable(__pyx_type_9adios_mpi_var.tp_dict, __pyx_vtabptr_9adios_mpi_var) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12622
  if (__Pyx_SetAttrString(__pyx_m, "var", (PyObject *)&__pyx_type_9adios_mpi_var) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12623
  __pyx_ptype_9adios_mpi_var = &__pyx_type_9adios_mpi_var;
 
12624
  /*--- Type import code ---*/
 
12625
  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", 
 
12626
  #if CYTHON_COMPILING_IN_PYPY
 
12627
  sizeof(PyTypeObject),
 
12628
  #else
 
12629
  sizeof(PyHeapTypeObject),
 
12630
  #endif
 
12631
  0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12632
  __pyx_ptype_5numpy_dtype = __Pyx_ImportType("numpy", "dtype", sizeof(PyArray_Descr), 0); if (unlikely(!__pyx_ptype_5numpy_dtype)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12633
  __pyx_ptype_5numpy_flatiter = __Pyx_ImportType("numpy", "flatiter", sizeof(PyArrayIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_flatiter)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12634
  __pyx_ptype_5numpy_broadcast = __Pyx_ImportType("numpy", "broadcast", sizeof(PyArrayMultiIterObject), 0); if (unlikely(!__pyx_ptype_5numpy_broadcast)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12635
  __pyx_ptype_5numpy_ndarray = __Pyx_ImportType("numpy", "ndarray", sizeof(PyArrayObject), 0); if (unlikely(!__pyx_ptype_5numpy_ndarray)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12636
  __pyx_ptype_5numpy_ufunc = __Pyx_ImportType("numpy", "ufunc", sizeof(PyUFuncObject), 0); if (unlikely(!__pyx_ptype_5numpy_ufunc)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12637
  __pyx_ptype_6mpi4py_3MPI_Status = __Pyx_ImportType("mpi4py.MPI", "Status", sizeof(struct PyMPIStatusObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Status)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12638
  __pyx_ptype_6mpi4py_3MPI_Datatype = __Pyx_ImportType("mpi4py.MPI", "Datatype", sizeof(struct PyMPIDatatypeObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Datatype)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12639
  __pyx_ptype_6mpi4py_3MPI_Request = __Pyx_ImportType("mpi4py.MPI", "Request", sizeof(struct PyMPIRequestObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Request)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12640
  __pyx_ptype_6mpi4py_3MPI_Prequest = __Pyx_ImportType("mpi4py.MPI", "Prequest", sizeof(struct PyMPIPrequestObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Prequest)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12641
  __pyx_ptype_6mpi4py_3MPI_Grequest = __Pyx_ImportType("mpi4py.MPI", "Grequest", sizeof(struct PyMPIGrequestObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Grequest)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12642
  __pyx_ptype_6mpi4py_3MPI_Op = __Pyx_ImportType("mpi4py.MPI", "Op", sizeof(struct PyMPIOpObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Op)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12643
  __pyx_ptype_6mpi4py_3MPI_Group = __Pyx_ImportType("mpi4py.MPI", "Group", sizeof(struct PyMPIGroupObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Group)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12644
  __pyx_ptype_6mpi4py_3MPI_Info = __Pyx_ImportType("mpi4py.MPI", "Info", sizeof(struct PyMPIInfoObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Info)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12645
  __pyx_ptype_6mpi4py_3MPI_Errhandler = __Pyx_ImportType("mpi4py.MPI", "Errhandler", sizeof(struct PyMPIErrhandlerObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Errhandler)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12646
  __pyx_ptype_6mpi4py_3MPI_Comm = __Pyx_ImportType("mpi4py.MPI", "Comm", sizeof(struct PyMPICommObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Comm)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12647
  __pyx_ptype_6mpi4py_3MPI_Intracomm = __Pyx_ImportType("mpi4py.MPI", "Intracomm", sizeof(struct PyMPIIntracommObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Intracomm)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12648
  __pyx_ptype_6mpi4py_3MPI_Cartcomm = __Pyx_ImportType("mpi4py.MPI", "Cartcomm", sizeof(struct PyMPICartcommObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Cartcomm)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12649
  __pyx_ptype_6mpi4py_3MPI_Graphcomm = __Pyx_ImportType("mpi4py.MPI", "Graphcomm", sizeof(struct PyMPIGraphcommObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Graphcomm)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12650
  __pyx_ptype_6mpi4py_3MPI_Distgraphcomm = __Pyx_ImportType("mpi4py.MPI", "Distgraphcomm", sizeof(struct PyMPIDistgraphcommObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Distgraphcomm)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12651
  __pyx_ptype_6mpi4py_3MPI_Intercomm = __Pyx_ImportType("mpi4py.MPI", "Intercomm", sizeof(struct PyMPIIntercommObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Intercomm)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12652
  __pyx_ptype_6mpi4py_3MPI_Win = __Pyx_ImportType("mpi4py.MPI", "Win", sizeof(struct PyMPIWinObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_Win)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12653
  __pyx_ptype_6mpi4py_3MPI_File = __Pyx_ImportType("mpi4py.MPI", "File", sizeof(struct PyMPIFileObject), 1); if (unlikely(!__pyx_ptype_6mpi4py_3MPI_File)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12654
  /*--- Variable import code ---*/
 
12655
  /*--- Function import code ---*/
 
12656
  /*--- Execution code ---*/
 
12657
 
 
12658
  /* "adios_mpi.pyx":12
 
12659
 * """
 
12660
 * 
 
12661
 * import numpy as np             # <<<<<<<<<<<<<<
 
12662
 * cimport numpy as np
 
12663
 * 
 
12664
 */
 
12665
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12666
  __Pyx_GOTREF(__pyx_t_1);
 
12667
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12668
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
12669
 
 
12670
  /* "adios_mpi.pyx":15
 
12671
 * cimport numpy as np
 
12672
 * 
 
12673
 * import mpi4py.MPI as MPI             # <<<<<<<<<<<<<<
 
12674
 * cimport mpi4py.MPI as MPI
 
12675
 * 
 
12676
 */
 
12677
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12678
  __Pyx_GOTREF(__pyx_t_1);
 
12679
  __Pyx_INCREF(__pyx_n_s__19);
 
12680
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s__19);
 
12681
  __Pyx_GIVEREF(__pyx_n_s__19);
 
12682
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_mpi4py_MPI, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12683
  __Pyx_GOTREF(__pyx_t_2);
 
12684
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
12685
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_MPI, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12686
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
12687
 
 
12688
  /* "adios_mpi.pyx":223
 
12689
 * ## ====================
 
12690
 * 
 
12691
 * class DATATYPE:             # <<<<<<<<<<<<<<
 
12692
 *     unknown = -1
 
12693
 *     byte = 0
 
12694
 */
 
12695
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_DATATYPE, __pyx_n_s_DATATYPE, (PyObject *) NULL, __pyx_n_s_adios_mpi, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12696
  __Pyx_GOTREF(__pyx_t_2);
 
12697
 
 
12698
  /* "adios_mpi.pyx":224
 
12699
 * 
 
12700
 * class DATATYPE:
 
12701
 *     unknown = -1             # <<<<<<<<<<<<<<
 
12702
 *     byte = 0
 
12703
 *     short = 1
 
12704
 */
 
12705
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_unknown, __pyx_int_neg_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12706
 
 
12707
  /* "adios_mpi.pyx":225
 
12708
 * class DATATYPE:
 
12709
 *     unknown = -1
 
12710
 *     byte = 0             # <<<<<<<<<<<<<<
 
12711
 *     short = 1
 
12712
 *     integer = 2
 
12713
 */
 
12714
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_byte, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12715
 
 
12716
  /* "adios_mpi.pyx":226
 
12717
 *     unknown = -1
 
12718
 *     byte = 0
 
12719
 *     short = 1             # <<<<<<<<<<<<<<
 
12720
 *     integer = 2
 
12721
 *     long = 4
 
12722
 */
 
12723
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_short, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12724
 
 
12725
  /* "adios_mpi.pyx":227
 
12726
 *     byte = 0
 
12727
 *     short = 1
 
12728
 *     integer = 2             # <<<<<<<<<<<<<<
 
12729
 *     long = 4
 
12730
 *     unsigned_byte = 50
 
12731
 */
 
12732
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_integer, __pyx_int_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12733
 
 
12734
  /* "adios_mpi.pyx":228
 
12735
 *     short = 1
 
12736
 *     integer = 2
 
12737
 *     long = 4             # <<<<<<<<<<<<<<
 
12738
 *     unsigned_byte = 50
 
12739
 *     unsigned_short = 51
 
12740
 */
 
12741
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_long, __pyx_int_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12742
 
 
12743
  /* "adios_mpi.pyx":229
 
12744
 *     integer = 2
 
12745
 *     long = 4
 
12746
 *     unsigned_byte = 50             # <<<<<<<<<<<<<<
 
12747
 *     unsigned_short = 51
 
12748
 *     unsigned_integer = 52
 
12749
 */
 
12750
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_unsigned_byte, __pyx_int_50) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12751
 
 
12752
  /* "adios_mpi.pyx":230
 
12753
 *     long = 4
 
12754
 *     unsigned_byte = 50
 
12755
 *     unsigned_short = 51             # <<<<<<<<<<<<<<
 
12756
 *     unsigned_integer = 52
 
12757
 *     unsigned_long = 54
 
12758
 */
 
12759
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_unsigned_short, __pyx_int_51) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12760
 
 
12761
  /* "adios_mpi.pyx":231
 
12762
 *     unsigned_byte = 50
 
12763
 *     unsigned_short = 51
 
12764
 *     unsigned_integer = 52             # <<<<<<<<<<<<<<
 
12765
 *     unsigned_long = 54
 
12766
 *     real = 5
 
12767
 */
 
12768
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_unsigned_integer, __pyx_int_52) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12769
 
 
12770
  /* "adios_mpi.pyx":232
 
12771
 *     unsigned_short = 51
 
12772
 *     unsigned_integer = 52
 
12773
 *     unsigned_long = 54             # <<<<<<<<<<<<<<
 
12774
 *     real = 5
 
12775
 *     double = 6
 
12776
 */
 
12777
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_unsigned_long, __pyx_int_54) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12778
 
 
12779
  /* "adios_mpi.pyx":233
 
12780
 *     unsigned_integer = 52
 
12781
 *     unsigned_long = 54
 
12782
 *     real = 5             # <<<<<<<<<<<<<<
 
12783
 *     double = 6
 
12784
 *     long_double = 7
 
12785
 */
 
12786
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_real, __pyx_int_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12787
 
 
12788
  /* "adios_mpi.pyx":234
 
12789
 *     unsigned_long = 54
 
12790
 *     real = 5
 
12791
 *     double = 6             # <<<<<<<<<<<<<<
 
12792
 *     long_double = 7
 
12793
 *     string = 9
 
12794
 */
 
12795
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_double, __pyx_int_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12796
 
 
12797
  /* "adios_mpi.pyx":235
 
12798
 *     real = 5
 
12799
 *     double = 6
 
12800
 *     long_double = 7             # <<<<<<<<<<<<<<
 
12801
 *     string = 9
 
12802
 *     complex = 10
 
12803
 */
 
12804
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_long_double, __pyx_int_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12805
 
 
12806
  /* "adios_mpi.pyx":236
 
12807
 *     double = 6
 
12808
 *     long_double = 7
 
12809
 *     string = 9             # <<<<<<<<<<<<<<
 
12810
 *     complex = 10
 
12811
 *     double_complex = 11
 
12812
 */
 
12813
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_string, __pyx_int_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12814
 
 
12815
  /* "adios_mpi.pyx":237
 
12816
 *     long_double = 7
 
12817
 *     string = 9
 
12818
 *     complex = 10             # <<<<<<<<<<<<<<
 
12819
 *     double_complex = 11
 
12820
 * 
 
12821
 */
 
12822
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_complex, __pyx_int_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12823
 
 
12824
  /* "adios_mpi.pyx":238
 
12825
 *     string = 9
 
12826
 *     complex = 10
 
12827
 *     double_complex = 11             # <<<<<<<<<<<<<<
 
12828
 * 
 
12829
 * class FLAG:
 
12830
 */
 
12831
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_double_complex, __pyx_int_11) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12832
 
 
12833
  /* "adios_mpi.pyx":223
 
12834
 * ## ====================
 
12835
 * 
 
12836
 * class DATATYPE:             # <<<<<<<<<<<<<<
 
12837
 *     unknown = -1
 
12838
 *     byte = 0
 
12839
 */
 
12840
  __pyx_t_1 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_DATATYPE, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12841
  __Pyx_GOTREF(__pyx_t_1);
 
12842
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_DATATYPE, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12843
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
12844
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
12845
 
 
12846
  /* "adios_mpi.pyx":240
 
12847
 *     double_complex = 11
 
12848
 * 
 
12849
 * class FLAG:             # <<<<<<<<<<<<<<
 
12850
 *     UNKNOWN = 0
 
12851
 *     YES = 1
 
12852
 */
 
12853
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_FLAG, __pyx_n_s_FLAG, (PyObject *) NULL, __pyx_n_s_adios_mpi, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12854
  __Pyx_GOTREF(__pyx_t_2);
 
12855
 
 
12856
  /* "adios_mpi.pyx":241
 
12857
 * 
 
12858
 * class FLAG:
 
12859
 *     UNKNOWN = 0             # <<<<<<<<<<<<<<
 
12860
 *     YES = 1
 
12861
 *     NO = 2
 
12862
 */
 
12863
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_UNKNOWN, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12864
 
 
12865
  /* "adios_mpi.pyx":242
 
12866
 * class FLAG:
 
12867
 *     UNKNOWN = 0
 
12868
 *     YES = 1             # <<<<<<<<<<<<<<
 
12869
 *     NO = 2
 
12870
 * 
 
12871
 */
 
12872
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_YES, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12873
 
 
12874
  /* "adios_mpi.pyx":243
 
12875
 *     UNKNOWN = 0
 
12876
 *     YES = 1
 
12877
 *     NO = 2             # <<<<<<<<<<<<<<
 
12878
 * 
 
12879
 * class BUFFER_ALLOC_WHEN:
 
12880
 */
 
12881
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_NO, __pyx_int_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12882
 
 
12883
  /* "adios_mpi.pyx":240
 
12884
 *     double_complex = 11
 
12885
 * 
 
12886
 * class FLAG:             # <<<<<<<<<<<<<<
 
12887
 *     UNKNOWN = 0
 
12888
 *     YES = 1
 
12889
 */
 
12890
  __pyx_t_1 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_FLAG, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12891
  __Pyx_GOTREF(__pyx_t_1);
 
12892
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_FLAG, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12893
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
12894
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
12895
 
 
12896
  /* "adios_mpi.pyx":245
 
12897
 *     NO = 2
 
12898
 * 
 
12899
 * class BUFFER_ALLOC_WHEN:             # <<<<<<<<<<<<<<
 
12900
 *     UNKNOWN = 0
 
12901
 *     NOW = 1
 
12902
 */
 
12903
  __pyx_t_2 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_BUFFER_ALLOC_WHEN, __pyx_n_s_BUFFER_ALLOC_WHEN, (PyObject *) NULL, __pyx_n_s_adios_mpi, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12904
  __Pyx_GOTREF(__pyx_t_2);
 
12905
 
 
12906
  /* "adios_mpi.pyx":246
 
12907
 * 
 
12908
 * class BUFFER_ALLOC_WHEN:
 
12909
 *     UNKNOWN = 0             # <<<<<<<<<<<<<<
 
12910
 *     NOW = 1
 
12911
 *     LATER = 2
 
12912
 */
 
12913
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_UNKNOWN, __pyx_int_0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12914
 
 
12915
  /* "adios_mpi.pyx":247
 
12916
 * class BUFFER_ALLOC_WHEN:
 
12917
 *     UNKNOWN = 0
 
12918
 *     NOW = 1             # <<<<<<<<<<<<<<
 
12919
 *     LATER = 2
 
12920
 * 
 
12921
 */
 
12922
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_NOW, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12923
 
 
12924
  /* "adios_mpi.pyx":248
 
12925
 *     UNKNOWN = 0
 
12926
 *     NOW = 1
 
12927
 *     LATER = 2             # <<<<<<<<<<<<<<
 
12928
 * 
 
12929
 * ## ====================
 
12930
 */
 
12931
  if (PyObject_SetItem(__pyx_t_2, __pyx_n_s_LATER, __pyx_int_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12932
 
 
12933
  /* "adios_mpi.pyx":245
 
12934
 *     NO = 2
 
12935
 * 
 
12936
 * class BUFFER_ALLOC_WHEN:             # <<<<<<<<<<<<<<
 
12937
 *     UNKNOWN = 0
 
12938
 *     NOW = 1
 
12939
 */
 
12940
  __pyx_t_1 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_BUFFER_ALLOC_WHEN, __pyx_empty_tuple, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12941
  __Pyx_GOTREF(__pyx_t_1);
 
12942
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_BUFFER_ALLOC_WHEN, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12943
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
12944
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
12945
 
 
12946
  /* "adios_mpi.pyx":254
 
12947
 * ## ====================
 
12948
 * 
 
12949
 * cpdef init(char * config, MPI.Comm comm = MPI.COMM_WORLD):             # <<<<<<<<<<<<<<
 
12950
 *     return adios_init(config, comm.ob_mpi)
 
12951
 * 
 
12952
 */
 
12953
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_MPI); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12954
  __Pyx_GOTREF(__pyx_t_2);
 
12955
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_COMM_WORLD); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12956
  __Pyx_GOTREF(__pyx_t_1);
 
12957
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
12958
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6mpi4py_3MPI_Comm))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12959
  __pyx_k_ = ((struct PyMPICommObject *)__pyx_t_1);
 
12960
  __Pyx_GIVEREF(__pyx_t_1);
 
12961
  __pyx_t_1 = 0;
 
12962
 
 
12963
  /* "adios_mpi.pyx":260
 
12964
 *                    char * name,
 
12965
 *                    char * mode,
 
12966
 *                    MPI.Comm comm = MPI.COMM_WORLD):             # <<<<<<<<<<<<<<
 
12967
 *     cdef int64_t fd
 
12968
 *     cdef int result
 
12969
 */
 
12970
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_MPI); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12971
  __Pyx_GOTREF(__pyx_t_1);
 
12972
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_COMM_WORLD); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12973
  __Pyx_GOTREF(__pyx_t_2);
 
12974
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
12975
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6mpi4py_3MPI_Comm))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12976
  __pyx_k__2 = ((struct PyMPICommObject *)__pyx_t_2);
 
12977
  __Pyx_GIVEREF(__pyx_t_2);
 
12978
  __pyx_t_2 = 0;
 
12979
 
 
12980
  /* "adios_mpi.pyx":304
 
12981
 * ## ADIOS No-XML API
 
12982
 * ## ====================
 
12983
 * cpdef int init_noxml(MPI.Comm comm = MPI.COMM_WORLD):             # <<<<<<<<<<<<<<
 
12984
 *     return adios_init_noxml(comm.ob_mpi)
 
12985
 * 
 
12986
 */
 
12987
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_MPI); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12988
  __Pyx_GOTREF(__pyx_t_2);
 
12989
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_COMM_WORLD); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12990
  __Pyx_GOTREF(__pyx_t_1);
 
12991
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
12992
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6mpi4py_3MPI_Comm))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
12993
  __pyx_k__3 = ((struct PyMPICommObject *)__pyx_t_1);
 
12994
  __Pyx_GIVEREF(__pyx_t_1);
 
12995
  __pyx_t_1 = 0;
 
12996
 
 
12997
  /* "adios_mpi.pyx":420
 
12998
 * ## ====================
 
12999
 * 
 
13000
 * cpdef read_init(ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP,             # <<<<<<<<<<<<<<
 
13001
 *                 MPI.Comm comm = MPI.COMM_WORLD,
 
13002
 *                 char * parameters = ""):
 
13003
 */
 
13004
  __pyx_k__4 = ADIOS_READ_METHOD_BP;
 
13005
 
 
13006
  /* "adios_mpi.pyx":421
 
13007
 * 
 
13008
 * cpdef read_init(ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP,
 
13009
 *                 MPI.Comm comm = MPI.COMM_WORLD,             # <<<<<<<<<<<<<<
 
13010
 *                 char * parameters = ""):
 
13011
 *     return adios_read_init_method (method, comm.ob_mpi, parameters)
 
13012
 */
 
13013
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_MPI); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13014
  __Pyx_GOTREF(__pyx_t_1);
 
13015
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_COMM_WORLD); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13016
  __Pyx_GOTREF(__pyx_t_2);
 
13017
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
13018
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_6mpi4py_3MPI_Comm))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13019
  __pyx_k__5 = ((struct PyMPICommObject *)__pyx_t_2);
 
13020
  __Pyx_GIVEREF(__pyx_t_2);
 
13021
  __pyx_t_2 = 0;
 
13022
 
 
13023
  /* "adios_mpi.pyx":426
 
13024
 * 
 
13025
 * 
 
13026
 * cpdef read_finalize(ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP):             # <<<<<<<<<<<<<<
 
13027
 *     return adios_read_finalize_method (method)
 
13028
 * 
 
13029
 */
 
13030
  __pyx_k__7 = ADIOS_READ_METHOD_BP;
 
13031
 
 
13032
  /* "adios_mpi.pyx":447
 
13033
 * 
 
13034
 *     def __init__(self, char * fname,
 
13035
 *                  ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP,             # <<<<<<<<<<<<<<
 
13036
 *                  MPI.Comm comm = MPI.COMM_WORLD):
 
13037
 *         self.fp = NULL
 
13038
 */
 
13039
  __pyx_k__9 = ADIOS_READ_METHOD_BP;
 
13040
 
 
13041
  /* "adios_mpi.pyx":448
 
13042
 *     def __init__(self, char * fname,
 
13043
 *                  ADIOS_READ_METHOD method = ADIOS_READ_METHOD_BP,
 
13044
 *                  MPI.Comm comm = MPI.COMM_WORLD):             # <<<<<<<<<<<<<<
 
13045
 *         self.fp = NULL
 
13046
 *         self.var = {}
 
13047
 */
 
13048
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_MPI); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13049
  __Pyx_GOTREF(__pyx_t_2);
 
13050
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_COMM_WORLD); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13051
  __Pyx_GOTREF(__pyx_t_1);
 
13052
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
13053
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_6mpi4py_3MPI_Comm))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13054
  __pyx_k__8 = ((struct PyMPICommObject *)__pyx_t_1);
 
13055
  __Pyx_GIVEREF(__pyx_t_1);
 
13056
  __pyx_t_1 = 0;
 
13057
 
 
13058
  /* "adios_mpi.pyx":567
 
13059
 * ## ====================
 
13060
 * 
 
13061
 * def readvar(fname, varname):             # <<<<<<<<<<<<<<
 
13062
 *     f = file(fname, comm=MPI.COMM_SELF)
 
13063
 *     if not f.var.has_key(varname):
 
13064
 */
 
13065
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_9adios_mpi_37readvar, NULL, __pyx_n_s_adios_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13066
  __Pyx_GOTREF(__pyx_t_1);
 
13067
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_readvar, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13068
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
13069
 
 
13070
  /* "adios_mpi.pyx":576
 
13071
 *     return v.read(from_steps=0, nsteps=v.nsteps)
 
13072
 * 
 
13073
 * def bpls(fname):             # <<<<<<<<<<<<<<
 
13074
 *     f = file(fname, comm=MPI.COMM_SELF)
 
13075
 *     return {'nvars': f.nvars,
 
13076
 */
 
13077
  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_9adios_mpi_39bpls, NULL, __pyx_n_s_adios_mpi); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13078
  __Pyx_GOTREF(__pyx_t_1);
 
13079
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bpls, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13080
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
13081
 
 
13082
  /* "adios_mpi.pyx":1
 
13083
 * """             # <<<<<<<<<<<<<<
 
13084
 *  ADIOS is freely available under the terms of the BSD license described
 
13085
 *  in the COPYING file in the top level directory of this source distribution.
 
13086
 */
 
13087
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13088
  __Pyx_GOTREF(__pyx_t_1);
 
13089
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
13090
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
13091
 
 
13092
  /* "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Cython/Includes/numpy/__init__.pxd":976
 
13093
 *      arr.base = baseptr
 
13094
 * 
 
13095
 * cdef inline object get_array_base(ndarray arr):             # <<<<<<<<<<<<<<
 
13096
 *     if arr.base is NULL:
 
13097
 *         return None
 
13098
 */
 
13099
  goto __pyx_L0;
 
13100
  __pyx_L1_error:;
 
13101
  __Pyx_XDECREF(__pyx_t_1);
 
13102
  __Pyx_XDECREF(__pyx_t_2);
 
13103
  if (__pyx_m) {
 
13104
    __Pyx_AddTraceback("init adios_mpi", __pyx_clineno, __pyx_lineno, __pyx_filename);
 
13105
    Py_DECREF(__pyx_m); __pyx_m = 0;
 
13106
  } else if (!PyErr_Occurred()) {
 
13107
    PyErr_SetString(PyExc_ImportError, "init adios_mpi");
 
13108
  }
 
13109
  __pyx_L0:;
 
13110
  __Pyx_RefNannyFinishContext();
 
13111
  #if PY_MAJOR_VERSION < 3
 
13112
  return;
 
13113
  #else
 
13114
  return __pyx_m;
 
13115
  #endif
 
13116
}
 
13117
 
 
13118
/* Runtime support code */
 
13119
#if CYTHON_REFNANNY
 
13120
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
 
13121
    PyObject *m = NULL, *p = NULL;
 
13122
    void *r = NULL;
 
13123
    m = PyImport_ImportModule((char *)modname);
 
13124
    if (!m) goto end;
 
13125
    p = PyObject_GetAttrString(m, (char *)"RefNannyAPI");
 
13126
    if (!p) goto end;
 
13127
    r = PyLong_AsVoidPtr(p);
 
13128
end:
 
13129
    Py_XDECREF(p);
 
13130
    Py_XDECREF(m);
 
13131
    return (__Pyx_RefNannyAPIStruct *)r;
 
13132
}
 
13133
#endif /* CYTHON_REFNANNY */
 
13134
 
 
13135
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
 
13136
    PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
 
13137
    if (unlikely(!result)) {
 
13138
        PyErr_Format(PyExc_NameError,
 
13139
#if PY_MAJOR_VERSION >= 3
 
13140
            "name '%U' is not defined", name);
 
13141
#else
 
13142
            "name '%.200s' is not defined", PyString_AS_STRING(name));
 
13143
#endif
 
13144
    }
 
13145
    return result;
 
13146
}
 
13147
 
 
13148
static void __Pyx_RaiseDoubleKeywordsError(
 
13149
    const char* func_name,
 
13150
    PyObject* kw_name)
 
13151
{
 
13152
    PyErr_Format(PyExc_TypeError,
 
13153
        #if PY_MAJOR_VERSION >= 3
 
13154
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
 
13155
        #else
 
13156
        "%s() got multiple values for keyword argument '%s'", func_name,
 
13157
        PyString_AsString(kw_name));
 
13158
        #endif
 
13159
}
 
13160
 
 
13161
static int __Pyx_ParseOptionalKeywords(
 
13162
    PyObject *kwds,
 
13163
    PyObject **argnames[],
 
13164
    PyObject *kwds2,
 
13165
    PyObject *values[],
 
13166
    Py_ssize_t num_pos_args,
 
13167
    const char* function_name)
 
13168
{
 
13169
    PyObject *key = 0, *value = 0;
 
13170
    Py_ssize_t pos = 0;
 
13171
    PyObject*** name;
 
13172
    PyObject*** first_kw_arg = argnames + num_pos_args;
 
13173
    while (PyDict_Next(kwds, &pos, &key, &value)) {
 
13174
        name = first_kw_arg;
 
13175
        while (*name && (**name != key)) name++;
 
13176
        if (*name) {
 
13177
            values[name-argnames] = value;
 
13178
            continue;
 
13179
        }
 
13180
        name = first_kw_arg;
 
13181
        #if PY_MAJOR_VERSION < 3
 
13182
        if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) {
 
13183
            while (*name) {
 
13184
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
 
13185
                        && _PyString_Eq(**name, key)) {
 
13186
                    values[name-argnames] = value;
 
13187
                    break;
 
13188
                }
 
13189
                name++;
 
13190
            }
 
13191
            if (*name) continue;
 
13192
            else {
 
13193
                PyObject*** argname = argnames;
 
13194
                while (argname != first_kw_arg) {
 
13195
                    if ((**argname == key) || (
 
13196
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
 
13197
                             && _PyString_Eq(**argname, key))) {
 
13198
                        goto arg_passed_twice;
 
13199
                    }
 
13200
                    argname++;
 
13201
                }
 
13202
            }
 
13203
        } else
 
13204
        #endif
 
13205
        if (likely(PyUnicode_Check(key))) {
 
13206
            while (*name) {
 
13207
                int cmp = (**name == key) ? 0 :
 
13208
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
 
13209
                    (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
 
13210
                #endif
 
13211
                    PyUnicode_Compare(**name, key);
 
13212
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
 
13213
                if (cmp == 0) {
 
13214
                    values[name-argnames] = value;
 
13215
                    break;
 
13216
                }
 
13217
                name++;
 
13218
            }
 
13219
            if (*name) continue;
 
13220
            else {
 
13221
                PyObject*** argname = argnames;
 
13222
                while (argname != first_kw_arg) {
 
13223
                    int cmp = (**argname == key) ? 0 :
 
13224
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
 
13225
                        (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
 
13226
                    #endif
 
13227
                        PyUnicode_Compare(**argname, key);
 
13228
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
 
13229
                    if (cmp == 0) goto arg_passed_twice;
 
13230
                    argname++;
 
13231
                }
 
13232
            }
 
13233
        } else
 
13234
            goto invalid_keyword_type;
 
13235
        if (kwds2) {
 
13236
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
 
13237
        } else {
 
13238
            goto invalid_keyword;
 
13239
        }
 
13240
    }
 
13241
    return 0;
 
13242
arg_passed_twice:
 
13243
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
 
13244
    goto bad;
 
13245
invalid_keyword_type:
 
13246
    PyErr_Format(PyExc_TypeError,
 
13247
        "%.200s() keywords must be strings", function_name);
 
13248
    goto bad;
 
13249
invalid_keyword:
 
13250
    PyErr_Format(PyExc_TypeError,
 
13251
    #if PY_MAJOR_VERSION < 3
 
13252
        "%.200s() got an unexpected keyword argument '%.200s'",
 
13253
        function_name, PyString_AsString(key));
 
13254
    #else
 
13255
        "%s() got an unexpected keyword argument '%U'",
 
13256
        function_name, key);
 
13257
    #endif
 
13258
bad:
 
13259
    return -1;
 
13260
}
 
13261
 
 
13262
static void __Pyx_RaiseArgtupleInvalid(
 
13263
    const char* func_name,
 
13264
    int exact,
 
13265
    Py_ssize_t num_min,
 
13266
    Py_ssize_t num_max,
 
13267
    Py_ssize_t num_found)
 
13268
{
 
13269
    Py_ssize_t num_expected;
 
13270
    const char *more_or_less;
 
13271
    if (num_found < num_min) {
 
13272
        num_expected = num_min;
 
13273
        more_or_less = "at least";
 
13274
    } else {
 
13275
        num_expected = num_max;
 
13276
        more_or_less = "at most";
 
13277
    }
 
13278
    if (exact) {
 
13279
        more_or_less = "exactly";
 
13280
    }
 
13281
    PyErr_Format(PyExc_TypeError,
 
13282
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
 
13283
                 func_name, more_or_less, num_expected,
 
13284
                 (num_expected == 1) ? "" : "s", num_found);
 
13285
}
 
13286
 
 
13287
static void __Pyx_RaiseArgumentTypeInvalid(const char* name, PyObject *obj, PyTypeObject *type) {
 
13288
    PyErr_Format(PyExc_TypeError,
 
13289
        "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
 
13290
        name, type->tp_name, Py_TYPE(obj)->tp_name);
 
13291
}
 
13292
static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
 
13293
    const char *name, int exact)
 
13294
{
 
13295
    if (unlikely(!type)) {
 
13296
        PyErr_SetString(PyExc_SystemError, "Missing type object");
 
13297
        return 0;
 
13298
    }
 
13299
    if (none_allowed && obj == Py_None) return 1;
 
13300
    else if (exact) {
 
13301
        if (likely(Py_TYPE(obj) == type)) return 1;
 
13302
        #if PY_MAJOR_VERSION == 2
 
13303
        else if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
 
13304
        #endif
 
13305
    }
 
13306
    else {
 
13307
        if (likely(PyObject_TypeCheck(obj, type))) return 1;
 
13308
    }
 
13309
    __Pyx_RaiseArgumentTypeInvalid(name, obj, type);
 
13310
    return 0;
 
13311
}
 
13312
 
 
13313
static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) {
 
13314
    PyObject *result;
 
13315
#if CYTHON_COMPILING_IN_CPYTHON
 
13316
    result = PyDict_GetItem(__pyx_d, name);
 
13317
    if (result) {
 
13318
        Py_INCREF(result);
 
13319
    } else {
 
13320
#else
 
13321
    result = PyObject_GetItem(__pyx_d, name);
 
13322
    if (!result) {
 
13323
        PyErr_Clear();
 
13324
#endif
 
13325
        result = __Pyx_GetBuiltinName(name);
 
13326
    }
 
13327
    return result;
 
13328
}
 
13329
 
 
13330
#if CYTHON_COMPILING_IN_CPYTHON
 
13331
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
 
13332
    PyObject *result;
 
13333
    ternaryfunc call = func->ob_type->tp_call;
 
13334
    if (unlikely(!call))
 
13335
        return PyObject_Call(func, arg, kw);
 
13336
#if PY_VERSION_HEX >= 0x02060000
 
13337
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
 
13338
        return NULL;
 
13339
#endif
 
13340
    result = (*call)(func, arg, kw);
 
13341
#if PY_VERSION_HEX >= 0x02060000
 
13342
    Py_LeaveRecursiveCall();
 
13343
#endif
 
13344
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
 
13345
        PyErr_SetString(
 
13346
            PyExc_SystemError,
 
13347
            "NULL result without error in PyObject_Call");
 
13348
    }
 
13349
    return result;
 
13350
}
 
13351
#endif
 
13352
 
 
13353
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
 
13354
    if (unlikely(!type)) {
 
13355
        PyErr_SetString(PyExc_SystemError, "Missing type object");
 
13356
        return 0;
 
13357
    }
 
13358
    if (likely(PyObject_TypeCheck(obj, type)))
 
13359
        return 1;
 
13360
    PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s",
 
13361
                 Py_TYPE(obj)->tp_name, type->tp_name);
 
13362
    return 0;
 
13363
}
 
13364
 
 
13365
static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
 
13366
#if CYTHON_COMPILING_IN_CPYTHON
 
13367
    PyObject *tmp_type, *tmp_value, *tmp_tb;
 
13368
    PyThreadState *tstate = PyThreadState_GET();
 
13369
    tmp_type = tstate->curexc_type;
 
13370
    tmp_value = tstate->curexc_value;
 
13371
    tmp_tb = tstate->curexc_traceback;
 
13372
    tstate->curexc_type = type;
 
13373
    tstate->curexc_value = value;
 
13374
    tstate->curexc_traceback = tb;
 
13375
    Py_XDECREF(tmp_type);
 
13376
    Py_XDECREF(tmp_value);
 
13377
    Py_XDECREF(tmp_tb);
 
13378
#else
 
13379
    PyErr_Restore(type, value, tb);
 
13380
#endif
 
13381
}
 
13382
static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
 
13383
#if CYTHON_COMPILING_IN_CPYTHON
 
13384
    PyThreadState *tstate = PyThreadState_GET();
 
13385
    *type = tstate->curexc_type;
 
13386
    *value = tstate->curexc_value;
 
13387
    *tb = tstate->curexc_traceback;
 
13388
    tstate->curexc_type = 0;
 
13389
    tstate->curexc_value = 0;
 
13390
    tstate->curexc_traceback = 0;
 
13391
#else
 
13392
    PyErr_Fetch(type, value, tb);
 
13393
#endif
 
13394
}
 
13395
 
 
13396
static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
 
13397
                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
 
13398
                                  int full_traceback) {
 
13399
    PyObject *old_exc, *old_val, *old_tb;
 
13400
    PyObject *ctx;
 
13401
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
 
13402
    if (full_traceback) {
 
13403
        Py_XINCREF(old_exc);
 
13404
        Py_XINCREF(old_val);
 
13405
        Py_XINCREF(old_tb);
 
13406
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
 
13407
        PyErr_PrintEx(1);
 
13408
    }
 
13409
    #if PY_MAJOR_VERSION < 3
 
13410
    ctx = PyString_FromString(name);
 
13411
    #else
 
13412
    ctx = PyUnicode_FromString(name);
 
13413
    #endif
 
13414
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
 
13415
    if (!ctx) {
 
13416
        PyErr_WriteUnraisable(Py_None);
 
13417
    } else {
 
13418
        PyErr_WriteUnraisable(ctx);
 
13419
        Py_DECREF(ctx);
 
13420
    }
 
13421
}
 
13422
 
 
13423
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
 
13424
    PyObject *r;
 
13425
    if (!j) return NULL;
 
13426
    r = PyObject_GetItem(o, j);
 
13427
    Py_DECREF(j);
 
13428
    return r;
 
13429
}
 
13430
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
 
13431
                                                              int wraparound, int boundscheck) {
 
13432
#if CYTHON_COMPILING_IN_CPYTHON
 
13433
    if (wraparound & unlikely(i < 0)) i += PyList_GET_SIZE(o);
 
13434
    if ((!boundscheck) || likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
 
13435
        PyObject *r = PyList_GET_ITEM(o, i);
 
13436
        Py_INCREF(r);
 
13437
        return r;
 
13438
    }
 
13439
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
 
13440
#else
 
13441
    return PySequence_GetItem(o, i);
 
13442
#endif
 
13443
}
 
13444
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
 
13445
                                                              int wraparound, int boundscheck) {
 
13446
#if CYTHON_COMPILING_IN_CPYTHON
 
13447
    if (wraparound & unlikely(i < 0)) i += PyTuple_GET_SIZE(o);
 
13448
    if ((!boundscheck) || likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
 
13449
        PyObject *r = PyTuple_GET_ITEM(o, i);
 
13450
        Py_INCREF(r);
 
13451
        return r;
 
13452
    }
 
13453
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
 
13454
#else
 
13455
    return PySequence_GetItem(o, i);
 
13456
#endif
 
13457
}
 
13458
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
 
13459
                                                     int is_list, int wraparound, int boundscheck) {
 
13460
#if CYTHON_COMPILING_IN_CPYTHON
 
13461
    if (is_list || PyList_CheckExact(o)) {
 
13462
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
 
13463
        if ((!boundscheck) || (likely((n >= 0) & (n < PyList_GET_SIZE(o))))) {
 
13464
            PyObject *r = PyList_GET_ITEM(o, n);
 
13465
            Py_INCREF(r);
 
13466
            return r;
 
13467
        }
 
13468
    }
 
13469
    else if (PyTuple_CheckExact(o)) {
 
13470
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
 
13471
        if ((!boundscheck) || likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) {
 
13472
            PyObject *r = PyTuple_GET_ITEM(o, n);
 
13473
            Py_INCREF(r);
 
13474
            return r;
 
13475
        }
 
13476
    } else {
 
13477
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
 
13478
        if (likely(m && m->sq_item)) {
 
13479
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
 
13480
                Py_ssize_t l = m->sq_length(o);
 
13481
                if (likely(l >= 0)) {
 
13482
                    i += l;
 
13483
                } else {
 
13484
                    if (PyErr_ExceptionMatches(PyExc_OverflowError))
 
13485
                        PyErr_Clear();
 
13486
                    else
 
13487
                        return NULL;
 
13488
                }
 
13489
            }
 
13490
            return m->sq_item(o, i);
 
13491
        }
 
13492
    }
 
13493
#else
 
13494
    if (is_list || PySequence_Check(o)) {
 
13495
        return PySequence_GetItem(o, i);
 
13496
    }
 
13497
#endif
 
13498
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
 
13499
}
 
13500
 
 
13501
static CYTHON_INLINE int __Pyx_IterFinish(void) {
 
13502
#if CYTHON_COMPILING_IN_CPYTHON
 
13503
    PyThreadState *tstate = PyThreadState_GET();
 
13504
    PyObject* exc_type = tstate->curexc_type;
 
13505
    if (unlikely(exc_type)) {
 
13506
        if (likely(exc_type == PyExc_StopIteration) || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)) {
 
13507
            PyObject *exc_value, *exc_tb;
 
13508
            exc_value = tstate->curexc_value;
 
13509
            exc_tb = tstate->curexc_traceback;
 
13510
            tstate->curexc_type = 0;
 
13511
            tstate->curexc_value = 0;
 
13512
            tstate->curexc_traceback = 0;
 
13513
            Py_DECREF(exc_type);
 
13514
            Py_XDECREF(exc_value);
 
13515
            Py_XDECREF(exc_tb);
 
13516
            return 0;
 
13517
        } else {
 
13518
            return -1;
 
13519
        }
 
13520
    }
 
13521
    return 0;
 
13522
#else
 
13523
    if (unlikely(PyErr_Occurred())) {
 
13524
        if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
 
13525
            PyErr_Clear();
 
13526
            return 0;
 
13527
        } else {
 
13528
            return -1;
 
13529
        }
 
13530
    }
 
13531
    return 0;
 
13532
#endif
 
13533
}
 
13534
 
 
13535
static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
 
13536
    PyErr_Format(PyExc_ValueError,
 
13537
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
 
13538
                 index, (index == 1) ? "" : "s");
 
13539
}
 
13540
 
 
13541
static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
 
13542
    PyErr_Format(PyExc_ValueError,
 
13543
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
 
13544
}
 
13545
 
 
13546
static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
 
13547
    if (unlikely(retval)) {
 
13548
        Py_DECREF(retval);
 
13549
        __Pyx_RaiseTooManyValuesError(expected);
 
13550
        return -1;
 
13551
    } else {
 
13552
        return __Pyx_IterFinish();
 
13553
    }
 
13554
    return 0;
 
13555
}
 
13556
 
 
13557
static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
 
13558
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
 
13559
}
 
13560
 
 
13561
static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
 
13562
    if (t == Py_None) {
 
13563
      __Pyx_RaiseNoneNotIterableError();
 
13564
    } else if (PyTuple_GET_SIZE(t) < index) {
 
13565
      __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t));
 
13566
    } else {
 
13567
      __Pyx_RaiseTooManyValuesError(index);
 
13568
    }
 
13569
}
 
13570
 
 
13571
static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
 
13572
                                             int is_tuple, int has_known_size, int decref_tuple) {
 
13573
    Py_ssize_t index;
 
13574
    PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
 
13575
    if (!is_tuple && unlikely(!PyTuple_Check(tuple))) {
 
13576
        iternextfunc iternext;
 
13577
        iter = PyObject_GetIter(tuple);
 
13578
        if (unlikely(!iter)) goto bad;
 
13579
        if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
 
13580
        iternext = Py_TYPE(iter)->tp_iternext;
 
13581
        value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
 
13582
        value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
 
13583
        if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
 
13584
        Py_DECREF(iter);
 
13585
    } else {
 
13586
        if (!has_known_size && unlikely(PyTuple_GET_SIZE(tuple) != 2)) {
 
13587
            __Pyx_UnpackTupleError(tuple, 2);
 
13588
            goto bad;
 
13589
        }
 
13590
#if CYTHON_COMPILING_IN_PYPY
 
13591
        value1 = PySequence_ITEM(tuple, 0);
 
13592
        if (unlikely(!value1)) goto bad;
 
13593
        value2 = PySequence_ITEM(tuple, 1);
 
13594
        if (unlikely(!value2)) goto bad;
 
13595
#else
 
13596
        value1 = PyTuple_GET_ITEM(tuple, 0);
 
13597
        value2 = PyTuple_GET_ITEM(tuple, 1);
 
13598
        Py_INCREF(value1);
 
13599
        Py_INCREF(value2);
 
13600
#endif
 
13601
        if (decref_tuple) { Py_DECREF(tuple); }
 
13602
    }
 
13603
    *pvalue1 = value1;
 
13604
    *pvalue2 = value2;
 
13605
    return 0;
 
13606
unpacking_failed:
 
13607
    if (!has_known_size && __Pyx_IterFinish() == 0)
 
13608
        __Pyx_RaiseNeedMoreValuesError(index);
 
13609
bad:
 
13610
    Py_XDECREF(iter);
 
13611
    Py_XDECREF(value1);
 
13612
    Py_XDECREF(value2);
 
13613
    if (decref_tuple) { Py_XDECREF(tuple); }
 
13614
    return -1;
 
13615
}
 
13616
 
 
13617
static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
 
13618
                                                   Py_ssize_t* p_orig_length, int* p_source_is_dict) {
 
13619
    is_dict = is_dict || likely(PyDict_CheckExact(iterable));
 
13620
    *p_source_is_dict = is_dict;
 
13621
#if !CYTHON_COMPILING_IN_PYPY
 
13622
    if (is_dict) {
 
13623
        *p_orig_length = PyDict_Size(iterable);
 
13624
        Py_INCREF(iterable);
 
13625
        return iterable;
 
13626
    }
 
13627
#endif
 
13628
    *p_orig_length = 0;
 
13629
    if (method_name) {
 
13630
        PyObject* iter;
 
13631
        iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
 
13632
        if (!iterable)
 
13633
            return NULL;
 
13634
#if !CYTHON_COMPILING_IN_PYPY
 
13635
        if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
 
13636
            return iterable;
 
13637
#endif
 
13638
        iter = PyObject_GetIter(iterable);
 
13639
        Py_DECREF(iterable);
 
13640
        return iter;
 
13641
    }
 
13642
    return PyObject_GetIter(iterable);
 
13643
}
 
13644
static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* iter_obj, Py_ssize_t orig_length, Py_ssize_t* ppos,
 
13645
                                              PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
 
13646
    PyObject* next_item;
 
13647
#if !CYTHON_COMPILING_IN_PYPY
 
13648
    if (source_is_dict) {
 
13649
        PyObject *key, *value;
 
13650
        if (unlikely(orig_length != PyDict_Size(iter_obj))) {
 
13651
            PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
 
13652
            return -1;
 
13653
        }
 
13654
        if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
 
13655
            return 0;
 
13656
        }
 
13657
        if (pitem) {
 
13658
            PyObject* tuple = PyTuple_New(2);
 
13659
            if (unlikely(!tuple)) {
 
13660
                return -1;
 
13661
            }
 
13662
            Py_INCREF(key);
 
13663
            Py_INCREF(value);
 
13664
            PyTuple_SET_ITEM(tuple, 0, key);
 
13665
            PyTuple_SET_ITEM(tuple, 1, value);
 
13666
            *pitem = tuple;
 
13667
        } else {
 
13668
            if (pkey) {
 
13669
                Py_INCREF(key);
 
13670
                *pkey = key;
 
13671
            }
 
13672
            if (pvalue) {
 
13673
                Py_INCREF(value);
 
13674
                *pvalue = value;
 
13675
            }
 
13676
        }
 
13677
        return 1;
 
13678
    } else if (PyTuple_CheckExact(iter_obj)) {
 
13679
        Py_ssize_t pos = *ppos;
 
13680
        if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0;
 
13681
        *ppos = pos + 1;
 
13682
        next_item = PyTuple_GET_ITEM(iter_obj, pos);
 
13683
        Py_INCREF(next_item);
 
13684
    } else if (PyList_CheckExact(iter_obj)) {
 
13685
        Py_ssize_t pos = *ppos;
 
13686
        if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0;
 
13687
        *ppos = pos + 1;
 
13688
        next_item = PyList_GET_ITEM(iter_obj, pos);
 
13689
        Py_INCREF(next_item);
 
13690
    } else
 
13691
#endif
 
13692
    {
 
13693
        next_item = PyIter_Next(iter_obj);
 
13694
        if (unlikely(!next_item)) {
 
13695
            return __Pyx_IterFinish();
 
13696
        }
 
13697
    }
 
13698
    if (pitem) {
 
13699
        *pitem = next_item;
 
13700
    } else if (pkey && pvalue) {
 
13701
        if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
 
13702
            return -1;
 
13703
    } else if (pkey) {
 
13704
        *pkey = next_item;
 
13705
    } else {
 
13706
        *pvalue = next_item;
 
13707
    }
 
13708
    return 1;
 
13709
}
 
13710
 
 
13711
#if PY_MAJOR_VERSION < 3
 
13712
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
 
13713
                        CYTHON_UNUSED PyObject *cause) {
 
13714
    Py_XINCREF(type);
 
13715
    if (!value || value == Py_None)
 
13716
        value = NULL;
 
13717
    else
 
13718
        Py_INCREF(value);
 
13719
    if (!tb || tb == Py_None)
 
13720
        tb = NULL;
 
13721
    else {
 
13722
        Py_INCREF(tb);
 
13723
        if (!PyTraceBack_Check(tb)) {
 
13724
            PyErr_SetString(PyExc_TypeError,
 
13725
                "raise: arg 3 must be a traceback or None");
 
13726
            goto raise_error;
 
13727
        }
 
13728
    }
 
13729
    #if PY_VERSION_HEX < 0x02050000
 
13730
    if (PyClass_Check(type)) {
 
13731
    #else
 
13732
    if (PyType_Check(type)) {
 
13733
    #endif
 
13734
#if CYTHON_COMPILING_IN_PYPY
 
13735
        if (!value) {
 
13736
            Py_INCREF(Py_None);
 
13737
            value = Py_None;
 
13738
        }
 
13739
#endif
 
13740
        PyErr_NormalizeException(&type, &value, &tb);
 
13741
    } else {
 
13742
        if (value) {
 
13743
            PyErr_SetString(PyExc_TypeError,
 
13744
                "instance exception may not have a separate value");
 
13745
            goto raise_error;
 
13746
        }
 
13747
        value = type;
 
13748
        #if PY_VERSION_HEX < 0x02050000
 
13749
        if (PyInstance_Check(type)) {
 
13750
            type = (PyObject*) ((PyInstanceObject*)type)->in_class;
 
13751
            Py_INCREF(type);
 
13752
        } else {
 
13753
            type = 0;
 
13754
            PyErr_SetString(PyExc_TypeError,
 
13755
                "raise: exception must be an old-style class or instance");
 
13756
            goto raise_error;
 
13757
        }
 
13758
        #else
 
13759
        type = (PyObject*) Py_TYPE(type);
 
13760
        Py_INCREF(type);
 
13761
        if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
 
13762
            PyErr_SetString(PyExc_TypeError,
 
13763
                "raise: exception class must be a subclass of BaseException");
 
13764
            goto raise_error;
 
13765
        }
 
13766
        #endif
 
13767
    }
 
13768
    __Pyx_ErrRestore(type, value, tb);
 
13769
    return;
 
13770
raise_error:
 
13771
    Py_XDECREF(value);
 
13772
    Py_XDECREF(type);
 
13773
    Py_XDECREF(tb);
 
13774
    return;
 
13775
}
 
13776
#else /* Python 3+ */
 
13777
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
 
13778
    PyObject* owned_instance = NULL;
 
13779
    if (tb == Py_None) {
 
13780
        tb = 0;
 
13781
    } else if (tb && !PyTraceBack_Check(tb)) {
 
13782
        PyErr_SetString(PyExc_TypeError,
 
13783
            "raise: arg 3 must be a traceback or None");
 
13784
        goto bad;
 
13785
    }
 
13786
    if (value == Py_None)
 
13787
        value = 0;
 
13788
    if (PyExceptionInstance_Check(type)) {
 
13789
        if (value) {
 
13790
            PyErr_SetString(PyExc_TypeError,
 
13791
                "instance exception may not have a separate value");
 
13792
            goto bad;
 
13793
        }
 
13794
        value = type;
 
13795
        type = (PyObject*) Py_TYPE(value);
 
13796
    } else if (PyExceptionClass_Check(type)) {
 
13797
        PyObject *instance_class = NULL;
 
13798
        if (value && PyExceptionInstance_Check(value)) {
 
13799
            instance_class = (PyObject*) Py_TYPE(value);
 
13800
            if (instance_class != type) {
 
13801
                if (PyObject_IsSubclass(instance_class, type)) {
 
13802
                    type = instance_class;
 
13803
                } else {
 
13804
                    instance_class = NULL;
 
13805
                }
 
13806
            }
 
13807
        }
 
13808
        if (!instance_class) {
 
13809
            PyObject *args;
 
13810
            if (!value)
 
13811
                args = PyTuple_New(0);
 
13812
            else if (PyTuple_Check(value)) {
 
13813
                Py_INCREF(value);
 
13814
                args = value;
 
13815
            } else
 
13816
                args = PyTuple_Pack(1, value);
 
13817
            if (!args)
 
13818
                goto bad;
 
13819
            owned_instance = PyObject_Call(type, args, NULL);
 
13820
            Py_DECREF(args);
 
13821
            if (!owned_instance)
 
13822
                goto bad;
 
13823
            value = owned_instance;
 
13824
            if (!PyExceptionInstance_Check(value)) {
 
13825
                PyErr_Format(PyExc_TypeError,
 
13826
                             "calling %R should have returned an instance of "
 
13827
                             "BaseException, not %R",
 
13828
                             type, Py_TYPE(value));
 
13829
                goto bad;
 
13830
            }
 
13831
        }
 
13832
    } else {
 
13833
        PyErr_SetString(PyExc_TypeError,
 
13834
            "raise: exception class must be a subclass of BaseException");
 
13835
        goto bad;
 
13836
    }
 
13837
#if PY_VERSION_HEX >= 0x03030000
 
13838
    if (cause) {
 
13839
#else
 
13840
    if (cause && cause != Py_None) {
 
13841
#endif
 
13842
        PyObject *fixed_cause;
 
13843
        if (cause == Py_None) {
 
13844
            fixed_cause = NULL;
 
13845
        } else if (PyExceptionClass_Check(cause)) {
 
13846
            fixed_cause = PyObject_CallObject(cause, NULL);
 
13847
            if (fixed_cause == NULL)
 
13848
                goto bad;
 
13849
        } else if (PyExceptionInstance_Check(cause)) {
 
13850
            fixed_cause = cause;
 
13851
            Py_INCREF(fixed_cause);
 
13852
        } else {
 
13853
            PyErr_SetString(PyExc_TypeError,
 
13854
                            "exception causes must derive from "
 
13855
                            "BaseException");
 
13856
            goto bad;
 
13857
        }
 
13858
        PyException_SetCause(value, fixed_cause);
 
13859
    }
 
13860
    PyErr_SetObject(type, value);
 
13861
    if (tb) {
 
13862
        PyThreadState *tstate = PyThreadState_GET();
 
13863
        PyObject* tmp_tb = tstate->curexc_traceback;
 
13864
        if (tb != tmp_tb) {
 
13865
            Py_INCREF(tb);
 
13866
            tstate->curexc_traceback = tb;
 
13867
            Py_XDECREF(tmp_tb);
 
13868
        }
 
13869
    }
 
13870
bad:
 
13871
    Py_XDECREF(owned_instance);
 
13872
    return;
 
13873
}
 
13874
#endif
 
13875
 
 
13876
static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
 
13877
#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
 
13878
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
 
13879
#else
 
13880
    PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
 
13881
#endif
 
13882
    if (!ob)
 
13883
        goto bad;
 
13884
    if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0)
 
13885
        goto bad;
 
13886
    Py_DECREF(ob);
 
13887
    return 0;
 
13888
bad:
 
13889
    Py_XDECREF(ob);
 
13890
    return -1;
 
13891
}
 
13892
 
 
13893
static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) {
 
13894
    Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases);
 
13895
    for (i=0; i < nbases; i++) {
 
13896
        PyTypeObject *tmptype;
 
13897
        PyObject *tmp = PyTuple_GET_ITEM(bases, i);
 
13898
        tmptype = Py_TYPE(tmp);
 
13899
#if PY_MAJOR_VERSION < 3
 
13900
        if (tmptype == &PyClass_Type)
 
13901
            continue;
 
13902
#endif
 
13903
        if (!metaclass) {
 
13904
            metaclass = tmptype;
 
13905
            continue;
 
13906
        }
 
13907
        if (PyType_IsSubtype(metaclass, tmptype))
 
13908
            continue;
 
13909
        if (PyType_IsSubtype(tmptype, metaclass)) {
 
13910
            metaclass = tmptype;
 
13911
            continue;
 
13912
        }
 
13913
        PyErr_SetString(PyExc_TypeError,
 
13914
                        "metaclass conflict: "
 
13915
                        "the metaclass of a derived class "
 
13916
                        "must be a (non-strict) subclass "
 
13917
                        "of the metaclasses of all its bases");
 
13918
        return NULL;
 
13919
    }
 
13920
    if (!metaclass) {
 
13921
#if PY_MAJOR_VERSION < 3
 
13922
        metaclass = &PyClass_Type;
 
13923
#else
 
13924
        metaclass = &PyType_Type;
 
13925
#endif
 
13926
    }
 
13927
    Py_INCREF((PyObject*) metaclass);
 
13928
    return (PyObject*) metaclass;
 
13929
}
 
13930
 
 
13931
static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name,
 
13932
                                           PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) {
 
13933
    PyObject *ns;
 
13934
    if (metaclass) {
 
13935
        PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare);
 
13936
        if (prep) {
 
13937
            PyObject *pargs = PyTuple_Pack(2, name, bases);
 
13938
            if (unlikely(!pargs)) {
 
13939
                Py_DECREF(prep);
 
13940
                return NULL;
 
13941
            }
 
13942
            ns = PyObject_Call(prep, pargs, mkw);
 
13943
            Py_DECREF(prep);
 
13944
            Py_DECREF(pargs);
 
13945
        } else {
 
13946
            if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError)))
 
13947
                return NULL;
 
13948
            PyErr_Clear();
 
13949
            ns = PyDict_New();
 
13950
        }
 
13951
    } else {
 
13952
        ns = PyDict_New();
 
13953
    }
 
13954
    if (unlikely(!ns))
 
13955
        return NULL;
 
13956
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad;
 
13957
    if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad;
 
13958
    if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad;
 
13959
    return ns;
 
13960
bad:
 
13961
    Py_DECREF(ns);
 
13962
    return NULL;
 
13963
}
 
13964
static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases,
 
13965
                                      PyObject *dict, PyObject *mkw,
 
13966
                                      int calculate_metaclass, int allow_py2_metaclass) {
 
13967
    PyObject *result, *margs;
 
13968
    PyObject *owned_metaclass = NULL;
 
13969
    if (allow_py2_metaclass) {
 
13970
        owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass);
 
13971
        if (owned_metaclass) {
 
13972
            metaclass = owned_metaclass;
 
13973
        } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) {
 
13974
            PyErr_Clear();
 
13975
        } else {
 
13976
            return NULL;
 
13977
        }
 
13978
    }
 
13979
    if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) {
 
13980
        metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases);
 
13981
        Py_XDECREF(owned_metaclass);
 
13982
        if (unlikely(!metaclass))
 
13983
            return NULL;
 
13984
        owned_metaclass = metaclass;
 
13985
    }
 
13986
    margs = PyTuple_Pack(3, name, bases, dict);
 
13987
    if (unlikely(!margs)) {
 
13988
        result = NULL;
 
13989
    } else {
 
13990
        result = PyObject_Call(metaclass, margs, mkw);
 
13991
        Py_DECREF(margs);
 
13992
    }
 
13993
    Py_XDECREF(owned_metaclass);
 
13994
    return result;
 
13995
}
 
13996
 
 
13997
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
 
13998
    const int neg_one = (int) -1, const_zero = 0;
 
13999
    const int is_unsigned = neg_one > const_zero;
 
14000
    if (is_unsigned) {
 
14001
        if (sizeof(int) < sizeof(long)) {
 
14002
            return PyInt_FromLong((long) value);
 
14003
        } else if (sizeof(int) <= sizeof(unsigned long)) {
 
14004
            return PyLong_FromUnsignedLong((unsigned long) value);
 
14005
        } else if (sizeof(int) <= sizeof(unsigned long long)) {
 
14006
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
 
14007
        }
 
14008
    } else {
 
14009
        if (sizeof(int) <= sizeof(long)) {
 
14010
            return PyInt_FromLong((long) value);
 
14011
        } else if (sizeof(int) <= sizeof(long long)) {
 
14012
            return PyLong_FromLongLong((long long) value);
 
14013
        }
 
14014
    }
 
14015
    {
 
14016
        int one = 1; int little = (int)*(unsigned char *)&one;
 
14017
        unsigned char *bytes = (unsigned char *)&value;
 
14018
        return _PyLong_FromByteArray(bytes, sizeof(int),
 
14019
                                     little, !is_unsigned);
 
14020
    }
 
14021
}
 
14022
 
 
14023
#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func)             \
 
14024
    {                                                                     \
 
14025
        func_type value = func(x);                                        \
 
14026
        if (sizeof(target_type) < sizeof(func_type)) {                    \
 
14027
            if (unlikely(value != (func_type) (target_type) value)) {     \
 
14028
                func_type zero = 0;                                       \
 
14029
                PyErr_SetString(PyExc_OverflowError,                      \
 
14030
                    (is_unsigned && unlikely(value < zero)) ?             \
 
14031
                    "can't convert negative value to " #target_type :     \
 
14032
                    "value too large to convert to " #target_type);       \
 
14033
                return (target_type) -1;                                  \
 
14034
            }                                                             \
 
14035
        }                                                                 \
 
14036
        return (target_type) value;                                       \
 
14037
    }
 
14038
 
 
14039
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14040
 #if CYTHON_USE_PYLONG_INTERNALS
 
14041
  #include "longintrepr.h"
 
14042
 #endif
 
14043
#endif
 
14044
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
 
14045
    const int neg_one = (int) -1, const_zero = 0;
 
14046
    const int is_unsigned = neg_one > const_zero;
 
14047
#if PY_MAJOR_VERSION < 3
 
14048
    if (likely(PyInt_Check(x))) {
 
14049
        if (sizeof(int) < sizeof(long)) {
 
14050
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG)
 
14051
        } else {
 
14052
            long val = PyInt_AS_LONG(x);
 
14053
            if (is_unsigned && unlikely(val < 0)) {
 
14054
                PyErr_SetString(PyExc_OverflowError,
 
14055
                                "can't convert negative value to int");
 
14056
                return (int) -1;
 
14057
            }
 
14058
            return (int) val;
 
14059
        }
 
14060
    } else
 
14061
#endif
 
14062
    if (likely(PyLong_Check(x))) {
 
14063
        if (is_unsigned) {
 
14064
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14065
 #if CYTHON_USE_PYLONG_INTERNALS
 
14066
            if (sizeof(digit) <= sizeof(int)) {
 
14067
                switch (Py_SIZE(x)) {
 
14068
                    case  0: return 0;
 
14069
                    case  1: return (int) ((PyLongObject*)x)->ob_digit[0];
 
14070
                }
 
14071
            }
 
14072
 #endif
 
14073
#endif
 
14074
            if (unlikely(Py_SIZE(x) < 0)) {
 
14075
                PyErr_SetString(PyExc_OverflowError,
 
14076
                                "can't convert negative value to int");
 
14077
                return (int) -1;
 
14078
            }
 
14079
            if (sizeof(int) <= sizeof(unsigned long)) {
 
14080
                __PYX_VERIFY_RETURN_INT(int, unsigned long, PyLong_AsUnsignedLong)
 
14081
            } else if (sizeof(int) <= sizeof(unsigned long long)) {
 
14082
                __PYX_VERIFY_RETURN_INT(int, unsigned long long, PyLong_AsUnsignedLongLong)
 
14083
            }
 
14084
        } else {
 
14085
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14086
 #if CYTHON_USE_PYLONG_INTERNALS
 
14087
            if (sizeof(digit) <= sizeof(int)) {
 
14088
                switch (Py_SIZE(x)) {
 
14089
                    case  0: return 0;
 
14090
                    case  1: return +(int) ((PyLongObject*)x)->ob_digit[0];
 
14091
                    case -1: return -(int) ((PyLongObject*)x)->ob_digit[0];
 
14092
                }
 
14093
            }
 
14094
 #endif
 
14095
#endif
 
14096
            if (sizeof(int) <= sizeof(long)) {
 
14097
                __PYX_VERIFY_RETURN_INT(int, long, PyLong_AsLong)
 
14098
            } else if (sizeof(int) <= sizeof(long long)) {
 
14099
                __PYX_VERIFY_RETURN_INT(int, long long, PyLong_AsLongLong)
 
14100
            }
 
14101
        }
 
14102
        {
 
14103
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
 
14104
            PyErr_SetString(PyExc_RuntimeError,
 
14105
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
 
14106
#else
 
14107
            int val;
 
14108
            PyObject *v = __Pyx_PyNumber_Int(x);
 
14109
 #if PY_MAJOR_VERSION < 3
 
14110
            if (likely(v) && !PyLong_Check(v)) {
 
14111
                PyObject *tmp = v;
 
14112
                v = PyNumber_Long(tmp);
 
14113
                Py_DECREF(tmp);
 
14114
            }
 
14115
 #endif
 
14116
            if (likely(v)) {
 
14117
                int one = 1; int is_little = (int)*(unsigned char *)&one;
 
14118
                unsigned char *bytes = (unsigned char *)&val;
 
14119
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
 
14120
                                              bytes, sizeof(val),
 
14121
                                              is_little, !is_unsigned);
 
14122
                Py_DECREF(v);
 
14123
                if (likely(!ret))
 
14124
                    return val;
 
14125
            }
 
14126
#endif
 
14127
            return (int) -1;
 
14128
        }
 
14129
    } else {
 
14130
        int val;
 
14131
        PyObject *tmp = __Pyx_PyNumber_Int(x);
 
14132
        if (!tmp) return (int) -1;
 
14133
        val = __Pyx_PyInt_As_int(tmp);
 
14134
        Py_DECREF(tmp);
 
14135
        return val;
 
14136
    }
 
14137
}
 
14138
 
 
14139
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
 
14140
    PyObject *empty_list = 0;
 
14141
    PyObject *module = 0;
 
14142
    PyObject *global_dict = 0;
 
14143
    PyObject *empty_dict = 0;
 
14144
    PyObject *list;
 
14145
    #if PY_VERSION_HEX < 0x03030000
 
14146
    PyObject *py_import;
 
14147
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
 
14148
    if (!py_import)
 
14149
        goto bad;
 
14150
    #endif
 
14151
    if (from_list)
 
14152
        list = from_list;
 
14153
    else {
 
14154
        empty_list = PyList_New(0);
 
14155
        if (!empty_list)
 
14156
            goto bad;
 
14157
        list = empty_list;
 
14158
    }
 
14159
    global_dict = PyModule_GetDict(__pyx_m);
 
14160
    if (!global_dict)
 
14161
        goto bad;
 
14162
    empty_dict = PyDict_New();
 
14163
    if (!empty_dict)
 
14164
        goto bad;
 
14165
    #if PY_VERSION_HEX >= 0x02050000
 
14166
    {
 
14167
        #if PY_MAJOR_VERSION >= 3
 
14168
        if (level == -1) {
 
14169
            if (strchr(__Pyx_MODULE_NAME, '.')) {
 
14170
                #if PY_VERSION_HEX < 0x03030000
 
14171
                PyObject *py_level = PyInt_FromLong(1);
 
14172
                if (!py_level)
 
14173
                    goto bad;
 
14174
                module = PyObject_CallFunctionObjArgs(py_import,
 
14175
                    name, global_dict, empty_dict, list, py_level, NULL);
 
14176
                Py_DECREF(py_level);
 
14177
                #else
 
14178
                module = PyImport_ImportModuleLevelObject(
 
14179
                    name, global_dict, empty_dict, list, 1);
 
14180
                #endif
 
14181
                if (!module) {
 
14182
                    if (!PyErr_ExceptionMatches(PyExc_ImportError))
 
14183
                        goto bad;
 
14184
                    PyErr_Clear();
 
14185
                }
 
14186
            }
 
14187
            level = 0; /* try absolute import on failure */
 
14188
        }
 
14189
        #endif
 
14190
        if (!module) {
 
14191
            #if PY_VERSION_HEX < 0x03030000
 
14192
            PyObject *py_level = PyInt_FromLong(level);
 
14193
            if (!py_level)
 
14194
                goto bad;
 
14195
            module = PyObject_CallFunctionObjArgs(py_import,
 
14196
                name, global_dict, empty_dict, list, py_level, NULL);
 
14197
            Py_DECREF(py_level);
 
14198
            #else
 
14199
            module = PyImport_ImportModuleLevelObject(
 
14200
                name, global_dict, empty_dict, list, level);
 
14201
            #endif
 
14202
        }
 
14203
    }
 
14204
    #else
 
14205
    if (level>0) {
 
14206
        PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4.");
 
14207
        goto bad;
 
14208
    }
 
14209
    module = PyObject_CallFunctionObjArgs(py_import,
 
14210
        name, global_dict, empty_dict, list, NULL);
 
14211
    #endif
 
14212
bad:
 
14213
    #if PY_VERSION_HEX < 0x03030000
 
14214
    Py_XDECREF(py_import);
 
14215
    #endif
 
14216
    Py_XDECREF(empty_list);
 
14217
    Py_XDECREF(empty_dict);
 
14218
    return module;
 
14219
}
 
14220
 
 
14221
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14222
 #if CYTHON_USE_PYLONG_INTERNALS
 
14223
  #include "longintrepr.h"
 
14224
 #endif
 
14225
#endif
 
14226
static CYTHON_INLINE int64_t __Pyx_PyInt_As_int64_t(PyObject *x) {
 
14227
    const int64_t neg_one = (int64_t) -1, const_zero = 0;
 
14228
    const int is_unsigned = neg_one > const_zero;
 
14229
#if PY_MAJOR_VERSION < 3
 
14230
    if (likely(PyInt_Check(x))) {
 
14231
        if (sizeof(int64_t) < sizeof(long)) {
 
14232
            __PYX_VERIFY_RETURN_INT(int64_t, long, PyInt_AS_LONG)
 
14233
        } else {
 
14234
            long val = PyInt_AS_LONG(x);
 
14235
            if (is_unsigned && unlikely(val < 0)) {
 
14236
                PyErr_SetString(PyExc_OverflowError,
 
14237
                                "can't convert negative value to int64_t");
 
14238
                return (int64_t) -1;
 
14239
            }
 
14240
            return (int64_t) val;
 
14241
        }
 
14242
    } else
 
14243
#endif
 
14244
    if (likely(PyLong_Check(x))) {
 
14245
        if (is_unsigned) {
 
14246
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14247
 #if CYTHON_USE_PYLONG_INTERNALS
 
14248
            if (sizeof(digit) <= sizeof(int64_t)) {
 
14249
                switch (Py_SIZE(x)) {
 
14250
                    case  0: return 0;
 
14251
                    case  1: return (int64_t) ((PyLongObject*)x)->ob_digit[0];
 
14252
                }
 
14253
            }
 
14254
 #endif
 
14255
#endif
 
14256
            if (unlikely(Py_SIZE(x) < 0)) {
 
14257
                PyErr_SetString(PyExc_OverflowError,
 
14258
                                "can't convert negative value to int64_t");
 
14259
                return (int64_t) -1;
 
14260
            }
 
14261
            if (sizeof(int64_t) <= sizeof(unsigned long)) {
 
14262
                __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, PyLong_AsUnsignedLong)
 
14263
            } else if (sizeof(int64_t) <= sizeof(unsigned long long)) {
 
14264
                __PYX_VERIFY_RETURN_INT(int64_t, unsigned long long, PyLong_AsUnsignedLongLong)
 
14265
            }
 
14266
        } else {
 
14267
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14268
 #if CYTHON_USE_PYLONG_INTERNALS
 
14269
            if (sizeof(digit) <= sizeof(int64_t)) {
 
14270
                switch (Py_SIZE(x)) {
 
14271
                    case  0: return 0;
 
14272
                    case  1: return +(int64_t) ((PyLongObject*)x)->ob_digit[0];
 
14273
                    case -1: return -(int64_t) ((PyLongObject*)x)->ob_digit[0];
 
14274
                }
 
14275
            }
 
14276
 #endif
 
14277
#endif
 
14278
            if (sizeof(int64_t) <= sizeof(long)) {
 
14279
                __PYX_VERIFY_RETURN_INT(int64_t, long, PyLong_AsLong)
 
14280
            } else if (sizeof(int64_t) <= sizeof(long long)) {
 
14281
                __PYX_VERIFY_RETURN_INT(int64_t, long long, PyLong_AsLongLong)
 
14282
            }
 
14283
        }
 
14284
        {
 
14285
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
 
14286
            PyErr_SetString(PyExc_RuntimeError,
 
14287
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
 
14288
#else
 
14289
            int64_t val;
 
14290
            PyObject *v = __Pyx_PyNumber_Int(x);
 
14291
 #if PY_MAJOR_VERSION < 3
 
14292
            if (likely(v) && !PyLong_Check(v)) {
 
14293
                PyObject *tmp = v;
 
14294
                v = PyNumber_Long(tmp);
 
14295
                Py_DECREF(tmp);
 
14296
            }
 
14297
 #endif
 
14298
            if (likely(v)) {
 
14299
                int one = 1; int is_little = (int)*(unsigned char *)&one;
 
14300
                unsigned char *bytes = (unsigned char *)&val;
 
14301
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
 
14302
                                              bytes, sizeof(val),
 
14303
                                              is_little, !is_unsigned);
 
14304
                Py_DECREF(v);
 
14305
                if (likely(!ret))
 
14306
                    return val;
 
14307
            }
 
14308
#endif
 
14309
            return (int64_t) -1;
 
14310
        }
 
14311
    } else {
 
14312
        int64_t val;
 
14313
        PyObject *tmp = __Pyx_PyNumber_Int(x);
 
14314
        if (!tmp) return (int64_t) -1;
 
14315
        val = __Pyx_PyInt_As_int64_t(tmp);
 
14316
        Py_DECREF(tmp);
 
14317
        return val;
 
14318
    }
 
14319
}
 
14320
 
 
14321
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14322
 #if CYTHON_USE_PYLONG_INTERNALS
 
14323
  #include "longintrepr.h"
 
14324
 #endif
 
14325
#endif
 
14326
static CYTHON_INLINE uint64_t __Pyx_PyInt_As_uint64_t(PyObject *x) {
 
14327
    const uint64_t neg_one = (uint64_t) -1, const_zero = 0;
 
14328
    const int is_unsigned = neg_one > const_zero;
 
14329
#if PY_MAJOR_VERSION < 3
 
14330
    if (likely(PyInt_Check(x))) {
 
14331
        if (sizeof(uint64_t) < sizeof(long)) {
 
14332
            __PYX_VERIFY_RETURN_INT(uint64_t, long, PyInt_AS_LONG)
 
14333
        } else {
 
14334
            long val = PyInt_AS_LONG(x);
 
14335
            if (is_unsigned && unlikely(val < 0)) {
 
14336
                PyErr_SetString(PyExc_OverflowError,
 
14337
                                "can't convert negative value to uint64_t");
 
14338
                return (uint64_t) -1;
 
14339
            }
 
14340
            return (uint64_t) val;
 
14341
        }
 
14342
    } else
 
14343
#endif
 
14344
    if (likely(PyLong_Check(x))) {
 
14345
        if (is_unsigned) {
 
14346
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14347
 #if CYTHON_USE_PYLONG_INTERNALS
 
14348
            if (sizeof(digit) <= sizeof(uint64_t)) {
 
14349
                switch (Py_SIZE(x)) {
 
14350
                    case  0: return 0;
 
14351
                    case  1: return (uint64_t) ((PyLongObject*)x)->ob_digit[0];
 
14352
                }
 
14353
            }
 
14354
 #endif
 
14355
#endif
 
14356
            if (unlikely(Py_SIZE(x) < 0)) {
 
14357
                PyErr_SetString(PyExc_OverflowError,
 
14358
                                "can't convert negative value to uint64_t");
 
14359
                return (uint64_t) -1;
 
14360
            }
 
14361
            if (sizeof(uint64_t) <= sizeof(unsigned long)) {
 
14362
                __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, PyLong_AsUnsignedLong)
 
14363
            } else if (sizeof(uint64_t) <= sizeof(unsigned long long)) {
 
14364
                __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long long, PyLong_AsUnsignedLongLong)
 
14365
            }
 
14366
        } else {
 
14367
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14368
 #if CYTHON_USE_PYLONG_INTERNALS
 
14369
            if (sizeof(digit) <= sizeof(uint64_t)) {
 
14370
                switch (Py_SIZE(x)) {
 
14371
                    case  0: return 0;
 
14372
                    case  1: return +(uint64_t) ((PyLongObject*)x)->ob_digit[0];
 
14373
                    case -1: return -(uint64_t) ((PyLongObject*)x)->ob_digit[0];
 
14374
                }
 
14375
            }
 
14376
 #endif
 
14377
#endif
 
14378
            if (sizeof(uint64_t) <= sizeof(long)) {
 
14379
                __PYX_VERIFY_RETURN_INT(uint64_t, long, PyLong_AsLong)
 
14380
            } else if (sizeof(uint64_t) <= sizeof(long long)) {
 
14381
                __PYX_VERIFY_RETURN_INT(uint64_t, long long, PyLong_AsLongLong)
 
14382
            }
 
14383
        }
 
14384
        {
 
14385
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
 
14386
            PyErr_SetString(PyExc_RuntimeError,
 
14387
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
 
14388
#else
 
14389
            uint64_t val;
 
14390
            PyObject *v = __Pyx_PyNumber_Int(x);
 
14391
 #if PY_MAJOR_VERSION < 3
 
14392
            if (likely(v) && !PyLong_Check(v)) {
 
14393
                PyObject *tmp = v;
 
14394
                v = PyNumber_Long(tmp);
 
14395
                Py_DECREF(tmp);
 
14396
            }
 
14397
 #endif
 
14398
            if (likely(v)) {
 
14399
                int one = 1; int is_little = (int)*(unsigned char *)&one;
 
14400
                unsigned char *bytes = (unsigned char *)&val;
 
14401
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
 
14402
                                              bytes, sizeof(val),
 
14403
                                              is_little, !is_unsigned);
 
14404
                Py_DECREF(v);
 
14405
                if (likely(!ret))
 
14406
                    return val;
 
14407
            }
 
14408
#endif
 
14409
            return (uint64_t) -1;
 
14410
        }
 
14411
    } else {
 
14412
        uint64_t val;
 
14413
        PyObject *tmp = __Pyx_PyNumber_Int(x);
 
14414
        if (!tmp) return (uint64_t) -1;
 
14415
        val = __Pyx_PyInt_As_uint64_t(tmp);
 
14416
        Py_DECREF(tmp);
 
14417
        return val;
 
14418
    }
 
14419
}
 
14420
 
 
14421
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14422
 #if CYTHON_USE_PYLONG_INTERNALS
 
14423
  #include "longintrepr.h"
 
14424
 #endif
 
14425
#endif
 
14426
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
 
14427
    const long neg_one = (long) -1, const_zero = 0;
 
14428
    const int is_unsigned = neg_one > const_zero;
 
14429
#if PY_MAJOR_VERSION < 3
 
14430
    if (likely(PyInt_Check(x))) {
 
14431
        if (sizeof(long) < sizeof(long)) {
 
14432
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG)
 
14433
        } else {
 
14434
            long val = PyInt_AS_LONG(x);
 
14435
            if (is_unsigned && unlikely(val < 0)) {
 
14436
                PyErr_SetString(PyExc_OverflowError,
 
14437
                                "can't convert negative value to long");
 
14438
                return (long) -1;
 
14439
            }
 
14440
            return (long) val;
 
14441
        }
 
14442
    } else
 
14443
#endif
 
14444
    if (likely(PyLong_Check(x))) {
 
14445
        if (is_unsigned) {
 
14446
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14447
 #if CYTHON_USE_PYLONG_INTERNALS
 
14448
            if (sizeof(digit) <= sizeof(long)) {
 
14449
                switch (Py_SIZE(x)) {
 
14450
                    case  0: return 0;
 
14451
                    case  1: return (long) ((PyLongObject*)x)->ob_digit[0];
 
14452
                }
 
14453
            }
 
14454
 #endif
 
14455
#endif
 
14456
            if (unlikely(Py_SIZE(x) < 0)) {
 
14457
                PyErr_SetString(PyExc_OverflowError,
 
14458
                                "can't convert negative value to long");
 
14459
                return (long) -1;
 
14460
            }
 
14461
            if (sizeof(long) <= sizeof(unsigned long)) {
 
14462
                __PYX_VERIFY_RETURN_INT(long, unsigned long, PyLong_AsUnsignedLong)
 
14463
            } else if (sizeof(long) <= sizeof(unsigned long long)) {
 
14464
                __PYX_VERIFY_RETURN_INT(long, unsigned long long, PyLong_AsUnsignedLongLong)
 
14465
            }
 
14466
        } else {
 
14467
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
14468
 #if CYTHON_USE_PYLONG_INTERNALS
 
14469
            if (sizeof(digit) <= sizeof(long)) {
 
14470
                switch (Py_SIZE(x)) {
 
14471
                    case  0: return 0;
 
14472
                    case  1: return +(long) ((PyLongObject*)x)->ob_digit[0];
 
14473
                    case -1: return -(long) ((PyLongObject*)x)->ob_digit[0];
 
14474
                }
 
14475
            }
 
14476
 #endif
 
14477
#endif
 
14478
            if (sizeof(long) <= sizeof(long)) {
 
14479
                __PYX_VERIFY_RETURN_INT(long, long, PyLong_AsLong)
 
14480
            } else if (sizeof(long) <= sizeof(long long)) {
 
14481
                __PYX_VERIFY_RETURN_INT(long, long long, PyLong_AsLongLong)
 
14482
            }
 
14483
        }
 
14484
        {
 
14485
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
 
14486
            PyErr_SetString(PyExc_RuntimeError,
 
14487
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
 
14488
#else
 
14489
            long val;
 
14490
            PyObject *v = __Pyx_PyNumber_Int(x);
 
14491
 #if PY_MAJOR_VERSION < 3
 
14492
            if (likely(v) && !PyLong_Check(v)) {
 
14493
                PyObject *tmp = v;
 
14494
                v = PyNumber_Long(tmp);
 
14495
                Py_DECREF(tmp);
 
14496
            }
 
14497
 #endif
 
14498
            if (likely(v)) {
 
14499
                int one = 1; int is_little = (int)*(unsigned char *)&one;
 
14500
                unsigned char *bytes = (unsigned char *)&val;
 
14501
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
 
14502
                                              bytes, sizeof(val),
 
14503
                                              is_little, !is_unsigned);
 
14504
                Py_DECREF(v);
 
14505
                if (likely(!ret))
 
14506
                    return val;
 
14507
            }
 
14508
#endif
 
14509
            return (long) -1;
 
14510
        }
 
14511
    } else {
 
14512
        long val;
 
14513
        PyObject *tmp = __Pyx_PyNumber_Int(x);
 
14514
        if (!tmp) return (long) -1;
 
14515
        val = __Pyx_PyInt_As_long(tmp);
 
14516
        Py_DECREF(tmp);
 
14517
        return val;
 
14518
    }
 
14519
}
 
14520
 
 
14521
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int64_t(int64_t value) {
 
14522
    const int64_t neg_one = (int64_t) -1, const_zero = 0;
 
14523
    const int is_unsigned = neg_one > const_zero;
 
14524
    if (is_unsigned) {
 
14525
        if (sizeof(int64_t) < sizeof(long)) {
 
14526
            return PyInt_FromLong((long) value);
 
14527
        } else if (sizeof(int64_t) <= sizeof(unsigned long)) {
 
14528
            return PyLong_FromUnsignedLong((unsigned long) value);
 
14529
        } else if (sizeof(int64_t) <= sizeof(unsigned long long)) {
 
14530
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
 
14531
        }
 
14532
    } else {
 
14533
        if (sizeof(int64_t) <= sizeof(long)) {
 
14534
            return PyInt_FromLong((long) value);
 
14535
        } else if (sizeof(int64_t) <= sizeof(long long)) {
 
14536
            return PyLong_FromLongLong((long long) value);
 
14537
        }
 
14538
    }
 
14539
    {
 
14540
        int one = 1; int little = (int)*(unsigned char *)&one;
 
14541
        unsigned char *bytes = (unsigned char *)&value;
 
14542
        return _PyLong_FromByteArray(bytes, sizeof(int64_t),
 
14543
                                     little, !is_unsigned);
 
14544
    }
 
14545
}
 
14546
 
 
14547
#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3
 
14548
static PyObject *__Pyx_GetStdout(void) {
 
14549
    PyObject *f = PySys_GetObject((char *)"stdout");
 
14550
    if (!f) {
 
14551
        PyErr_SetString(PyExc_RuntimeError, "lost sys.stdout");
 
14552
    }
 
14553
    return f;
 
14554
}
 
14555
static int __Pyx_Print(PyObject* f, PyObject *arg_tuple, int newline) {
 
14556
    int i;
 
14557
    if (!f) {
 
14558
        if (!(f = __Pyx_GetStdout()))
 
14559
            return -1;
 
14560
    }
 
14561
    Py_INCREF(f);
 
14562
    for (i=0; i < PyTuple_GET_SIZE(arg_tuple); i++) {
 
14563
        PyObject* v;
 
14564
        if (PyFile_SoftSpace(f, 1)) {
 
14565
            if (PyFile_WriteString(" ", f) < 0)
 
14566
                goto error;
 
14567
        }
 
14568
        v = PyTuple_GET_ITEM(arg_tuple, i);
 
14569
        if (PyFile_WriteObject(v, f, Py_PRINT_RAW) < 0)
 
14570
            goto error;
 
14571
        if (PyString_Check(v)) {
 
14572
            char *s = PyString_AsString(v);
 
14573
            Py_ssize_t len = PyString_Size(v);
 
14574
            if (len > 0) {
 
14575
                switch (s[len-1]) {
 
14576
                    case ' ': break;
 
14577
                    case '\f': case '\r': case '\n': case '\t': case '\v':
 
14578
                        PyFile_SoftSpace(f, 0);
 
14579
                        break;
 
14580
                    default:  break;
 
14581
                }
 
14582
            }
 
14583
        }
 
14584
    }
 
14585
    if (newline) {
 
14586
        if (PyFile_WriteString("\n", f) < 0)
 
14587
            goto error;
 
14588
        PyFile_SoftSpace(f, 0);
 
14589
    }
 
14590
    Py_DECREF(f);
 
14591
    return 0;
 
14592
error:
 
14593
    Py_DECREF(f);
 
14594
    return -1;
 
14595
}
 
14596
#else /* Python 3 has a print function */
 
14597
static int __Pyx_Print(PyObject* stream, PyObject *arg_tuple, int newline) {
 
14598
    PyObject* kwargs = 0;
 
14599
    PyObject* result = 0;
 
14600
    PyObject* end_string;
 
14601
    if (unlikely(!__pyx_print)) {
 
14602
        __pyx_print = PyObject_GetAttr(__pyx_b, __pyx_n_s_print);
 
14603
        if (!__pyx_print)
 
14604
            return -1;
 
14605
    }
 
14606
    if (stream) {
 
14607
        kwargs = PyDict_New();
 
14608
        if (unlikely(!kwargs))
 
14609
            return -1;
 
14610
        if (unlikely(PyDict_SetItem(kwargs, __pyx_n_s_file, stream) < 0))
 
14611
            goto bad;
 
14612
        if (!newline) {
 
14613
            end_string = PyUnicode_FromStringAndSize(" ", 1);
 
14614
            if (unlikely(!end_string))
 
14615
                goto bad;
 
14616
            if (PyDict_SetItem(kwargs, __pyx_n_s_end, end_string) < 0) {
 
14617
                Py_DECREF(end_string);
 
14618
                goto bad;
 
14619
            }
 
14620
            Py_DECREF(end_string);
 
14621
        }
 
14622
    } else if (!newline) {
 
14623
        if (unlikely(!__pyx_print_kwargs)) {
 
14624
            __pyx_print_kwargs = PyDict_New();
 
14625
            if (unlikely(!__pyx_print_kwargs))
 
14626
                return -1;
 
14627
            end_string = PyUnicode_FromStringAndSize(" ", 1);
 
14628
            if (unlikely(!end_string))
 
14629
                return -1;
 
14630
            if (PyDict_SetItem(__pyx_print_kwargs, __pyx_n_s_end, end_string) < 0) {
 
14631
                Py_DECREF(end_string);
 
14632
                return -1;
 
14633
            }
 
14634
            Py_DECREF(end_string);
 
14635
        }
 
14636
        kwargs = __pyx_print_kwargs;
 
14637
    }
 
14638
    result = PyObject_Call(__pyx_print, arg_tuple, kwargs);
 
14639
    if (unlikely(kwargs) && (kwargs != __pyx_print_kwargs))
 
14640
        Py_DECREF(kwargs);
 
14641
    if (!result)
 
14642
        return -1;
 
14643
    Py_DECREF(result);
 
14644
    return 0;
 
14645
bad:
 
14646
    if (kwargs != __pyx_print_kwargs)
 
14647
        Py_XDECREF(kwargs);
 
14648
    return -1;
 
14649
}
 
14650
#endif
 
14651
 
 
14652
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value) {
 
14653
    const uint64_t neg_one = (uint64_t) -1, const_zero = 0;
 
14654
    const int is_unsigned = neg_one > const_zero;
 
14655
    if (is_unsigned) {
 
14656
        if (sizeof(uint64_t) < sizeof(long)) {
 
14657
            return PyInt_FromLong((long) value);
 
14658
        } else if (sizeof(uint64_t) <= sizeof(unsigned long)) {
 
14659
            return PyLong_FromUnsignedLong((unsigned long) value);
 
14660
        } else if (sizeof(uint64_t) <= sizeof(unsigned long long)) {
 
14661
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
 
14662
        }
 
14663
    } else {
 
14664
        if (sizeof(uint64_t) <= sizeof(long)) {
 
14665
            return PyInt_FromLong((long) value);
 
14666
        } else if (sizeof(uint64_t) <= sizeof(long long)) {
 
14667
            return PyLong_FromLongLong((long long) value);
 
14668
        }
 
14669
    }
 
14670
    {
 
14671
        int one = 1; int little = (int)*(unsigned char *)&one;
 
14672
        unsigned char *bytes = (unsigned char *)&value;
 
14673
        return _PyLong_FromByteArray(bytes, sizeof(uint64_t),
 
14674
                                     little, !is_unsigned);
 
14675
    }
 
14676
}
 
14677
 
 
14678
#if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION < 3
 
14679
static int __Pyx_PrintOne(PyObject* f, PyObject *o) {
 
14680
    if (!f) {
 
14681
        if (!(f = __Pyx_GetStdout()))
 
14682
            return -1;
 
14683
    }
 
14684
    Py_INCREF(f);
 
14685
    if (PyFile_SoftSpace(f, 0)) {
 
14686
        if (PyFile_WriteString(" ", f) < 0)
 
14687
            goto error;
 
14688
    }
 
14689
    if (PyFile_WriteObject(o, f, Py_PRINT_RAW) < 0)
 
14690
        goto error;
 
14691
    if (PyFile_WriteString("\n", f) < 0)
 
14692
        goto error;
 
14693
    Py_DECREF(f);
 
14694
    return 0;
 
14695
error:
 
14696
    Py_DECREF(f);
 
14697
    return -1;
 
14698
    /* the line below is just to avoid C compiler
 
14699
     * warnings about unused functions */
 
14700
    return __Pyx_Print(f, NULL, 0);
 
14701
}
 
14702
#else /* Python 3 has a print function */
 
14703
static int __Pyx_PrintOne(PyObject* stream, PyObject *o) {
 
14704
    int res;
 
14705
    PyObject* arg_tuple = PyTuple_Pack(1, o);
 
14706
    if (unlikely(!arg_tuple))
 
14707
        return -1;
 
14708
    res = __Pyx_Print(stream, arg_tuple, 1);
 
14709
    Py_DECREF(arg_tuple);
 
14710
    return res;
 
14711
}
 
14712
#endif
 
14713
 
 
14714
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
 
14715
    const long neg_one = (long) -1, const_zero = 0;
 
14716
    const int is_unsigned = neg_one > const_zero;
 
14717
    if (is_unsigned) {
 
14718
        if (sizeof(long) < sizeof(long)) {
 
14719
            return PyInt_FromLong((long) value);
 
14720
        } else if (sizeof(long) <= sizeof(unsigned long)) {
 
14721
            return PyLong_FromUnsignedLong((unsigned long) value);
 
14722
        } else if (sizeof(long) <= sizeof(unsigned long long)) {
 
14723
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
 
14724
        }
 
14725
    } else {
 
14726
        if (sizeof(long) <= sizeof(long)) {
 
14727
            return PyInt_FromLong((long) value);
 
14728
        } else if (sizeof(long) <= sizeof(long long)) {
 
14729
            return PyLong_FromLongLong((long long) value);
 
14730
        }
 
14731
    }
 
14732
    {
 
14733
        int one = 1; int little = (int)*(unsigned char *)&one;
 
14734
        unsigned char *bytes = (unsigned char *)&value;
 
14735
        return _PyLong_FromByteArray(bytes, sizeof(long),
 
14736
                                     little, !is_unsigned);
 
14737
    }
 
14738
}
 
14739
 
 
14740
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_long(unsigned long value) {
 
14741
    const unsigned long neg_one = (unsigned long) -1, const_zero = 0;
 
14742
    const int is_unsigned = neg_one > const_zero;
 
14743
    if (is_unsigned) {
 
14744
        if (sizeof(unsigned long) < sizeof(long)) {
 
14745
            return PyInt_FromLong((long) value);
 
14746
        } else if (sizeof(unsigned long) <= sizeof(unsigned long)) {
 
14747
            return PyLong_FromUnsignedLong((unsigned long) value);
 
14748
        } else if (sizeof(unsigned long) <= sizeof(unsigned long long)) {
 
14749
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
 
14750
        }
 
14751
    } else {
 
14752
        if (sizeof(unsigned long) <= sizeof(long)) {
 
14753
            return PyInt_FromLong((long) value);
 
14754
        } else if (sizeof(unsigned long) <= sizeof(long long)) {
 
14755
            return PyLong_FromLongLong((long long) value);
 
14756
        }
 
14757
    }
 
14758
    {
 
14759
        int one = 1; int little = (int)*(unsigned char *)&one;
 
14760
        unsigned char *bytes = (unsigned char *)&value;
 
14761
        return _PyLong_FromByteArray(bytes, sizeof(unsigned long),
 
14762
                                     little, !is_unsigned);
 
14763
    }
 
14764
}
 
14765
 
 
14766
#if CYTHON_CCOMPLEX
 
14767
  #ifdef __cplusplus
 
14768
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
 
14769
      return ::std::complex< float >(x, y);
 
14770
    }
 
14771
  #else
 
14772
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
 
14773
      return x + y*(__pyx_t_float_complex)_Complex_I;
 
14774
    }
 
14775
  #endif
 
14776
#else
 
14777
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
 
14778
      __pyx_t_float_complex z;
 
14779
      z.real = x;
 
14780
      z.imag = y;
 
14781
      return z;
 
14782
    }
 
14783
#endif
 
14784
 
 
14785
#if CYTHON_CCOMPLEX
 
14786
#else
 
14787
    static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex a, __pyx_t_float_complex b) {
 
14788
       return (a.real == b.real) && (a.imag == b.imag);
 
14789
    }
 
14790
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_complex a, __pyx_t_float_complex b) {
 
14791
        __pyx_t_float_complex z;
 
14792
        z.real = a.real + b.real;
 
14793
        z.imag = a.imag + b.imag;
 
14794
        return z;
 
14795
    }
 
14796
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_complex a, __pyx_t_float_complex b) {
 
14797
        __pyx_t_float_complex z;
 
14798
        z.real = a.real - b.real;
 
14799
        z.imag = a.imag - b.imag;
 
14800
        return z;
 
14801
    }
 
14802
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prodf(__pyx_t_float_complex a, __pyx_t_float_complex b) {
 
14803
        __pyx_t_float_complex z;
 
14804
        z.real = a.real * b.real - a.imag * b.imag;
 
14805
        z.imag = a.real * b.imag + a.imag * b.real;
 
14806
        return z;
 
14807
    }
 
14808
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_complex a, __pyx_t_float_complex b) {
 
14809
        __pyx_t_float_complex z;
 
14810
        float denom = b.real * b.real + b.imag * b.imag;
 
14811
        z.real = (a.real * b.real + a.imag * b.imag) / denom;
 
14812
        z.imag = (a.imag * b.real - a.real * b.imag) / denom;
 
14813
        return z;
 
14814
    }
 
14815
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_complex a) {
 
14816
        __pyx_t_float_complex z;
 
14817
        z.real = -a.real;
 
14818
        z.imag = -a.imag;
 
14819
        return z;
 
14820
    }
 
14821
    static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex a) {
 
14822
       return (a.real == 0) && (a.imag == 0);
 
14823
    }
 
14824
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_complex a) {
 
14825
        __pyx_t_float_complex z;
 
14826
        z.real =  a.real;
 
14827
        z.imag = -a.imag;
 
14828
        return z;
 
14829
    }
 
14830
    #if 1
 
14831
        static CYTHON_INLINE float __Pyx_c_absf(__pyx_t_float_complex z) {
 
14832
          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
 
14833
            return sqrtf(z.real*z.real + z.imag*z.imag);
 
14834
          #else
 
14835
            return hypotf(z.real, z.imag);
 
14836
          #endif
 
14837
        }
 
14838
        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_complex a, __pyx_t_float_complex b) {
 
14839
            __pyx_t_float_complex z;
 
14840
            float r, lnr, theta, z_r, z_theta;
 
14841
            if (b.imag == 0 && b.real == (int)b.real) {
 
14842
                if (b.real < 0) {
 
14843
                    float denom = a.real * a.real + a.imag * a.imag;
 
14844
                    a.real = a.real / denom;
 
14845
                    a.imag = -a.imag / denom;
 
14846
                    b.real = -b.real;
 
14847
                }
 
14848
                switch ((int)b.real) {
 
14849
                    case 0:
 
14850
                        z.real = 1;
 
14851
                        z.imag = 0;
 
14852
                        return z;
 
14853
                    case 1:
 
14854
                        return a;
 
14855
                    case 2:
 
14856
                        z = __Pyx_c_prodf(a, a);
 
14857
                        return __Pyx_c_prodf(a, a);
 
14858
                    case 3:
 
14859
                        z = __Pyx_c_prodf(a, a);
 
14860
                        return __Pyx_c_prodf(z, a);
 
14861
                    case 4:
 
14862
                        z = __Pyx_c_prodf(a, a);
 
14863
                        return __Pyx_c_prodf(z, z);
 
14864
                }
 
14865
            }
 
14866
            if (a.imag == 0) {
 
14867
                if (a.real == 0) {
 
14868
                    return a;
 
14869
                }
 
14870
                r = a.real;
 
14871
                theta = 0;
 
14872
            } else {
 
14873
                r = __Pyx_c_absf(a);
 
14874
                theta = atan2f(a.imag, a.real);
 
14875
            }
 
14876
            lnr = logf(r);
 
14877
            z_r = expf(lnr * b.real - theta * b.imag);
 
14878
            z_theta = theta * b.real + lnr * b.imag;
 
14879
            z.real = z_r * cosf(z_theta);
 
14880
            z.imag = z_r * sinf(z_theta);
 
14881
            return z;
 
14882
        }
 
14883
    #endif
 
14884
#endif
 
14885
 
 
14886
#if CYTHON_CCOMPLEX
 
14887
  #ifdef __cplusplus
 
14888
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
 
14889
      return ::std::complex< double >(x, y);
 
14890
    }
 
14891
  #else
 
14892
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
 
14893
      return x + y*(__pyx_t_double_complex)_Complex_I;
 
14894
    }
 
14895
  #endif
 
14896
#else
 
14897
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
 
14898
      __pyx_t_double_complex z;
 
14899
      z.real = x;
 
14900
      z.imag = y;
 
14901
      return z;
 
14902
    }
 
14903
#endif
 
14904
 
 
14905
#if CYTHON_CCOMPLEX
 
14906
#else
 
14907
    static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex a, __pyx_t_double_complex b) {
 
14908
       return (a.real == b.real) && (a.imag == b.imag);
 
14909
    }
 
14910
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_complex a, __pyx_t_double_complex b) {
 
14911
        __pyx_t_double_complex z;
 
14912
        z.real = a.real + b.real;
 
14913
        z.imag = a.imag + b.imag;
 
14914
        return z;
 
14915
    }
 
14916
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_complex a, __pyx_t_double_complex b) {
 
14917
        __pyx_t_double_complex z;
 
14918
        z.real = a.real - b.real;
 
14919
        z.imag = a.imag - b.imag;
 
14920
        return z;
 
14921
    }
 
14922
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod(__pyx_t_double_complex a, __pyx_t_double_complex b) {
 
14923
        __pyx_t_double_complex z;
 
14924
        z.real = a.real * b.real - a.imag * b.imag;
 
14925
        z.imag = a.real * b.imag + a.imag * b.real;
 
14926
        return z;
 
14927
    }
 
14928
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_complex a, __pyx_t_double_complex b) {
 
14929
        __pyx_t_double_complex z;
 
14930
        double denom = b.real * b.real + b.imag * b.imag;
 
14931
        z.real = (a.real * b.real + a.imag * b.imag) / denom;
 
14932
        z.imag = (a.imag * b.real - a.real * b.imag) / denom;
 
14933
        return z;
 
14934
    }
 
14935
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_complex a) {
 
14936
        __pyx_t_double_complex z;
 
14937
        z.real = -a.real;
 
14938
        z.imag = -a.imag;
 
14939
        return z;
 
14940
    }
 
14941
    static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex a) {
 
14942
       return (a.real == 0) && (a.imag == 0);
 
14943
    }
 
14944
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_complex a) {
 
14945
        __pyx_t_double_complex z;
 
14946
        z.real =  a.real;
 
14947
        z.imag = -a.imag;
 
14948
        return z;
 
14949
    }
 
14950
    #if 1
 
14951
        static CYTHON_INLINE double __Pyx_c_abs(__pyx_t_double_complex z) {
 
14952
          #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
 
14953
            return sqrt(z.real*z.real + z.imag*z.imag);
 
14954
          #else
 
14955
            return hypot(z.real, z.imag);
 
14956
          #endif
 
14957
        }
 
14958
        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_complex a, __pyx_t_double_complex b) {
 
14959
            __pyx_t_double_complex z;
 
14960
            double r, lnr, theta, z_r, z_theta;
 
14961
            if (b.imag == 0 && b.real == (int)b.real) {
 
14962
                if (b.real < 0) {
 
14963
                    double denom = a.real * a.real + a.imag * a.imag;
 
14964
                    a.real = a.real / denom;
 
14965
                    a.imag = -a.imag / denom;
 
14966
                    b.real = -b.real;
 
14967
                }
 
14968
                switch ((int)b.real) {
 
14969
                    case 0:
 
14970
                        z.real = 1;
 
14971
                        z.imag = 0;
 
14972
                        return z;
 
14973
                    case 1:
 
14974
                        return a;
 
14975
                    case 2:
 
14976
                        z = __Pyx_c_prod(a, a);
 
14977
                        return __Pyx_c_prod(a, a);
 
14978
                    case 3:
 
14979
                        z = __Pyx_c_prod(a, a);
 
14980
                        return __Pyx_c_prod(z, a);
 
14981
                    case 4:
 
14982
                        z = __Pyx_c_prod(a, a);
 
14983
                        return __Pyx_c_prod(z, z);
 
14984
                }
 
14985
            }
 
14986
            if (a.imag == 0) {
 
14987
                if (a.real == 0) {
 
14988
                    return a;
 
14989
                }
 
14990
                r = a.real;
 
14991
                theta = 0;
 
14992
            } else {
 
14993
                r = __Pyx_c_abs(a);
 
14994
                theta = atan2(a.imag, a.real);
 
14995
            }
 
14996
            lnr = log(r);
 
14997
            z_r = exp(lnr * b.real - theta * b.imag);
 
14998
            z_theta = theta * b.real + lnr * b.imag;
 
14999
            z.real = z_r * cos(z_theta);
 
15000
            z.imag = z_r * sin(z_theta);
 
15001
            return z;
 
15002
        }
 
15003
    #endif
 
15004
#endif
 
15005
 
 
15006
static int __Pyx_check_binary_version(void) {
 
15007
    char ctversion[4], rtversion[4];
 
15008
    PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
 
15009
    PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
 
15010
    if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
 
15011
        char message[200];
 
15012
        PyOS_snprintf(message, sizeof(message),
 
15013
                      "compiletime version %s of module '%.100s' "
 
15014
                      "does not match runtime version %s",
 
15015
                      ctversion, __Pyx_MODULE_NAME, rtversion);
 
15016
        #if PY_VERSION_HEX < 0x02050000
 
15017
        return PyErr_Warn(NULL, message);
 
15018
        #else
 
15019
        return PyErr_WarnEx(NULL, message, 1);
 
15020
        #endif
 
15021
    }
 
15022
    return 0;
 
15023
}
 
15024
 
 
15025
#ifndef __PYX_HAVE_RT_ImportModule
 
15026
#define __PYX_HAVE_RT_ImportModule
 
15027
static PyObject *__Pyx_ImportModule(const char *name) {
 
15028
    PyObject *py_name = 0;
 
15029
    PyObject *py_module = 0;
 
15030
    py_name = __Pyx_PyIdentifier_FromString(name);
 
15031
    if (!py_name)
 
15032
        goto bad;
 
15033
    py_module = PyImport_Import(py_name);
 
15034
    Py_DECREF(py_name);
 
15035
    return py_module;
 
15036
bad:
 
15037
    Py_XDECREF(py_name);
 
15038
    return 0;
 
15039
}
 
15040
#endif
 
15041
 
 
15042
#ifndef __PYX_HAVE_RT_ImportType
 
15043
#define __PYX_HAVE_RT_ImportType
 
15044
static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name,
 
15045
    size_t size, int strict)
 
15046
{
 
15047
    PyObject *py_module = 0;
 
15048
    PyObject *result = 0;
 
15049
    PyObject *py_name = 0;
 
15050
    char warning[200];
 
15051
    Py_ssize_t basicsize;
 
15052
#ifdef Py_LIMITED_API
 
15053
    PyObject *py_basicsize;
 
15054
#endif
 
15055
    py_module = __Pyx_ImportModule(module_name);
 
15056
    if (!py_module)
 
15057
        goto bad;
 
15058
    py_name = __Pyx_PyIdentifier_FromString(class_name);
 
15059
    if (!py_name)
 
15060
        goto bad;
 
15061
    result = PyObject_GetAttr(py_module, py_name);
 
15062
    Py_DECREF(py_name);
 
15063
    py_name = 0;
 
15064
    Py_DECREF(py_module);
 
15065
    py_module = 0;
 
15066
    if (!result)
 
15067
        goto bad;
 
15068
    if (!PyType_Check(result)) {
 
15069
        PyErr_Format(PyExc_TypeError,
 
15070
            "%.200s.%.200s is not a type object",
 
15071
            module_name, class_name);
 
15072
        goto bad;
 
15073
    }
 
15074
#ifndef Py_LIMITED_API
 
15075
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
 
15076
#else
 
15077
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
 
15078
    if (!py_basicsize)
 
15079
        goto bad;
 
15080
    basicsize = PyLong_AsSsize_t(py_basicsize);
 
15081
    Py_DECREF(py_basicsize);
 
15082
    py_basicsize = 0;
 
15083
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
 
15084
        goto bad;
 
15085
#endif
 
15086
    if (!strict && (size_t)basicsize > size) {
 
15087
        PyOS_snprintf(warning, sizeof(warning),
 
15088
            "%s.%s size changed, may indicate binary incompatibility",
 
15089
            module_name, class_name);
 
15090
        #if PY_VERSION_HEX < 0x02050000
 
15091
        if (PyErr_Warn(NULL, warning) < 0) goto bad;
 
15092
        #else
 
15093
        if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
 
15094
        #endif
 
15095
    }
 
15096
    else if ((size_t)basicsize != size) {
 
15097
        PyErr_Format(PyExc_ValueError,
 
15098
            "%.200s.%.200s has the wrong size, try recompiling",
 
15099
            module_name, class_name);
 
15100
        goto bad;
 
15101
    }
 
15102
    return (PyTypeObject *)result;
 
15103
bad:
 
15104
    Py_XDECREF(py_module);
 
15105
    Py_XDECREF(result);
 
15106
    return NULL;
 
15107
}
 
15108
#endif
 
15109
 
 
15110
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
 
15111
    int start = 0, mid = 0, end = count - 1;
 
15112
    if (end >= 0 && code_line > entries[end].code_line) {
 
15113
        return count;
 
15114
    }
 
15115
    while (start < end) {
 
15116
        mid = (start + end) / 2;
 
15117
        if (code_line < entries[mid].code_line) {
 
15118
            end = mid;
 
15119
        } else if (code_line > entries[mid].code_line) {
 
15120
             start = mid + 1;
 
15121
        } else {
 
15122
            return mid;
 
15123
        }
 
15124
    }
 
15125
    if (code_line <= entries[mid].code_line) {
 
15126
        return mid;
 
15127
    } else {
 
15128
        return mid + 1;
 
15129
    }
 
15130
}
 
15131
static PyCodeObject *__pyx_find_code_object(int code_line) {
 
15132
    PyCodeObject* code_object;
 
15133
    int pos;
 
15134
    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
 
15135
        return NULL;
 
15136
    }
 
15137
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
 
15138
    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
 
15139
        return NULL;
 
15140
    }
 
15141
    code_object = __pyx_code_cache.entries[pos].code_object;
 
15142
    Py_INCREF(code_object);
 
15143
    return code_object;
 
15144
}
 
15145
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
 
15146
    int pos, i;
 
15147
    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
 
15148
    if (unlikely(!code_line)) {
 
15149
        return;
 
15150
    }
 
15151
    if (unlikely(!entries)) {
 
15152
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
 
15153
        if (likely(entries)) {
 
15154
            __pyx_code_cache.entries = entries;
 
15155
            __pyx_code_cache.max_count = 64;
 
15156
            __pyx_code_cache.count = 1;
 
15157
            entries[0].code_line = code_line;
 
15158
            entries[0].code_object = code_object;
 
15159
            Py_INCREF(code_object);
 
15160
        }
 
15161
        return;
 
15162
    }
 
15163
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
 
15164
    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
 
15165
        PyCodeObject* tmp = entries[pos].code_object;
 
15166
        entries[pos].code_object = code_object;
 
15167
        Py_DECREF(tmp);
 
15168
        return;
 
15169
    }
 
15170
    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
 
15171
        int new_max = __pyx_code_cache.max_count + 64;
 
15172
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
 
15173
            __pyx_code_cache.entries, new_max*sizeof(__Pyx_CodeObjectCacheEntry));
 
15174
        if (unlikely(!entries)) {
 
15175
            return;
 
15176
        }
 
15177
        __pyx_code_cache.entries = entries;
 
15178
        __pyx_code_cache.max_count = new_max;
 
15179
    }
 
15180
    for (i=__pyx_code_cache.count; i>pos; i--) {
 
15181
        entries[i] = entries[i-1];
 
15182
    }
 
15183
    entries[pos].code_line = code_line;
 
15184
    entries[pos].code_object = code_object;
 
15185
    __pyx_code_cache.count++;
 
15186
    Py_INCREF(code_object);
 
15187
}
 
15188
 
 
15189
#include "compile.h"
 
15190
#include "frameobject.h"
 
15191
#include "traceback.h"
 
15192
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
 
15193
            const char *funcname, int c_line,
 
15194
            int py_line, const char *filename) {
 
15195
    PyCodeObject *py_code = 0;
 
15196
    PyObject *py_srcfile = 0;
 
15197
    PyObject *py_funcname = 0;
 
15198
    #if PY_MAJOR_VERSION < 3
 
15199
    py_srcfile = PyString_FromString(filename);
 
15200
    #else
 
15201
    py_srcfile = PyUnicode_FromString(filename);
 
15202
    #endif
 
15203
    if (!py_srcfile) goto bad;
 
15204
    if (c_line) {
 
15205
        #if PY_MAJOR_VERSION < 3
 
15206
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
 
15207
        #else
 
15208
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
 
15209
        #endif
 
15210
    }
 
15211
    else {
 
15212
        #if PY_MAJOR_VERSION < 3
 
15213
        py_funcname = PyString_FromString(funcname);
 
15214
        #else
 
15215
        py_funcname = PyUnicode_FromString(funcname);
 
15216
        #endif
 
15217
    }
 
15218
    if (!py_funcname) goto bad;
 
15219
    py_code = __Pyx_PyCode_New(
 
15220
        0,            /*int argcount,*/
 
15221
        0,            /*int kwonlyargcount,*/
 
15222
        0,            /*int nlocals,*/
 
15223
        0,            /*int stacksize,*/
 
15224
        0,            /*int flags,*/
 
15225
        __pyx_empty_bytes, /*PyObject *code,*/
 
15226
        __pyx_empty_tuple, /*PyObject *consts,*/
 
15227
        __pyx_empty_tuple, /*PyObject *names,*/
 
15228
        __pyx_empty_tuple, /*PyObject *varnames,*/
 
15229
        __pyx_empty_tuple, /*PyObject *freevars,*/
 
15230
        __pyx_empty_tuple, /*PyObject *cellvars,*/
 
15231
        py_srcfile,   /*PyObject *filename,*/
 
15232
        py_funcname,  /*PyObject *name,*/
 
15233
        py_line,      /*int firstlineno,*/
 
15234
        __pyx_empty_bytes  /*PyObject *lnotab*/
 
15235
    );
 
15236
    Py_DECREF(py_srcfile);
 
15237
    Py_DECREF(py_funcname);
 
15238
    return py_code;
 
15239
bad:
 
15240
    Py_XDECREF(py_srcfile);
 
15241
    Py_XDECREF(py_funcname);
 
15242
    return NULL;
 
15243
}
 
15244
static void __Pyx_AddTraceback(const char *funcname, int c_line,
 
15245
                               int py_line, const char *filename) {
 
15246
    PyCodeObject *py_code = 0;
 
15247
    PyObject *py_globals = 0;
 
15248
    PyFrameObject *py_frame = 0;
 
15249
    py_code = __pyx_find_code_object(c_line ? c_line : py_line);
 
15250
    if (!py_code) {
 
15251
        py_code = __Pyx_CreateCodeObjectForTraceback(
 
15252
            funcname, c_line, py_line, filename);
 
15253
        if (!py_code) goto bad;
 
15254
        __pyx_insert_code_object(c_line ? c_line : py_line, py_code);
 
15255
    }
 
15256
    py_globals = PyModule_GetDict(__pyx_m);
 
15257
    if (!py_globals) goto bad;
 
15258
    py_frame = PyFrame_New(
 
15259
        PyThreadState_GET(), /*PyThreadState *tstate,*/
 
15260
        py_code,             /*PyCodeObject *code,*/
 
15261
        py_globals,          /*PyObject *globals,*/
 
15262
        0                    /*PyObject *locals*/
 
15263
    );
 
15264
    if (!py_frame) goto bad;
 
15265
    py_frame->f_lineno = py_line;
 
15266
    PyTraceBack_Here(py_frame);
 
15267
bad:
 
15268
    Py_XDECREF(py_code);
 
15269
    Py_XDECREF(py_frame);
 
15270
}
 
15271
 
 
15272
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
 
15273
    while (t->p) {
 
15274
        #if PY_MAJOR_VERSION < 3
 
15275
        if (t->is_unicode) {
 
15276
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
 
15277
        } else if (t->intern) {
 
15278
            *t->p = PyString_InternFromString(t->s);
 
15279
        } else {
 
15280
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
 
15281
        }
 
15282
        #else  /* Python 3+ has unicode identifiers */
 
15283
        if (t->is_unicode | t->is_str) {
 
15284
            if (t->intern) {
 
15285
                *t->p = PyUnicode_InternFromString(t->s);
 
15286
            } else if (t->encoding) {
 
15287
                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
 
15288
            } else {
 
15289
                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
 
15290
            }
 
15291
        } else {
 
15292
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
 
15293
        }
 
15294
        #endif
 
15295
        if (!*t->p)
 
15296
            return -1;
 
15297
        ++t;
 
15298
    }
 
15299
    return 0;
 
15300
}
 
15301
 
 
15302
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(char* c_str) {
 
15303
    return __Pyx_PyUnicode_FromStringAndSize(c_str, strlen(c_str));
 
15304
}
 
15305
static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject* o) {
 
15306
    Py_ssize_t ignore;
 
15307
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
 
15308
}
 
15309
static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
 
15310
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
 
15311
    if (
 
15312
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
 
15313
            __Pyx_sys_getdefaultencoding_not_ascii &&
 
15314
#endif
 
15315
            PyUnicode_Check(o)) {
 
15316
#if PY_VERSION_HEX < 0x03030000
 
15317
        char* defenc_c;
 
15318
        PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
 
15319
        if (!defenc) return NULL;
 
15320
        defenc_c = PyBytes_AS_STRING(defenc);
 
15321
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
 
15322
        {
 
15323
            char* end = defenc_c + PyBytes_GET_SIZE(defenc);
 
15324
            char* c;
 
15325
            for (c = defenc_c; c < end; c++) {
 
15326
                if ((unsigned char) (*c) >= 128) {
 
15327
                    PyUnicode_AsASCIIString(o);
 
15328
                    return NULL;
 
15329
                }
 
15330
            }
 
15331
        }
 
15332
#endif /*__PYX_DEFAULT_STRING_ENCODING_IS_ASCII*/
 
15333
        *length = PyBytes_GET_SIZE(defenc);
 
15334
        return defenc_c;
 
15335
#else /* PY_VERSION_HEX < 0x03030000 */
 
15336
        if (PyUnicode_READY(o) == -1) return NULL;
 
15337
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
 
15338
        if (PyUnicode_IS_ASCII(o)) {
 
15339
            *length = PyUnicode_GET_DATA_SIZE(o);
 
15340
            return PyUnicode_AsUTF8(o);
 
15341
        } else {
 
15342
            PyUnicode_AsASCIIString(o);
 
15343
            return NULL;
 
15344
        }
 
15345
#else /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII */
 
15346
        return PyUnicode_AsUTF8AndSize(o, length);
 
15347
#endif /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII */
 
15348
#endif /* PY_VERSION_HEX < 0x03030000 */
 
15349
    } else
 
15350
#endif /* __PYX_DEFAULT_STRING_ENCODING_IS_ASCII  || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT */
 
15351
#if !CYTHON_COMPILING_IN_PYPY
 
15352
#if PY_VERSION_HEX >= 0x02060000
 
15353
    if (PyByteArray_Check(o)) {
 
15354
        *length = PyByteArray_GET_SIZE(o);
 
15355
        return PyByteArray_AS_STRING(o);
 
15356
    } else
 
15357
#endif
 
15358
#endif
 
15359
    {
 
15360
        char* result;
 
15361
        int r = PyBytes_AsStringAndSize(o, &result, length);
 
15362
        if (unlikely(r < 0)) {
 
15363
            return NULL;
 
15364
        } else {
 
15365
            return result;
 
15366
        }
 
15367
    }
 
15368
}
 
15369
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
 
15370
   int is_true = x == Py_True;
 
15371
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
 
15372
   else return PyObject_IsTrue(x);
 
15373
}
 
15374
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) {
 
15375
  PyNumberMethods *m;
 
15376
  const char *name = NULL;
 
15377
  PyObject *res = NULL;
 
15378
#if PY_MAJOR_VERSION < 3
 
15379
  if (PyInt_Check(x) || PyLong_Check(x))
 
15380
#else
 
15381
  if (PyLong_Check(x))
 
15382
#endif
 
15383
    return Py_INCREF(x), x;
 
15384
  m = Py_TYPE(x)->tp_as_number;
 
15385
#if PY_MAJOR_VERSION < 3
 
15386
  if (m && m->nb_int) {
 
15387
    name = "int";
 
15388
    res = PyNumber_Int(x);
 
15389
  }
 
15390
  else if (m && m->nb_long) {
 
15391
    name = "long";
 
15392
    res = PyNumber_Long(x);
 
15393
  }
 
15394
#else
 
15395
  if (m && m->nb_int) {
 
15396
    name = "int";
 
15397
    res = PyNumber_Long(x);
 
15398
  }
 
15399
#endif
 
15400
  if (res) {
 
15401
#if PY_MAJOR_VERSION < 3
 
15402
    if (!PyInt_Check(res) && !PyLong_Check(res)) {
 
15403
#else
 
15404
    if (!PyLong_Check(res)) {
 
15405
#endif
 
15406
      PyErr_Format(PyExc_TypeError,
 
15407
                   "__%.4s__ returned non-%.4s (type %.200s)",
 
15408
                   name, name, Py_TYPE(res)->tp_name);
 
15409
      Py_DECREF(res);
 
15410
      return NULL;
 
15411
    }
 
15412
  }
 
15413
  else if (!PyErr_Occurred()) {
 
15414
    PyErr_SetString(PyExc_TypeError,
 
15415
                    "an integer is required");
 
15416
  }
 
15417
  return res;
 
15418
}
 
15419
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
15420
 #if CYTHON_USE_PYLONG_INTERNALS
 
15421
  #include "longintrepr.h"
 
15422
 #endif
 
15423
#endif
 
15424
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
 
15425
  Py_ssize_t ival;
 
15426
  PyObject *x;
 
15427
#if PY_MAJOR_VERSION < 3
 
15428
  if (likely(PyInt_CheckExact(b)))
 
15429
      return PyInt_AS_LONG(b);
 
15430
#endif
 
15431
  if (likely(PyLong_CheckExact(b))) {
 
15432
    #if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 
15433
     #if CYTHON_USE_PYLONG_INTERNALS
 
15434
       switch (Py_SIZE(b)) {
 
15435
       case -1: return -(sdigit)((PyLongObject*)b)->ob_digit[0];
 
15436
       case  0: return 0;
 
15437
       case  1: return ((PyLongObject*)b)->ob_digit[0];
 
15438
       }
 
15439
     #endif
 
15440
    #endif
 
15441
  #if PY_VERSION_HEX < 0x02060000
 
15442
    return PyInt_AsSsize_t(b);
 
15443
  #else
 
15444
    return PyLong_AsSsize_t(b);
 
15445
  #endif
 
15446
  }
 
15447
  x = PyNumber_Index(b);
 
15448
  if (!x) return -1;
 
15449
  ival = PyInt_AsSsize_t(x);
 
15450
  Py_DECREF(x);
 
15451
  return ival;
 
15452
}
 
15453
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
 
15454
#if PY_VERSION_HEX < 0x02050000
 
15455
   if (ival <= LONG_MAX)
 
15456
       return PyInt_FromLong((long)ival);
 
15457
   else {
 
15458
       unsigned char *bytes = (unsigned char *) &ival;
 
15459
       int one = 1; int little = (int)*(unsigned char*)&one;
 
15460
       return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0);
 
15461
   }
 
15462
#else
 
15463
   return PyInt_FromSize_t(ival);
 
15464
#endif
 
15465
}
 
15466
 
 
15467
 
 
15468
#endif /* Py_PYTHON_H */