12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Generated by Cython 0.17.4 on Sun Feb 24 19:48:34 2013 */ 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define PY_SSIZE_T_CLEAN 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "Python.h" 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef Py_PYTHON_H 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #error Python headers needed to compile C extensions, please install development version of Python. 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#elif PY_VERSION_HEX < 0x02040000 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #error Cython requires Python 2.4+. 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <stddef.h> /* For offsetof */ 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef offsetof 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if !defined(WIN32) && !defined(MS_WINDOWS) 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifndef __stdcall 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __stdcall 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifndef __cdecl 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __cdecl 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifndef __fastcall 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __fastcall 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef DL_IMPORT 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define DL_IMPORT(t) t 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef DL_EXPORT 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define DL_EXPORT(t) t 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef PY_LONG_LONG 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PY_LONG_LONG LONG_LONG 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef Py_HUGE_VAL 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define Py_HUGE_VAL HUGE_VAL 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef PYPY_VERSION 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CYTHON_COMPILING_IN_PYPY 1 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CYTHON_COMPILING_IN_CPYTHON 0 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CYTHON_COMPILING_IN_PYPY 0 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CYTHON_COMPILING_IN_CPYTHON 1 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02050000 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef int Py_ssize_t; 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PY_SSIZE_T_MAX INT_MAX 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PY_SSIZE_T_MIN INT_MIN 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PY_FORMAT_SIZE_T "" 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define CYTHON_FORMAT_SSIZE_T "" 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_FromSsize_t(z) PyInt_FromLong(z) 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_AsSsize_t(o) __Pyx_PyInt_AsInt(o) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyNumber_Index(o) ((PyNumber_Check(o) && !PyFloat_Check(o)) ? PyNumber_Int(o) : \ 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (PyErr_Format(PyExc_TypeError, \ 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "expected index value, got %.200s", Py_TYPE(o)->tp_name), \ 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (PyObject*)0)) 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && \ 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) !PyComplex_Check(o)) 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyIndex_Check __Pyx_PyIndex_Check 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message) 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __PYX_BUILD_PY_SSIZE_T "i" 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __PYX_BUILD_PY_SSIZE_T "n" 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define CYTHON_FORMAT_SSIZE_T "z" 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyIndex_Check PyIndex_Check 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02060000 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt) 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size) 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyVarObject_HEAD_INIT(type, size) \ 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject_HEAD_INIT(type) size, 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyType_Modified(t) 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef struct { 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void *buf; 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *obj; 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t len; 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t itemsize; 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int readonly; 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int ndim; 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) char *format; 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t *shape; 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t *strides; 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t *suboffsets; 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void *internal; 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } Py_buffer; 862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBUF_SIMPLE 0 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBUF_WRITABLE 0x0001 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBUF_FORMAT 0x0004 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBUF_ND 0x0008 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBUF_STRIDES (0x0010 | PyBUF_ND) 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES) 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES) 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES) 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES) 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_FORMAT | PyBUF_WRITABLE) 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_FORMAT | PyBUF_WRITABLE) 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef int (*getbufferproc)(PyObject *, Py_buffer *, int); 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef void (*releasebufferproc)(PyObject *, Py_buffer *); 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3 1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCode_New(a, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_BUILTIN_MODULE_NAME "builtins" 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ 1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) 1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3 && PY_MINOR_VERSION < 6 1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyUnicode_FromString(s) PyUnicode_Decode(s, strlen(s), "UTF-8", "strict") 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3 1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define Py_TPFLAGS_CHECKTYPES 0 1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define Py_TPFLAGS_HAVE_INDEX 0 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3) 1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define Py_TPFLAGS_HAVE_NEWBUFFER 0 1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) 1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define CYTHON_PEP393_ENABLED 1 1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ? \ 1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0 : _PyUnicode_Ready((PyObject *)(op))) 1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) 1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) 1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define CYTHON_PEP393_ENABLED 0 1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyUnicode_READY(op) (0) 1292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) 1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) 1312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyUnicode_READ(k, d, i) ((k=k), (Py_UCS4)(((Py_UNICODE*)d)[i])) 1322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3 1342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBaseString_Type PyUnicode_Type 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyStringObject PyUnicodeObject 1362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyString_Type PyUnicode_Type 1372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyString_Check PyUnicode_Check 1382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyString_CheckExact PyUnicode_CheckExact 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02060000 1412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytesObject PyStringObject 1422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_Type PyString_Type 1432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_Check PyString_Check 1442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_CheckExact PyString_CheckExact 1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_FromString PyString_FromString 1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_FromStringAndSize PyString_FromStringAndSize 1472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_FromFormat PyString_FromFormat 1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_DecodeEscape PyString_DecodeEscape 1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_AsString PyString_AsString 1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_AsStringAndSize PyString_AsStringAndSize 1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_Size PyString_Size 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_AS_STRING PyString_AS_STRING 1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_GET_SIZE PyString_GET_SIZE 1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_Repr PyString_Repr 1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_Concat PyString_Concat 1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBytes_ConcatAndDel PyString_ConcatAndDel 1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02060000 1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PySet_Check(obj) PyObject_TypeCheck(obj, &PySet_Type) 1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyFrozenSet_Check(obj) PyObject_TypeCheck(obj, &PyFrozenSet_Type) 1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef PySet_CheckExact 1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) 1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3 1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyIntObject PyLongObject 1682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_Type PyLong_Type 1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_Check(op) PyLong_Check(op) 1702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_CheckExact(op) PyLong_CheckExact(op) 1712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_FromString PyLong_FromString 1722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_FromUnicode PyLong_FromUnicode 1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_FromLong PyLong_FromLong 1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_FromSize_t PyLong_FromSize_t 1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_FromSsize_t PyLong_FromSsize_t 1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_AsLong PyLong_AsLong 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_AS_LONG PyLong_AS_LONG 1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_AsSsize_t PyLong_AsSsize_t 1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask 1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask 1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3 1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyBoolObject PyLongObject 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03020000 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef long Py_hash_t; 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyInt_FromHash_t PyInt_FromLong 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyInt_AsHash_t PyInt_AsLong 1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t 1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t 1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300) 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b) 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value) 1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b) 1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \ 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \ 2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \ 2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0))) 2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \ 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ 2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \ 2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1))) 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \ 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \ 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1))) 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3 2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func)) 2132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02050000 2152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n))) 2162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a)) 2172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),((char *)(n))) 2182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 2192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n)) 2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a)) 2212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n)) 2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02050000 2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_NAMESTR(n) ((char *)(n)) 2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_DOCSTR(n) ((char *)(n)) 2262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 2272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_NAMESTR(n) (n) 2282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_DOCSTR(n) (n) 2292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 2302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3 2332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) 2342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) 2352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 2362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) 2372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) 2382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 2392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef __PYX_EXTERN_C 2412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifdef __cplusplus 2422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __PYX_EXTERN_C extern "C" 2432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 2442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __PYX_EXTERN_C extern 2452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 2462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 2472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(WIN32) || defined(MS_WINDOWS) 2492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define _USE_MATH_DEFINES 2502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 2512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <math.h> 2522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __PYX_HAVE__bintrees__qbintree 2532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __PYX_HAVE_API__bintrees__qbintree 2542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ctrees.h" 2552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "stack.h" 2562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef _OPENMP 2572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <omp.h> 2582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* _OPENMP */ 2592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef PYREX_WITHOUT_ASSERTIONS 2612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CYTHON_WITHOUT_ASSERTIONS 2622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 2632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* inline attribute */ 2662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CYTHON_INLINE 2672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if defined(__GNUC__) 2682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define CYTHON_INLINE __inline__ 2692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #elif defined(_MSC_VER) 2702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define CYTHON_INLINE __inline 2712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 2722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define CYTHON_INLINE inline 2732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 2742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define CYTHON_INLINE 2752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 2762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 2772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* unused attribute */ 2792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CYTHON_UNUSED 2802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# if defined(__GNUC__) 2812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) 2822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# define CYTHON_UNUSED __attribute__ ((__unused__)) 2832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# else 2842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# define CYTHON_UNUSED 2852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# endif 2862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) 2872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# define CYTHON_UNUSED __attribute__ ((__unused__)) 2882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# else 2892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# define CYTHON_UNUSED 2902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)# endif 2912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 2922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)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*/ 2942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Type Conversion Predeclarations */ 2972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s) 2992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_PyBytes_AsUString(s) ((unsigned char*) PyBytes_AsString(s)) 3002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None) 3022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False)) 3032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); 3042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x); 3052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); 3072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); 3082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*); 3092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON 3112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) 3122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 3132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) 3142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 3152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) 3162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef __GNUC__ 3182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* Test for GCC > 2.95 */ 3192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) 3202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define likely(x) __builtin_expect(!!(x), 1) 3212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define unlikely(x) __builtin_expect(!!(x), 0) 3222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else /* __GNUC__ > 2 ... */ 3232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define likely(x) (x) 3242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define unlikely(x) (x) 3252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif /* __GNUC__ > 2 ... */ 3262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else /* __GNUC__ */ 3272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define likely(x) (x) 3282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define unlikely(x) (x) 3292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* __GNUC__ */ 3302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_m; 3322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_b; 3332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_empty_tuple; 3342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_empty_bytes; 3352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_lineno; 3362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_clineno = 0; 3372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static const char * __pyx_cfilenm= __FILE__; 3382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static const char *__pyx_filename; 3392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static const char *__pyx_f[] = { 3422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "qbintree.pyx", 3432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "cwalker.pxd", 3442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 3452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/*--- Type declarations ---*/ 3472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_obj_8bintrees_7cwalker_cWalker; 3482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_obj_8bintrees_8qbintree_cBinaryTree; 3492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "cwalker.pxd":11 3512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from stack cimport node_stack_t 3522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 3532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef class cWalker: # <<<<<<<<<<<<<< 3542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *node 3552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *root 3562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 3572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_obj_8bintrees_7cwalker_cWalker { 3582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject_HEAD 3592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *__pyx_vtab; 3602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) node_t *node; 3612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) node_t *root; 3622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) node_stack_t *stack; 3632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 3642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":16 3672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from ctrees cimport * 3682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 3692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef class cBinaryTree: # <<<<<<<<<<<<<< 3702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *_root 3712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef int _count 3722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 3732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_obj_8bintrees_8qbintree_cBinaryTree { 3742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject_HEAD 3752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) node_t *_root; 3762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int _count; 3772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 3782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "cwalker.pxd":11 3822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from stack cimport node_stack_t 3832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 3842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef class cWalker: # <<<<<<<<<<<<<< 3852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *node 3862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *root 3872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 3882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker { 3902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*set_tree)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, node_t *); 3912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *(*reset)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch); 3922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *(*push)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch); 3932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *(*pop)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch); 3942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 3952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *__pyx_vtabptr_8bintrees_7cwalker_cWalker; 3962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CYTHON_REFNANNY 3972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define CYTHON_REFNANNY 0 3982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 3992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_REFNANNY 4002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef struct { 4012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*INCREF)(void*, PyObject*, int); 4022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*DECREF)(void*, PyObject*, int); 4032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*GOTREF)(void*, PyObject*, int); 4042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*GIVEREF)(void*, PyObject*, int); 4052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void* (*SetupContext)(const char*, int, const char*); 4062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*FinishContext)(void**); 4072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } __Pyx_RefNannyAPIStruct; 4082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; 4092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/ 4102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; 4112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef WITH_THREAD 4122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannySetupContext(name, acquire_gil) \ 4132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (acquire_gil) { \ 4142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \ 4152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ 4162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyGILState_Release(__pyx_gilstate_save); \ 4172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { \ 4182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ 4192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 4212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannySetupContext(name, acquire_gil) \ 4222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) 4232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 4242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannyFinishContext() \ 4252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNanny->FinishContext(&__pyx_refnanny) 4262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 4272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 4282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 4292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 4302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) 4312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) 4322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) 4332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) 4342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 4352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannyDeclarations 4362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannySetupContext(name, acquire_gil) 4372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannyFinishContext() 4382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_INCREF(r) Py_INCREF(r) 4392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_DECREF(r) Py_DECREF(r) 4402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_GOTREF(r) 4412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_GIVEREF(r) 4422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XINCREF(r) Py_XINCREF(r) 4432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XDECREF(r) Py_XDECREF(r) 4442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XGOTREF(r) 4452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XGIVEREF(r) 4462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* CYTHON_REFNANNY */ 4472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) 4482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) 4492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ 4512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /*proto*/ 4532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \ 4552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \ 4562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* function_name); /*proto*/ 4572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, 4592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/ 4602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ 4622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ 4632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/ 4652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { 4672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *r; 4682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!j) return NULL; 4692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) r = PyObject_GetItem(o, j); 4702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(j); 4712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return r; 4722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 4732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_GetItemInt_List(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \ 4742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GetItemInt_List_Fast(o, i) : \ 4752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GetItemInt_Generic(o, to_py_func(i))) 4762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i) { 4772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON 4782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely((0 <= i) & (i < PyList_GET_SIZE(o)))) { 4792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *r = PyList_GET_ITEM(o, i); 4802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(r); 4812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return r; 4822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if ((-PyList_GET_SIZE(o) <= i) & (i < 0)) { 4842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *r = PyList_GET_ITEM(o, PyList_GET_SIZE(o) + i); 4852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(r); 4862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return r; 4872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); 4892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 4902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PySequence_GetItem(o, i); 4912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 4922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 4932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_GetItemInt_Tuple(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \ 4942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GetItemInt_Tuple_Fast(o, i) : \ 4952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GetItemInt_Generic(o, to_py_func(i))) 4962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i) { 4972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON 4982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) { 4992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *r = PyTuple_GET_ITEM(o, i); 5002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(r); 5012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return r; 5022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if ((-PyTuple_GET_SIZE(o) <= i) & (i < 0)) { 5042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *r = PyTuple_GET_ITEM(o, PyTuple_GET_SIZE(o) + i); 5052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(r); 5062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return r; 5072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); 5092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 5102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PySequence_GetItem(o, i); 5112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 5122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_GetItemInt(o, i, size, to_py_func) (((size) <= sizeof(Py_ssize_t)) ? \ 5142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GetItemInt_Fast(o, i) : \ 5152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GetItemInt_Generic(o, to_py_func(i))) 5162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i) { 5172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON 5182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyList_CheckExact(o)) { 5192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t n = (likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); 5202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely((n >= 0) & (n < PyList_GET_SIZE(o)))) { 5212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *r = PyList_GET_ITEM(o, n); 5222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(r); 5232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return r; 5242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (PyTuple_CheckExact(o)) { 5272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t n = (likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); 5282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) { 5292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *r = PyTuple_GET_ITEM(o, n); 5302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(r); 5312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return r; 5322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { /* inlined PySequence_GetItem() */ 5342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; 5352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(m && m->sq_item)) { 5362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(i < 0) && likely(m->sq_length)) { 5372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t l = m->sq_length(o); 5382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(l < 0)) return NULL; 5392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) i += l; 5402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return m->sq_item(o, i); 5422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 5452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PySequence_Check(o)) { 5462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PySequence_GetItem(o, i); 5472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 5482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 5492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); 5502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level); /*proto*/ 5532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *); 5552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *); 5572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *); 5592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *); 5612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *); 5632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *); 5652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *); 5672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *); 5692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *); 5712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *); 5732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *); 5752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *); 5772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *); 5792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *); 5812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *); 5832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *); 5852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_check_binary_version(void); 5872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if !defined(__Pyx_PyIdentifier_FromString) 5892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3 5902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) 5912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 5922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) 5932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 5942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 5952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_ImportModule(const char *name); /*proto*/ 5972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); /*proto*/ 5992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void* __Pyx_GetVtable(PyObject *dict); /*proto*/ 6012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef struct { 6032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int code_line; 6042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCodeObject* code_object; 6052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} __Pyx_CodeObjectCacheEntry; 6062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __Pyx_CodeObjectCache { 6072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int count; 6082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int max_count; 6092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_CodeObjectCacheEntry* entries; 6102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 6112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; 6122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); 6132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyCodeObject *__pyx_find_code_object(int code_line); 6142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); 6152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_AddTraceback(const char *funcname, int c_line, 6172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int py_line, const char *filename); /*proto*/ 6182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ 6202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Module declarations from 'bintrees.ctrees' */ 6232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Module declarations from 'bintrees.stack' */ 6252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Module declarations from 'bintrees.cwalker' */ 6272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject *__pyx_ptype_8bintrees_7cwalker_cWalker = 0; 6282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Module declarations from 'bintrees.qbintree' */ 6302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject *__pyx_ptype_8bintrees_8qbintree_cBinaryTree = 0; 6312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_MODULE_NAME "bintrees.qbintree" 6322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int __pyx_module_is_main_bintrees__qbintree = 0; 6332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Implementation of 'bintrees.qbintree' */ 6352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_builtin_property; 6362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_builtin_KeyError; 6372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_builtin_MemoryError; 6382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_builtin_ValueError; 6392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pf_8bintrees_8qbintree_11cBinaryTree___cinit__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_items); /* proto */ 6402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pf_8bintrees_8qbintree_11cBinaryTree_2__dealloc__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */ 6412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_4count(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */ 6422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_6__getstate__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */ 6432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_8__setstate__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_state); /* proto */ 6442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_10clear(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */ 6452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_12get_value(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key); /* proto */ 6462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_14get_walker(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */ 6472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_16insert(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /* proto */ 6482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_18remove(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key); /* proto */ 6492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_20max_item(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */ 6502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_22min_item(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self); /* proto */ 6512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k_1[] = "Can not allocate memory for node structure."; 6522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k_3[] = "Tree is empty"; 6532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__key[] = "key"; 6542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__count[] = "count"; 6552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__items[] = "items"; 6562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__value[] = "value"; 6572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__update[] = "update"; 6582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k____all__[] = "__all__"; 6592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__cWalker[] = "cWalker"; 6602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__cwalker[] = "cwalker"; 6612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__KeyError[] = "KeyError"; 6622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k____main__[] = "__main__"; 6632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k____test__[] = "__test__"; 6642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__property[] = "property"; 6652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__ValueError[] = "ValueError"; 6662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__MemoryError[] = "MemoryError"; 6672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__cBinaryTree[] = "cBinaryTree"; 6682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_kp_s_1; 6692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_kp_s_3; 6702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__KeyError; 6712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__MemoryError; 6722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__ValueError; 6732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s____all__; 6742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s____main__; 6752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s____test__; 6762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__cBinaryTree; 6772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__cWalker; 6782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__count; 6792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__cwalker; 6802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__items; 6812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__key; 6822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__property; 6832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__update; 6842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__value; 6852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_int_0; 6862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_k_tuple_2; 6872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_k_tuple_4; 6882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_k_tuple_5; 6892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 6912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pw_8bintrees_8qbintree_11cBinaryTree_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ 6922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pw_8bintrees_8qbintree_11cBinaryTree_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { 6932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_v_items = 0; 6942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_r; 6952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 6962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); 6972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 6982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__items,0}; 6992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject* values[1] = {0}; 7002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":20 7022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef int _count 7032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 7042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __cinit__(self, items=None): # <<<<<<<<<<<<<< 7052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._root = NULL 7062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count = 0 7072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 7082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) values[0] = ((PyObject *)Py_None); 7092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__pyx_kwds)) { 7102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t kw_args; 7112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); 7122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) switch (pos_args) { 7132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); 7142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case 0: break; 7152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) default: goto __pyx_L5_argtuple_error; 7162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kw_args = PyDict_Size(__pyx_kwds); 7182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) switch (pos_args) { 7192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case 0: 7202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (kw_args > 0) { 7212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__items); 7222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (value) { values[0] = value; kw_args--; } 7232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(kw_args > 0)) { 7262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L3_error;} 7272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 7292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) switch (PyTuple_GET_SIZE(__pyx_args)) { 7302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); 7312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case 0: break; 7322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) default: goto __pyx_L5_argtuple_error; 7332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_items = values[0]; 7362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L4_argument_unpacking_done; 7382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L5_argtuple_error:; 7392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L3_error;} 7402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3_error:; 7412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); 7422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 7432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return -1; 7442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L4_argument_unpacking_done:; 7452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree___cinit__(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self), __pyx_v_items); 7462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 7472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 7482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 7492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pf_8bintrees_8qbintree_11cBinaryTree___cinit__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_items) { 7512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_r; 7522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 7532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_1; 7542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 7552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_3 = NULL; 7562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_4 = NULL; 7572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 7582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 7592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 7602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__cinit__", 0); 7612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":21 7632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 7642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __cinit__(self, items=None): 7652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._root = NULL # <<<<<<<<<<<<<< 7662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count = 0 7672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if items: 7682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 7692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->_root = NULL; 7702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":22 7722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __cinit__(self, items=None): 7732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._root = NULL 7742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count = 0 # <<<<<<<<<<<<<< 7752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if items: 7762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.update(items) 7772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 7782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->_count = 0; 7792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":23 7812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._root = NULL 7822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count = 0 7832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if items: # <<<<<<<<<<<<<< 7842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.update(items) 7852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 7862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 7872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_items); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 7882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_1) { 7892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":24 7912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count = 0 7922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if items: 7932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.update(items) # <<<<<<<<<<<<<< 7942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 7952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __dealloc__(self): 7962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 7972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__update); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 7982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 7992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 8002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 8012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(__pyx_v_items); 8022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_items); 8032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_v_items); 8042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 8052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_4); 8062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; 8072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; 8082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; 8092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L3; 8102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 8112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3:; 8122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = 0; 8142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 8152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 8162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 8172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_3); 8182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_4); 8192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); 8202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = -1; 8212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 8222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 8232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 8242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 8252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 8272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pw_8bintrees_8qbintree_11cBinaryTree_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ 8282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pw_8bintrees_8qbintree_11cBinaryTree_3__dealloc__(PyObject *__pyx_v_self) { 8292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 8302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); 8312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_pf_8bintrees_8qbintree_11cBinaryTree_2__dealloc__(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self)); 8322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 8332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 8342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":26 8362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.update(items) 8372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __dealloc__(self): # <<<<<<<<<<<<<< 8392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * ct_delete_tree(self._root) 8402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 8422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pf_8bintrees_8qbintree_11cBinaryTree_2__dealloc__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) { 8442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 8452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__dealloc__", 0); 8462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":27 8482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __dealloc__(self): 8502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * ct_delete_tree(self._root) # <<<<<<<<<<<<<< 8512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 8532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 8542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ct_delete_tree(__pyx_v_self->_root); 8552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 8572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 8582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 8602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_5count(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 8612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_5count(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 8622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 8632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 8642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("count (wrapper)", 0); 8652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_4count(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self)); 8662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 8672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 8682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 8692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":30 8712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 8732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def count(self): # <<<<<<<<<<<<<< 8742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self._count 8752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 8772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_4count(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) { 8792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 8802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 8812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 8822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 8832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 8842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 8852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("count", 0); 8862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":31 8882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 8892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def count(self): 8902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self._count # <<<<<<<<<<<<<< 8912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __getstate__(self): 8932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 8942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 8952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyInt_FromLong(__pyx_v_self->_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 8962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 8972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_1; 8982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 8992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 9002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 9022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 9032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 9042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 9052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.count", __pyx_clineno, __pyx_lineno, __pyx_filename); 9062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 9072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 9082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 9092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 9102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 9112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 9122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 9142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_7__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 9152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_7__getstate__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 9162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 9172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 9182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__getstate__ (wrapper)", 0); 9192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_6__getstate__(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self)); 9202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 9212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 9222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 9232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":33 9252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self._count 9262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __getstate__(self): # <<<<<<<<<<<<<< 9282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return dict(self.items()) 9292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 9312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_6__getstate__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) { 9332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 9342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 9352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 9362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 9372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 9382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 9392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 9402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__getstate__", 0); 9412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":34 9432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __getstate__(self): 9452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return dict(self.items()) # <<<<<<<<<<<<<< 9462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __setstate__(self, state): 9482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 9492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 9502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 9512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 9522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 9532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 9542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 9552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 9562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 9572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); 9582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_t_2); 9592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = 0; 9602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 9612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 9622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; 9632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_2; 9642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = 0; 9652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 9662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 9682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 9692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 9702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 9712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 9722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.__getstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); 9732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 9742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 9752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 9762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 9772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 9782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 9792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 9812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_9__setstate__(PyObject *__pyx_v_self, PyObject *__pyx_v_state); /*proto*/ 9822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_9__setstate__(PyObject *__pyx_v_self, PyObject *__pyx_v_state) { 9832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 9842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 9852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__setstate__ (wrapper)", 0); 9862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_8__setstate__(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self), ((PyObject *)__pyx_v_state)); 9872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 9882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 9892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 9902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":36 9922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return dict(self.items()) 9932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __setstate__(self, state): # <<<<<<<<<<<<<< 9952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.update(state) 9962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 9982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_8__setstate__(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_state) { 10002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 10012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 10022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 10032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 10042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_3 = NULL; 10052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 10062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 10072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 10082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__setstate__", 0); 10092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":37 10112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 10122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __setstate__(self, state): 10132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.update(state) # <<<<<<<<<<<<<< 10142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 10152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def clear(self): 10162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 10172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__update); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 10182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 10192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 10202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 10212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(__pyx_v_state); 10222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_state); 10232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_v_state); 10242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 10252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 10262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 10272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 10282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; 10292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 10312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 10322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 10332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 10342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 10352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_3); 10362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.__setstate__", __pyx_clineno, __pyx_lineno, __pyx_filename); 10372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 10382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 10392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 10402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 10412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 10422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 10452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_11clear(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 10462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_11clear(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 10472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 10482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 10492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("clear (wrapper)", 0); 10502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_10clear(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self)); 10512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 10522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 10532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":39 10562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.update(state) 10572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 10582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def clear(self): # <<<<<<<<<<<<<< 10592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * ct_delete_tree(self._root) 10602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count = 0 10612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 10622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_10clear(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) { 10642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 10652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 10662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("clear", 0); 10672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":40 10692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 10702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def clear(self): 10712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * ct_delete_tree(self._root) # <<<<<<<<<<<<<< 10722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count = 0 10732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._root = NULL 10742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 10752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ct_delete_tree(__pyx_v_self->_root); 10762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":41 10782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def clear(self): 10792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * ct_delete_tree(self._root) 10802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count = 0 # <<<<<<<<<<<<<< 10812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._root = NULL 10822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 10832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 10842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->_count = 0; 10852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":42 10872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * ct_delete_tree(self._root) 10882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count = 0 10892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._root = NULL # <<<<<<<<<<<<<< 10902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 10912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def get_value(self, key): 10922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 10932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->_root = NULL; 10942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 10962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 10972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 10982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 10992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 11002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 11022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_13get_value(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ 11032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_13get_value(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { 11042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 11052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 11062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("get_value (wrapper)", 0); 11072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_12get_value(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self), ((PyObject *)__pyx_v_key)); 11082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 11092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 11102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 11112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":44 11132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._root = NULL 11142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 11152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def get_value(self, key): # <<<<<<<<<<<<<< 11162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * result = <object> ct_get_item(self._root, key) 11172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if result is None: 11182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 11192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_12get_value(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key) { 11212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_v_result = NULL; 11222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 11232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 11242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1; 11252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_2; 11262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_3 = NULL; 11272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_4 = NULL; 11282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 11292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 11302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 11312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("get_value", 0); 11322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":45 11342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 11352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def get_value(self, key): 11362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * result = <object> ct_get_item(self._root, key) # <<<<<<<<<<<<<< 11372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if result is None: 11382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(key) 11392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 11402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = ct_get_item(__pyx_v_self->_root, __pyx_v_key); 11412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_t_1)); 11422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_result = ((PyObject *)__pyx_t_1); 11432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":46 11452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def get_value(self, key): 11462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * result = <object> ct_get_item(self._root, key) 11472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if result is None: # <<<<<<<<<<<<<< 11482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(key) 11492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 11502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 11512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = (__pyx_v_result == Py_None); 11522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_2) { 11532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":47 11552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * result = <object> ct_get_item(self._root, key) 11562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if result is None: 11572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(key) # <<<<<<<<<<<<<< 11582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 11592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return result[1] 11602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 11612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 11622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 11632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(__pyx_v_key); 11642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key); 11652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_v_key); 11662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_4 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 11672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_4); 11682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; 11692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_Raise(__pyx_t_4, 0, 0, 0); 11702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; 11712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 11722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L3; 11732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 11742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*else*/ { 11752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":49 11772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(key) 11782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 11792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return result[1] # <<<<<<<<<<<<<< 11802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 11812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def get_walker(self): 11822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 11832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 11842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_result, 1, sizeof(long), PyInt_FromLong); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 11852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_4); 11862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_4; 11872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_4 = 0; 11882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 11892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 11902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3:; 11912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 11932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 11942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 11952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_3); 11962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_4); 11972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.get_value", __pyx_clineno, __pyx_lineno, __pyx_filename); 11982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 11992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 12002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_v_result); 12012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 12022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 12032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 12042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 12052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 12072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_15get_walker(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 12082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_15get_walker(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 12092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 12102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 12112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("get_walker (wrapper)", 0); 12122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_14get_walker(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self)); 12132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 12142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 12152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 12162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":51 12182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return result[1] 12192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 12202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def get_walker(self): # <<<<<<<<<<<<<< 12212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef cWalker walker 12222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * walker = cWalker() 12232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 12242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_14get_walker(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) { 12262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_walker = 0; 12272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 12282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 12292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 12302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 12312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 12322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 12332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("get_walker", 0); 12342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":53 12362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def get_walker(self): 12372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef cWalker walker 12382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * walker = cWalker() # <<<<<<<<<<<<<< 12392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * walker.set_tree(self._root) 12402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return walker 12412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 12422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_8bintrees_7cwalker_cWalker)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 12432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 12442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_walker = ((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_t_1); 12452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 12462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":54 12482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef cWalker walker 12492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * walker = cWalker() 12502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * walker.set_tree(self._root) # <<<<<<<<<<<<<< 12512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return walker 12522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 12532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 12542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ((struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *)__pyx_v_walker->__pyx_vtab)->set_tree(__pyx_v_walker, __pyx_v_self->_root); 12552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":55 12572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * walker = cWalker() 12582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * walker.set_tree(self._root) 12592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return walker # <<<<<<<<<<<<<< 12602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 12612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def insert(self, key, value): 12622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 12632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 12642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_walker)); 12652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = ((PyObject *)__pyx_v_walker); 12662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 12672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 12692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 12702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 12712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 12722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.get_walker", __pyx_clineno, __pyx_lineno, __pyx_filename); 12732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 12742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 12752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF((PyObject *)__pyx_v_walker); 12762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 12772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 12782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 12792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 12802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 12822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_17insert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ 12832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_17insert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { 12842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_v_key = 0; 12852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_v_value = 0; 12862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 12872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 12882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("insert (wrapper)", 0); 12892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 12902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__key,&__pyx_n_s__value,0}; 12912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject* values[2] = {0,0}; 12922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__pyx_kwds)) { 12932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t kw_args; 12942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); 12952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) switch (pos_args) { 12962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); 12972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); 12982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case 0: break; 12992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) default: goto __pyx_L5_argtuple_error; 13002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 13012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kw_args = PyDict_Size(__pyx_kwds); 13022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) switch (pos_args) { 13032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case 0: 13042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__key)) != 0)) kw_args--; 13052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else goto __pyx_L5_argtuple_error; 13062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) case 1: 13072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value)) != 0)) kw_args--; 13082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 13092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L3_error;} 13102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 13112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 13122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(kw_args > 0)) { 13132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insert") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L3_error;} 13142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 13152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { 13162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L5_argtuple_error; 13172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 13182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) values[0] = PyTuple_GET_ITEM(__pyx_args, 0); 13192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) values[1] = PyTuple_GET_ITEM(__pyx_args, 1); 13202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 13212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_key = values[0]; 13222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_value = values[1]; 13232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 13242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L4_argument_unpacking_done; 13252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L5_argtuple_error:; 13262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L3_error;} 13272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3_error:; 13282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.insert", __pyx_clineno, __pyx_lineno, __pyx_filename); 13292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 13302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 13312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L4_argument_unpacking_done:; 13322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_16insert(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self), __pyx_v_key, __pyx_v_value); 13332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 13342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 13352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 13362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":57 13382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return walker 13392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 13402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def insert(self, key, value): # <<<<<<<<<<<<<< 13412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * res = ct_bintree_insert(&self._root, key, value) 13422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if res < 0: 13432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 13442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_16insert(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) { 13462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_v_res = NULL; 13472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 13482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 13492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 13502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_2; 13512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_3 = NULL; 13522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_4; 13532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 13542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 13552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 13562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("insert", 0); 13572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":58 13592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 13602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def insert(self, key, value): 13612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * res = ct_bintree_insert(&self._root, key, value) # <<<<<<<<<<<<<< 13622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if res < 0: 13632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise MemoryError('Can not allocate memory for node structure.') 13642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 13652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyInt_FromLong(ct_bintree_insert((&__pyx_v_self->_root), __pyx_v_key, __pyx_v_value)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 13662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 13672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_res = __pyx_t_1; 13682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 13692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":59 13712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def insert(self, key, value): 13722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * res = ct_bintree_insert(&self._root, key, value) 13732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if res < 0: # <<<<<<<<<<<<<< 13742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise MemoryError('Can not allocate memory for node structure.') 13752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count += res 13762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 13772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_RichCompare(__pyx_v_res, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 13782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 13792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 13802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_2) { 13812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":60 13832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * res = ct_bintree_insert(&self._root, key, value) 13842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if res < 0: 13852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise MemoryError('Can not allocate memory for node structure.') # <<<<<<<<<<<<<< 13862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count += res 13872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 13882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 13892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_Call(__pyx_builtin_MemoryError, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 13902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 13912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_Raise(__pyx_t_1, 0, 0, 0); 13922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 13932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 13942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L3; 13952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 13962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3:; 13972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":61 13992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if res < 0: 14002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise MemoryError('Can not allocate memory for node structure.') 14012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count += res # <<<<<<<<<<<<<< 14022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 14032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def remove(self, key): 14042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 14052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyInt_FromLong(__pyx_v_self->_count); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 14062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 14072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_v_res); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 14082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 14092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 14102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 14112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; 14122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->_count = __pyx_t_4; 14132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 14152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 14162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 14172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 14182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_3); 14192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.insert", __pyx_clineno, __pyx_lineno, __pyx_filename); 14202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 14212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 14222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_v_res); 14232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 14242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 14252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 14262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 14272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 14292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_19remove(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ 14302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_19remove(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { 14312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 14322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 14332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("remove (wrapper)", 0); 14342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_18remove(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self), ((PyObject *)__pyx_v_key)); 14352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 14362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 14372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 14382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":63 14402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count += res 14412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 14422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def remove(self, key): # <<<<<<<<<<<<<< 14432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef int result 14442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * result = ct_bintree_remove(&self._root, key) 14452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 14462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_18remove(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self, PyObject *__pyx_v_key) { 14482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_v_result; 14492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 14502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 14512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_1; 14522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 14532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_3 = NULL; 14542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 14552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 14562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 14572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("remove", 0); 14582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":65 14602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def remove(self, key): 14612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef int result 14622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * result = ct_bintree_remove(&self._root, key) # <<<<<<<<<<<<<< 14632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if result == 0: 14642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 14652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 14662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_result = ct_bintree_remove((&__pyx_v_self->_root), __pyx_v_key); 14672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":66 14692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef int result 14702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * result = ct_bintree_remove(&self._root, key) 14712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if result == 0: # <<<<<<<<<<<<<< 14722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 14732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 14742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 14752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = (__pyx_v_result == 0); 14762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_1) { 14772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":67 14792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * result = ct_bintree_remove(&self._root, key) 14802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if result == 0: 14812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) # <<<<<<<<<<<<<< 14822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 14832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count -= 1 14842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 14852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 14862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 14872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(__pyx_v_key); 14882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key); 14892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_v_key); 14902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 14912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 14922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 14932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 14942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 14952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); 14962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_t_3); 14972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = 0; 14982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = PyObject_Call(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 14992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 15002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 15012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_Raise(__pyx_t_3, 0, 0, 0); 15022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; 15032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 15042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L3; 15052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 15062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*else*/ { 15072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":69 15092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 15102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 15112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count -= 1 # <<<<<<<<<<<<<< 15122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 15132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def max_item(self): 15142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 15152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->_count = (__pyx_v_self->_count - 1); 15162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 15172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3:; 15182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 15202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 15212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 15222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 15232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_3); 15242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.remove", __pyx_clineno, __pyx_lineno, __pyx_filename); 15252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 15262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 15272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 15282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 15292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 15302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 15312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 15332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_21max_item(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 15342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_doc_8bintrees_8qbintree_11cBinaryTree_20max_item[] = " Get item with max key of tree, raises ValueError if tree is empty. "; 15352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_21max_item(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 15362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 15372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 15382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("max_item (wrapper)", 0); 15392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_20max_item(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self)); 15402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 15412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 15422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 15432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":71 15452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count -= 1 15462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 15472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def max_item(self): # <<<<<<<<<<<<<< 15482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ Get item with max key of tree, raises ValueError if tree is empty. """ 15492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *node 15502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 15512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_20max_item(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) { 15532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) node_t *__pyx_v_node; 15542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 15552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 15562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_1; 15572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 15582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 15592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 15602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 15612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("max_item", 0); 15622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":74 15642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ Get item with max key of tree, raises ValueError if tree is empty. """ 15652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *node 15662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * node = ct_max_node(self._root) # <<<<<<<<<<<<<< 15672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if node == NULL: # root is None 15682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise ValueError("Tree is empty") 15692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 15702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_node = ct_max_node(__pyx_v_self->_root); 15712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":75 15732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *node 15742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * node = ct_max_node(self._root) 15752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if node == NULL: # root is None # <<<<<<<<<<<<<< 15762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise ValueError("Tree is empty") 15772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>node.key, <object>node.value) 15782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 15792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = (__pyx_v_node == NULL); 15802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_1) { 15812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":76 15832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * node = ct_max_node(self._root) 15842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if node == NULL: # root is None 15852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise ValueError("Tree is empty") # <<<<<<<<<<<<<< 15862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>node.key, <object>node.value) 15872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 15882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 15892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 15902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 15912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_Raise(__pyx_t_2, 0, 0, 0); 15922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; 15932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 15942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L3; 15952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 15962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3:; 15972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":77 15992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if node == NULL: # root is None 16002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise ValueError("Tree is empty") 16012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>node.key, <object>node.value) # <<<<<<<<<<<<<< 16022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 16032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def min_item(self): 16042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 16052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 16062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 16072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 16082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_node->key)); 16092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_node->key)); 16102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_node->key)); 16112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_node->value)); 16122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_node->value)); 16132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_node->value)); 16142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = ((PyObject *)__pyx_t_2); 16152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = 0; 16162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 16172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 16192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 16202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 16212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 16222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.max_item", __pyx_clineno, __pyx_lineno, __pyx_filename); 16232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 16242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 16252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 16262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 16272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 16282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 16292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 16312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_23min_item(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 16322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_doc_8bintrees_8qbintree_11cBinaryTree_22min_item[] = " Get item with min key of tree, raises ValueError if tree is empty. "; 16332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_8qbintree_11cBinaryTree_23min_item(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 16342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 16352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 16362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("min_item (wrapper)", 0); 16372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_8qbintree_11cBinaryTree_22min_item(((struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *)__pyx_v_self)); 16382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 16392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 16402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 16412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\qbintree.pyx":79 16432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>node.key, <object>node.value) 16442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 16452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def min_item(self): # <<<<<<<<<<<<<< 16462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ Get item with min key of tree, raises ValueError if tree is empty. """ 16472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *node 16482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 16492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_8qbintree_11cBinaryTree_22min_item(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree *__pyx_v_self) { 16512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) node_t *__pyx_v_node; 16522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 16532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 16542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_1; 16552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 16562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 16572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 16582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 16592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("min_item", 0); 16602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":82 16622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ Get item with min key of tree, raises ValueError if tree is empty. """ 16632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *node 16642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * node = ct_min_node(self._root) # <<<<<<<<<<<<<< 16652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if node == NULL: # root is None 16662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise ValueError("Tree is empty") 16672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 16682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_node = ct_min_node(__pyx_v_self->_root); 16692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":83 16712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *node 16722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * node = ct_min_node(self._root) 16732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if node == NULL: # root is None # <<<<<<<<<<<<<< 16742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise ValueError("Tree is empty") 16752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>node.key, <object>node.value) 16762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 16772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = (__pyx_v_node == NULL); 16782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_1) { 16792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":84 16812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * node = ct_min_node(self._root) 16822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if node == NULL: # root is None 16832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise ValueError("Tree is empty") # <<<<<<<<<<<<<< 16842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>node.key, <object>node.value) 16852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 16862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_5), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 16872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 16882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_Raise(__pyx_t_2, 0, 0, 0); 16892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; 16902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 16912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L3; 16922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 16932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3:; 16942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":85 16962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if node == NULL: # root is None 16972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise ValueError("Tree is empty") 16982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>node.key, <object>node.value) # <<<<<<<<<<<<<< 16992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 17002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 17012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 17022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 17032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_node->key)); 17042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_node->key)); 17052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_node->key)); 17062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_node->value)); 17072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_node->value)); 17082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_node->value)); 17092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = ((PyObject *)__pyx_t_2); 17102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = 0; 17112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 17122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 17142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 17152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 17162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 17172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.qbintree.cBinaryTree.min_item", __pyx_clineno, __pyx_lineno, __pyx_filename); 17182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 17192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 17202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 17212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 17222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 17232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 17242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_tp_new_8bintrees_8qbintree_cBinaryTree(PyTypeObject *t, PyObject *a, PyObject *k) { 17262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *o = (*t->tp_alloc)(t, 0); 17272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!o) return 0; 17282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_pw_8bintrees_8qbintree_11cBinaryTree_1__cinit__(o, a, k) < 0) { 17292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(o); o = 0; 17302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 17312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return o; 17322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 17332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_tp_dealloc_8bintrees_8qbintree_cBinaryTree(PyObject *o) { 17352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 17362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *etype, *eval, *etb; 17372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Fetch(&etype, &eval, &etb); 17382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ++Py_REFCNT(o); 17392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_pw_8bintrees_8qbintree_11cBinaryTree_3__dealloc__(o); 17402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyErr_Occurred()) PyErr_WriteUnraisable(o); 17412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) --Py_REFCNT(o); 17422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Restore(etype, eval, etb); 17432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 17442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (*Py_TYPE(o)->tp_free)(o); 17452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 17462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyMethodDef __pyx_methods_8bintrees_8qbintree_cBinaryTree[] = { 17482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("count"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_5count, METH_NOARGS, __Pyx_DOCSTR(0)}, 17492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("__getstate__"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_7__getstate__, METH_NOARGS, __Pyx_DOCSTR(0)}, 17502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("__setstate__"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_9__setstate__, METH_O, __Pyx_DOCSTR(0)}, 17512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("clear"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_11clear, METH_NOARGS, __Pyx_DOCSTR(0)}, 17522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("get_value"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_13get_value, METH_O, __Pyx_DOCSTR(0)}, 17532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("get_walker"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_15get_walker, METH_NOARGS, __Pyx_DOCSTR(0)}, 17542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("insert"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_17insert, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)}, 17552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("remove"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_19remove, METH_O, __Pyx_DOCSTR(0)}, 17562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("max_item"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_21max_item, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_8bintrees_8qbintree_11cBinaryTree_20max_item)}, 17572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("min_item"), (PyCFunction)__pyx_pw_8bintrees_8qbintree_11cBinaryTree_23min_item, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_8bintrees_8qbintree_11cBinaryTree_22min_item)}, 17582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {0, 0, 0, 0} 17592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 17602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyNumberMethods __pyx_tp_as_number_cBinaryTree = { 17622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_add*/ 17632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_subtract*/ 17642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_multiply*/ 17652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 17662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_divide*/ 17672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 17682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_remainder*/ 17692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_divmod*/ 17702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_power*/ 17712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_negative*/ 17722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_positive*/ 17732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_absolute*/ 17742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_nonzero*/ 17752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_invert*/ 17762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_lshift*/ 17772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_rshift*/ 17782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_and*/ 17792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_xor*/ 17802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_or*/ 17812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 17822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_coerce*/ 17832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 17842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_int*/ 17852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 17862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_long*/ 17872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 17882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*reserved*/ 17892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 17902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_float*/ 17912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 17922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_oct*/ 17932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 17942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 17952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_hex*/ 17962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 17972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_add*/ 17982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_subtract*/ 17992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_multiply*/ 18002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 18012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_divide*/ 18022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 18032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_remainder*/ 18042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_power*/ 18052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_lshift*/ 18062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_rshift*/ 18072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_and*/ 18082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_xor*/ 18092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_or*/ 18102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_floor_divide*/ 18112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_true_divide*/ 18122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_floor_divide*/ 18132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_true_divide*/ 18142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX >= 0x02050000 18152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_index*/ 18162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 18172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 18182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PySequenceMethods __pyx_tp_as_sequence_cBinaryTree = { 18202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_length*/ 18212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_concat*/ 18222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_repeat*/ 18232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_item*/ 18242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_slice*/ 18252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_ass_item*/ 18262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_ass_slice*/ 18272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_contains*/ 18282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_inplace_concat*/ 18292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_inplace_repeat*/ 18302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 18312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyMappingMethods __pyx_tp_as_mapping_cBinaryTree = { 18332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*mp_length*/ 18342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*mp_subscript*/ 18352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*mp_ass_subscript*/ 18362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 18372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyBufferProcs __pyx_tp_as_buffer_cBinaryTree = { 18392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 18402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_getreadbuffer*/ 18412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 18422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 18432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_getwritebuffer*/ 18442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 18452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 18462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_getsegcount*/ 18472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 18482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 18492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_getcharbuffer*/ 18502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 18512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX >= 0x02060000 18522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_getbuffer*/ 18532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 18542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX >= 0x02060000 18552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_releasebuffer*/ 18562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 18572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 18582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject __pyx_type_8bintrees_8qbintree_cBinaryTree = { 18602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyVarObject_HEAD_INIT(0, 0) 18612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_NAMESTR("bintrees.qbintree.cBinaryTree"), /*tp_name*/ 18622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) sizeof(struct __pyx_obj_8bintrees_8qbintree_cBinaryTree), /*tp_basicsize*/ 18632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_itemsize*/ 18642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_tp_dealloc_8bintrees_8qbintree_cBinaryTree, /*tp_dealloc*/ 18652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_print*/ 18662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_getattr*/ 18672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_setattr*/ 18682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 18692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_compare*/ 18702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 18712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*reserved*/ 18722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 18732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_repr*/ 18742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &__pyx_tp_as_number_cBinaryTree, /*tp_as_number*/ 18752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &__pyx_tp_as_sequence_cBinaryTree, /*tp_as_sequence*/ 18762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &__pyx_tp_as_mapping_cBinaryTree, /*tp_as_mapping*/ 18772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_hash*/ 18782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_call*/ 18792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_str*/ 18802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_getattro*/ 18812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_setattro*/ 18822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &__pyx_tp_as_buffer_cBinaryTree, /*tp_as_buffer*/ 18832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ 18842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_doc*/ 18852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_traverse*/ 18862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_clear*/ 18872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_richcompare*/ 18882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_weaklistoffset*/ 18892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_iter*/ 18902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_iternext*/ 18912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_methods_8bintrees_8qbintree_cBinaryTree, /*tp_methods*/ 18922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_members*/ 18932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_getset*/ 18942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_base*/ 18952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_dict*/ 18962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_descr_get*/ 18972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_descr_set*/ 18982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_dictoffset*/ 18992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_init*/ 19002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_alloc*/ 19012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_tp_new_8bintrees_8qbintree_cBinaryTree, /*tp_new*/ 19022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_free*/ 19032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_is_gc*/ 19042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_bases*/ 19052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_mro*/ 19062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_cache*/ 19072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_subclasses*/ 19082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_weaklist*/ 19092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_del*/ 19102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX >= 0x02060000 19112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_version_tag*/ 19122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 19132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 19142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyMethodDef __pyx_methods[] = { 19162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {0, 0, 0, 0} 19172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 19182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3 19202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static struct PyModuleDef __pyx_moduledef = { 19212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyModuleDef_HEAD_INIT, 19222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_NAMESTR("qbintree"), 19232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /* m_doc */ 19242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) -1, /* m_size */ 19252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_methods /* m_methods */, 19262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NULL, /* m_reload */ 19272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NULL, /* m_traverse */ 19282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NULL, /* m_clear */ 19292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NULL /* m_free */ 19302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 19312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 19322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static __Pyx_StringTabEntry __pyx_string_tab[] = { 19342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0}, 19352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0}, 19362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__KeyError, __pyx_k__KeyError, sizeof(__pyx_k__KeyError), 0, 0, 1, 1}, 19372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__MemoryError, __pyx_k__MemoryError, sizeof(__pyx_k__MemoryError), 0, 0, 1, 1}, 19382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1}, 19392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s____all__, __pyx_k____all__, sizeof(__pyx_k____all__), 0, 0, 1, 1}, 19402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1}, 19412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1}, 19422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__cBinaryTree, __pyx_k__cBinaryTree, sizeof(__pyx_k__cBinaryTree), 0, 0, 1, 1}, 19432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__cWalker, __pyx_k__cWalker, sizeof(__pyx_k__cWalker), 0, 0, 1, 1}, 19442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__count, __pyx_k__count, sizeof(__pyx_k__count), 0, 0, 1, 1}, 19452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__cwalker, __pyx_k__cwalker, sizeof(__pyx_k__cwalker), 0, 0, 1, 1}, 19462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__items, __pyx_k__items, sizeof(__pyx_k__items), 0, 0, 1, 1}, 19472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__key, __pyx_k__key, sizeof(__pyx_k__key), 0, 0, 1, 1}, 19482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__property, __pyx_k__property, sizeof(__pyx_k__property), 0, 0, 1, 1}, 19492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__update, __pyx_k__update, sizeof(__pyx_k__update), 0, 0, 1, 1}, 19502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__value, __pyx_k__value, sizeof(__pyx_k__value), 0, 0, 1, 1}, 19512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {0, 0, 0, 0, 0, 0, 0} 19522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 19532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitCachedBuiltins(void) { 19542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_builtin_property = __Pyx_GetName(__pyx_b, __pyx_n_s__property); if (!__pyx_builtin_property) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_builtin_KeyError = __Pyx_GetName(__pyx_b, __pyx_n_s__KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_builtin_MemoryError = __Pyx_GetName(__pyx_b, __pyx_n_s__MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 19592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 19602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return -1; 19612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 19622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitCachedConstants(void) { 19642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 19652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); 19662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":60 19682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * res = ct_bintree_insert(&self._root, key, value) 19692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if res < 0: 19702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise MemoryError('Can not allocate memory for node structure.') # <<<<<<<<<<<<<< 19712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self._count += res 19722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 19732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 19742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_k_tuple_2 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_k_tuple_2); 19762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_kp_s_1)); 19772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_k_tuple_2, 0, ((PyObject *)__pyx_kp_s_1)); 19782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_1)); 19792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_2)); 19802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":76 19822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * node = ct_max_node(self._root) 19832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if node == NULL: # root is None 19842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise ValueError("Tree is empty") # <<<<<<<<<<<<<< 19852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>node.key, <object>node.value) 19862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 19872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 19882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_k_tuple_4 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_k_tuple_4); 19902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_kp_s_3)); 19912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_k_tuple_4, 0, ((PyObject *)__pyx_kp_s_3)); 19922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_3)); 19932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_4)); 19942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":84 19962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * node = ct_min_node(self._root) 19972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if node == NULL: # root is None 19982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise ValueError("Tree is empty") # <<<<<<<<<<<<<< 19992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>node.key, <object>node.value) 20002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 20012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_k_tuple_5 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_k_tuple_5); 20032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_kp_s_3)); 20042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_k_tuple_5, 0, ((PyObject *)__pyx_kp_s_3)); 20052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_3)); 20062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_5)); 20072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 20082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 20092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 20102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 20112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return -1; 20122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 20132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 20142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitGlobals(void) { 20152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; 20162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; 20172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 20182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 20192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return -1; 20202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 20212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 20222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3 20232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC initqbintree(void); /*proto*/ 20242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC initqbintree(void) 20252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 20262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC PyInit_qbintree(void); /*proto*/ 20272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC PyInit_qbintree(void) 20282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 20292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ 20302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 20312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 20322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 20332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if CYTHON_REFNANNY 20342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); 20352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!__Pyx_RefNanny) { 20362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Clear(); 20372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); 20382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!__Pyx_RefNanny) 20392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_FatalError("failed to import 'refnanny' module"); 20402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 20412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 20422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_qbintree(void)", 0); 20432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __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;} 20452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __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;} 20462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifdef __Pyx_CyFunction_USED 20472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 20492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifdef __Pyx_FusedFunction_USED 20502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_FusedFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 20522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifdef __Pyx_Generator_USED 20532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_Generator_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 20552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Library function declarations ---*/ 20562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Threads initialization code ---*/ 20572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS 20582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifdef WITH_THREAD /* Python build with threading support? */ 20592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyEval_InitThreads(); 20602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 20612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 20622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Module creation code ---*/ 20632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 20642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_m = Py_InitModule4(__Pyx_NAMESTR("qbintree"), __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); 20652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 20662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_m = PyModule_Create(&__pyx_moduledef); 20672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 20682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION >= 3 20702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 20712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyDict_GetItemString(modules, "bintrees.qbintree")) { 20732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(PyDict_SetItemString(modules, "bintrees.qbintree", __pyx_m) < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 20752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 20762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 20772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); if (unlikely(!__pyx_b)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if CYTHON_COMPILING_IN_PYPY 20792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(__pyx_b); 20802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 20812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; 20822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Initialize various global constants etc. ---*/ 20832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_module_is_main_bintrees__qbintree) { 20852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 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;}; 20862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 20872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Builtin init code ---*/ 20882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Constants init code ---*/ 20902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Global init code ---*/ 20922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Variable export code ---*/ 20932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Function export code ---*/ 20942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Type init code ---*/ 20952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyType_Ready(&__pyx_type_8bintrees_8qbintree_cBinaryTree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__Pyx_SetAttrString(__pyx_m, "cBinaryTree", (PyObject *)&__pyx_type_8bintrees_8qbintree_cBinaryTree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_ptype_8bintrees_8qbintree_cBinaryTree = &__pyx_type_8bintrees_8qbintree_cBinaryTree; 20982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Type import code ---*/ 20992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_ptype_8bintrees_7cwalker_cWalker = __Pyx_ImportType("bintrees.cwalker", "cWalker", sizeof(struct __pyx_obj_8bintrees_7cwalker_cWalker), 1); if (unlikely(!__pyx_ptype_8bintrees_7cwalker_cWalker)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_vtabptr_8bintrees_7cwalker_cWalker = (struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker*)__Pyx_GetVtable(__pyx_ptype_8bintrees_7cwalker_cWalker->tp_dict); if (unlikely(!__pyx_vtabptr_8bintrees_7cwalker_cWalker)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Variable import code ---*/ 21022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Function import code ---*/ 21032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Execution code ---*/ 21042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":9 21062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * # License: MIT License 21072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 21082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * __all__ = ['cBinaryTree'] # <<<<<<<<<<<<<< 21092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 21102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from cwalker import cWalker 21112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 21122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 21142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_n_s__cBinaryTree)); 21152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__cBinaryTree)); 21162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cBinaryTree)); 21172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyObject_SetAttr(__pyx_m, __pyx_n_s____all__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; 21192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":11 21212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * __all__ = ['cBinaryTree'] 21222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 21232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from cwalker import cWalker # <<<<<<<<<<<<<< 21242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 21252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from cwalker cimport * 21262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 21272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 21292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_n_s__cWalker)); 21302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__cWalker)); 21312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_n_s__cWalker)); 21322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__cwalker), ((PyObject *)__pyx_t_1), -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 21342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; 21352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; 21362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":30 21382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 21392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 21402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def count(self): # <<<<<<<<<<<<<< 21412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self._count 21422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 21432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 21442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = __Pyx_GetName((PyObject *)__pyx_ptype_8bintrees_8qbintree_cBinaryTree, __pyx_n_s__count); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 21462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 21482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); 21492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_t_2); 21502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = 0; 21512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 21532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; 21542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyDict_SetItem((PyObject *)__pyx_ptype_8bintrees_8qbintree_cBinaryTree->tp_dict, __pyx_n_s__count, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; 21562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyType_Modified(__pyx_ptype_8bintrees_8qbintree_cBinaryTree); 21572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\qbintree.pyx":1 21592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * #!/usr/bin/env python # <<<<<<<<<<<<<< 21602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * #coding:utf-8 21612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * # Author: mozman 21622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 21632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(((PyObject *)__pyx_t_2)); 21652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 21672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 21682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 21692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 21702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 21712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_m) { 21722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("init bintrees.qbintree", __pyx_clineno, __pyx_lineno, __pyx_filename); 21732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(__pyx_m); __pyx_m = 0; 21742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (!PyErr_Occurred()) { 21752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_ImportError, "init bintrees.qbintree"); 21762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 21772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 21782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 21792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 21802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 21812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 21822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_m; 21832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 21842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 21852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Runtime support code */ 21872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_REFNANNY 21882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { 21892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *m = NULL, *p = NULL; 21902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void *r = NULL; 21912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) m = PyImport_ImportModule((char *)modname); 21922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!m) goto end; 21932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); 21942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!p) goto end; 21952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) r = PyLong_AsVoidPtr(p); 21962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)end: 21972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(p); 21982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(m); 21992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (__Pyx_RefNannyAPIStruct *)r; 22002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 22012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* CYTHON_REFNANNY */ 22022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 22032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) { 22042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *result; 22052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) result = PyObject_GetAttr(dict, name); 22062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!result) { 22072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (dict != __pyx_b) { 22082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Clear(); 22092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) result = PyObject_GetAttr(__pyx_b, name); 22102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!result) { 22122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetObject(PyExc_NameError, name); 22132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return result; 22162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 22172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 22182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_RaiseDoubleKeywordsError( 22192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* func_name, 22202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject* kw_name) 22212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ 22222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 22232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION >= 3 22242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s() got multiple values for keyword argument '%U'", func_name, kw_name); 22252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 22262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s() got multiple values for keyword argument '%s'", func_name, 22272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyString_AsString(kw_name)); 22282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 22292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 22302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 22312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_ParseOptionalKeywords( 22322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *kwds, 22332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject **argnames[], 22342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *kwds2, 22352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *values[], 22362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t num_pos_args, 22372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* function_name) 22382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ 22392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *key = 0, *value = 0; 22402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t pos = 0; 22412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject*** name; 22422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject*** first_kw_arg = argnames + num_pos_args; 22432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (PyDict_Next(kwds, &pos, &key, &value)) { 22442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name = first_kw_arg; 22452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (*name && (**name != key)) name++; 22462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (*name) { 22472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) values[name-argnames] = value; 22482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) continue; 22492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name = first_kw_arg; 22512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 22522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { 22532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (*name) { 22542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) 22552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) && _PyString_Eq(**name, key)) { 22562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) values[name-argnames] = value; 22572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) break; 22582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name++; 22602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (*name) continue; 22622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 22632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject*** argname = argnames; 22642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (argname != first_kw_arg) { 22652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if ((**argname == key) || ( 22662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) 22672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) && _PyString_Eq(**argname, key))) { 22682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto arg_passed_twice; 22692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) argname++; 22712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 22742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 22752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyUnicode_Check(key))) { 22762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (*name) { 22772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int cmp = (**name == key) ? 0 : 22782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 22792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : 22802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 22812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyUnicode_Compare(**name, key); 22822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; 22832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (cmp == 0) { 22842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) values[name-argnames] = value; 22852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) break; 22862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name++; 22882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (*name) continue; 22902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 22912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject*** argname = argnames; 22922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (argname != first_kw_arg) { 22932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int cmp = (**argname == key) ? 0 : 22942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 22952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : 22962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 22972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyUnicode_Compare(**argname, key); 22982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; 22992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (cmp == 0) goto arg_passed_twice; 23002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) argname++; 23012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 23022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 23032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 23042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto invalid_keyword_type; 23052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (kwds2) { 23062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; 23072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 23082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto invalid_keyword; 23092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 23102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 23112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 23122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)arg_passed_twice: 23132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RaiseDoubleKeywordsError(function_name, key); 23142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 23152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)invalid_keyword_type: 23162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 23172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s() keywords must be strings", function_name); 23182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 23192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)invalid_keyword: 23202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 23212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 23222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s() got an unexpected keyword argument '%s'", 23232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) function_name, PyString_AsString(key)); 23242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 23252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s() got an unexpected keyword argument '%U'", 23262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) function_name, key); 23272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 23282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 23292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return -1; 23302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 23312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 23322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_RaiseArgtupleInvalid( 23332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* func_name, 23342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int exact, 23352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t num_min, 23362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t num_max, 23372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t num_found) 23382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ 23392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t num_expected; 23402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *more_or_less; 23412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (num_found < num_min) { 23422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) num_expected = num_min; 23432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) more_or_less = "at least"; 23442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 23452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) num_expected = num_max; 23462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) more_or_less = "at most"; 23472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 23482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (exact) { 23492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) more_or_less = "exactly"; 23502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 23512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 23522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s() takes %s %" CYTHON_FORMAT_SSIZE_T "d positional argument%s (%" CYTHON_FORMAT_SSIZE_T "d given)", 23532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) func_name, more_or_less, num_expected, 23542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (num_expected == 1) ? "" : "s", num_found); 23552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 23562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 23572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) { 23582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON 23592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp_type, *tmp_value, *tmp_tb; 23602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyThreadState *tstate = PyThreadState_GET(); 23612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tmp_type = tstate->curexc_type; 23622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tmp_value = tstate->curexc_value; 23632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tmp_tb = tstate->curexc_traceback; 23642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_type = type; 23652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_value = value; 23662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_traceback = tb; 23672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(tmp_type); 23682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(tmp_value); 23692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(tmp_tb); 23702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 23712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Restore(type, value, tb); 23722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 23732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 23742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) { 23752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON 23762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyThreadState *tstate = PyThreadState_GET(); 23772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *type = tstate->curexc_type; 23782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *value = tstate->curexc_value; 23792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *tb = tstate->curexc_traceback; 23802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_type = 0; 23812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_value = 0; 23822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_traceback = 0; 23832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 23842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Fetch(type, value, tb); 23852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 23862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 23872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 23882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3 23892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, 23902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) CYTHON_UNUSED PyObject *cause) { 23912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XINCREF(type); 23922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!value || value == Py_None) 23932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = NULL; 23942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else 23952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(value); 23962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tb || tb == Py_None) 23972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tb = NULL; 23982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 23992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(tb); 24002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyTraceBack_Check(tb)) { 24012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 24022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "raise: arg 3 must be a traceback or None"); 24032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto raise_error; 24042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX < 0x02050000 24072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyClass_Check(type)) { 24082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 24092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyType_Check(type)) { 24102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 24112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_PYPY 24122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!value) { 24132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(Py_None); 24142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = Py_None; 24152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 24172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_NormalizeException(&type, &value, &tb); 24182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 24192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (value) { 24202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 24212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "instance exception may not have a separate value"); 24222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto raise_error; 24232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = type; 24252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX < 0x02050000 24262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyInstance_Check(type)) { 24272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) type = (PyObject*) ((PyInstanceObject*)type)->in_class; 24282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(type); 24292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 24312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) type = 0; 24322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 24332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "raise: exception must be an old-style class or instance"); 24342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto raise_error; 24352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 24372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) type = (PyObject*) Py_TYPE(type); 24382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(type); 24392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { 24402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 24412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "raise: exception class must be a subclass of BaseException"); 24422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto raise_error; 24432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 24452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_ErrRestore(type, value, tb); 24472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 24482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)raise_error: 24492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(value); 24502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(type); 24512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(tb); 24522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 24532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 24542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else /* Python 3+ */ 24552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { 24562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject* owned_instance = NULL; 24572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (tb == Py_None) { 24582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tb = 0; 24592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (tb && !PyTraceBack_Check(tb)) { 24602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 24612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "raise: arg 3 must be a traceback or None"); 24622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 24632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (value == Py_None) 24652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = 0; 24662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyExceptionInstance_Check(type)) { 24672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (value) { 24682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 24692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "instance exception may not have a separate value"); 24702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 24712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = type; 24732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) type = (PyObject*) Py_TYPE(value); 24742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (PyExceptionClass_Check(type)) { 24752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *args; 24762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!value) 24772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) args = PyTuple_New(0); 24782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (PyTuple_Check(value)) { 24792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(value); 24802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) args = value; 24812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else 24832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) args = PyTuple_Pack(1, value); 24842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!args) 24852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 24862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) owned_instance = PyEval_CallObject(type, args); 24872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(args); 24882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!owned_instance) 24892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 24902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = owned_instance; 24912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyExceptionInstance_Check(value)) { 24922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 24932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "calling %R should have returned an instance of " 24942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "BaseException, not %R", 24952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) type, Py_TYPE(value)); 24962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 24972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 24982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 24992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 25002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "raise: exception class must be a subclass of BaseException"); 25012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 25022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (cause && cause != Py_None) { 25042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *fixed_cause; 25052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyExceptionClass_Check(cause)) { 25062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) fixed_cause = PyObject_CallObject(cause, NULL); 25072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (fixed_cause == NULL) 25082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 25092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (PyExceptionInstance_Check(cause)) { 25112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) fixed_cause = cause; 25122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(fixed_cause); 25132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 25152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 25162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "exception causes must derive from " 25172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "BaseException"); 25182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 25192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyException_SetCause(value, fixed_cause); 25212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetObject(type, value); 25232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (tb) { 25242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyThreadState *tstate = PyThreadState_GET(); 25252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject* tmp_tb = tstate->curexc_traceback; 25262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (tb != tmp_tb) { 25272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(tb); 25282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_traceback = tb; 25292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(tmp_tb); 25302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 25332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(owned_instance); 25342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 25352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 25362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 25372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 25382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, long level) { 25392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_import = 0; 25402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *empty_list = 0; 25412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *module = 0; 25422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *global_dict = 0; 25432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *empty_dict = 0; 25442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *list; 25452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_import = __Pyx_GetAttrString(__pyx_b, "__import__"); 25462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_import) 25472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 25482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (from_list) 25492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) list = from_list; 25502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 25512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) empty_list = PyList_New(0); 25522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!empty_list) 25532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 25542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) list = empty_list; 25552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) global_dict = PyModule_GetDict(__pyx_m); 25572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!global_dict) 25582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 25592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) empty_dict = PyDict_New(); 25602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!empty_dict) 25612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 25622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX >= 0x02050000 25632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 25642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION >= 3 25652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (level == -1) { 25662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (strchr(__Pyx_MODULE_NAME, '.')) { 25672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* try package relative import first */ 25682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_level = PyInt_FromLong(1); 25692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_level) 25702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 25712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) module = PyObject_CallFunctionObjArgs(py_import, 25722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name, global_dict, empty_dict, list, py_level, NULL); 25732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(py_level); 25742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!module) { 25752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyErr_ExceptionMatches(PyExc_ImportError)) 25762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 25772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Clear(); 25782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) level = 0; /* try absolute import on failure */ 25812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 25832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!module) { 25842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_level = PyInt_FromLong(level); 25852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_level) 25862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 25872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) module = PyObject_CallFunctionObjArgs(py_import, 25882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name, global_dict, empty_dict, list, py_level, NULL); 25892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(py_level); 25902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 25932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (level>0) { 25942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4."); 25952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 25962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 25972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) module = PyObject_CallFunctionObjArgs(py_import, 25982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name, global_dict, empty_dict, list, NULL); 25992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 26002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 26012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(empty_list); 26022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(py_import); 26032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(empty_dict); 26042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return module; 26052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 26062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 26072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) { 26082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const unsigned char neg_one = (unsigned char)-1, const_zero = 0; 26092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 26102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(unsigned char) < sizeof(long)) { 26112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 26122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(unsigned char)val)) { 26132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 26142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 26152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 26162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned char" : 26172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to unsigned char"); 26182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned char)-1; 26202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned char)val; 26222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x); 26242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 26252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 26262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) { 26272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const unsigned short neg_one = (unsigned short)-1, const_zero = 0; 26282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 26292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(unsigned short) < sizeof(long)) { 26302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 26312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(unsigned short)val)) { 26322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 26332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 26342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 26352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned short" : 26362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to unsigned short"); 26372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned short)-1; 26392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned short)val; 26412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x); 26432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 26442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 26452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) { 26462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const unsigned int neg_one = (unsigned int)-1, const_zero = 0; 26472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 26482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(unsigned int) < sizeof(long)) { 26492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 26502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(unsigned int)val)) { 26512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 26522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 26532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 26542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned int" : 26552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to unsigned int"); 26562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned int)-1; 26582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned int)val; 26602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x); 26622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 26632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 26642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) { 26652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char neg_one = (char)-1, const_zero = 0; 26662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 26672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(char) < sizeof(long)) { 26682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 26692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(char)val)) { 26702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 26712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 26722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 26732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to char" : 26742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to char"); 26752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (char)-1; 26772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (char)val; 26792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (char)__Pyx_PyInt_AsLong(x); 26812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 26822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 26832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) { 26842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const short neg_one = (short)-1, const_zero = 0; 26852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 26862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(short) < sizeof(long)) { 26872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 26882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(short)val)) { 26892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 26902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 26912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 26922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to short" : 26932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to short"); 26942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (short)-1; 26962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (short)val; 26982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (short)__Pyx_PyInt_AsLong(x); 27002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 27012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) { 27032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int neg_one = (int)-1, const_zero = 0; 27042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 27052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(int) < sizeof(long)) { 27062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 27072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(int)val)) { 27082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 27092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 27102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 27112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to int" : 27122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to int"); 27132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)-1; 27152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)val; 27172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)__Pyx_PyInt_AsLong(x); 27192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 27202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) { 27222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const signed char neg_one = (signed char)-1, const_zero = 0; 27232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 27242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(signed char) < sizeof(long)) { 27252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 27262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(signed char)val)) { 27272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 27282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 27292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 27302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed char" : 27312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to signed char"); 27322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed char)-1; 27342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed char)val; 27362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed char)__Pyx_PyInt_AsSignedLong(x); 27382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 27392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) { 27412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const signed short neg_one = (signed short)-1, const_zero = 0; 27422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 27432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(signed short) < sizeof(long)) { 27442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 27452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(signed short)val)) { 27462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 27472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 27482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 27492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed short" : 27502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to signed short"); 27512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed short)-1; 27532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed short)val; 27552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed short)__Pyx_PyInt_AsSignedLong(x); 27572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 27582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) { 27602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const signed int neg_one = (signed int)-1, const_zero = 0; 27612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 27622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(signed int) < sizeof(long)) { 27632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 27642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(signed int)val)) { 27652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 27662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 27672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 27682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed int" : 27692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to signed int"); 27702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed int)-1; 27722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed int)val; 27742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed int)__Pyx_PyInt_AsSignedLong(x); 27762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 27772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) { 27792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int neg_one = (int)-1, const_zero = 0; 27802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 27812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(int) < sizeof(long)) { 27822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 27832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(int)val)) { 27842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 27852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 27862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 27872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to int" : 27882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to int"); 27892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)-1; 27912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)val; 27932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)__Pyx_PyInt_AsLong(x); 27952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 27962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) { 27982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const unsigned long neg_one = (unsigned long)-1, const_zero = 0; 27992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 28002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 28012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 28022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 28032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 28042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 28052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned long"); 28062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned long)-1; 28072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned long)val; 28092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 28102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 28112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 28122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 28132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 28142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 28152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned long"); 28162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned long)-1; 28172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned long)PyLong_AsUnsignedLong(x); 28192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 28202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned long)PyLong_AsLong(x); 28212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 28232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) unsigned long val; 28242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 28252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (unsigned long)-1; 28262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsUnsignedLong(tmp); 28272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 28282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 28292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 28312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 28322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) { 28332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0; 28342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 28352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 28362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 28372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 28382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 28392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 28402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned PY_LONG_LONG"); 28412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned PY_LONG_LONG)-1; 28422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned PY_LONG_LONG)val; 28442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 28452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 28462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 28472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 28482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 28492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 28502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned PY_LONG_LONG"); 28512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned PY_LONG_LONG)-1; 28522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); 28542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 28552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x); 28562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 28582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) unsigned PY_LONG_LONG val; 28592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 28602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (unsigned PY_LONG_LONG)-1; 28612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsUnsignedLongLong(tmp); 28622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 28632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 28642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 28662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 28672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) { 28682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const long neg_one = (long)-1, const_zero = 0; 28692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 28702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 28712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 28722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 28732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 28742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 28752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to long"); 28762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (long)-1; 28772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (long)val; 28792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 28802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 28812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 28822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 28832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 28842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 28852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to long"); 28862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (long)-1; 28872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (long)PyLong_AsUnsignedLong(x); 28892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 28902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (long)PyLong_AsLong(x); 28912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 28932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val; 28942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 28952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (long)-1; 28962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsLong(tmp); 28972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 28982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 28992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 29012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 29022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) { 29032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0; 29042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 29052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 29062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 29072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 29082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 29092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 29102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to PY_LONG_LONG"); 29112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (PY_LONG_LONG)-1; 29122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (PY_LONG_LONG)val; 29142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 29152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 29162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 29172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 29182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 29192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 29202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to PY_LONG_LONG"); 29212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (PY_LONG_LONG)-1; 29222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); 29242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 29252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (PY_LONG_LONG)PyLong_AsLongLong(x); 29262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 29282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PY_LONG_LONG val; 29292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 29302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (PY_LONG_LONG)-1; 29312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsLongLong(tmp); 29322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 29332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 29342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 29362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 29372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) { 29382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const signed long neg_one = (signed long)-1, const_zero = 0; 29392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 29402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 29412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 29422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 29432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 29442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 29452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed long"); 29462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed long)-1; 29472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed long)val; 29492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 29502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 29512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 29522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 29532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 29542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 29552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed long"); 29562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed long)-1; 29572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed long)PyLong_AsUnsignedLong(x); 29592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 29602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed long)PyLong_AsLong(x); 29612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 29632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) signed long val; 29642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 29652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (signed long)-1; 29662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsSignedLong(tmp); 29672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 29682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 29692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 29712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 29722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) { 29732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0; 29742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 29752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 29762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 29772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 29782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 29792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 29802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed PY_LONG_LONG"); 29812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed PY_LONG_LONG)-1; 29822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed PY_LONG_LONG)val; 29842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 29852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 29862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 29872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 29882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 29892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 29902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed PY_LONG_LONG"); 29912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed PY_LONG_LONG)-1; 29922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); 29942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 29952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed PY_LONG_LONG)PyLong_AsLongLong(x); 29962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 29982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) signed PY_LONG_LONG val; 29992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 30002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (signed PY_LONG_LONG)-1; 30012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsSignedLongLong(tmp); 30022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 30032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 30042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 30062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 30072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_check_binary_version(void) { 30082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) char ctversion[4], rtversion[4]; 30092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); 30102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); 30112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { 30122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) char message[200]; 30132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyOS_snprintf(message, sizeof(message), 30142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "compiletime version %s of module '%.100s' " 30152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "does not match runtime version %s", 30162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ctversion, __Pyx_MODULE_NAME, rtversion); 30172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX < 0x02050000 30182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PyErr_Warn(NULL, message); 30192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 30202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PyErr_WarnEx(NULL, message, 1); 30212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 30222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 30242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 30252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 30262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef __PYX_HAVE_RT_ImportModule 30272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __PYX_HAVE_RT_ImportModule 30282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_ImportModule(const char *name) { 30292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_name = 0; 30302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_module = 0; 30312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_name = __Pyx_PyIdentifier_FromString(name); 30322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_name) 30332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_module = PyImport_Import(py_name); 30352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(py_name); 30362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return py_module; 30372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 30382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(py_name); 30392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 30402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 30412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 30422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 30432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef __PYX_HAVE_RT_ImportType 30442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __PYX_HAVE_RT_ImportType 30452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, 30462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) size_t size, int strict) 30472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ 30482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_module = 0; 30492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *result = 0; 30502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_name = 0; 30512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) char warning[200]; 30522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_module = __Pyx_ImportModule(module_name); 30532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_module) 30542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_name = __Pyx_PyIdentifier_FromString(class_name); 30562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_name) 30572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) result = PyObject_GetAttr(py_module, py_name); 30592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(py_name); 30602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_name = 0; 30612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(py_module); 30622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_module = 0; 30632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!result) 30642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyType_Check(result)) { 30662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 30672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s.%s is not a type object", 30682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) module_name, class_name); 30692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!strict && (size_t)((PyTypeObject *)result)->tp_basicsize > size) { 30722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyOS_snprintf(warning, sizeof(warning), 30732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s.%s size changed, may indicate binary incompatibility", 30742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) module_name, class_name); 30752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX < 0x02050000 30762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyErr_Warn(NULL, warning) < 0) goto bad; 30772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 30782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; 30792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 30802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if ((size_t)((PyTypeObject *)result)->tp_basicsize != size) { 30822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_ValueError, 30832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s.%s has the wrong size, try recompiling", 30842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) module_name, class_name); 30852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (PyTypeObject *)result; 30882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 30892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(py_module); 30902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(result); 30912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 30922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 30932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 30942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 30952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void* __Pyx_GetVtable(PyObject *dict) { 30962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void* ptr; 30972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *ob = PyMapping_GetItemString(dict, (char *)"__pyx_vtable__"); 30982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!ob) 30992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 31002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0) 31012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ptr = PyCapsule_GetPointer(ob, 0); 31022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 31032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ptr = PyCObject_AsVoidPtr(ob); 31042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 31052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!ptr && !PyErr_Occurred()) 31062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type"); 31072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(ob); 31082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return ptr; 31092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 31102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(ob); 31112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 31122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 31132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 31142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { 31152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int start = 0, mid = 0, end = count - 1; 31162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (end >= 0 && code_line > entries[end].code_line) { 31172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return count; 31182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (start < end) { 31202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mid = (start + end) / 2; 31212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (code_line < entries[mid].code_line) { 31222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) end = mid; 31232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (code_line > entries[mid].code_line) { 31242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) start = mid + 1; 31252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 31262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mid; 31272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (code_line <= entries[mid].code_line) { 31302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mid; 31312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 31322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mid + 1; 31332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 31352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyCodeObject *__pyx_find_code_object(int code_line) { 31362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCodeObject* code_object; 31372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int pos; 31382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { 31392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 31402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); 31422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { 31432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 31442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) code_object = __pyx_code_cache.entries[pos].code_object; 31462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(code_object); 31472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return code_object; 31482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 31492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { 31502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int pos, i; 31512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; 31522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!code_line)) { 31532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 31542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!entries)) { 31562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); 31572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(entries)) { 31582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.entries = entries; 31592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.max_count = 64; 31602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.count = 1; 31612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[0].code_line = code_line; 31622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[0].code_object = code_object; 31632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(code_object); 31642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 31662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); 31682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { 31692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCodeObject* tmp = entries[pos].code_object; 31702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[pos].code_object = code_object; 31712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 31722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 31732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_code_cache.count == __pyx_code_cache.max_count) { 31752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int new_max = __pyx_code_cache.max_count + 64; 31762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( 31772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.entries, new_max*sizeof(__Pyx_CodeObjectCacheEntry)); 31782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!entries)) { 31792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 31802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.entries = entries; 31822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.max_count = new_max; 31832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) for (i=__pyx_code_cache.count; i>pos; i--) { 31852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[i] = entries[i-1]; 31862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[pos].code_line = code_line; 31882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[pos].code_object = code_object; 31892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.count++; 31902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(code_object); 31912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 31922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 31932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "compile.h" 31942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "frameobject.h" 31952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "traceback.h" 31962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( 31972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *funcname, int c_line, 31982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int py_line, const char *filename) { 31992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCodeObject *py_code = 0; 32002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_srcfile = 0; 32012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_funcname = 0; 32022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 32032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_srcfile = PyString_FromString(filename); 32042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 32052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_srcfile = PyUnicode_FromString(filename); 32062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 32072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_srcfile) goto bad; 32082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (c_line) { 32092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 32102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); 32112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 32122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); 32132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 32142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 32162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 32172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_funcname = PyString_FromString(funcname); 32182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 32192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_funcname = PyUnicode_FromString(funcname); 32202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 32212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_funcname) goto bad; 32232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_code = __Pyx_PyCode_New( 32242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*int argcount,*/ 32252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*int kwonlyargcount,*/ 32262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*int nlocals,*/ 32272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*int stacksize,*/ 32282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*int flags,*/ 32292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_bytes, /*PyObject *code,*/ 32302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_tuple, /*PyObject *consts,*/ 32312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_tuple, /*PyObject *names,*/ 32322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_tuple, /*PyObject *varnames,*/ 32332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_tuple, /*PyObject *freevars,*/ 32342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_tuple, /*PyObject *cellvars,*/ 32352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_srcfile, /*PyObject *filename,*/ 32362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_funcname, /*PyObject *name,*/ 32372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_line, /*int firstlineno,*/ 32382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_bytes /*PyObject *lnotab*/ 32392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ); 32402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(py_srcfile); 32412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(py_funcname); 32422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return py_code; 32432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 32442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(py_srcfile); 32452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(py_funcname); 32462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 32472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 32482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_AddTraceback(const char *funcname, int c_line, 32492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int py_line, const char *filename) { 32502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCodeObject *py_code = 0; 32512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_globals = 0; 32522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyFrameObject *py_frame = 0; 32532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_code = __pyx_find_code_object(c_line ? c_line : py_line); 32542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_code) { 32552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_code = __Pyx_CreateCodeObjectForTraceback( 32562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) funcname, c_line, py_line, filename); 32572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_code) goto bad; 32582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_insert_code_object(c_line ? c_line : py_line, py_code); 32592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_globals = PyModule_GetDict(__pyx_m); 32612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_globals) goto bad; 32622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_frame = PyFrame_New( 32632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyThreadState_GET(), /*PyThreadState *tstate,*/ 32642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_code, /*PyCodeObject *code,*/ 32652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_globals, /*PyObject *globals,*/ 32662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0 /*PyObject *locals*/ 32672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ); 32682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_frame) goto bad; 32692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_frame->f_lineno = py_line; 32702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTraceBack_Here(py_frame); 32712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 32722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(py_code); 32732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(py_frame); 32742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 32752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 32762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { 32772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (t->p) { 32782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 32792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (t->is_unicode) { 32802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); 32812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (t->intern) { 32822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyString_InternFromString(t->s); 32832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 32842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyString_FromStringAndSize(t->s, t->n - 1); 32852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else /* Python 3+ has unicode identifiers */ 32872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (t->is_unicode | t->is_str) { 32882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (t->intern) { 32892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyUnicode_InternFromString(t->s); 32902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (t->encoding) { 32912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); 32922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 32932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); 32942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 32962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); 32972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 32992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!*t->p) 33002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return -1; 33012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ++t; 33022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 33042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 33052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Type Conversion Functions */ 33082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { 33102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int is_true = x == Py_True; 33112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_true | (x == Py_False) | (x == Py_None)) return is_true; 33122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else return PyObject_IsTrue(x); 33132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 33142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) { 33162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyNumberMethods *m; 33172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *name = NULL; 33182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *res = NULL; 33192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 33202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyInt_Check(x) || PyLong_Check(x)) 33212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 33222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyLong_Check(x)) 33232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 33242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return Py_INCREF(x), x; 33252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) m = Py_TYPE(x)->tp_as_number; 33262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 33272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (m && m->nb_int) { 33282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name = "int"; 33292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) res = PyNumber_Int(x); 33302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (m && m->nb_long) { 33322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name = "long"; 33332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) res = PyNumber_Long(x); 33342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 33362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (m && m->nb_int) { 33372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name = "int"; 33382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) res = PyNumber_Long(x); 33392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 33412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (res) { 33422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 33432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyInt_Check(res) && !PyLong_Check(res)) { 33442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 33452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyLong_Check(res)) { 33462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 33472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 33482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "__%s__ returned non-%s (type %.200s)", 33492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name, name, Py_TYPE(res)->tp_name); 33502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(res); 33512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 33522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (!PyErr_Occurred()) { 33552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 33562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "an integer is required"); 33572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return res; 33592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 33602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { 33622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t ival; 33632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject* x = PyNumber_Index(b); 33642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!x) return -1; 33652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ival = PyInt_AsSsize_t(x); 33662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(x); 33672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return ival; 33682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 33692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { 33712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02050000 33722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (ival <= LONG_MAX) 33732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PyInt_FromLong((long)ival); 33742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 33752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) unsigned char *bytes = (unsigned char *) &ival; 33762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int one = 1; int little = (int)*(unsigned char*)&one; 33772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0); 33782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 33802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PyInt_FromSize_t(ival); 33812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 33822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 33832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) { 33852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x); 33862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) { 33872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (size_t)-1; 33882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) { 33892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 33902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to size_t"); 33912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (size_t)-1; 33922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (size_t)val; 33942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 33952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* Py_PYTHON_H */ 3398