3294 lines
116 KiB
C
Executable file
3294 lines
116 KiB
C
Executable file
/* Generated by Cython 0.12 on Sun Mar 14 21:50:43 2010 */
|
|
|
|
#define PY_SSIZE_T_CLEAN
|
|
#include "Python.h"
|
|
#include "structmember.h"
|
|
#ifndef Py_PYTHON_H
|
|
#error Python headers needed to compile C extensions, please install development version of Python.
|
|
#else
|
|
#ifndef PY_LONG_LONG
|
|
#define PY_LONG_LONG LONG_LONG
|
|
#endif
|
|
#ifndef DL_EXPORT
|
|
#define DL_EXPORT(t) t
|
|
#endif
|
|
#if PY_VERSION_HEX < 0x02040000
|
|
#define METH_COEXIST 0
|
|
#define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type)
|
|
#define PyDict_Contains(d,o) PySequence_Contains(d,o)
|
|
#endif
|
|
#if PY_VERSION_HEX < 0x02050000
|
|
typedef int Py_ssize_t;
|
|
#define PY_SSIZE_T_MAX INT_MAX
|
|
#define PY_SSIZE_T_MIN INT_MIN
|
|
#define PY_FORMAT_SIZE_T ""
|
|
#define PyInt_FromSsize_t(z) PyInt_FromLong(z)
|
|
#define PyInt_AsSsize_t(o) PyInt_AsLong(o)
|
|
#define PyNumber_Index(o) PyNumber_Int(o)
|
|
#define PyIndex_Check(o) PyNumber_Check(o)
|
|
#endif
|
|
#if PY_VERSION_HEX < 0x02060000
|
|
#define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
|
|
#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
|
|
#define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size)
|
|
#define PyVarObject_HEAD_INIT(type, size) \
|
|
PyObject_HEAD_INIT(type) size,
|
|
#define PyType_Modified(t)
|
|
|
|
typedef struct {
|
|
void *buf;
|
|
PyObject *obj;
|
|
Py_ssize_t len;
|
|
Py_ssize_t itemsize;
|
|
int readonly;
|
|
int ndim;
|
|
char *format;
|
|
Py_ssize_t *shape;
|
|
Py_ssize_t *strides;
|
|
Py_ssize_t *suboffsets;
|
|
void *internal;
|
|
} Py_buffer;
|
|
|
|
#define PyBUF_SIMPLE 0
|
|
#define PyBUF_WRITABLE 0x0001
|
|
#define PyBUF_FORMAT 0x0004
|
|
#define PyBUF_ND 0x0008
|
|
#define PyBUF_STRIDES (0x0010 | PyBUF_ND)
|
|
#define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
|
|
#define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
|
|
#define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
|
|
#define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
|
|
|
|
#endif
|
|
#if PY_MAJOR_VERSION < 3
|
|
#define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
|
|
#else
|
|
#define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
|
#endif
|
|
#if PY_MAJOR_VERSION >= 3
|
|
#define Py_TPFLAGS_CHECKTYPES 0
|
|
#define Py_TPFLAGS_HAVE_INDEX 0
|
|
#endif
|
|
#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
|
|
#define Py_TPFLAGS_HAVE_NEWBUFFER 0
|
|
#endif
|
|
#if PY_MAJOR_VERSION >= 3
|
|
#define PyBaseString_Type PyUnicode_Type
|
|
#define PyString_Type PyUnicode_Type
|
|
#define PyString_CheckExact PyUnicode_CheckExact
|
|
#else
|
|
#define PyBytes_Type PyString_Type
|
|
#define PyBytes_CheckExact PyString_CheckExact
|
|
#endif
|
|
#if PY_MAJOR_VERSION >= 3
|
|
#define PyInt_Type PyLong_Type
|
|
#define PyInt_Check(op) PyLong_Check(op)
|
|
#define PyInt_CheckExact(op) PyLong_CheckExact(op)
|
|
#define PyInt_FromString PyLong_FromString
|
|
#define PyInt_FromUnicode PyLong_FromUnicode
|
|
#define PyInt_FromLong PyLong_FromLong
|
|
#define PyInt_FromSize_t PyLong_FromSize_t
|
|
#define PyInt_FromSsize_t PyLong_FromSsize_t
|
|
#define PyInt_AsLong PyLong_AsLong
|
|
#define PyInt_AS_LONG PyLong_AS_LONG
|
|
#define PyInt_AsSsize_t PyLong_AsSsize_t
|
|
#define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
|
|
#define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
|
|
#define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
|
|
#define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
|
|
#else
|
|
#define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
|
|
#define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
|
|
#endif
|
|
#if PY_MAJOR_VERSION >= 3
|
|
#define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)
|
|
#endif
|
|
#if !defined(WIN32) && !defined(MS_WINDOWS)
|
|
#ifndef __stdcall
|
|
#define __stdcall
|
|
#endif
|
|
#ifndef __cdecl
|
|
#define __cdecl
|
|
#endif
|
|
#ifndef __fastcall
|
|
#define __fastcall
|
|
#endif
|
|
#else
|
|
#define _USE_MATH_DEFINES
|
|
#endif
|
|
#if PY_VERSION_HEX < 0x02050000
|
|
#define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n)))
|
|
#define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
|
|
#define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),((char *)(n)))
|
|
#else
|
|
#define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n))
|
|
#define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
|
|
#define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n))
|
|
#endif
|
|
#if PY_VERSION_HEX < 0x02050000
|
|
#define __Pyx_NAMESTR(n) ((char *)(n))
|
|
#define __Pyx_DOCSTR(n) ((char *)(n))
|
|
#else
|
|
#define __Pyx_NAMESTR(n) (n)
|
|
#define __Pyx_DOCSTR(n) (n)
|
|
#endif
|
|
#ifdef __cplusplus
|
|
#define __PYX_EXTERN_C extern "C"
|
|
#else
|
|
#define __PYX_EXTERN_C extern
|
|
#endif
|
|
#include <math.h>
|
|
#define __PYX_HAVE_API__h5py___proxy
|
|
#include "stdlib.h"
|
|
#include "string.h"
|
|
#include "time.h"
|
|
#include "unistd.h"
|
|
#include "stdint.h"
|
|
#include "compat.h"
|
|
#include "lzf_filter.h"
|
|
#include "hdf5.h"
|
|
|
|
#ifdef __GNUC__
|
|
#define INLINE __inline__
|
|
#elif _WIN32
|
|
#define INLINE __inline
|
|
#else
|
|
#define INLINE
|
|
#endif
|
|
|
|
typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
|
|
|
|
|
|
/* Type Conversion Predeclarations */
|
|
|
|
#if PY_MAJOR_VERSION < 3
|
|
#define __Pyx_PyBytes_FromString PyString_FromString
|
|
#define __Pyx_PyBytes_FromStringAndSize PyString_FromStringAndSize
|
|
#define __Pyx_PyBytes_AsString PyString_AsString
|
|
#else
|
|
#define __Pyx_PyBytes_FromString PyBytes_FromString
|
|
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
|
|
#define __Pyx_PyBytes_AsString PyBytes_AsString
|
|
#endif
|
|
|
|
#define __Pyx_PyBytes_FromUString(s) __Pyx_PyBytes_FromString((char*)s)
|
|
#define __Pyx_PyBytes_AsUString(s) ((unsigned char*) __Pyx_PyBytes_AsString(s))
|
|
|
|
#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
|
|
static INLINE int __Pyx_PyObject_IsTrue(PyObject*);
|
|
static INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
|
|
|
|
#if !defined(T_PYSSIZET)
|
|
#if PY_VERSION_HEX < 0x02050000
|
|
#define T_PYSSIZET T_INT
|
|
#elif !defined(T_LONGLONG)
|
|
#define T_PYSSIZET \
|
|
((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \
|
|
((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : -1))
|
|
#else
|
|
#define T_PYSSIZET \
|
|
((sizeof(Py_ssize_t) == sizeof(int)) ? T_INT : \
|
|
((sizeof(Py_ssize_t) == sizeof(long)) ? T_LONG : \
|
|
((sizeof(Py_ssize_t) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1)))
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#if !defined(T_ULONGLONG)
|
|
#define __Pyx_T_UNSIGNED_INT(x) \
|
|
((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \
|
|
((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \
|
|
((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \
|
|
((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : -1))))
|
|
#else
|
|
#define __Pyx_T_UNSIGNED_INT(x) \
|
|
((sizeof(x) == sizeof(unsigned char)) ? T_UBYTE : \
|
|
((sizeof(x) == sizeof(unsigned short)) ? T_USHORT : \
|
|
((sizeof(x) == sizeof(unsigned int)) ? T_UINT : \
|
|
((sizeof(x) == sizeof(unsigned long)) ? T_ULONG : \
|
|
((sizeof(x) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1)))))
|
|
#endif
|
|
#if !defined(T_LONGLONG)
|
|
#define __Pyx_T_SIGNED_INT(x) \
|
|
((sizeof(x) == sizeof(char)) ? T_BYTE : \
|
|
((sizeof(x) == sizeof(short)) ? T_SHORT : \
|
|
((sizeof(x) == sizeof(int)) ? T_INT : \
|
|
((sizeof(x) == sizeof(long)) ? T_LONG : -1))))
|
|
#else
|
|
#define __Pyx_T_SIGNED_INT(x) \
|
|
((sizeof(x) == sizeof(char)) ? T_BYTE : \
|
|
((sizeof(x) == sizeof(short)) ? T_SHORT : \
|
|
((sizeof(x) == sizeof(int)) ? T_INT : \
|
|
((sizeof(x) == sizeof(long)) ? T_LONG : \
|
|
((sizeof(x) == sizeof(PY_LONG_LONG)) ? T_LONGLONG : -1)))))
|
|
#endif
|
|
|
|
#define __Pyx_T_FLOATING(x) \
|
|
((sizeof(x) == sizeof(float)) ? T_FLOAT : \
|
|
((sizeof(x) == sizeof(double)) ? T_DOUBLE : -1))
|
|
|
|
#if !defined(T_SIZET)
|
|
#if !defined(T_ULONGLONG)
|
|
#define T_SIZET \
|
|
((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \
|
|
((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : -1))
|
|
#else
|
|
#define T_SIZET \
|
|
((sizeof(size_t) == sizeof(unsigned int)) ? T_UINT : \
|
|
((sizeof(size_t) == sizeof(unsigned long)) ? T_ULONG : \
|
|
((sizeof(size_t) == sizeof(unsigned PY_LONG_LONG)) ? T_ULONGLONG : -1)))
|
|
#endif
|
|
#endif
|
|
|
|
static INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
|
static INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
|
static INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*);
|
|
|
|
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
|
|
|
|
|
#ifdef __GNUC__
|
|
/* Test for GCC > 2.95 */
|
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
|
|
#define likely(x) __builtin_expect(!!(x), 1)
|
|
#define unlikely(x) __builtin_expect(!!(x), 0)
|
|
#else /* __GNUC__ > 2 ... */
|
|
#define likely(x) (x)
|
|
#define unlikely(x) (x)
|
|
#endif /* __GNUC__ > 2 ... */
|
|
#else /* __GNUC__ */
|
|
#define likely(x) (x)
|
|
#define unlikely(x) (x)
|
|
#endif /* __GNUC__ */
|
|
|
|
static PyObject *__pyx_m;
|
|
static PyObject *__pyx_b;
|
|
static PyObject *__pyx_empty_tuple;
|
|
static PyObject *__pyx_empty_bytes;
|
|
static int __pyx_lineno;
|
|
static int __pyx_clineno = 0;
|
|
static const char * __pyx_cfilenm= __FILE__;
|
|
static const char *__pyx_filename;
|
|
static const char **__pyx_f;
|
|
|
|
|
|
/* Type declarations */
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":19
|
|
* """
|
|
*
|
|
* cdef enum copy_dir: # <<<<<<<<<<<<<<
|
|
* H5PY_SCATTER = 0,
|
|
* H5PY_GATHER
|
|
*/
|
|
|
|
enum __pyx_t_4h5py_6_proxy_copy_dir {
|
|
__pyx_e_4h5py_6_proxy_H5PY_SCATTER = 0,
|
|
__pyx_e_4h5py_6_proxy_H5PY_GATHER
|
|
};
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":186
|
|
* # Scatter/gather routines
|
|
*
|
|
* ctypedef struct h5py_scatter_t: # <<<<<<<<<<<<<<
|
|
* size_t i
|
|
* size_t elsize
|
|
*/
|
|
|
|
typedef struct {
|
|
size_t i;
|
|
size_t elsize;
|
|
void *buf;
|
|
} __pyx_t_4h5py_6_proxy_h5py_scatter_t;
|
|
|
|
#ifndef CYTHON_REFNANNY
|
|
#define CYTHON_REFNANNY 0
|
|
#endif
|
|
|
|
#if CYTHON_REFNANNY
|
|
typedef struct {
|
|
void (*INCREF)(void*, PyObject*, int);
|
|
void (*DECREF)(void*, PyObject*, int);
|
|
void (*GOTREF)(void*, PyObject*, int);
|
|
void (*GIVEREF)(void*, PyObject*, int);
|
|
void* (*SetupContext)(const char*, int, const char*);
|
|
void (*FinishContext)(void**);
|
|
} __Pyx_RefNannyAPIStruct;
|
|
static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
|
|
static __Pyx_RefNannyAPIStruct * __Pyx_RefNannyImportAPI(const char *modname) {
|
|
PyObject *m = NULL, *p = NULL;
|
|
void *r = NULL;
|
|
m = PyImport_ImportModule((char *)modname);
|
|
if (!m) goto end;
|
|
p = PyObject_GetAttrString(m, (char *)"RefNannyAPI");
|
|
if (!p) goto end;
|
|
r = PyLong_AsVoidPtr(p);
|
|
end:
|
|
Py_XDECREF(p);
|
|
Py_XDECREF(m);
|
|
return (__Pyx_RefNannyAPIStruct *)r;
|
|
}
|
|
#define __Pyx_RefNannySetupContext(name) void *__pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
|
|
#define __Pyx_RefNannyFinishContext() __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
|
|
#define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
|
|
#define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
|
|
#define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
|
|
#define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
|
|
#define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r);} } while(0)
|
|
#else
|
|
#define __Pyx_RefNannySetupContext(name)
|
|
#define __Pyx_RefNannyFinishContext()
|
|
#define __Pyx_INCREF(r) Py_INCREF(r)
|
|
#define __Pyx_DECREF(r) Py_DECREF(r)
|
|
#define __Pyx_GOTREF(r)
|
|
#define __Pyx_GIVEREF(r)
|
|
#define __Pyx_XDECREF(r) Py_XDECREF(r)
|
|
#endif /* CYTHON_REFNANNY */
|
|
#define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);} } while(0)
|
|
#define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r);} } while(0)
|
|
|
|
static INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
|
|
static INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
|
|
|
|
#ifndef __PYX_FORCE_INIT_THREADS
|
|
#if PY_VERSION_HEX < 0x02040200
|
|
#define __PYX_FORCE_INIT_THREADS 1
|
|
#else
|
|
#define __PYX_FORCE_INIT_THREADS 0
|
|
#endif
|
|
#endif
|
|
|
|
static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
|
|
|
|
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
|
|
|
|
static INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *);
|
|
|
|
static INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *);
|
|
|
|
static INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *);
|
|
|
|
static INLINE char __Pyx_PyInt_AsChar(PyObject *);
|
|
|
|
static INLINE short __Pyx_PyInt_AsShort(PyObject *);
|
|
|
|
static INLINE int __Pyx_PyInt_AsInt(PyObject *);
|
|
|
|
static INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *);
|
|
|
|
static INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *);
|
|
|
|
static INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *);
|
|
|
|
static INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *);
|
|
|
|
static INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *);
|
|
|
|
static INLINE long __Pyx_PyInt_AsLong(PyObject *);
|
|
|
|
static INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *);
|
|
|
|
static INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);
|
|
|
|
static INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);
|
|
|
|
static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig); /*proto*/
|
|
|
|
static void __Pyx_AddTraceback(const char *funcname); /*proto*/
|
|
|
|
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
|
|
/* Module declarations from h5py._proxy */
|
|
|
|
static herr_t __pyx_f_4h5py_6_proxy_attr_rw(hid_t, hid_t, void *, int); /*proto*/
|
|
static herr_t __pyx_f_4h5py_6_proxy_dset_rw(hid_t, hid_t, hid_t, hid_t, hid_t, void *, int); /*proto*/
|
|
static herr_t __pyx_f_4h5py_6_proxy_H5PY_H5Dread(hid_t, hid_t, hid_t, hid_t, hid_t, void *); /*proto*/
|
|
static herr_t __pyx_f_4h5py_6_proxy_H5PY_H5Dwrite(hid_t, hid_t, hid_t, hid_t, hid_t, void *); /*proto*/
|
|
static void *__pyx_f_4h5py_6_proxy_create_buffer(size_t, size_t, size_t); /*proto*/
|
|
static herr_t __pyx_f_4h5py_6_proxy_h5py_scatter_cb(void *, hid_t, unsigned int, hsize_t *, void *); /*proto*/
|
|
static herr_t __pyx_f_4h5py_6_proxy_h5py_gather_cb(void *, hid_t, unsigned int, hsize_t *, void *); /*proto*/
|
|
static herr_t __pyx_f_4h5py_6_proxy_h5py_copy(hid_t, hid_t, void *, void *, enum __pyx_t_4h5py_6_proxy_copy_dir); /*proto*/
|
|
static htri_t __pyx_f_4h5py_6_proxy_needs_bkg_buffer(hid_t, hid_t); /*proto*/
|
|
static htri_t __pyx_f_4h5py_6_proxy_needs_proxy(hid_t); /*proto*/
|
|
#define __Pyx_MODULE_NAME "h5py._proxy"
|
|
int __pyx_module_is_main_h5py___proxy = 0;
|
|
|
|
/* Implementation of h5py._proxy */
|
|
static PyObject *__pyx_builtin_MemoryError;
|
|
static PyObject *__pyx_builtin_RuntimeError;
|
|
static char __pyx_k_1[] = "Failed to allocate conversion buffer";
|
|
static char __pyx_k_2[] = "Illegal direction";
|
|
static char __pyx_k_3[] = "\n Proxy functions for read/write, to work around the HDF5 bogus type issue.\n";
|
|
static char __pyx_k__i[] = "i";
|
|
static char __pyx_k__buf[] = "buf";
|
|
static char __pyx_k__elsize[] = "elsize";
|
|
static char __pyx_k____main__[] = "__main__";
|
|
static char __pyx_k__need_bkg[] = "need_bkg";
|
|
static char __pyx_k__MemoryError[] = "MemoryError";
|
|
static char __pyx_k__RuntimeError[] = "RuntimeError";
|
|
static PyObject *__pyx_kp_s_1;
|
|
static PyObject *__pyx_kp_s_2;
|
|
static PyObject *__pyx_n_s__MemoryError;
|
|
static PyObject *__pyx_n_s__RuntimeError;
|
|
static PyObject *__pyx_n_s____main__;
|
|
static PyObject *__pyx_n_s__buf;
|
|
static PyObject *__pyx_n_s__elsize;
|
|
static PyObject *__pyx_n_s__i;
|
|
static PyObject *__pyx_n_s__need_bkg;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":23
|
|
* H5PY_GATHER
|
|
*
|
|
* cdef herr_t attr_rw(hid_t attr, hid_t mtype, void *progbuf, int read) except -1: # <<<<<<<<<<<<<<
|
|
*
|
|
* cdef htri_t need_bkg
|
|
*/
|
|
|
|
static herr_t __pyx_f_4h5py_6_proxy_attr_rw(hid_t __pyx_v_attr, hid_t __pyx_v_mtype, void *__pyx_v_progbuf, int __pyx_v_read) {
|
|
htri_t __pyx_v_need_bkg;
|
|
hid_t __pyx_v_atype;
|
|
hid_t __pyx_v_aspace;
|
|
hsize_t __pyx_v_npoints;
|
|
size_t __pyx_v_msize;
|
|
size_t __pyx_v_asize;
|
|
void *__pyx_v_conv_buf;
|
|
void *__pyx_v_back_buf;
|
|
herr_t __pyx_r;
|
|
hid_t __pyx_t_1;
|
|
htri_t __pyx_t_2;
|
|
htri_t __pyx_t_3;
|
|
int __pyx_t_4;
|
|
int __pyx_t_5;
|
|
int __pyx_t_6;
|
|
herr_t __pyx_t_7;
|
|
size_t __pyx_t_8;
|
|
hssize_t __pyx_t_9;
|
|
void *__pyx_t_10;
|
|
__Pyx_RefNannySetupContext("attr_rw");
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":26
|
|
*
|
|
* cdef htri_t need_bkg
|
|
* cdef hid_t atype = -1 # <<<<<<<<<<<<<<
|
|
* cdef hid_t aspace = -1
|
|
* cdef hsize_t npoints
|
|
*/
|
|
__pyx_v_atype = -1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":27
|
|
* cdef htri_t need_bkg
|
|
* cdef hid_t atype = -1
|
|
* cdef hid_t aspace = -1 # <<<<<<<<<<<<<<
|
|
* cdef hsize_t npoints
|
|
*
|
|
*/
|
|
__pyx_v_aspace = -1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":31
|
|
*
|
|
* cdef size_t msize, asize
|
|
* cdef void* conv_buf = NULL # <<<<<<<<<<<<<<
|
|
* cdef void* back_buf = NULL
|
|
*
|
|
*/
|
|
__pyx_v_conv_buf = NULL;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":32
|
|
* cdef size_t msize, asize
|
|
* cdef void* conv_buf = NULL
|
|
* cdef void* back_buf = NULL # <<<<<<<<<<<<<<
|
|
*
|
|
* try:
|
|
*/
|
|
__pyx_v_back_buf = NULL;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":34
|
|
* cdef void* back_buf = NULL
|
|
*
|
|
* try: # <<<<<<<<<<<<<<
|
|
* atype = H5Aget_type(attr)
|
|
*
|
|
*/
|
|
/*try:*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":35
|
|
*
|
|
* try:
|
|
* atype = H5Aget_type(attr) # <<<<<<<<<<<<<<
|
|
*
|
|
* if not (needs_proxy(atype) or needs_proxy(mtype)):
|
|
*/
|
|
__pyx_t_1 = H5Aget_type(__pyx_v_attr); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_atype = __pyx_t_1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":37
|
|
* atype = H5Aget_type(attr)
|
|
*
|
|
* if not (needs_proxy(atype) or needs_proxy(mtype)): # <<<<<<<<<<<<<<
|
|
* if read:
|
|
* H5Aread(attr, mtype, progbuf)
|
|
*/
|
|
__pyx_t_2 = __pyx_f_4h5py_6_proxy_needs_proxy(__pyx_v_atype); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
if (!__pyx_t_2) {
|
|
__pyx_t_3 = __pyx_f_4h5py_6_proxy_needs_proxy(__pyx_v_mtype); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_t_4 = __pyx_t_3;
|
|
} else {
|
|
__pyx_t_4 = __pyx_t_2;
|
|
}
|
|
__pyx_t_5 = (!__pyx_t_4);
|
|
if (__pyx_t_5) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":38
|
|
*
|
|
* if not (needs_proxy(atype) or needs_proxy(mtype)):
|
|
* if read: # <<<<<<<<<<<<<<
|
|
* H5Aread(attr, mtype, progbuf)
|
|
* else:
|
|
*/
|
|
__pyx_t_6 = __pyx_v_read;
|
|
if (__pyx_t_6) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":39
|
|
* if not (needs_proxy(atype) or needs_proxy(mtype)):
|
|
* if read:
|
|
* H5Aread(attr, mtype, progbuf) # <<<<<<<<<<<<<<
|
|
* else:
|
|
* H5Awrite(attr, mtype, progbuf)
|
|
*/
|
|
__pyx_t_7 = H5Aread(__pyx_v_attr, __pyx_v_mtype, __pyx_v_progbuf); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
goto __pyx_L7;
|
|
}
|
|
/*else*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":41
|
|
* H5Aread(attr, mtype, progbuf)
|
|
* else:
|
|
* H5Awrite(attr, mtype, progbuf) # <<<<<<<<<<<<<<
|
|
*
|
|
* else:
|
|
*/
|
|
__pyx_t_7 = H5Awrite(__pyx_v_attr, __pyx_v_mtype, __pyx_v_progbuf); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
}
|
|
__pyx_L7:;
|
|
goto __pyx_L6;
|
|
}
|
|
/*else*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":45
|
|
* else:
|
|
*
|
|
* asize = H5Tget_size(atype) # <<<<<<<<<<<<<<
|
|
* msize = H5Tget_size(mtype)
|
|
* aspace = H5Aget_space(attr)
|
|
*/
|
|
__pyx_t_8 = H5Tget_size(__pyx_v_atype); if (unlikely(__pyx_t_8 == 0 && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_asize = __pyx_t_8;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":46
|
|
*
|
|
* asize = H5Tget_size(atype)
|
|
* msize = H5Tget_size(mtype) # <<<<<<<<<<<<<<
|
|
* aspace = H5Aget_space(attr)
|
|
* npoints = H5Sget_select_npoints(aspace)
|
|
*/
|
|
__pyx_t_8 = H5Tget_size(__pyx_v_mtype); if (unlikely(__pyx_t_8 == 0 && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_msize = __pyx_t_8;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":47
|
|
* asize = H5Tget_size(atype)
|
|
* msize = H5Tget_size(mtype)
|
|
* aspace = H5Aget_space(attr) # <<<<<<<<<<<<<<
|
|
* npoints = H5Sget_select_npoints(aspace)
|
|
*
|
|
*/
|
|
__pyx_t_1 = H5Aget_space(__pyx_v_attr); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_aspace = __pyx_t_1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":48
|
|
* msize = H5Tget_size(mtype)
|
|
* aspace = H5Aget_space(attr)
|
|
* npoints = H5Sget_select_npoints(aspace) # <<<<<<<<<<<<<<
|
|
*
|
|
* conv_buf = create_buffer(asize, msize, npoints)
|
|
*/
|
|
__pyx_t_9 = H5Sget_select_npoints(__pyx_v_aspace); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_npoints = __pyx_t_9;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":50
|
|
* npoints = H5Sget_select_npoints(aspace)
|
|
*
|
|
* conv_buf = create_buffer(asize, msize, npoints) # <<<<<<<<<<<<<<
|
|
*
|
|
* if read:
|
|
*/
|
|
__pyx_t_10 = __pyx_f_4h5py_6_proxy_create_buffer(__pyx_v_asize, __pyx_v_msize, __pyx_v_npoints); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_conv_buf = __pyx_t_10;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":52
|
|
* conv_buf = create_buffer(asize, msize, npoints)
|
|
*
|
|
* if read: # <<<<<<<<<<<<<<
|
|
* need_bkg = needs_bkg_buffer(atype, mtype)
|
|
* else:
|
|
*/
|
|
__pyx_t_6 = __pyx_v_read;
|
|
if (__pyx_t_6) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":53
|
|
*
|
|
* if read:
|
|
* need_bkg = needs_bkg_buffer(atype, mtype) # <<<<<<<<<<<<<<
|
|
* else:
|
|
* need_bkg = needs_bkg_buffer(mtype, atype)
|
|
*/
|
|
__pyx_t_2 = __pyx_f_4h5py_6_proxy_needs_bkg_buffer(__pyx_v_atype, __pyx_v_mtype); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_need_bkg = __pyx_t_2;
|
|
goto __pyx_L8;
|
|
}
|
|
/*else*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":55
|
|
* need_bkg = needs_bkg_buffer(atype, mtype)
|
|
* else:
|
|
* need_bkg = needs_bkg_buffer(mtype, atype) # <<<<<<<<<<<<<<
|
|
* if need_bkg:
|
|
* back_buf = malloc(msize*npoints)
|
|
*/
|
|
__pyx_t_2 = __pyx_f_4h5py_6_proxy_needs_bkg_buffer(__pyx_v_mtype, __pyx_v_atype); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_need_bkg = __pyx_t_2;
|
|
}
|
|
__pyx_L8:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":56
|
|
* else:
|
|
* need_bkg = needs_bkg_buffer(mtype, atype)
|
|
* if need_bkg: # <<<<<<<<<<<<<<
|
|
* back_buf = malloc(msize*npoints)
|
|
* memcpy(back_buf, progbuf, msize*npoints)
|
|
*/
|
|
__pyx_t_2 = __pyx_v_need_bkg;
|
|
if (__pyx_t_2) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":57
|
|
* need_bkg = needs_bkg_buffer(mtype, atype)
|
|
* if need_bkg:
|
|
* back_buf = malloc(msize*npoints) # <<<<<<<<<<<<<<
|
|
* memcpy(back_buf, progbuf, msize*npoints)
|
|
*
|
|
*/
|
|
__pyx_v_back_buf = malloc((__pyx_v_msize * __pyx_v_npoints));
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":58
|
|
* if need_bkg:
|
|
* back_buf = malloc(msize*npoints)
|
|
* memcpy(back_buf, progbuf, msize*npoints) # <<<<<<<<<<<<<<
|
|
*
|
|
* if read:
|
|
*/
|
|
memcpy(__pyx_v_back_buf, __pyx_v_progbuf, (__pyx_v_msize * __pyx_v_npoints));
|
|
goto __pyx_L9;
|
|
}
|
|
__pyx_L9:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":60
|
|
* memcpy(back_buf, progbuf, msize*npoints)
|
|
*
|
|
* if read: # <<<<<<<<<<<<<<
|
|
* H5Aread(attr, atype, conv_buf)
|
|
* H5Tconvert(atype, mtype, npoints, conv_buf, back_buf, H5P_DEFAULT)
|
|
*/
|
|
__pyx_t_6 = __pyx_v_read;
|
|
if (__pyx_t_6) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":61
|
|
*
|
|
* if read:
|
|
* H5Aread(attr, atype, conv_buf) # <<<<<<<<<<<<<<
|
|
* H5Tconvert(atype, mtype, npoints, conv_buf, back_buf, H5P_DEFAULT)
|
|
* memcpy(progbuf, conv_buf, msize*npoints)
|
|
*/
|
|
__pyx_t_7 = H5Aread(__pyx_v_attr, __pyx_v_atype, __pyx_v_conv_buf); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":62
|
|
* if read:
|
|
* H5Aread(attr, atype, conv_buf)
|
|
* H5Tconvert(atype, mtype, npoints, conv_buf, back_buf, H5P_DEFAULT) # <<<<<<<<<<<<<<
|
|
* memcpy(progbuf, conv_buf, msize*npoints)
|
|
* else:
|
|
*/
|
|
__pyx_t_7 = H5Tconvert(__pyx_v_atype, __pyx_v_mtype, __pyx_v_npoints, __pyx_v_conv_buf, __pyx_v_back_buf, H5P_DEFAULT); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":63
|
|
* H5Aread(attr, atype, conv_buf)
|
|
* H5Tconvert(atype, mtype, npoints, conv_buf, back_buf, H5P_DEFAULT)
|
|
* memcpy(progbuf, conv_buf, msize*npoints) # <<<<<<<<<<<<<<
|
|
* else:
|
|
* memcpy(conv_buf, progbuf, msize*npoints)
|
|
*/
|
|
memcpy(__pyx_v_progbuf, __pyx_v_conv_buf, (__pyx_v_msize * __pyx_v_npoints));
|
|
goto __pyx_L10;
|
|
}
|
|
/*else*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":65
|
|
* memcpy(progbuf, conv_buf, msize*npoints)
|
|
* else:
|
|
* memcpy(conv_buf, progbuf, msize*npoints) # <<<<<<<<<<<<<<
|
|
* H5Tconvert(mtype, atype, npoints, conv_buf, back_buf, H5P_DEFAULT)
|
|
* H5Awrite(attr, atype, conv_buf)
|
|
*/
|
|
memcpy(__pyx_v_conv_buf, __pyx_v_progbuf, (__pyx_v_msize * __pyx_v_npoints));
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":66
|
|
* else:
|
|
* memcpy(conv_buf, progbuf, msize*npoints)
|
|
* H5Tconvert(mtype, atype, npoints, conv_buf, back_buf, H5P_DEFAULT) # <<<<<<<<<<<<<<
|
|
* H5Awrite(attr, atype, conv_buf)
|
|
* finally:
|
|
*/
|
|
__pyx_t_7 = H5Tconvert(__pyx_v_mtype, __pyx_v_atype, __pyx_v_npoints, __pyx_v_conv_buf, __pyx_v_back_buf, H5P_DEFAULT); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":67
|
|
* memcpy(conv_buf, progbuf, msize*npoints)
|
|
* H5Tconvert(mtype, atype, npoints, conv_buf, back_buf, H5P_DEFAULT)
|
|
* H5Awrite(attr, atype, conv_buf) # <<<<<<<<<<<<<<
|
|
* finally:
|
|
* free(conv_buf)
|
|
*/
|
|
__pyx_t_7 = H5Awrite(__pyx_v_attr, __pyx_v_atype, __pyx_v_conv_buf); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
}
|
|
__pyx_L10:;
|
|
}
|
|
__pyx_L6:;
|
|
}
|
|
/*finally:*/ {
|
|
int __pyx_why;
|
|
PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
|
|
int __pyx_exc_lineno;
|
|
__pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
|
|
__pyx_why = 0; goto __pyx_L5;
|
|
__pyx_L4: {
|
|
__pyx_why = 4;
|
|
__Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
|
|
__pyx_exc_lineno = __pyx_lineno;
|
|
goto __pyx_L5;
|
|
}
|
|
__pyx_L5:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":69
|
|
* H5Awrite(attr, atype, conv_buf)
|
|
* finally:
|
|
* free(conv_buf) # <<<<<<<<<<<<<<
|
|
* free(back_buf)
|
|
* if atype > 0:
|
|
*/
|
|
free(__pyx_v_conv_buf);
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":70
|
|
* finally:
|
|
* free(conv_buf)
|
|
* free(back_buf) # <<<<<<<<<<<<<<
|
|
* if atype > 0:
|
|
* H5Tclose(atype)
|
|
*/
|
|
free(__pyx_v_back_buf);
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":71
|
|
* free(conv_buf)
|
|
* free(back_buf)
|
|
* if atype > 0: # <<<<<<<<<<<<<<
|
|
* H5Tclose(atype)
|
|
* if aspace > 0:
|
|
*/
|
|
__pyx_t_5 = (__pyx_v_atype > 0);
|
|
if (__pyx_t_5) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":72
|
|
* free(back_buf)
|
|
* if atype > 0:
|
|
* H5Tclose(atype) # <<<<<<<<<<<<<<
|
|
* if aspace > 0:
|
|
* H5Sclose(aspace)
|
|
*/
|
|
__pyx_t_7 = H5Tclose(__pyx_v_atype); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
|
|
goto __pyx_L12;
|
|
}
|
|
__pyx_L12:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":73
|
|
* if atype > 0:
|
|
* H5Tclose(atype)
|
|
* if aspace > 0: # <<<<<<<<<<<<<<
|
|
* H5Sclose(aspace)
|
|
*
|
|
*/
|
|
__pyx_t_5 = (__pyx_v_aspace > 0);
|
|
if (__pyx_t_5) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":74
|
|
* H5Tclose(atype)
|
|
* if aspace > 0:
|
|
* H5Sclose(aspace) # <<<<<<<<<<<<<<
|
|
*
|
|
* return 0
|
|
*/
|
|
__pyx_t_7 = H5Sclose(__pyx_v_aspace); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
|
|
goto __pyx_L13;
|
|
}
|
|
__pyx_L13:;
|
|
goto __pyx_L14;
|
|
__pyx_L11_error:;
|
|
if (__pyx_why == 4) {
|
|
Py_XDECREF(__pyx_exc_type);
|
|
Py_XDECREF(__pyx_exc_value);
|
|
Py_XDECREF(__pyx_exc_tb);
|
|
}
|
|
goto __pyx_L1_error;
|
|
__pyx_L14:;
|
|
switch (__pyx_why) {
|
|
case 4: {
|
|
__Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
|
|
__pyx_lineno = __pyx_exc_lineno;
|
|
__pyx_exc_type = 0;
|
|
__pyx_exc_value = 0;
|
|
__pyx_exc_tb = 0;
|
|
goto __pyx_L1_error;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":76
|
|
* H5Sclose(aspace)
|
|
*
|
|
* return 0 # <<<<<<<<<<<<<<
|
|
*
|
|
* # =============================================================================
|
|
*/
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
__pyx_L1_error:;
|
|
__Pyx_AddTraceback("h5py._proxy.attr_rw");
|
|
__pyx_r = -1;
|
|
__pyx_L0:;
|
|
__Pyx_RefNannyFinishContext();
|
|
return __pyx_r;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":81
|
|
* # Proxy functions to safely release the GIL around read/write operations
|
|
*
|
|
* cdef herr_t H5PY_H5Dread(hid_t dset, hid_t mtype, hid_t mspace, # <<<<<<<<<<<<<<
|
|
* hid_t fspace, hid_t dxpl, void* buf) except -1:
|
|
* cdef herr_t retval
|
|
*/
|
|
|
|
static herr_t __pyx_f_4h5py_6_proxy_H5PY_H5Dread(hid_t __pyx_v_dset, hid_t __pyx_v_mtype, hid_t __pyx_v_mspace, hid_t __pyx_v_fspace, hid_t __pyx_v_dxpl, void *__pyx_v_buf) {
|
|
herr_t __pyx_v_retval;
|
|
herr_t __pyx_r;
|
|
int __pyx_t_1;
|
|
__Pyx_RefNannySetupContext("H5PY_H5Dread");
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":84
|
|
* hid_t fspace, hid_t dxpl, void* buf) except -1:
|
|
* cdef herr_t retval
|
|
* with nogil: # <<<<<<<<<<<<<<
|
|
* retval = H5Dread(dset, mtype, mspace, fspace, dxpl, buf)
|
|
* if retval < 0:
|
|
*/
|
|
{ PyThreadState *_save;
|
|
Py_UNBLOCK_THREADS
|
|
/*try:*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":85
|
|
* cdef herr_t retval
|
|
* with nogil:
|
|
* retval = H5Dread(dset, mtype, mspace, fspace, dxpl, buf) # <<<<<<<<<<<<<<
|
|
* if retval < 0:
|
|
* return -1
|
|
*/
|
|
__pyx_v_retval = H5Dread(__pyx_v_dset, __pyx_v_mtype, __pyx_v_mspace, __pyx_v_fspace, __pyx_v_dxpl, __pyx_v_buf);
|
|
}
|
|
/*finally:*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":84
|
|
* hid_t fspace, hid_t dxpl, void* buf) except -1:
|
|
* cdef herr_t retval
|
|
* with nogil: # <<<<<<<<<<<<<<
|
|
* retval = H5Dread(dset, mtype, mspace, fspace, dxpl, buf)
|
|
* if retval < 0:
|
|
*/
|
|
Py_BLOCK_THREADS
|
|
}
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":86
|
|
* with nogil:
|
|
* retval = H5Dread(dset, mtype, mspace, fspace, dxpl, buf)
|
|
* if retval < 0: # <<<<<<<<<<<<<<
|
|
* return -1
|
|
* return retval
|
|
*/
|
|
__pyx_t_1 = (__pyx_v_retval < 0);
|
|
if (__pyx_t_1) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":87
|
|
* retval = H5Dread(dset, mtype, mspace, fspace, dxpl, buf)
|
|
* if retval < 0:
|
|
* return -1 # <<<<<<<<<<<<<<
|
|
* return retval
|
|
*
|
|
*/
|
|
__pyx_r = -1;
|
|
goto __pyx_L0;
|
|
goto __pyx_L6;
|
|
}
|
|
__pyx_L6:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":88
|
|
* if retval < 0:
|
|
* return -1
|
|
* return retval # <<<<<<<<<<<<<<
|
|
*
|
|
* cdef herr_t H5PY_H5Dwrite(hid_t dset, hid_t mtype, hid_t mspace,
|
|
*/
|
|
__pyx_r = __pyx_v_retval;
|
|
goto __pyx_L0;
|
|
|
|
__pyx_r = 0;
|
|
__pyx_L0:;
|
|
__Pyx_RefNannyFinishContext();
|
|
return __pyx_r;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":90
|
|
* return retval
|
|
*
|
|
* cdef herr_t H5PY_H5Dwrite(hid_t dset, hid_t mtype, hid_t mspace, # <<<<<<<<<<<<<<
|
|
* hid_t fspace, hid_t dxpl, void* buf) except -1:
|
|
* cdef herr_t retval
|
|
*/
|
|
|
|
static herr_t __pyx_f_4h5py_6_proxy_H5PY_H5Dwrite(hid_t __pyx_v_dset, hid_t __pyx_v_mtype, hid_t __pyx_v_mspace, hid_t __pyx_v_fspace, hid_t __pyx_v_dxpl, void *__pyx_v_buf) {
|
|
herr_t __pyx_v_retval;
|
|
herr_t __pyx_r;
|
|
int __pyx_t_1;
|
|
__Pyx_RefNannySetupContext("H5PY_H5Dwrite");
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":93
|
|
* hid_t fspace, hid_t dxpl, void* buf) except -1:
|
|
* cdef herr_t retval
|
|
* with nogil: # <<<<<<<<<<<<<<
|
|
* retval = H5Dwrite(dset, mtype, mspace, fspace, dxpl, buf)
|
|
* if retval < 0:
|
|
*/
|
|
{ PyThreadState *_save;
|
|
Py_UNBLOCK_THREADS
|
|
/*try:*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":94
|
|
* cdef herr_t retval
|
|
* with nogil:
|
|
* retval = H5Dwrite(dset, mtype, mspace, fspace, dxpl, buf) # <<<<<<<<<<<<<<
|
|
* if retval < 0:
|
|
* return -1
|
|
*/
|
|
__pyx_v_retval = H5Dwrite(__pyx_v_dset, __pyx_v_mtype, __pyx_v_mspace, __pyx_v_fspace, __pyx_v_dxpl, __pyx_v_buf);
|
|
}
|
|
/*finally:*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":93
|
|
* hid_t fspace, hid_t dxpl, void* buf) except -1:
|
|
* cdef herr_t retval
|
|
* with nogil: # <<<<<<<<<<<<<<
|
|
* retval = H5Dwrite(dset, mtype, mspace, fspace, dxpl, buf)
|
|
* if retval < 0:
|
|
*/
|
|
Py_BLOCK_THREADS
|
|
}
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":95
|
|
* with nogil:
|
|
* retval = H5Dwrite(dset, mtype, mspace, fspace, dxpl, buf)
|
|
* if retval < 0: # <<<<<<<<<<<<<<
|
|
* return -1
|
|
* return retval
|
|
*/
|
|
__pyx_t_1 = (__pyx_v_retval < 0);
|
|
if (__pyx_t_1) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":96
|
|
* retval = H5Dwrite(dset, mtype, mspace, fspace, dxpl, buf)
|
|
* if retval < 0:
|
|
* return -1 # <<<<<<<<<<<<<<
|
|
* return retval
|
|
*
|
|
*/
|
|
__pyx_r = -1;
|
|
goto __pyx_L0;
|
|
goto __pyx_L6;
|
|
}
|
|
__pyx_L6:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":97
|
|
* if retval < 0:
|
|
* return -1
|
|
* return retval # <<<<<<<<<<<<<<
|
|
*
|
|
* # =============================================================================
|
|
*/
|
|
__pyx_r = __pyx_v_retval;
|
|
goto __pyx_L0;
|
|
|
|
__pyx_r = 0;
|
|
__pyx_L0:;
|
|
__Pyx_RefNannyFinishContext();
|
|
return __pyx_r;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":102
|
|
* # Proxy for vlen buf workaround
|
|
*
|
|
* cdef herr_t dset_rw(hid_t dset, hid_t mtype, hid_t mspace, hid_t fspace, # <<<<<<<<<<<<<<
|
|
* hid_t dxpl, void* progbuf, int read) except -1:
|
|
*
|
|
*/
|
|
|
|
static herr_t __pyx_f_4h5py_6_proxy_dset_rw(hid_t __pyx_v_dset, hid_t __pyx_v_mtype, hid_t __pyx_v_mspace, hid_t __pyx_v_fspace, hid_t __pyx_v_dxpl, void *__pyx_v_progbuf, int __pyx_v_read) {
|
|
htri_t __pyx_v_need_bkg;
|
|
hid_t __pyx_v_dstype;
|
|
hid_t __pyx_v_dspace;
|
|
hid_t __pyx_v_cspace;
|
|
void *__pyx_v_back_buf;
|
|
void *__pyx_v_conv_buf;
|
|
hsize_t __pyx_v_npoints;
|
|
herr_t __pyx_r;
|
|
hid_t __pyx_t_1;
|
|
htri_t __pyx_t_2;
|
|
htri_t __pyx_t_3;
|
|
int __pyx_t_4;
|
|
int __pyx_t_5;
|
|
int __pyx_t_6;
|
|
herr_t __pyx_t_7;
|
|
int __pyx_t_8;
|
|
hssize_t __pyx_t_9;
|
|
size_t __pyx_t_10;
|
|
size_t __pyx_t_11;
|
|
void *__pyx_t_12;
|
|
__Pyx_RefNannySetupContext("dset_rw");
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":106
|
|
*
|
|
* cdef htri_t need_bkg
|
|
* cdef hid_t dstype = -1 # Dataset datatype # <<<<<<<<<<<<<<
|
|
* cdef hid_t dspace = -1 # Dataset dataspace
|
|
* cdef hid_t cspace = -1 # Temporary contiguous dataspaces
|
|
*/
|
|
__pyx_v_dstype = -1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":107
|
|
* cdef htri_t need_bkg
|
|
* cdef hid_t dstype = -1 # Dataset datatype
|
|
* cdef hid_t dspace = -1 # Dataset dataspace # <<<<<<<<<<<<<<
|
|
* cdef hid_t cspace = -1 # Temporary contiguous dataspaces
|
|
*
|
|
*/
|
|
__pyx_v_dspace = -1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":108
|
|
* cdef hid_t dstype = -1 # Dataset datatype
|
|
* cdef hid_t dspace = -1 # Dataset dataspace
|
|
* cdef hid_t cspace = -1 # Temporary contiguous dataspaces # <<<<<<<<<<<<<<
|
|
*
|
|
* cdef void* back_buf = NULL
|
|
*/
|
|
__pyx_v_cspace = -1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":110
|
|
* cdef hid_t cspace = -1 # Temporary contiguous dataspaces
|
|
*
|
|
* cdef void* back_buf = NULL # <<<<<<<<<<<<<<
|
|
* cdef void* conv_buf = NULL
|
|
* cdef hsize_t npoints
|
|
*/
|
|
__pyx_v_back_buf = NULL;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":111
|
|
*
|
|
* cdef void* back_buf = NULL
|
|
* cdef void* conv_buf = NULL # <<<<<<<<<<<<<<
|
|
* cdef hsize_t npoints
|
|
*
|
|
*/
|
|
__pyx_v_conv_buf = NULL;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":114
|
|
* cdef hsize_t npoints
|
|
*
|
|
* try: # <<<<<<<<<<<<<<
|
|
* dstype = H5Dget_type(dset)
|
|
*
|
|
*/
|
|
/*try:*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":115
|
|
*
|
|
* try:
|
|
* dstype = H5Dget_type(dset) # <<<<<<<<<<<<<<
|
|
*
|
|
* if not (needs_proxy(dstype) or needs_proxy(mtype)):
|
|
*/
|
|
__pyx_t_1 = H5Dget_type(__pyx_v_dset); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_dstype = __pyx_t_1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":117
|
|
* dstype = H5Dget_type(dset)
|
|
*
|
|
* if not (needs_proxy(dstype) or needs_proxy(mtype)): # <<<<<<<<<<<<<<
|
|
* if read:
|
|
* H5PY_H5Dread(dset, mtype, mspace, fspace, dxpl, progbuf)
|
|
*/
|
|
__pyx_t_2 = __pyx_f_4h5py_6_proxy_needs_proxy(__pyx_v_dstype); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
if (!__pyx_t_2) {
|
|
__pyx_t_3 = __pyx_f_4h5py_6_proxy_needs_proxy(__pyx_v_mtype); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_t_4 = __pyx_t_3;
|
|
} else {
|
|
__pyx_t_4 = __pyx_t_2;
|
|
}
|
|
__pyx_t_5 = (!__pyx_t_4);
|
|
if (__pyx_t_5) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":118
|
|
*
|
|
* if not (needs_proxy(dstype) or needs_proxy(mtype)):
|
|
* if read: # <<<<<<<<<<<<<<
|
|
* H5PY_H5Dread(dset, mtype, mspace, fspace, dxpl, progbuf)
|
|
* else:
|
|
*/
|
|
__pyx_t_6 = __pyx_v_read;
|
|
if (__pyx_t_6) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":119
|
|
* if not (needs_proxy(dstype) or needs_proxy(mtype)):
|
|
* if read:
|
|
* H5PY_H5Dread(dset, mtype, mspace, fspace, dxpl, progbuf) # <<<<<<<<<<<<<<
|
|
* else:
|
|
* H5PY_H5Dwrite(dset, mtype, mspace, fspace, dxpl, progbuf)
|
|
*/
|
|
__pyx_t_7 = __pyx_f_4h5py_6_proxy_H5PY_H5Dread(__pyx_v_dset, __pyx_v_mtype, __pyx_v_mspace, __pyx_v_fspace, __pyx_v_dxpl, __pyx_v_progbuf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
goto __pyx_L7;
|
|
}
|
|
/*else*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":121
|
|
* H5PY_H5Dread(dset, mtype, mspace, fspace, dxpl, progbuf)
|
|
* else:
|
|
* H5PY_H5Dwrite(dset, mtype, mspace, fspace, dxpl, progbuf) # <<<<<<<<<<<<<<
|
|
* else:
|
|
*
|
|
*/
|
|
__pyx_t_7 = __pyx_f_4h5py_6_proxy_H5PY_H5Dwrite(__pyx_v_dset, __pyx_v_mtype, __pyx_v_mspace, __pyx_v_fspace, __pyx_v_dxpl, __pyx_v_progbuf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
}
|
|
__pyx_L7:;
|
|
goto __pyx_L6;
|
|
}
|
|
/*else*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":124
|
|
* else:
|
|
*
|
|
* if mspace == H5S_ALL and fspace != H5S_ALL: # <<<<<<<<<<<<<<
|
|
* mspace = fspace
|
|
* elif mspace != H5S_ALL and fspace == H5S_ALL:
|
|
*/
|
|
__pyx_t_5 = (__pyx_v_mspace == H5S_ALL);
|
|
if (__pyx_t_5) {
|
|
__pyx_t_4 = (__pyx_v_fspace != H5S_ALL);
|
|
__pyx_t_8 = __pyx_t_4;
|
|
} else {
|
|
__pyx_t_8 = __pyx_t_5;
|
|
}
|
|
if (__pyx_t_8) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":125
|
|
*
|
|
* if mspace == H5S_ALL and fspace != H5S_ALL:
|
|
* mspace = fspace # <<<<<<<<<<<<<<
|
|
* elif mspace != H5S_ALL and fspace == H5S_ALL:
|
|
* fspace = mspace
|
|
*/
|
|
__pyx_v_mspace = __pyx_v_fspace;
|
|
goto __pyx_L8;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":126
|
|
* if mspace == H5S_ALL and fspace != H5S_ALL:
|
|
* mspace = fspace
|
|
* elif mspace != H5S_ALL and fspace == H5S_ALL: # <<<<<<<<<<<<<<
|
|
* fspace = mspace
|
|
* elif mspace == H5S_ALL and fspace == H5S_ALL:
|
|
*/
|
|
__pyx_t_8 = (__pyx_v_mspace != H5S_ALL);
|
|
if (__pyx_t_8) {
|
|
__pyx_t_5 = (__pyx_v_fspace == H5S_ALL);
|
|
__pyx_t_4 = __pyx_t_5;
|
|
} else {
|
|
__pyx_t_4 = __pyx_t_8;
|
|
}
|
|
if (__pyx_t_4) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":127
|
|
* mspace = fspace
|
|
* elif mspace != H5S_ALL and fspace == H5S_ALL:
|
|
* fspace = mspace # <<<<<<<<<<<<<<
|
|
* elif mspace == H5S_ALL and fspace == H5S_ALL:
|
|
* fspace = mspace = dspace = H5Dget_space(dset)
|
|
*/
|
|
__pyx_v_fspace = __pyx_v_mspace;
|
|
goto __pyx_L8;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":128
|
|
* elif mspace != H5S_ALL and fspace == H5S_ALL:
|
|
* fspace = mspace
|
|
* elif mspace == H5S_ALL and fspace == H5S_ALL: # <<<<<<<<<<<<<<
|
|
* fspace = mspace = dspace = H5Dget_space(dset)
|
|
*
|
|
*/
|
|
__pyx_t_4 = (__pyx_v_mspace == H5S_ALL);
|
|
if (__pyx_t_4) {
|
|
__pyx_t_8 = (__pyx_v_fspace == H5S_ALL);
|
|
__pyx_t_5 = __pyx_t_8;
|
|
} else {
|
|
__pyx_t_5 = __pyx_t_4;
|
|
}
|
|
if (__pyx_t_5) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":129
|
|
* fspace = mspace
|
|
* elif mspace == H5S_ALL and fspace == H5S_ALL:
|
|
* fspace = mspace = dspace = H5Dget_space(dset) # <<<<<<<<<<<<<<
|
|
*
|
|
* npoints = H5Sget_select_npoints(mspace)
|
|
*/
|
|
__pyx_t_1 = H5Dget_space(__pyx_v_dset); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_fspace = __pyx_t_1;
|
|
__pyx_v_mspace = __pyx_t_1;
|
|
__pyx_v_dspace = __pyx_t_1;
|
|
goto __pyx_L8;
|
|
}
|
|
__pyx_L8:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":131
|
|
* fspace = mspace = dspace = H5Dget_space(dset)
|
|
*
|
|
* npoints = H5Sget_select_npoints(mspace) # <<<<<<<<<<<<<<
|
|
* cspace = H5Screate_simple(1, &npoints, NULL)
|
|
*
|
|
*/
|
|
__pyx_t_9 = H5Sget_select_npoints(__pyx_v_mspace); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_npoints = __pyx_t_9;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":132
|
|
*
|
|
* npoints = H5Sget_select_npoints(mspace)
|
|
* cspace = H5Screate_simple(1, &npoints, NULL) # <<<<<<<<<<<<<<
|
|
*
|
|
* conv_buf = create_buffer(H5Tget_size(dstype), H5Tget_size(mtype), npoints)
|
|
*/
|
|
__pyx_t_1 = H5Screate_simple(1, (&__pyx_v_npoints), NULL); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_cspace = __pyx_t_1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":134
|
|
* cspace = H5Screate_simple(1, &npoints, NULL)
|
|
*
|
|
* conv_buf = create_buffer(H5Tget_size(dstype), H5Tget_size(mtype), npoints) # <<<<<<<<<<<<<<
|
|
*
|
|
* # Only create a (contiguous) backing buffer if absolutely
|
|
*/
|
|
__pyx_t_10 = H5Tget_size(__pyx_v_dstype); if (unlikely(__pyx_t_10 == 0 && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_t_11 = H5Tget_size(__pyx_v_mtype); if (unlikely(__pyx_t_11 == 0 && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_t_12 = __pyx_f_4h5py_6_proxy_create_buffer(__pyx_t_10, __pyx_t_11, __pyx_v_npoints); if (unlikely(__pyx_t_12 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_conv_buf = __pyx_t_12;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":138
|
|
* # Only create a (contiguous) backing buffer if absolutely
|
|
* # necessary. Note this buffer always has memory type.
|
|
* if read: # <<<<<<<<<<<<<<
|
|
* need_bkg = needs_bkg_buffer(dstype, mtype)
|
|
* else:
|
|
*/
|
|
__pyx_t_6 = __pyx_v_read;
|
|
if (__pyx_t_6) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":139
|
|
* # necessary. Note this buffer always has memory type.
|
|
* if read:
|
|
* need_bkg = needs_bkg_buffer(dstype, mtype) # <<<<<<<<<<<<<<
|
|
* else:
|
|
* need_bkg = needs_bkg_buffer(mtype, dstype)
|
|
*/
|
|
__pyx_t_2 = __pyx_f_4h5py_6_proxy_needs_bkg_buffer(__pyx_v_dstype, __pyx_v_mtype); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_need_bkg = __pyx_t_2;
|
|
goto __pyx_L9;
|
|
}
|
|
/*else*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":141
|
|
* need_bkg = needs_bkg_buffer(dstype, mtype)
|
|
* else:
|
|
* need_bkg = needs_bkg_buffer(mtype, dstype) # <<<<<<<<<<<<<<
|
|
* if need_bkg:
|
|
* back_buf = malloc(H5Tget_size(mtype)*npoints)
|
|
*/
|
|
__pyx_t_2 = __pyx_f_4h5py_6_proxy_needs_bkg_buffer(__pyx_v_mtype, __pyx_v_dstype); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_need_bkg = __pyx_t_2;
|
|
}
|
|
__pyx_L9:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":142
|
|
* else:
|
|
* need_bkg = needs_bkg_buffer(mtype, dstype)
|
|
* if need_bkg: # <<<<<<<<<<<<<<
|
|
* back_buf = malloc(H5Tget_size(mtype)*npoints)
|
|
* h5py_copy(mtype, mspace, back_buf, progbuf, H5PY_GATHER)
|
|
*/
|
|
__pyx_t_2 = __pyx_v_need_bkg;
|
|
if (__pyx_t_2) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":143
|
|
* need_bkg = needs_bkg_buffer(mtype, dstype)
|
|
* if need_bkg:
|
|
* back_buf = malloc(H5Tget_size(mtype)*npoints) # <<<<<<<<<<<<<<
|
|
* h5py_copy(mtype, mspace, back_buf, progbuf, H5PY_GATHER)
|
|
*
|
|
*/
|
|
__pyx_t_11 = H5Tget_size(__pyx_v_mtype); if (unlikely(__pyx_t_11 == 0 && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
__pyx_v_back_buf = malloc((__pyx_t_11 * __pyx_v_npoints));
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":144
|
|
* if need_bkg:
|
|
* back_buf = malloc(H5Tget_size(mtype)*npoints)
|
|
* h5py_copy(mtype, mspace, back_buf, progbuf, H5PY_GATHER) # <<<<<<<<<<<<<<
|
|
*
|
|
* if read:
|
|
*/
|
|
__pyx_t_7 = __pyx_f_4h5py_6_proxy_h5py_copy(__pyx_v_mtype, __pyx_v_mspace, __pyx_v_back_buf, __pyx_v_progbuf, __pyx_e_4h5py_6_proxy_H5PY_GATHER); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
goto __pyx_L10;
|
|
}
|
|
__pyx_L10:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":146
|
|
* h5py_copy(mtype, mspace, back_buf, progbuf, H5PY_GATHER)
|
|
*
|
|
* if read: # <<<<<<<<<<<<<<
|
|
* H5PY_H5Dread(dset, dstype, cspace, fspace, dxpl, conv_buf)
|
|
* H5Tconvert(dstype, mtype, npoints, conv_buf, back_buf, dxpl)
|
|
*/
|
|
__pyx_t_6 = __pyx_v_read;
|
|
if (__pyx_t_6) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":147
|
|
*
|
|
* if read:
|
|
* H5PY_H5Dread(dset, dstype, cspace, fspace, dxpl, conv_buf) # <<<<<<<<<<<<<<
|
|
* H5Tconvert(dstype, mtype, npoints, conv_buf, back_buf, dxpl)
|
|
* h5py_copy(mtype, mspace, conv_buf, progbuf, H5PY_SCATTER)
|
|
*/
|
|
__pyx_t_7 = __pyx_f_4h5py_6_proxy_H5PY_H5Dread(__pyx_v_dset, __pyx_v_dstype, __pyx_v_cspace, __pyx_v_fspace, __pyx_v_dxpl, __pyx_v_conv_buf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":148
|
|
* if read:
|
|
* H5PY_H5Dread(dset, dstype, cspace, fspace, dxpl, conv_buf)
|
|
* H5Tconvert(dstype, mtype, npoints, conv_buf, back_buf, dxpl) # <<<<<<<<<<<<<<
|
|
* h5py_copy(mtype, mspace, conv_buf, progbuf, H5PY_SCATTER)
|
|
* else:
|
|
*/
|
|
__pyx_t_7 = H5Tconvert(__pyx_v_dstype, __pyx_v_mtype, __pyx_v_npoints, __pyx_v_conv_buf, __pyx_v_back_buf, __pyx_v_dxpl); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":149
|
|
* H5PY_H5Dread(dset, dstype, cspace, fspace, dxpl, conv_buf)
|
|
* H5Tconvert(dstype, mtype, npoints, conv_buf, back_buf, dxpl)
|
|
* h5py_copy(mtype, mspace, conv_buf, progbuf, H5PY_SCATTER) # <<<<<<<<<<<<<<
|
|
* else:
|
|
* h5py_copy(mtype, mspace, conv_buf, progbuf, H5PY_GATHER)
|
|
*/
|
|
__pyx_t_7 = __pyx_f_4h5py_6_proxy_h5py_copy(__pyx_v_mtype, __pyx_v_mspace, __pyx_v_conv_buf, __pyx_v_progbuf, __pyx_e_4h5py_6_proxy_H5PY_SCATTER); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
goto __pyx_L11;
|
|
}
|
|
/*else*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":151
|
|
* h5py_copy(mtype, mspace, conv_buf, progbuf, H5PY_SCATTER)
|
|
* else:
|
|
* h5py_copy(mtype, mspace, conv_buf, progbuf, H5PY_GATHER) # <<<<<<<<<<<<<<
|
|
* H5Tconvert(mtype, dstype, npoints, conv_buf, back_buf, dxpl)
|
|
* H5PY_H5Dwrite(dset, dstype, cspace, fspace, dxpl, conv_buf)
|
|
*/
|
|
__pyx_t_7 = __pyx_f_4h5py_6_proxy_h5py_copy(__pyx_v_mtype, __pyx_v_mspace, __pyx_v_conv_buf, __pyx_v_progbuf, __pyx_e_4h5py_6_proxy_H5PY_GATHER); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":152
|
|
* else:
|
|
* h5py_copy(mtype, mspace, conv_buf, progbuf, H5PY_GATHER)
|
|
* H5Tconvert(mtype, dstype, npoints, conv_buf, back_buf, dxpl) # <<<<<<<<<<<<<<
|
|
* H5PY_H5Dwrite(dset, dstype, cspace, fspace, dxpl, conv_buf)
|
|
*
|
|
*/
|
|
__pyx_t_7 = H5Tconvert(__pyx_v_mtype, __pyx_v_dstype, __pyx_v_npoints, __pyx_v_conv_buf, __pyx_v_back_buf, __pyx_v_dxpl); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":153
|
|
* h5py_copy(mtype, mspace, conv_buf, progbuf, H5PY_GATHER)
|
|
* H5Tconvert(mtype, dstype, npoints, conv_buf, back_buf, dxpl)
|
|
* H5PY_H5Dwrite(dset, dstype, cspace, fspace, dxpl, conv_buf) # <<<<<<<<<<<<<<
|
|
*
|
|
* finally:
|
|
*/
|
|
__pyx_t_7 = __pyx_f_4h5py_6_proxy_H5PY_H5Dwrite(__pyx_v_dset, __pyx_v_dstype, __pyx_v_cspace, __pyx_v_fspace, __pyx_v_dxpl, __pyx_v_conv_buf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L4;}
|
|
}
|
|
__pyx_L11:;
|
|
}
|
|
__pyx_L6:;
|
|
}
|
|
/*finally:*/ {
|
|
int __pyx_why;
|
|
PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
|
|
int __pyx_exc_lineno;
|
|
__pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
|
|
__pyx_why = 0; goto __pyx_L5;
|
|
__pyx_L4: {
|
|
__pyx_why = 4;
|
|
__Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
|
|
__pyx_exc_lineno = __pyx_lineno;
|
|
goto __pyx_L5;
|
|
}
|
|
__pyx_L5:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":156
|
|
*
|
|
* finally:
|
|
* free(back_buf) # <<<<<<<<<<<<<<
|
|
* free(conv_buf)
|
|
* if dstype > 0:
|
|
*/
|
|
free(__pyx_v_back_buf);
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":157
|
|
* finally:
|
|
* free(back_buf)
|
|
* free(conv_buf) # <<<<<<<<<<<<<<
|
|
* if dstype > 0:
|
|
* H5Tclose(dstype)
|
|
*/
|
|
free(__pyx_v_conv_buf);
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":158
|
|
* free(back_buf)
|
|
* free(conv_buf)
|
|
* if dstype > 0: # <<<<<<<<<<<<<<
|
|
* H5Tclose(dstype)
|
|
* if dspace > 0:
|
|
*/
|
|
__pyx_t_5 = (__pyx_v_dstype > 0);
|
|
if (__pyx_t_5) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":159
|
|
* free(conv_buf)
|
|
* if dstype > 0:
|
|
* H5Tclose(dstype) # <<<<<<<<<<<<<<
|
|
* if dspace > 0:
|
|
* H5Sclose(dspace)
|
|
*/
|
|
__pyx_t_7 = H5Tclose(__pyx_v_dstype); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
|
|
goto __pyx_L13;
|
|
}
|
|
__pyx_L13:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":160
|
|
* if dstype > 0:
|
|
* H5Tclose(dstype)
|
|
* if dspace > 0: # <<<<<<<<<<<<<<
|
|
* H5Sclose(dspace)
|
|
* if cspace > 0:
|
|
*/
|
|
__pyx_t_5 = (__pyx_v_dspace > 0);
|
|
if (__pyx_t_5) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":161
|
|
* H5Tclose(dstype)
|
|
* if dspace > 0:
|
|
* H5Sclose(dspace) # <<<<<<<<<<<<<<
|
|
* if cspace > 0:
|
|
* H5Sclose(cspace)
|
|
*/
|
|
__pyx_t_7 = H5Sclose(__pyx_v_dspace); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
|
|
goto __pyx_L14;
|
|
}
|
|
__pyx_L14:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":162
|
|
* if dspace > 0:
|
|
* H5Sclose(dspace)
|
|
* if cspace > 0: # <<<<<<<<<<<<<<
|
|
* H5Sclose(cspace)
|
|
*
|
|
*/
|
|
__pyx_t_5 = (__pyx_v_cspace > 0);
|
|
if (__pyx_t_5) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":163
|
|
* H5Sclose(dspace)
|
|
* if cspace > 0:
|
|
* H5Sclose(cspace) # <<<<<<<<<<<<<<
|
|
*
|
|
* return 0
|
|
*/
|
|
__pyx_t_7 = H5Sclose(__pyx_v_cspace); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
|
|
goto __pyx_L15;
|
|
}
|
|
__pyx_L15:;
|
|
goto __pyx_L16;
|
|
__pyx_L12_error:;
|
|
if (__pyx_why == 4) {
|
|
Py_XDECREF(__pyx_exc_type);
|
|
Py_XDECREF(__pyx_exc_value);
|
|
Py_XDECREF(__pyx_exc_tb);
|
|
}
|
|
goto __pyx_L1_error;
|
|
__pyx_L16:;
|
|
switch (__pyx_why) {
|
|
case 4: {
|
|
__Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
|
|
__pyx_lineno = __pyx_exc_lineno;
|
|
__pyx_exc_type = 0;
|
|
__pyx_exc_value = 0;
|
|
__pyx_exc_tb = 0;
|
|
goto __pyx_L1_error;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":165
|
|
* H5Sclose(cspace)
|
|
*
|
|
* return 0 # <<<<<<<<<<<<<<
|
|
*
|
|
* cdef void* create_buffer(size_t ipt_size, size_t opt_size, size_t nl) except NULL:
|
|
*/
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
__pyx_L1_error:;
|
|
__Pyx_AddTraceback("h5py._proxy.dset_rw");
|
|
__pyx_r = -1;
|
|
__pyx_L0:;
|
|
__Pyx_RefNannyFinishContext();
|
|
return __pyx_r;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":167
|
|
* return 0
|
|
*
|
|
* cdef void* create_buffer(size_t ipt_size, size_t opt_size, size_t nl) except NULL: # <<<<<<<<<<<<<<
|
|
*
|
|
* cdef size_t final_size
|
|
*/
|
|
|
|
static void *__pyx_f_4h5py_6_proxy_create_buffer(size_t __pyx_v_ipt_size, size_t __pyx_v_opt_size, size_t __pyx_v_nl) {
|
|
size_t __pyx_v_final_size;
|
|
void *__pyx_v_buf;
|
|
void *__pyx_r;
|
|
int __pyx_t_1;
|
|
PyObject *__pyx_t_2 = NULL;
|
|
PyObject *__pyx_t_3 = NULL;
|
|
__Pyx_RefNannySetupContext("create_buffer");
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":172
|
|
* cdef void* buf
|
|
*
|
|
* if ipt_size >= opt_size: # <<<<<<<<<<<<<<
|
|
* final_size = ipt_size*nl
|
|
* else:
|
|
*/
|
|
__pyx_t_1 = (__pyx_v_ipt_size >= __pyx_v_opt_size);
|
|
if (__pyx_t_1) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":173
|
|
*
|
|
* if ipt_size >= opt_size:
|
|
* final_size = ipt_size*nl # <<<<<<<<<<<<<<
|
|
* else:
|
|
* final_size = opt_size*nl
|
|
*/
|
|
__pyx_v_final_size = (__pyx_v_ipt_size * __pyx_v_nl);
|
|
goto __pyx_L3;
|
|
}
|
|
/*else*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":175
|
|
* final_size = ipt_size*nl
|
|
* else:
|
|
* final_size = opt_size*nl # <<<<<<<<<<<<<<
|
|
*
|
|
* buf = malloc(final_size)
|
|
*/
|
|
__pyx_v_final_size = (__pyx_v_opt_size * __pyx_v_nl);
|
|
}
|
|
__pyx_L3:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":177
|
|
* final_size = opt_size*nl
|
|
*
|
|
* buf = malloc(final_size) # <<<<<<<<<<<<<<
|
|
* if buf == NULL:
|
|
* raise MemoryError("Failed to allocate conversion buffer")
|
|
*/
|
|
__pyx_v_buf = malloc(__pyx_v_final_size);
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":178
|
|
*
|
|
* buf = malloc(final_size)
|
|
* if buf == NULL: # <<<<<<<<<<<<<<
|
|
* raise MemoryError("Failed to allocate conversion buffer")
|
|
*
|
|
*/
|
|
__pyx_t_1 = (__pyx_v_buf == NULL);
|
|
if (__pyx_t_1) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":179
|
|
* buf = malloc(final_size)
|
|
* if buf == NULL:
|
|
* raise MemoryError("Failed to allocate conversion buffer") # <<<<<<<<<<<<<<
|
|
*
|
|
* return buf
|
|
*/
|
|
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__Pyx_GOTREF(__pyx_t_2);
|
|
__Pyx_INCREF(((PyObject *)__pyx_kp_s_1));
|
|
PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_s_1));
|
|
__Pyx_GIVEREF(((PyObject *)__pyx_kp_s_1));
|
|
__pyx_t_3 = PyObject_Call(__pyx_builtin_MemoryError, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__Pyx_GOTREF(__pyx_t_3);
|
|
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
|
__Pyx_Raise(__pyx_t_3, 0, 0);
|
|
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
|
|
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
goto __pyx_L4;
|
|
}
|
|
__pyx_L4:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":181
|
|
* raise MemoryError("Failed to allocate conversion buffer")
|
|
*
|
|
* return buf # <<<<<<<<<<<<<<
|
|
*
|
|
* # =============================================================================
|
|
*/
|
|
__pyx_r = __pyx_v_buf;
|
|
goto __pyx_L0;
|
|
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
__pyx_L1_error:;
|
|
__Pyx_XDECREF(__pyx_t_2);
|
|
__Pyx_XDECREF(__pyx_t_3);
|
|
__Pyx_AddTraceback("h5py._proxy.create_buffer");
|
|
__pyx_r = NULL;
|
|
__pyx_L0:;
|
|
__Pyx_RefNannyFinishContext();
|
|
return __pyx_r;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":191
|
|
* void* buf
|
|
*
|
|
* cdef herr_t h5py_scatter_cb(void* elem, hid_t type_id, unsigned ndim, # <<<<<<<<<<<<<<
|
|
* hsize_t *point, void *operator_data) except -1:
|
|
*
|
|
*/
|
|
|
|
static herr_t __pyx_f_4h5py_6_proxy_h5py_scatter_cb(void *__pyx_v_elem, hid_t __pyx_v_type_id, unsigned int __pyx_v_ndim, hsize_t *__pyx_v_point, void *__pyx_v_operator_data) {
|
|
__pyx_t_4h5py_6_proxy_h5py_scatter_t *__pyx_v_info;
|
|
herr_t __pyx_r;
|
|
__Pyx_RefNannySetupContext("h5py_scatter_cb");
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":194
|
|
* hsize_t *point, void *operator_data) except -1:
|
|
*
|
|
* cdef h5py_scatter_t* info = <h5py_scatter_t*>operator_data # <<<<<<<<<<<<<<
|
|
*
|
|
* memcpy(elem, (<char*>info[0].buf)+((info[0].i)*(info[0].elsize)),
|
|
*/
|
|
__pyx_v_info = ((__pyx_t_4h5py_6_proxy_h5py_scatter_t *)__pyx_v_operator_data);
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":197
|
|
*
|
|
* memcpy(elem, (<char*>info[0].buf)+((info[0].i)*(info[0].elsize)),
|
|
* info[0].elsize) # <<<<<<<<<<<<<<
|
|
*
|
|
* info[0].i += 1
|
|
*/
|
|
memcpy(__pyx_v_elem, (((char *)(__pyx_v_info[0]).buf) + ((__pyx_v_info[0]).i * (__pyx_v_info[0]).elsize)), (__pyx_v_info[0]).elsize);
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":199
|
|
* info[0].elsize)
|
|
*
|
|
* info[0].i += 1 # <<<<<<<<<<<<<<
|
|
*
|
|
* return 0
|
|
*/
|
|
(__pyx_v_info[0]).i += 1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":201
|
|
* info[0].i += 1
|
|
*
|
|
* return 0 # <<<<<<<<<<<<<<
|
|
*
|
|
* cdef herr_t h5py_gather_cb(void* elem, hid_t type_id, unsigned ndim,
|
|
*/
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
|
|
__pyx_r = 0;
|
|
__pyx_L0:;
|
|
__Pyx_RefNannyFinishContext();
|
|
return __pyx_r;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":203
|
|
* return 0
|
|
*
|
|
* cdef herr_t h5py_gather_cb(void* elem, hid_t type_id, unsigned ndim, # <<<<<<<<<<<<<<
|
|
* hsize_t *point, void *operator_data) except -1:
|
|
*
|
|
*/
|
|
|
|
static herr_t __pyx_f_4h5py_6_proxy_h5py_gather_cb(void *__pyx_v_elem, hid_t __pyx_v_type_id, unsigned int __pyx_v_ndim, hsize_t *__pyx_v_point, void *__pyx_v_operator_data) {
|
|
__pyx_t_4h5py_6_proxy_h5py_scatter_t *__pyx_v_info;
|
|
herr_t __pyx_r;
|
|
__Pyx_RefNannySetupContext("h5py_gather_cb");
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":206
|
|
* hsize_t *point, void *operator_data) except -1:
|
|
*
|
|
* cdef h5py_scatter_t* info = <h5py_scatter_t*>operator_data # <<<<<<<<<<<<<<
|
|
*
|
|
* memcpy((<char*>info[0].buf)+((info[0].i)*(info[0].elsize)), elem,
|
|
*/
|
|
__pyx_v_info = ((__pyx_t_4h5py_6_proxy_h5py_scatter_t *)__pyx_v_operator_data);
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":209
|
|
*
|
|
* memcpy((<char*>info[0].buf)+((info[0].i)*(info[0].elsize)), elem,
|
|
* info[0].elsize) # <<<<<<<<<<<<<<
|
|
*
|
|
* info[0].i += 1
|
|
*/
|
|
memcpy((((char *)(__pyx_v_info[0]).buf) + ((__pyx_v_info[0]).i * (__pyx_v_info[0]).elsize)), __pyx_v_elem, (__pyx_v_info[0]).elsize);
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":211
|
|
* info[0].elsize)
|
|
*
|
|
* info[0].i += 1 # <<<<<<<<<<<<<<
|
|
*
|
|
* return 0
|
|
*/
|
|
(__pyx_v_info[0]).i += 1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":213
|
|
* info[0].i += 1
|
|
*
|
|
* return 0 # <<<<<<<<<<<<<<
|
|
*
|
|
* # Copy between a contiguous and non-contiguous buffer, with the layout
|
|
*/
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
|
|
__pyx_r = 0;
|
|
__pyx_L0:;
|
|
__Pyx_RefNannyFinishContext();
|
|
return __pyx_r;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":217
|
|
* # Copy between a contiguous and non-contiguous buffer, with the layout
|
|
* # of the latter specified by a dataspace selection.
|
|
* cdef herr_t h5py_copy(hid_t tid, hid_t space, void* contig, void* noncontig, # <<<<<<<<<<<<<<
|
|
* copy_dir op) except -1:
|
|
*
|
|
*/
|
|
|
|
static herr_t __pyx_f_4h5py_6_proxy_h5py_copy(hid_t __pyx_v_tid, hid_t __pyx_v_space, void *__pyx_v_contig, void *__pyx_v_noncontig, enum __pyx_t_4h5py_6_proxy_copy_dir __pyx_v_op) {
|
|
__pyx_t_4h5py_6_proxy_h5py_scatter_t __pyx_v_info;
|
|
hsize_t __pyx_v_elsize;
|
|
herr_t __pyx_r;
|
|
size_t __pyx_t_1;
|
|
int __pyx_t_2;
|
|
herr_t __pyx_t_3;
|
|
PyObject *__pyx_t_4 = NULL;
|
|
PyObject *__pyx_t_5 = NULL;
|
|
__Pyx_RefNannySetupContext("h5py_copy");
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":223
|
|
* cdef hsize_t elsize
|
|
*
|
|
* elsize = H5Tget_size(tid) # <<<<<<<<<<<<<<
|
|
*
|
|
* info.i = 0
|
|
*/
|
|
__pyx_t_1 = H5Tget_size(__pyx_v_tid); if (unlikely(__pyx_t_1 == 0 && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__pyx_v_elsize = __pyx_t_1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":225
|
|
* elsize = H5Tget_size(tid)
|
|
*
|
|
* info.i = 0 # <<<<<<<<<<<<<<
|
|
* info.elsize = elsize
|
|
* info.buf = contig
|
|
*/
|
|
__pyx_v_info.i = 0;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":226
|
|
*
|
|
* info.i = 0
|
|
* info.elsize = elsize # <<<<<<<<<<<<<<
|
|
* info.buf = contig
|
|
*
|
|
*/
|
|
__pyx_v_info.elsize = __pyx_v_elsize;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":227
|
|
* info.i = 0
|
|
* info.elsize = elsize
|
|
* info.buf = contig # <<<<<<<<<<<<<<
|
|
*
|
|
* if op == H5PY_SCATTER:
|
|
*/
|
|
__pyx_v_info.buf = __pyx_v_contig;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":229
|
|
* info.buf = contig
|
|
*
|
|
* if op == H5PY_SCATTER: # <<<<<<<<<<<<<<
|
|
* H5Diterate(noncontig, tid, space, h5py_scatter_cb, &info)
|
|
* elif op == H5PY_GATHER:
|
|
*/
|
|
__pyx_t_2 = (__pyx_v_op == __pyx_e_4h5py_6_proxy_H5PY_SCATTER);
|
|
if (__pyx_t_2) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":230
|
|
*
|
|
* if op == H5PY_SCATTER:
|
|
* H5Diterate(noncontig, tid, space, h5py_scatter_cb, &info) # <<<<<<<<<<<<<<
|
|
* elif op == H5PY_GATHER:
|
|
* H5Diterate(noncontig, tid, space, h5py_gather_cb, &info)
|
|
*/
|
|
__pyx_t_3 = H5Diterate(__pyx_v_noncontig, __pyx_v_tid, __pyx_v_space, __pyx_f_4h5py_6_proxy_h5py_scatter_cb, (&__pyx_v_info)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
goto __pyx_L3;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":231
|
|
* if op == H5PY_SCATTER:
|
|
* H5Diterate(noncontig, tid, space, h5py_scatter_cb, &info)
|
|
* elif op == H5PY_GATHER: # <<<<<<<<<<<<<<
|
|
* H5Diterate(noncontig, tid, space, h5py_gather_cb, &info)
|
|
* else:
|
|
*/
|
|
__pyx_t_2 = (__pyx_v_op == __pyx_e_4h5py_6_proxy_H5PY_GATHER);
|
|
if (__pyx_t_2) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":232
|
|
* H5Diterate(noncontig, tid, space, h5py_scatter_cb, &info)
|
|
* elif op == H5PY_GATHER:
|
|
* H5Diterate(noncontig, tid, space, h5py_gather_cb, &info) # <<<<<<<<<<<<<<
|
|
* else:
|
|
* raise RuntimeError("Illegal direction")
|
|
*/
|
|
__pyx_t_3 = H5Diterate(__pyx_v_noncontig, __pyx_v_tid, __pyx_v_space, __pyx_f_4h5py_6_proxy_h5py_gather_cb, (&__pyx_v_info)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
goto __pyx_L3;
|
|
}
|
|
/*else*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":234
|
|
* H5Diterate(noncontig, tid, space, h5py_gather_cb, &info)
|
|
* else:
|
|
* raise RuntimeError("Illegal direction") # <<<<<<<<<<<<<<
|
|
*
|
|
* return 0
|
|
*/
|
|
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__Pyx_GOTREF(__pyx_t_4);
|
|
__Pyx_INCREF(((PyObject *)__pyx_kp_s_2));
|
|
PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_s_2));
|
|
__Pyx_GIVEREF(((PyObject *)__pyx_kp_s_2));
|
|
__pyx_t_5 = PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__Pyx_GOTREF(__pyx_t_5);
|
|
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
|
|
__Pyx_Raise(__pyx_t_5, 0, 0);
|
|
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
|
|
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
}
|
|
__pyx_L3:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":236
|
|
* raise RuntimeError("Illegal direction")
|
|
*
|
|
* return 0 # <<<<<<<<<<<<<<
|
|
*
|
|
* # =============================================================================
|
|
*/
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
__pyx_L1_error:;
|
|
__Pyx_XDECREF(__pyx_t_4);
|
|
__Pyx_XDECREF(__pyx_t_5);
|
|
__Pyx_AddTraceback("h5py._proxy.h5py_copy");
|
|
__pyx_r = -1;
|
|
__pyx_L0:;
|
|
__Pyx_RefNannyFinishContext();
|
|
return __pyx_r;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":241
|
|
* # VLEN support routines
|
|
*
|
|
* cdef htri_t needs_bkg_buffer(hid_t src, hid_t dst) except -1: # <<<<<<<<<<<<<<
|
|
*
|
|
* cdef H5T_cdata_t *info = NULL
|
|
*/
|
|
|
|
static htri_t __pyx_f_4h5py_6_proxy_needs_bkg_buffer(hid_t __pyx_v_src, hid_t __pyx_v_dst) {
|
|
H5T_cdata_t *__pyx_v_info;
|
|
htri_t __pyx_r;
|
|
htri_t __pyx_t_1;
|
|
htri_t __pyx_t_2;
|
|
int __pyx_t_3;
|
|
H5T_conv_t __pyx_t_4;
|
|
__Pyx_RefNannySetupContext("needs_bkg_buffer");
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":243
|
|
* cdef htri_t needs_bkg_buffer(hid_t src, hid_t dst) except -1:
|
|
*
|
|
* cdef H5T_cdata_t *info = NULL # <<<<<<<<<<<<<<
|
|
*
|
|
* if H5Tdetect_class(src, H5T_COMPOUND) or H5Tdetect_class(dst, H5T_COMPOUND):
|
|
*/
|
|
__pyx_v_info = NULL;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":245
|
|
* cdef H5T_cdata_t *info = NULL
|
|
*
|
|
* if H5Tdetect_class(src, H5T_COMPOUND) or H5Tdetect_class(dst, H5T_COMPOUND): # <<<<<<<<<<<<<<
|
|
* return 1
|
|
*
|
|
*/
|
|
__pyx_t_1 = H5Tdetect_class(__pyx_v_src, H5T_COMPOUND); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
if (!__pyx_t_1) {
|
|
__pyx_t_2 = H5Tdetect_class(__pyx_v_dst, H5T_COMPOUND); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__pyx_t_3 = __pyx_t_2;
|
|
} else {
|
|
__pyx_t_3 = __pyx_t_1;
|
|
}
|
|
if (__pyx_t_3) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":246
|
|
*
|
|
* if H5Tdetect_class(src, H5T_COMPOUND) or H5Tdetect_class(dst, H5T_COMPOUND):
|
|
* return 1 # <<<<<<<<<<<<<<
|
|
*
|
|
* H5Tfind(src, dst, &info)
|
|
*/
|
|
__pyx_r = 1;
|
|
goto __pyx_L0;
|
|
goto __pyx_L3;
|
|
}
|
|
__pyx_L3:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":248
|
|
* return 1
|
|
*
|
|
* H5Tfind(src, dst, &info) # <<<<<<<<<<<<<<
|
|
* if info[0].need_bkg == H5T_BKG_YES:
|
|
* return 1
|
|
*/
|
|
__pyx_t_4 = H5Tfind(__pyx_v_src, __pyx_v_dst, (&__pyx_v_info)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":249
|
|
*
|
|
* H5Tfind(src, dst, &info)
|
|
* if info[0].need_bkg == H5T_BKG_YES: # <<<<<<<<<<<<<<
|
|
* return 1
|
|
*
|
|
*/
|
|
__pyx_t_3 = ((__pyx_v_info[0]).need_bkg == H5T_BKG_YES);
|
|
if (__pyx_t_3) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":250
|
|
* H5Tfind(src, dst, &info)
|
|
* if info[0].need_bkg == H5T_BKG_YES:
|
|
* return 1 # <<<<<<<<<<<<<<
|
|
*
|
|
* return 0
|
|
*/
|
|
__pyx_r = 1;
|
|
goto __pyx_L0;
|
|
goto __pyx_L4;
|
|
}
|
|
__pyx_L4:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":252
|
|
* return 1
|
|
*
|
|
* return 0 # <<<<<<<<<<<<<<
|
|
*
|
|
* # Determine if the given type requires proxy buffering
|
|
*/
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
__pyx_L1_error:;
|
|
__Pyx_AddTraceback("h5py._proxy.needs_bkg_buffer");
|
|
__pyx_r = -1;
|
|
__pyx_L0:;
|
|
__Pyx_RefNannyFinishContext();
|
|
return __pyx_r;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":255
|
|
*
|
|
* # Determine if the given type requires proxy buffering
|
|
* cdef htri_t needs_proxy(hid_t tid) except -1: # <<<<<<<<<<<<<<
|
|
*
|
|
* cdef H5T_class_t cls
|
|
*/
|
|
|
|
static htri_t __pyx_f_4h5py_6_proxy_needs_proxy(hid_t __pyx_v_tid) {
|
|
enum H5T_class_t __pyx_v_cls;
|
|
hid_t __pyx_v_supertype;
|
|
int __pyx_v_i;
|
|
int __pyx_v_n;
|
|
htri_t __pyx_v_result;
|
|
htri_t __pyx_r;
|
|
enum H5T_class_t __pyx_t_1;
|
|
int __pyx_t_2;
|
|
int __pyx_t_3;
|
|
int __pyx_t_4;
|
|
htri_t __pyx_t_5;
|
|
hid_t __pyx_t_6;
|
|
herr_t __pyx_t_7;
|
|
int __pyx_t_8;
|
|
__Pyx_RefNannySetupContext("needs_proxy");
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":262
|
|
* cdef htri_t result
|
|
*
|
|
* cls = H5Tget_class(tid) # <<<<<<<<<<<<<<
|
|
*
|
|
* if cls == H5T_VLEN or cls == H5T_REFERENCE:
|
|
*/
|
|
__pyx_t_1 = H5Tget_class(__pyx_v_tid); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__pyx_v_cls = __pyx_t_1;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":264
|
|
* cls = H5Tget_class(tid)
|
|
*
|
|
* if cls == H5T_VLEN or cls == H5T_REFERENCE: # <<<<<<<<<<<<<<
|
|
* return 1
|
|
*
|
|
*/
|
|
__pyx_t_2 = (__pyx_v_cls == H5T_VLEN);
|
|
if (!__pyx_t_2) {
|
|
__pyx_t_3 = (__pyx_v_cls == H5T_REFERENCE);
|
|
__pyx_t_4 = __pyx_t_3;
|
|
} else {
|
|
__pyx_t_4 = __pyx_t_2;
|
|
}
|
|
if (__pyx_t_4) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":265
|
|
*
|
|
* if cls == H5T_VLEN or cls == H5T_REFERENCE:
|
|
* return 1 # <<<<<<<<<<<<<<
|
|
*
|
|
* elif cls == H5T_STRING:
|
|
*/
|
|
__pyx_r = 1;
|
|
goto __pyx_L0;
|
|
goto __pyx_L3;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":267
|
|
* return 1
|
|
*
|
|
* elif cls == H5T_STRING: # <<<<<<<<<<<<<<
|
|
* return H5Tis_variable_str(tid)
|
|
*
|
|
*/
|
|
__pyx_t_4 = (__pyx_v_cls == H5T_STRING);
|
|
if (__pyx_t_4) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":268
|
|
*
|
|
* elif cls == H5T_STRING:
|
|
* return H5Tis_variable_str(tid) # <<<<<<<<<<<<<<
|
|
*
|
|
* elif cls == H5T_ARRAY:
|
|
*/
|
|
__pyx_t_5 = H5Tis_variable_str(__pyx_v_tid); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__pyx_r = __pyx_t_5;
|
|
goto __pyx_L0;
|
|
goto __pyx_L3;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":270
|
|
* return H5Tis_variable_str(tid)
|
|
*
|
|
* elif cls == H5T_ARRAY: # <<<<<<<<<<<<<<
|
|
*
|
|
* supertype = H5Tget_super(tid)
|
|
*/
|
|
__pyx_t_4 = (__pyx_v_cls == H5T_ARRAY);
|
|
if (__pyx_t_4) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":272
|
|
* elif cls == H5T_ARRAY:
|
|
*
|
|
* supertype = H5Tget_super(tid) # <<<<<<<<<<<<<<
|
|
* try:
|
|
* return needs_proxy(supertype)
|
|
*/
|
|
__pyx_t_6 = H5Tget_super(__pyx_v_tid); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__pyx_v_supertype = __pyx_t_6;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":273
|
|
*
|
|
* supertype = H5Tget_super(tid)
|
|
* try: # <<<<<<<<<<<<<<
|
|
* return needs_proxy(supertype)
|
|
* finally:
|
|
*/
|
|
/*try:*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":274
|
|
* supertype = H5Tget_super(tid)
|
|
* try:
|
|
* return needs_proxy(supertype) # <<<<<<<<<<<<<<
|
|
* finally:
|
|
* H5Tclose(supertype)
|
|
*/
|
|
__pyx_t_5 = __pyx_f_4h5py_6_proxy_needs_proxy(__pyx_v_supertype); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L5;}
|
|
__pyx_r = __pyx_t_5;
|
|
goto __pyx_L4;
|
|
}
|
|
/*finally:*/ {
|
|
int __pyx_why;
|
|
PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
|
|
int __pyx_exc_lineno;
|
|
__pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
|
|
__pyx_why = 0; goto __pyx_L6;
|
|
__pyx_L4: __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
|
|
__pyx_why = 3; goto __pyx_L6;
|
|
__pyx_L5: {
|
|
__pyx_why = 4;
|
|
__Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
|
|
__pyx_exc_lineno = __pyx_lineno;
|
|
goto __pyx_L6;
|
|
}
|
|
__pyx_L6:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":276
|
|
* return needs_proxy(supertype)
|
|
* finally:
|
|
* H5Tclose(supertype) # <<<<<<<<<<<<<<
|
|
*
|
|
* elif cls == H5T_COMPOUND:
|
|
*/
|
|
__pyx_t_7 = H5Tclose(__pyx_v_supertype); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L7_error;}
|
|
goto __pyx_L8;
|
|
__pyx_L7_error:;
|
|
if (__pyx_why == 4) {
|
|
Py_XDECREF(__pyx_exc_type);
|
|
Py_XDECREF(__pyx_exc_value);
|
|
Py_XDECREF(__pyx_exc_tb);
|
|
}
|
|
goto __pyx_L1_error;
|
|
__pyx_L8:;
|
|
switch (__pyx_why) {
|
|
case 3: goto __pyx_L0;
|
|
case 4: {
|
|
__Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
|
|
__pyx_lineno = __pyx_exc_lineno;
|
|
__pyx_exc_type = 0;
|
|
__pyx_exc_value = 0;
|
|
__pyx_exc_tb = 0;
|
|
goto __pyx_L1_error;
|
|
}
|
|
}
|
|
}
|
|
goto __pyx_L3;
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":278
|
|
* H5Tclose(supertype)
|
|
*
|
|
* elif cls == H5T_COMPOUND: # <<<<<<<<<<<<<<
|
|
*
|
|
* n = H5Tget_nmembers(tid)
|
|
*/
|
|
__pyx_t_4 = (__pyx_v_cls == H5T_COMPOUND);
|
|
if (__pyx_t_4) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":280
|
|
* elif cls == H5T_COMPOUND:
|
|
*
|
|
* n = H5Tget_nmembers(tid) # <<<<<<<<<<<<<<
|
|
* for i from 0<=i<n:
|
|
* supertype = H5Tget_member_type(tid, i)
|
|
*/
|
|
__pyx_t_8 = H5Tget_nmembers(__pyx_v_tid); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__pyx_v_n = __pyx_t_8;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":281
|
|
*
|
|
* n = H5Tget_nmembers(tid)
|
|
* for i from 0<=i<n: # <<<<<<<<<<<<<<
|
|
* supertype = H5Tget_member_type(tid, i)
|
|
* try:
|
|
*/
|
|
__pyx_t_8 = __pyx_v_n;
|
|
for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_8; __pyx_v_i++) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":282
|
|
* n = H5Tget_nmembers(tid)
|
|
* for i from 0<=i<n:
|
|
* supertype = H5Tget_member_type(tid, i) # <<<<<<<<<<<<<<
|
|
* try:
|
|
* result = needs_proxy(supertype)
|
|
*/
|
|
__pyx_t_6 = H5Tget_member_type(__pyx_v_tid, __pyx_v_i); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__pyx_v_supertype = __pyx_t_6;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":283
|
|
* for i from 0<=i<n:
|
|
* supertype = H5Tget_member_type(tid, i)
|
|
* try: # <<<<<<<<<<<<<<
|
|
* result = needs_proxy(supertype)
|
|
* if result > 0:
|
|
*/
|
|
/*try:*/ {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":284
|
|
* supertype = H5Tget_member_type(tid, i)
|
|
* try:
|
|
* result = needs_proxy(supertype) # <<<<<<<<<<<<<<
|
|
* if result > 0:
|
|
* return 1
|
|
*/
|
|
__pyx_t_5 = __pyx_f_4h5py_6_proxy_needs_proxy(__pyx_v_supertype); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L14;}
|
|
__pyx_v_result = __pyx_t_5;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":285
|
|
* try:
|
|
* result = needs_proxy(supertype)
|
|
* if result > 0: # <<<<<<<<<<<<<<
|
|
* return 1
|
|
* finally:
|
|
*/
|
|
__pyx_t_4 = (__pyx_v_result > 0);
|
|
if (__pyx_t_4) {
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":286
|
|
* result = needs_proxy(supertype)
|
|
* if result > 0:
|
|
* return 1 # <<<<<<<<<<<<<<
|
|
* finally:
|
|
* H5Tclose(supertype)
|
|
*/
|
|
__pyx_r = 1;
|
|
goto __pyx_L13;
|
|
goto __pyx_L16;
|
|
}
|
|
__pyx_L16:;
|
|
}
|
|
/*finally:*/ {
|
|
int __pyx_why;
|
|
PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
|
|
int __pyx_exc_lineno;
|
|
__pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
|
|
__pyx_why = 0; goto __pyx_L15;
|
|
__pyx_L13: __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
|
|
__pyx_why = 3; goto __pyx_L15;
|
|
__pyx_L14: {
|
|
__pyx_why = 4;
|
|
__Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
|
|
__pyx_exc_lineno = __pyx_lineno;
|
|
goto __pyx_L15;
|
|
}
|
|
__pyx_L15:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":288
|
|
* return 1
|
|
* finally:
|
|
* H5Tclose(supertype) # <<<<<<<<<<<<<<
|
|
* return 0
|
|
*
|
|
*/
|
|
__pyx_t_7 = H5Tclose(__pyx_v_supertype); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
|
|
goto __pyx_L18;
|
|
__pyx_L17_error:;
|
|
if (__pyx_why == 4) {
|
|
Py_XDECREF(__pyx_exc_type);
|
|
Py_XDECREF(__pyx_exc_value);
|
|
Py_XDECREF(__pyx_exc_tb);
|
|
}
|
|
goto __pyx_L1_error;
|
|
__pyx_L18:;
|
|
switch (__pyx_why) {
|
|
case 3: goto __pyx_L0;
|
|
case 4: {
|
|
__Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
|
|
__pyx_lineno = __pyx_exc_lineno;
|
|
__pyx_exc_type = 0;
|
|
__pyx_exc_value = 0;
|
|
__pyx_exc_tb = 0;
|
|
goto __pyx_L1_error;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":289
|
|
* finally:
|
|
* H5Tclose(supertype)
|
|
* return 0 # <<<<<<<<<<<<<<
|
|
*
|
|
* return 0
|
|
*/
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
goto __pyx_L3;
|
|
}
|
|
__pyx_L3:;
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pyx":291
|
|
* return 0
|
|
*
|
|
* return 0 # <<<<<<<<<<<<<<
|
|
*/
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
|
|
__pyx_r = 0;
|
|
goto __pyx_L0;
|
|
__pyx_L1_error:;
|
|
__Pyx_AddTraceback("h5py._proxy.needs_proxy");
|
|
__pyx_r = -1;
|
|
__pyx_L0:;
|
|
__Pyx_RefNannyFinishContext();
|
|
return __pyx_r;
|
|
}
|
|
|
|
static struct PyMethodDef __pyx_methods[] = {
|
|
{0, 0, 0, 0}
|
|
};
|
|
|
|
static void __pyx_init_filenames(void); /*proto*/
|
|
|
|
#if PY_MAJOR_VERSION >= 3
|
|
static struct PyModuleDef __pyx_moduledef = {
|
|
PyModuleDef_HEAD_INIT,
|
|
__Pyx_NAMESTR("_proxy"),
|
|
__Pyx_DOCSTR(__pyx_k_3), /* m_doc */
|
|
-1, /* m_size */
|
|
__pyx_methods /* m_methods */,
|
|
NULL, /* m_reload */
|
|
NULL, /* m_traverse */
|
|
NULL, /* m_clear */
|
|
NULL /* m_free */
|
|
};
|
|
#endif
|
|
|
|
static __Pyx_StringTabEntry __pyx_string_tab[] = {
|
|
{&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0},
|
|
{&__pyx_kp_s_2, __pyx_k_2, sizeof(__pyx_k_2), 0, 0, 1, 0},
|
|
{&__pyx_n_s__MemoryError, __pyx_k__MemoryError, sizeof(__pyx_k__MemoryError), 0, 0, 1, 1},
|
|
{&__pyx_n_s__RuntimeError, __pyx_k__RuntimeError, sizeof(__pyx_k__RuntimeError), 0, 0, 1, 1},
|
|
{&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1},
|
|
{&__pyx_n_s__buf, __pyx_k__buf, sizeof(__pyx_k__buf), 0, 0, 1, 1},
|
|
{&__pyx_n_s__elsize, __pyx_k__elsize, sizeof(__pyx_k__elsize), 0, 0, 1, 1},
|
|
{&__pyx_n_s__i, __pyx_k__i, sizeof(__pyx_k__i), 0, 0, 1, 1},
|
|
{&__pyx_n_s__need_bkg, __pyx_k__need_bkg, sizeof(__pyx_k__need_bkg), 0, 0, 1, 1},
|
|
{0, 0, 0, 0, 0, 0, 0}
|
|
};
|
|
static int __Pyx_InitCachedBuiltins(void) {
|
|
__pyx_builtin_MemoryError = __Pyx_GetName(__pyx_b, __pyx_n_s__MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
__pyx_builtin_RuntimeError = __Pyx_GetName(__pyx_b, __pyx_n_s__RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
return 0;
|
|
__pyx_L1_error:;
|
|
return -1;
|
|
}
|
|
|
|
static int __Pyx_InitGlobals(void) {
|
|
if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
|
|
return 0;
|
|
__pyx_L1_error:;
|
|
return -1;
|
|
}
|
|
|
|
#if PY_MAJOR_VERSION < 3
|
|
PyMODINIT_FUNC init_proxy(void); /*proto*/
|
|
PyMODINIT_FUNC init_proxy(void)
|
|
#else
|
|
PyMODINIT_FUNC PyInit__proxy(void); /*proto*/
|
|
PyMODINIT_FUNC PyInit__proxy(void)
|
|
#endif
|
|
{
|
|
#if CYTHON_REFNANNY
|
|
void* __pyx_refnanny = NULL;
|
|
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
|
|
if (!__Pyx_RefNanny) {
|
|
PyErr_Clear();
|
|
__Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
|
|
if (!__Pyx_RefNanny)
|
|
Py_FatalError("failed to import 'refnanny' module");
|
|
}
|
|
__pyx_refnanny = __Pyx_RefNanny->SetupContext("PyMODINIT_FUNC PyInit__proxy(void)", __LINE__, __FILE__);
|
|
#endif
|
|
__pyx_init_filenames();
|
|
__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;}
|
|
#if PY_MAJOR_VERSION < 3
|
|
__pyx_empty_bytes = PyString_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
#else
|
|
__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;}
|
|
#endif
|
|
/*--- Library function declarations ---*/
|
|
/*--- Threads initialization code ---*/
|
|
#if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
|
|
#ifdef WITH_THREAD /* Python build with threading support? */
|
|
PyEval_InitThreads();
|
|
#endif
|
|
#endif
|
|
/*--- Module creation code ---*/
|
|
#if PY_MAJOR_VERSION < 3
|
|
__pyx_m = Py_InitModule4(__Pyx_NAMESTR("_proxy"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_3), 0, PYTHON_API_VERSION);
|
|
#else
|
|
__pyx_m = PyModule_Create(&__pyx_moduledef);
|
|
#endif
|
|
if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
|
|
#if PY_MAJOR_VERSION < 3
|
|
Py_INCREF(__pyx_m);
|
|
#endif
|
|
__pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME));
|
|
if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
|
|
if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
|
|
/*--- Initialize various global constants etc. ---*/
|
|
if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
if (__pyx_module_is_main_h5py___proxy) {
|
|
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;};
|
|
}
|
|
/*--- Builtin init code ---*/
|
|
if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
/*--- Global init code ---*/
|
|
/*--- Function export code ---*/
|
|
if (__Pyx_ExportFunction("attr_rw", (void (*)(void))__pyx_f_4h5py_6_proxy_attr_rw, "herr_t (hid_t, hid_t, void *, int)") < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
if (__Pyx_ExportFunction("dset_rw", (void (*)(void))__pyx_f_4h5py_6_proxy_dset_rw, "herr_t (hid_t, hid_t, hid_t, hid_t, hid_t, void *, int)") < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
|
|
/*--- Type init code ---*/
|
|
/*--- Type import code ---*/
|
|
/*--- Function import code ---*/
|
|
/*--- Execution code ---*/
|
|
|
|
/* "/home/tachyon/slave/unix-release/build/h5py/_proxy.pxd":1
|
|
* #+ # <<<<<<<<<<<<<<
|
|
* #
|
|
* # This file is part of h5py, a low-level Python interface to the HDF5 library.
|
|
*/
|
|
goto __pyx_L0;
|
|
__pyx_L1_error:;
|
|
if (__pyx_m) {
|
|
__Pyx_AddTraceback("init h5py._proxy");
|
|
Py_DECREF(__pyx_m); __pyx_m = 0;
|
|
} else if (!PyErr_Occurred()) {
|
|
PyErr_SetString(PyExc_ImportError, "init h5py._proxy");
|
|
}
|
|
__pyx_L0:;
|
|
__Pyx_RefNannyFinishContext();
|
|
#if PY_MAJOR_VERSION < 3
|
|
return;
|
|
#else
|
|
return __pyx_m;
|
|
#endif
|
|
}
|
|
|
|
static const char *__pyx_filenames[] = {
|
|
"_proxy.pyx",
|
|
};
|
|
|
|
/* Runtime support code */
|
|
|
|
static void __pyx_init_filenames(void) {
|
|
__pyx_f = __pyx_filenames;
|
|
}
|
|
|
|
static INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
|
|
PyObject *tmp_type, *tmp_value, *tmp_tb;
|
|
PyThreadState *tstate = PyThreadState_GET();
|
|
|
|
tmp_type = tstate->curexc_type;
|
|
tmp_value = tstate->curexc_value;
|
|
tmp_tb = tstate->curexc_traceback;
|
|
tstate->curexc_type = type;
|
|
tstate->curexc_value = value;
|
|
tstate->curexc_traceback = tb;
|
|
Py_XDECREF(tmp_type);
|
|
Py_XDECREF(tmp_value);
|
|
Py_XDECREF(tmp_tb);
|
|
}
|
|
|
|
static INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
|
|
PyThreadState *tstate = PyThreadState_GET();
|
|
*type = tstate->curexc_type;
|
|
*value = tstate->curexc_value;
|
|
*tb = tstate->curexc_traceback;
|
|
|
|
tstate->curexc_type = 0;
|
|
tstate->curexc_value = 0;
|
|
tstate->curexc_traceback = 0;
|
|
}
|
|
|
|
|
|
static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
|
|
PyObject *result;
|
|
result = PyObject_GetAttr(dict, name);
|
|
if (!result)
|
|
PyErr_SetObject(PyExc_NameError, name);
|
|
return result;
|
|
}
|
|
|
|
#if PY_MAJOR_VERSION < 3
|
|
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
|
|
Py_XINCREF(type);
|
|
Py_XINCREF(value);
|
|
Py_XINCREF(tb);
|
|
/* First, check the traceback argument, replacing None with NULL. */
|
|
if (tb == Py_None) {
|
|
Py_DECREF(tb);
|
|
tb = 0;
|
|
}
|
|
else if (tb != NULL && !PyTraceBack_Check(tb)) {
|
|
PyErr_SetString(PyExc_TypeError,
|
|
"raise: arg 3 must be a traceback or None");
|
|
goto raise_error;
|
|
}
|
|
/* Next, replace a missing value with None */
|
|
if (value == NULL) {
|
|
value = Py_None;
|
|
Py_INCREF(value);
|
|
}
|
|
#if PY_VERSION_HEX < 0x02050000
|
|
if (!PyClass_Check(type))
|
|
#else
|
|
if (!PyType_Check(type))
|
|
#endif
|
|
{
|
|
/* Raising an instance. The value should be a dummy. */
|
|
if (value != Py_None) {
|
|
PyErr_SetString(PyExc_TypeError,
|
|
"instance exception may not have a separate value");
|
|
goto raise_error;
|
|
}
|
|
/* Normalize to raise <class>, <instance> */
|
|
Py_DECREF(value);
|
|
value = type;
|
|
#if PY_VERSION_HEX < 0x02050000
|
|
if (PyInstance_Check(type)) {
|
|
type = (PyObject*) ((PyInstanceObject*)type)->in_class;
|
|
Py_INCREF(type);
|
|
}
|
|
else {
|
|
type = 0;
|
|
PyErr_SetString(PyExc_TypeError,
|
|
"raise: exception must be an old-style class or instance");
|
|
goto raise_error;
|
|
}
|
|
#else
|
|
type = (PyObject*) Py_TYPE(type);
|
|
Py_INCREF(type);
|
|
if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
|
|
PyErr_SetString(PyExc_TypeError,
|
|
"raise: exception class must be a subclass of BaseException");
|
|
goto raise_error;
|
|
}
|
|
#endif
|
|
}
|
|
|
|
__Pyx_ErrRestore(type, value, tb);
|
|
return;
|
|
raise_error:
|
|
Py_XDECREF(value);
|
|
Py_XDECREF(type);
|
|
Py_XDECREF(tb);
|
|
return;
|
|
}
|
|
|
|
#else /* Python 3+ */
|
|
|
|
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
|
|
if (tb == Py_None) {
|
|
tb = 0;
|
|
} else if (tb && !PyTraceBack_Check(tb)) {
|
|
PyErr_SetString(PyExc_TypeError,
|
|
"raise: arg 3 must be a traceback or None");
|
|
goto bad;
|
|
}
|
|
if (value == Py_None)
|
|
value = 0;
|
|
|
|
if (PyExceptionInstance_Check(type)) {
|
|
if (value) {
|
|
PyErr_SetString(PyExc_TypeError,
|
|
"instance exception may not have a separate value");
|
|
goto bad;
|
|
}
|
|
value = type;
|
|
type = (PyObject*) Py_TYPE(value);
|
|
} else if (!PyExceptionClass_Check(type)) {
|
|
PyErr_SetString(PyExc_TypeError,
|
|
"raise: exception class must be a subclass of BaseException");
|
|
goto bad;
|
|
}
|
|
|
|
PyErr_SetObject(type, value);
|
|
|
|
if (tb) {
|
|
PyThreadState *tstate = PyThreadState_GET();
|
|
PyObject* tmp_tb = tstate->curexc_traceback;
|
|
if (tb != tmp_tb) {
|
|
Py_INCREF(tb);
|
|
tstate->curexc_traceback = tb;
|
|
Py_XDECREF(tmp_tb);
|
|
}
|
|
}
|
|
|
|
bad:
|
|
return;
|
|
}
|
|
#endif
|
|
|
|
static INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) {
|
|
const unsigned char neg_one = (unsigned char)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
if (sizeof(unsigned char) < sizeof(long)) {
|
|
long val = __Pyx_PyInt_AsLong(x);
|
|
if (unlikely(val != (long)(unsigned char)val)) {
|
|
if (!unlikely(val == -1 && PyErr_Occurred())) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
(is_unsigned && unlikely(val < 0)) ?
|
|
"can't convert negative value to unsigned char" :
|
|
"value too large to convert to unsigned char");
|
|
}
|
|
return (unsigned char)-1;
|
|
}
|
|
return (unsigned char)val;
|
|
}
|
|
return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x);
|
|
}
|
|
|
|
static INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) {
|
|
const unsigned short neg_one = (unsigned short)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
if (sizeof(unsigned short) < sizeof(long)) {
|
|
long val = __Pyx_PyInt_AsLong(x);
|
|
if (unlikely(val != (long)(unsigned short)val)) {
|
|
if (!unlikely(val == -1 && PyErr_Occurred())) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
(is_unsigned && unlikely(val < 0)) ?
|
|
"can't convert negative value to unsigned short" :
|
|
"value too large to convert to unsigned short");
|
|
}
|
|
return (unsigned short)-1;
|
|
}
|
|
return (unsigned short)val;
|
|
}
|
|
return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x);
|
|
}
|
|
|
|
static INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) {
|
|
const unsigned int neg_one = (unsigned int)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
if (sizeof(unsigned int) < sizeof(long)) {
|
|
long val = __Pyx_PyInt_AsLong(x);
|
|
if (unlikely(val != (long)(unsigned int)val)) {
|
|
if (!unlikely(val == -1 && PyErr_Occurred())) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
(is_unsigned && unlikely(val < 0)) ?
|
|
"can't convert negative value to unsigned int" :
|
|
"value too large to convert to unsigned int");
|
|
}
|
|
return (unsigned int)-1;
|
|
}
|
|
return (unsigned int)val;
|
|
}
|
|
return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x);
|
|
}
|
|
|
|
static INLINE char __Pyx_PyInt_AsChar(PyObject* x) {
|
|
const char neg_one = (char)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
if (sizeof(char) < sizeof(long)) {
|
|
long val = __Pyx_PyInt_AsLong(x);
|
|
if (unlikely(val != (long)(char)val)) {
|
|
if (!unlikely(val == -1 && PyErr_Occurred())) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
(is_unsigned && unlikely(val < 0)) ?
|
|
"can't convert negative value to char" :
|
|
"value too large to convert to char");
|
|
}
|
|
return (char)-1;
|
|
}
|
|
return (char)val;
|
|
}
|
|
return (char)__Pyx_PyInt_AsLong(x);
|
|
}
|
|
|
|
static INLINE short __Pyx_PyInt_AsShort(PyObject* x) {
|
|
const short neg_one = (short)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
if (sizeof(short) < sizeof(long)) {
|
|
long val = __Pyx_PyInt_AsLong(x);
|
|
if (unlikely(val != (long)(short)val)) {
|
|
if (!unlikely(val == -1 && PyErr_Occurred())) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
(is_unsigned && unlikely(val < 0)) ?
|
|
"can't convert negative value to short" :
|
|
"value too large to convert to short");
|
|
}
|
|
return (short)-1;
|
|
}
|
|
return (short)val;
|
|
}
|
|
return (short)__Pyx_PyInt_AsLong(x);
|
|
}
|
|
|
|
static INLINE int __Pyx_PyInt_AsInt(PyObject* x) {
|
|
const int neg_one = (int)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
if (sizeof(int) < sizeof(long)) {
|
|
long val = __Pyx_PyInt_AsLong(x);
|
|
if (unlikely(val != (long)(int)val)) {
|
|
if (!unlikely(val == -1 && PyErr_Occurred())) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
(is_unsigned && unlikely(val < 0)) ?
|
|
"can't convert negative value to int" :
|
|
"value too large to convert to int");
|
|
}
|
|
return (int)-1;
|
|
}
|
|
return (int)val;
|
|
}
|
|
return (int)__Pyx_PyInt_AsLong(x);
|
|
}
|
|
|
|
static INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) {
|
|
const signed char neg_one = (signed char)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
if (sizeof(signed char) < sizeof(long)) {
|
|
long val = __Pyx_PyInt_AsLong(x);
|
|
if (unlikely(val != (long)(signed char)val)) {
|
|
if (!unlikely(val == -1 && PyErr_Occurred())) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
(is_unsigned && unlikely(val < 0)) ?
|
|
"can't convert negative value to signed char" :
|
|
"value too large to convert to signed char");
|
|
}
|
|
return (signed char)-1;
|
|
}
|
|
return (signed char)val;
|
|
}
|
|
return (signed char)__Pyx_PyInt_AsSignedLong(x);
|
|
}
|
|
|
|
static INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) {
|
|
const signed short neg_one = (signed short)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
if (sizeof(signed short) < sizeof(long)) {
|
|
long val = __Pyx_PyInt_AsLong(x);
|
|
if (unlikely(val != (long)(signed short)val)) {
|
|
if (!unlikely(val == -1 && PyErr_Occurred())) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
(is_unsigned && unlikely(val < 0)) ?
|
|
"can't convert negative value to signed short" :
|
|
"value too large to convert to signed short");
|
|
}
|
|
return (signed short)-1;
|
|
}
|
|
return (signed short)val;
|
|
}
|
|
return (signed short)__Pyx_PyInt_AsSignedLong(x);
|
|
}
|
|
|
|
static INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) {
|
|
const signed int neg_one = (signed int)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
if (sizeof(signed int) < sizeof(long)) {
|
|
long val = __Pyx_PyInt_AsLong(x);
|
|
if (unlikely(val != (long)(signed int)val)) {
|
|
if (!unlikely(val == -1 && PyErr_Occurred())) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
(is_unsigned && unlikely(val < 0)) ?
|
|
"can't convert negative value to signed int" :
|
|
"value too large to convert to signed int");
|
|
}
|
|
return (signed int)-1;
|
|
}
|
|
return (signed int)val;
|
|
}
|
|
return (signed int)__Pyx_PyInt_AsSignedLong(x);
|
|
}
|
|
|
|
static INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) {
|
|
const unsigned long neg_one = (unsigned long)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
#if PY_VERSION_HEX < 0x03000000
|
|
if (likely(PyInt_Check(x))) {
|
|
long val = PyInt_AS_LONG(x);
|
|
if (is_unsigned && unlikely(val < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to unsigned long");
|
|
return (unsigned long)-1;
|
|
}
|
|
return (unsigned long)val;
|
|
} else
|
|
#endif
|
|
if (likely(PyLong_Check(x))) {
|
|
if (is_unsigned) {
|
|
if (unlikely(Py_SIZE(x) < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to unsigned long");
|
|
return (unsigned long)-1;
|
|
}
|
|
return PyLong_AsUnsignedLong(x);
|
|
} else {
|
|
return PyLong_AsLong(x);
|
|
}
|
|
} else {
|
|
unsigned long val;
|
|
PyObject *tmp = __Pyx_PyNumber_Int(x);
|
|
if (!tmp) return (unsigned long)-1;
|
|
val = __Pyx_PyInt_AsUnsignedLong(tmp);
|
|
Py_DECREF(tmp);
|
|
return val;
|
|
}
|
|
}
|
|
|
|
static INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) {
|
|
const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
#if PY_VERSION_HEX < 0x03000000
|
|
if (likely(PyInt_Check(x))) {
|
|
long val = PyInt_AS_LONG(x);
|
|
if (is_unsigned && unlikely(val < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to unsigned PY_LONG_LONG");
|
|
return (unsigned PY_LONG_LONG)-1;
|
|
}
|
|
return (unsigned PY_LONG_LONG)val;
|
|
} else
|
|
#endif
|
|
if (likely(PyLong_Check(x))) {
|
|
if (is_unsigned) {
|
|
if (unlikely(Py_SIZE(x) < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to unsigned PY_LONG_LONG");
|
|
return (unsigned PY_LONG_LONG)-1;
|
|
}
|
|
return PyLong_AsUnsignedLongLong(x);
|
|
} else {
|
|
return PyLong_AsLongLong(x);
|
|
}
|
|
} else {
|
|
unsigned PY_LONG_LONG val;
|
|
PyObject *tmp = __Pyx_PyNumber_Int(x);
|
|
if (!tmp) return (unsigned PY_LONG_LONG)-1;
|
|
val = __Pyx_PyInt_AsUnsignedLongLong(tmp);
|
|
Py_DECREF(tmp);
|
|
return val;
|
|
}
|
|
}
|
|
|
|
static INLINE long __Pyx_PyInt_AsLong(PyObject* x) {
|
|
const long neg_one = (long)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
#if PY_VERSION_HEX < 0x03000000
|
|
if (likely(PyInt_Check(x))) {
|
|
long val = PyInt_AS_LONG(x);
|
|
if (is_unsigned && unlikely(val < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to long");
|
|
return (long)-1;
|
|
}
|
|
return (long)val;
|
|
} else
|
|
#endif
|
|
if (likely(PyLong_Check(x))) {
|
|
if (is_unsigned) {
|
|
if (unlikely(Py_SIZE(x) < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to long");
|
|
return (long)-1;
|
|
}
|
|
return PyLong_AsUnsignedLong(x);
|
|
} else {
|
|
return PyLong_AsLong(x);
|
|
}
|
|
} else {
|
|
long val;
|
|
PyObject *tmp = __Pyx_PyNumber_Int(x);
|
|
if (!tmp) return (long)-1;
|
|
val = __Pyx_PyInt_AsLong(tmp);
|
|
Py_DECREF(tmp);
|
|
return val;
|
|
}
|
|
}
|
|
|
|
static INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) {
|
|
const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
#if PY_VERSION_HEX < 0x03000000
|
|
if (likely(PyInt_Check(x))) {
|
|
long val = PyInt_AS_LONG(x);
|
|
if (is_unsigned && unlikely(val < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to PY_LONG_LONG");
|
|
return (PY_LONG_LONG)-1;
|
|
}
|
|
return (PY_LONG_LONG)val;
|
|
} else
|
|
#endif
|
|
if (likely(PyLong_Check(x))) {
|
|
if (is_unsigned) {
|
|
if (unlikely(Py_SIZE(x) < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to PY_LONG_LONG");
|
|
return (PY_LONG_LONG)-1;
|
|
}
|
|
return PyLong_AsUnsignedLongLong(x);
|
|
} else {
|
|
return PyLong_AsLongLong(x);
|
|
}
|
|
} else {
|
|
PY_LONG_LONG val;
|
|
PyObject *tmp = __Pyx_PyNumber_Int(x);
|
|
if (!tmp) return (PY_LONG_LONG)-1;
|
|
val = __Pyx_PyInt_AsLongLong(tmp);
|
|
Py_DECREF(tmp);
|
|
return val;
|
|
}
|
|
}
|
|
|
|
static INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) {
|
|
const signed long neg_one = (signed long)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
#if PY_VERSION_HEX < 0x03000000
|
|
if (likely(PyInt_Check(x))) {
|
|
long val = PyInt_AS_LONG(x);
|
|
if (is_unsigned && unlikely(val < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to signed long");
|
|
return (signed long)-1;
|
|
}
|
|
return (signed long)val;
|
|
} else
|
|
#endif
|
|
if (likely(PyLong_Check(x))) {
|
|
if (is_unsigned) {
|
|
if (unlikely(Py_SIZE(x) < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to signed long");
|
|
return (signed long)-1;
|
|
}
|
|
return PyLong_AsUnsignedLong(x);
|
|
} else {
|
|
return PyLong_AsLong(x);
|
|
}
|
|
} else {
|
|
signed long val;
|
|
PyObject *tmp = __Pyx_PyNumber_Int(x);
|
|
if (!tmp) return (signed long)-1;
|
|
val = __Pyx_PyInt_AsSignedLong(tmp);
|
|
Py_DECREF(tmp);
|
|
return val;
|
|
}
|
|
}
|
|
|
|
static INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) {
|
|
const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0;
|
|
const int is_unsigned = neg_one > const_zero;
|
|
#if PY_VERSION_HEX < 0x03000000
|
|
if (likely(PyInt_Check(x))) {
|
|
long val = PyInt_AS_LONG(x);
|
|
if (is_unsigned && unlikely(val < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to signed PY_LONG_LONG");
|
|
return (signed PY_LONG_LONG)-1;
|
|
}
|
|
return (signed PY_LONG_LONG)val;
|
|
} else
|
|
#endif
|
|
if (likely(PyLong_Check(x))) {
|
|
if (is_unsigned) {
|
|
if (unlikely(Py_SIZE(x) < 0)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"can't convert negative value to signed PY_LONG_LONG");
|
|
return (signed PY_LONG_LONG)-1;
|
|
}
|
|
return PyLong_AsUnsignedLongLong(x);
|
|
} else {
|
|
return PyLong_AsLongLong(x);
|
|
}
|
|
} else {
|
|
signed PY_LONG_LONG val;
|
|
PyObject *tmp = __Pyx_PyNumber_Int(x);
|
|
if (!tmp) return (signed PY_LONG_LONG)-1;
|
|
val = __Pyx_PyInt_AsSignedLongLong(tmp);
|
|
Py_DECREF(tmp);
|
|
return val;
|
|
}
|
|
}
|
|
|
|
static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) {
|
|
PyObject *d = 0;
|
|
PyObject *cobj = 0;
|
|
union {
|
|
void (*fp)(void);
|
|
void *p;
|
|
} tmp;
|
|
|
|
d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__");
|
|
if (!d) {
|
|
PyErr_Clear();
|
|
d = PyDict_New();
|
|
if (!d)
|
|
goto bad;
|
|
Py_INCREF(d);
|
|
if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0)
|
|
goto bad;
|
|
}
|
|
tmp.fp = f;
|
|
#if PY_VERSION_HEX < 0x03010000
|
|
cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0);
|
|
#else
|
|
cobj = PyCapsule_New(tmp.p, sig, 0);
|
|
#endif
|
|
if (!cobj)
|
|
goto bad;
|
|
if (PyDict_SetItemString(d, name, cobj) < 0)
|
|
goto bad;
|
|
Py_DECREF(cobj);
|
|
Py_DECREF(d);
|
|
return 0;
|
|
bad:
|
|
Py_XDECREF(cobj);
|
|
Py_XDECREF(d);
|
|
return -1;
|
|
}
|
|
|
|
#include "compile.h"
|
|
#include "frameobject.h"
|
|
#include "traceback.h"
|
|
|
|
static void __Pyx_AddTraceback(const char *funcname) {
|
|
PyObject *py_srcfile = 0;
|
|
PyObject *py_funcname = 0;
|
|
PyObject *py_globals = 0;
|
|
PyCodeObject *py_code = 0;
|
|
PyFrameObject *py_frame = 0;
|
|
|
|
#if PY_MAJOR_VERSION < 3
|
|
py_srcfile = PyString_FromString(__pyx_filename);
|
|
#else
|
|
py_srcfile = PyUnicode_FromString(__pyx_filename);
|
|
#endif
|
|
if (!py_srcfile) goto bad;
|
|
if (__pyx_clineno) {
|
|
#if PY_MAJOR_VERSION < 3
|
|
py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
|
|
#else
|
|
py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, __pyx_clineno);
|
|
#endif
|
|
}
|
|
else {
|
|
#if PY_MAJOR_VERSION < 3
|
|
py_funcname = PyString_FromString(funcname);
|
|
#else
|
|
py_funcname = PyUnicode_FromString(funcname);
|
|
#endif
|
|
}
|
|
if (!py_funcname) goto bad;
|
|
py_globals = PyModule_GetDict(__pyx_m);
|
|
if (!py_globals) goto bad;
|
|
py_code = PyCode_New(
|
|
0, /*int argcount,*/
|
|
#if PY_MAJOR_VERSION >= 3
|
|
0, /*int kwonlyargcount,*/
|
|
#endif
|
|
0, /*int nlocals,*/
|
|
0, /*int stacksize,*/
|
|
0, /*int flags,*/
|
|
__pyx_empty_bytes, /*PyObject *code,*/
|
|
__pyx_empty_tuple, /*PyObject *consts,*/
|
|
__pyx_empty_tuple, /*PyObject *names,*/
|
|
__pyx_empty_tuple, /*PyObject *varnames,*/
|
|
__pyx_empty_tuple, /*PyObject *freevars,*/
|
|
__pyx_empty_tuple, /*PyObject *cellvars,*/
|
|
py_srcfile, /*PyObject *filename,*/
|
|
py_funcname, /*PyObject *name,*/
|
|
__pyx_lineno, /*int firstlineno,*/
|
|
__pyx_empty_bytes /*PyObject *lnotab*/
|
|
);
|
|
if (!py_code) goto bad;
|
|
py_frame = PyFrame_New(
|
|
PyThreadState_GET(), /*PyThreadState *tstate,*/
|
|
py_code, /*PyCodeObject *code,*/
|
|
py_globals, /*PyObject *globals,*/
|
|
0 /*PyObject *locals*/
|
|
);
|
|
if (!py_frame) goto bad;
|
|
py_frame->f_lineno = __pyx_lineno;
|
|
PyTraceBack_Here(py_frame);
|
|
bad:
|
|
Py_XDECREF(py_srcfile);
|
|
Py_XDECREF(py_funcname);
|
|
Py_XDECREF(py_code);
|
|
Py_XDECREF(py_frame);
|
|
}
|
|
|
|
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
|
|
while (t->p) {
|
|
#if PY_MAJOR_VERSION < 3
|
|
if (t->is_unicode) {
|
|
*t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
|
|
} else if (t->intern) {
|
|
*t->p = PyString_InternFromString(t->s);
|
|
} else {
|
|
*t->p = PyString_FromStringAndSize(t->s, t->n - 1);
|
|
}
|
|
#else /* Python 3+ has unicode identifiers */
|
|
if (t->is_unicode | t->is_str) {
|
|
if (t->intern) {
|
|
*t->p = PyUnicode_InternFromString(t->s);
|
|
} else if (t->encoding) {
|
|
*t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
|
|
} else {
|
|
*t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
|
|
}
|
|
} else {
|
|
*t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
|
|
}
|
|
#endif
|
|
if (!*t->p)
|
|
return -1;
|
|
++t;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
/* Type Conversion Functions */
|
|
|
|
static INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
|
|
if (x == Py_True) return 1;
|
|
else if ((x == Py_False) | (x == Py_None)) return 0;
|
|
else return PyObject_IsTrue(x);
|
|
}
|
|
|
|
static INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) {
|
|
PyNumberMethods *m;
|
|
const char *name = NULL;
|
|
PyObject *res = NULL;
|
|
#if PY_VERSION_HEX < 0x03000000
|
|
if (PyInt_Check(x) || PyLong_Check(x))
|
|
#else
|
|
if (PyLong_Check(x))
|
|
#endif
|
|
return Py_INCREF(x), x;
|
|
m = Py_TYPE(x)->tp_as_number;
|
|
#if PY_VERSION_HEX < 0x03000000
|
|
if (m && m->nb_int) {
|
|
name = "int";
|
|
res = PyNumber_Int(x);
|
|
}
|
|
else if (m && m->nb_long) {
|
|
name = "long";
|
|
res = PyNumber_Long(x);
|
|
}
|
|
#else
|
|
if (m && m->nb_int) {
|
|
name = "int";
|
|
res = PyNumber_Long(x);
|
|
}
|
|
#endif
|
|
if (res) {
|
|
#if PY_VERSION_HEX < 0x03000000
|
|
if (!PyInt_Check(res) && !PyLong_Check(res)) {
|
|
#else
|
|
if (!PyLong_Check(res)) {
|
|
#endif
|
|
PyErr_Format(PyExc_TypeError,
|
|
"__%s__ returned non-%s (type %.200s)",
|
|
name, name, Py_TYPE(res)->tp_name);
|
|
Py_DECREF(res);
|
|
return NULL;
|
|
}
|
|
}
|
|
else if (!PyErr_Occurred()) {
|
|
PyErr_SetString(PyExc_TypeError,
|
|
"an integer is required");
|
|
}
|
|
return res;
|
|
}
|
|
|
|
static INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
|
|
Py_ssize_t ival;
|
|
PyObject* x = PyNumber_Index(b);
|
|
if (!x) return -1;
|
|
ival = PyInt_AsSsize_t(x);
|
|
Py_DECREF(x);
|
|
return ival;
|
|
}
|
|
|
|
static INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
|
|
#if PY_VERSION_HEX < 0x02050000
|
|
if (ival <= LONG_MAX)
|
|
return PyInt_FromLong((long)ival);
|
|
else {
|
|
unsigned char *bytes = (unsigned char *) &ival;
|
|
int one = 1; int little = (int)*(unsigned char*)&one;
|
|
return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0);
|
|
}
|
|
#else
|
|
return PyInt_FromSize_t(ival);
|
|
#endif
|
|
}
|
|
|
|
static INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) {
|
|
unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x);
|
|
if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) {
|
|
return (size_t)-1;
|
|
} else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) {
|
|
PyErr_SetString(PyExc_OverflowError,
|
|
"value too large to convert to size_t");
|
|
return (size_t)-1;
|
|
}
|
|
return (size_t)val;
|
|
}
|
|
|
|
|
|
#endif /* Py_PYTHON_H */
|