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__cwalker 2532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __PYX_HAVE_API__bintrees__cwalker 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) "cwalker.pyx", 3432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 3442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/*--- Type declarations ---*/ 3462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_obj_8bintrees_7cwalker_cWalker; 3472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pxd":11 3492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from stack cimport node_stack_t 3502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 3512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef class cWalker: # <<<<<<<<<<<<<< 3522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *node 3532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef node_t *root 3542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 3552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_obj_8bintrees_7cwalker_cWalker { 3562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject_HEAD 3572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *__pyx_vtab; 3582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) node_t *node; 3592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) node_t *root; 3602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) node_stack_t *stack; 3612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 3622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":14 3662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * from ctrees cimport * 3672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 3682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef class cWalker: # <<<<<<<<<<<<<< 3692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __cinit__(self): 3702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.root = NULL 3712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 3722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker { 3742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*set_tree)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, node_t *); 3752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *(*reset)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch); 3762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *(*push)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch); 3772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *(*pop)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch); 3782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 3792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *__pyx_vtabptr_8bintrees_7cwalker_cWalker; 3802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CYTHON_REFNANNY 3812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define CYTHON_REFNANNY 0 3822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 3832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_REFNANNY 3842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef struct { 3852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*INCREF)(void*, PyObject*, int); 3862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*DECREF)(void*, PyObject*, int); 3872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*GOTREF)(void*, PyObject*, int); 3882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*GIVEREF)(void*, PyObject*, int); 3892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void* (*SetupContext)(const char*, int, const char*); 3902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void (*FinishContext)(void**); 3912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } __Pyx_RefNannyAPIStruct; 3922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; 3932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/ 3942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; 3952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifdef WITH_THREAD 3962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannySetupContext(name, acquire_gil) \ 3972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (acquire_gil) { \ 3982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \ 3992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ 4002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyGILState_Release(__pyx_gilstate_save); \ 4012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { \ 4022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ 4032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 4042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 4052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannySetupContext(name, acquire_gil) \ 4062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) 4072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 4082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannyFinishContext() \ 4092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNanny->FinishContext(&__pyx_refnanny) 4102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 4112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 4122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 4132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) 4142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) 4152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) 4162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) 4172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) 4182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 4192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannyDeclarations 4202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannySetupContext(name, acquire_gil) 4212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_RefNannyFinishContext() 4222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_INCREF(r) Py_INCREF(r) 4232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_DECREF(r) Py_DECREF(r) 4242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_GOTREF(r) 4252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_GIVEREF(r) 4262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XINCREF(r) Py_XINCREF(r) 4272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XDECREF(r) Py_XDECREF(r) 4282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XGOTREF(r) 4292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #define __Pyx_XGIVEREF(r) 4302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* CYTHON_REFNANNY */ 4312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) 4322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) 4332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ 4352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, 4372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/ 4382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /*proto*/ 4402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ 4422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ 4432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/ 4452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *); 4472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *); 4492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *); 4512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *); 4532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *); 4552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *); 4572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *); 4592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *); 4612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *); 4632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *); 4652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *); 4672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *); 4692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *); 4712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *); 4732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *); 4752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *); 4772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_WriteUnraisable(const char *name, int clineno, 4792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int lineno, const char *filename); /*proto*/ 4802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_check_binary_version(void); 4822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/ 4842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef struct { 4862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int code_line; 4872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCodeObject* code_object; 4882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} __Pyx_CodeObjectCacheEntry; 4892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct __Pyx_CodeObjectCache { 4902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int count; 4912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int max_count; 4922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_CodeObjectCacheEntry* entries; 4932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 4942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; 4952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); 4962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyCodeObject *__pyx_find_code_object(int code_line); 4972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); 4982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_AddTraceback(const char *funcname, int c_line, 5002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int py_line, const char *filename); /*proto*/ 5012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ 5032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Module declarations from 'bintrees.ctrees' */ 5062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Module declarations from 'bintrees.stack' */ 5082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Module declarations from 'bintrees.cwalker' */ 5102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject *__pyx_ptype_8bintrees_7cwalker_cWalker = 0; 5112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define __Pyx_MODULE_NAME "bintrees.cwalker" 5122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)int __pyx_module_is_main_bintrees__cwalker = 0; 5132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Implementation of 'bintrees.cwalker' */ 5152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_builtin_property; 5162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_builtin_IndexError; 5172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_builtin_KeyError; 5182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pf_8bintrees_7cwalker_7cWalker___cinit__(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pf_8bintrees_7cwalker_7cWalker_2__dealloc__(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_4reset(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_6key(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_8value(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_10item(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_12is_valid(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_14goto(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, PyObject *__pyx_v_key); /* proto */ 5262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_16push(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_18pop(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_20stack_is_empty(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_22goto_leaf(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_24has_child(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, int __pyx_v_direction); /* proto */ 5312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_26down(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, int __pyx_v_direction); /* proto */ 5322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_28go_left(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_30go_right(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_32has_left(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_34has_right(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self); /* proto */ 5362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_36succ_item(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, PyObject *__pyx_v_key); /* proto */ 5372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_38prev_item(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, PyObject *__pyx_v_key); /* proto */ 5382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_40floor_item(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, PyObject *__pyx_v_key); /* proto */ 5392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_42ceiling_item(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, PyObject *__pyx_v_key); /* proto */ 5402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k_1[] = "pop(): stack is empty"; 5412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__key[] = "key"; 5422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__pop[] = "pop"; 5432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__item[] = "item"; 5442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__push[] = "push"; 5452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__reset[] = "reset"; 5462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__value[] = "value"; 5472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__KeyError[] = "KeyError"; 5482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k____main__[] = "__main__"; 5492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k____test__[] = "__test__"; 5502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__is_valid[] = "is_valid"; 5512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__property[] = "property"; 5522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_k__IndexError[] = "IndexError"; 5532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_kp_s_1; 5542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__IndexError; 5552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__KeyError; 5562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s____main__; 5572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s____test__; 5582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__is_valid; 5592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__item; 5602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__key; 5612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__pop; 5622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__property; 5632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__push; 5642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__reset; 5652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_n_s__value; 5662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_k_tuple_2; 5672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 5692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pw_8bintrees_7cwalker_7cWalker_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ 5702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pw_8bintrees_7cwalker_7cWalker_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { 5712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_r; 5722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 5732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); 5742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { 5752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} 5762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; 5772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker___cinit__(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 5782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 5792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 5802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 5812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":15 5832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 5842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef class cWalker: 5852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __cinit__(self): # <<<<<<<<<<<<<< 5862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.root = NULL 5872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = NULL 5882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 5892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_pf_8bintrees_7cwalker_7cWalker___cinit__(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 5912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_r; 5922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 5932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__cinit__", 0); 5942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":16 5962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef class cWalker: 5972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __cinit__(self): 5982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.root = NULL # <<<<<<<<<<<<<< 5992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = NULL 6002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.stack = stack_init(MAXSTACK) 6012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 6022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->root = NULL; 6032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":17 6052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __cinit__(self): 6062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.root = NULL 6072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = NULL # <<<<<<<<<<<<<< 6082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.stack = stack_init(MAXSTACK) 6092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 6102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 6112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = NULL; 6122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":18 6142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.root = NULL 6152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = NULL 6162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.stack = stack_init(MAXSTACK) # <<<<<<<<<<<<<< 6172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 6182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __dealloc__(self): 6192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 6202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->stack = stack_init(32); 6212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = 0; 6232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 6242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 6252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 6262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 6282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pw_8bintrees_7cwalker_7cWalker_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ 6292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pw_8bintrees_7cwalker_7cWalker_3__dealloc__(PyObject *__pyx_v_self) { 6302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 6312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); 6322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_pf_8bintrees_7cwalker_7cWalker_2__dealloc__(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 6332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 6342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 6352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":20 6372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.stack = stack_init(MAXSTACK) 6382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 6392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __dealloc__(self): # <<<<<<<<<<<<<< 6402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_delete(self.stack) 6412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 6422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 6432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_pf_8bintrees_7cwalker_7cWalker_2__dealloc__(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 6452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 6462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__dealloc__", 0); 6472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":21 6492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 6502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def __dealloc__(self): 6512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_delete(self.stack) # <<<<<<<<<<<<<< 6522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 6532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef void set_tree(self, node_t *root): 6542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 6552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) stack_delete(__pyx_v_self->stack); 6562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 6582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 6592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":23 6612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_delete(self.stack) 6622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 6632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef void set_tree(self, node_t *root): # <<<<<<<<<<<<<< 6642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.root = root 6652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.reset() 6662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 6672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_f_8bintrees_7cwalker_7cWalker_set_tree(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, node_t *__pyx_v_root) { 6692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 6702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 6712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 6722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 6732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 6742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("set_tree", 0); 6752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":24 6772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 6782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef void set_tree(self, node_t *root): 6792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.root = root # <<<<<<<<<<<<<< 6802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.reset() 6812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 6822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 6832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->root = __pyx_v_root; 6842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":25 6862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef void set_tree(self, node_t *root): 6872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.root = root 6882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.reset() # <<<<<<<<<<<<<< 6892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 6902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef reset(self): 6912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 6922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = ((struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *)__pyx_v_self->__pyx_vtab)->reset(__pyx_v_self, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 6932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 6942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 6952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 6972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 6982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 6992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_WriteUnraisable("bintrees.cwalker.cWalker.set_tree", __pyx_clineno, __pyx_lineno, __pyx_filename); 7002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 7012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 7022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 7032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":27 7052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.reset() 7062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 7072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef reset(self): # <<<<<<<<<<<<<< 7082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_reset(self.stack) 7092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.root 7102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 7112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 7132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_f_8bintrees_7cwalker_7cWalker_reset(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, int __pyx_skip_dispatch) { 7142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 7152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 7162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 7172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 7182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) node_t *__pyx_t_3; 7192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 7202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 7212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 7222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("reset", 0); 7232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* Check if called by wrapper */ 7242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__pyx_skip_dispatch)) ; 7252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* Check if overriden in Python */ 7262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { 7272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__reset); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 7282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 7292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_5reset)) { 7302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 7312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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 = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 7322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 7332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_2; 7342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = 0; 7352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 7362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 7372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 7392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 7402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":28 7422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 7432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef reset(self): 7442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_reset(self.stack) # <<<<<<<<<<<<<< 7452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.root 7462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 7472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 7482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) stack_reset(__pyx_v_self->stack); 7492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":29 7512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef reset(self): 7522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_reset(self.stack) 7532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.root # <<<<<<<<<<<<<< 7542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 7552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 7562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 7572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = __pyx_v_self->root; 7582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = __pyx_t_3; 7592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 7612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 7622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 7632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 7642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 7652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); 7662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = 0; 7672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 7682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 7692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 7702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 7712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 7722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 7742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 7752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_5reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 7762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 7772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 7782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("reset (wrapper)", 0); 7792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_4reset(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 7802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 7812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 7822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 7832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":27 7852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.reset() 7862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 7872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef reset(self): # <<<<<<<<<<<<<< 7882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_reset(self.stack) 7892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.root 7902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 7912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_4reset(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 7932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 7942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 7952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 7962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 7972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 7982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 7992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("reset", 0); 8002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 8012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = ((struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *)__pyx_v_self->__pyx_vtab)->reset(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 8022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 8032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_1; 8042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 8052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 8062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 8082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 8092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 8102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 8112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); 8122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 8132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 8142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 8152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 8162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 8172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 8182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 8202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_7key(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 8212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_7key(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 8222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 8232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 8242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("key (wrapper)", 0); 8252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_6key(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 8262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 8272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 8282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 8292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":32 8312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 8332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def key(self): # <<<<<<<<<<<<<< 8342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return <object> self.node.key 8352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 8372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_6key(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 8392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 8402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 8412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("key", 0); 8422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":33 8442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 8452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def key(self): 8462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return <object> self.node.key # <<<<<<<<<<<<<< 8472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 8492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 8502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 8512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->key)); 8522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = ((PyObject *)__pyx_v_self->node->key); 8532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 8542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 8562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 8572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 8582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 8592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 8602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 8612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 8632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_9value(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 8642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_9value(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 8652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 8662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 8672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("value (wrapper)", 0); 8682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_8value(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 8692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 8702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 8712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 8722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":36 8742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 8762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def value(self): # <<<<<<<<<<<<<< 8772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return <object> self.node.value 8782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 8802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_8value(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 8822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 8832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 8842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("value", 0); 8852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":37 8872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 8882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def value(self): 8892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return <object> self.node.value # <<<<<<<<<<<<<< 8902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 8912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 8922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 8932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 8942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->value)); 8952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = ((PyObject *)__pyx_v_self->node->value); 8962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 8972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 8982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 8992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 9002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 9012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 9022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 9032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 9042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 9062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_11item(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 9072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_11item(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 9082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 9092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 9102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("item (wrapper)", 0); 9112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_10item(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 9122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 9132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 9142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 9152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":40 9172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 9192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def item(self): # <<<<<<<<<<<<<< 9202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>self.node.key, <object>self.node.value) 9212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 9232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_10item(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 9252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 9262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 9272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 9282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 9292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 9302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 9312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("item", 0); 9322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":41 9342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 9352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def item(self): 9362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>self.node.key, <object>self.node.value) # <<<<<<<<<<<<<< 9372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 9392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 9402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 9412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 9422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 9432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->key)); 9442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->node->key)); 9452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_self->node->key)); 9462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->value)); 9472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->node->value)); 9482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_self->node->value)); 9492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = ((PyObject *)__pyx_t_1); 9502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 9512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 9522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 9542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 9552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 9562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 9572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.item", __pyx_clineno, __pyx_lineno, __pyx_filename); 9582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 9592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 9602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 9612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 9622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 9632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 9642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 9662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_13is_valid(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 9672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_13is_valid(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 9682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 9692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 9702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("is_valid (wrapper)", 0); 9712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_12is_valid(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 9722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 9732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 9742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 9752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":44 9772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 9792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def is_valid(self): # <<<<<<<<<<<<<< 9802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node != NULL 9812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 9832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_12is_valid(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 9852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 9862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 9872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 9882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 9892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 9902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 9912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("is_valid", 0); 9922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":45 9942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 9952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def is_valid(self): 9962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node != NULL # <<<<<<<<<<<<<< 9972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 9982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def goto(self, key): 9992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 10002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 10012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_self->node != NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 10022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 10032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_1; 10042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 10052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 10062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 10082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 10092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 10102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 10112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.is_valid", __pyx_clineno, __pyx_lineno, __pyx_filename); 10122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 10132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 10142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 10152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 10162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 10172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 10202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_15goto(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ 10212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_15goto(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { 10222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 10232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 10242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("goto (wrapper)", 0); 10252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_14goto(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self), ((PyObject *)__pyx_v_key)); 10262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 10272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 10282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 10292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":47 10312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node != NULL 10322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 10332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def goto(self, key): # <<<<<<<<<<<<<< 10342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef int cval 10352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.root 10362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 10372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_14goto(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, PyObject *__pyx_v_key) { 10392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_v_cval; 10402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 10412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 10422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) node_t *__pyx_t_1; 10432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_2; 10442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_3 = NULL; 10452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 10462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 10472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 10482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("goto", 0); 10492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":49 10512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def goto(self, key): 10522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef int cval 10532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.root # <<<<<<<<<<<<<< 10542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * while self.node != NULL: 10552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cval = ct_compare(key, <object> self.node.key) 10562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 10572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = __pyx_v_self->root; 10582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = __pyx_t_1; 10592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":50 10612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cdef int cval 10622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.root 10632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * while self.node != NULL: # <<<<<<<<<<<<<< 10642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cval = ct_compare(key, <object> self.node.key) 10652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if cval == 0: 10662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 10672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (1) { 10682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = (__pyx_v_self->node != NULL); 10692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!__pyx_t_2) break; 10702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":51 10722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.root 10732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * while self.node != NULL: 10742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cval = ct_compare(key, <object> self.node.key) # <<<<<<<<<<<<<< 10752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if cval == 0: 10762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return True 10772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 10782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = ((PyObject *)__pyx_v_self->node->key); 10792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(__pyx_t_3); 10802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_cval = ct_compare(__pyx_v_key, __pyx_t_3); 10812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; 10822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":52 10842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * while self.node != NULL: 10852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cval = ct_compare(key, <object> self.node.key) 10862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if cval == 0: # <<<<<<<<<<<<<< 10872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return True 10882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * elif cval < 0: 10892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 10902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = (__pyx_v_cval == 0); 10912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_2) { 10922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":53 10942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cval = ct_compare(key, <object> self.node.key) 10952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if cval == 0: 10962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return True # <<<<<<<<<<<<<< 10972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * elif cval < 0: 10982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] 10992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 11002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 11012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 11022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 11032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_3; 11042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = 0; 11052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 11062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L5; 11072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 11082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":54 11102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if cval == 0: 11112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return True 11122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * elif cval < 0: # <<<<<<<<<<<<<< 11132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] 11142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 11152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 11162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = (__pyx_v_cval < 0); 11172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_2) { 11182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":55 11202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return True 11212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * elif cval < 0: 11222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] # <<<<<<<<<<<<<< 11232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 11242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[1] 11252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 11262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = (__pyx_v_self->node->link[0]); 11272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L5; 11282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 11292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*else*/ { 11302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":57 11322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] 11332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 11342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[1] # <<<<<<<<<<<<<< 11352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return False 11362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 11372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 11382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = (__pyx_v_self->node->link[1]); 11392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 11402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L5:; 11412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 11422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":58 11442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 11452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[1] 11462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return False # <<<<<<<<<<<<<< 11472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 11482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef push(self): 11492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 11502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 11512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 11522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 11532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_3; 11542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = 0; 11552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 11562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 11582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 11592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 11602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_3); 11612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.goto", __pyx_clineno, __pyx_lineno, __pyx_filename); 11622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 11632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 11642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 11652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 11662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 11672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 11682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":60 11702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return False 11712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 11722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef push(self): # <<<<<<<<<<<<<< 11732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_push(self.stack, self.node) 11742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 11752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 11762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_17push(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 11782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_f_8bintrees_7cwalker_7cWalker_push(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, int __pyx_skip_dispatch) { 11792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 11802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 11812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 11822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 11832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 11842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 11852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 11862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("push", 0); 11872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* Check if called by wrapper */ 11882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__pyx_skip_dispatch)) ; 11892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* Check if overriden in Python */ 11902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { 11912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__push); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 11922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 11932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_17push)) { 11942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 11952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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 = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 11962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 11972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_2; 11982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = 0; 11992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 12002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 12012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 12022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 12032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 12042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":61 12062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 12072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef push(self): 12082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_push(self.stack, self.node) # <<<<<<<<<<<<<< 12092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 12102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef pop(self): 12112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 12122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) stack_push(__pyx_v_self->stack, __pyx_v_self->node); 12132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 12152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 12162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 12172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 12182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 12192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.push", __pyx_clineno, __pyx_lineno, __pyx_filename); 12202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = 0; 12212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 12222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 12232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 12242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 12252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 12262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 12282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_17push(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 12292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_17push(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 12302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 12312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 12322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("push (wrapper)", 0); 12332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_16push(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 12342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 12352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 12362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 12372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":60 12392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return False 12402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 12412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef push(self): # <<<<<<<<<<<<<< 12422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_push(self.stack, self.node) 12432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 12442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 12452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_16push(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 12472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 12482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 12492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 12502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 12512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 12522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 12532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("push", 0); 12542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 12552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = ((struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *)__pyx_v_self->__pyx_vtab)->push(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 12562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 12572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_1; 12582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 12592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 12602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 12622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 12632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 12642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 12652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.push", __pyx_clineno, __pyx_lineno, __pyx_filename); 12662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 12672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 12682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 12692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 12702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 12712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 12722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":63 12742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_push(self.stack, self.node) 12752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 12762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef pop(self): # <<<<<<<<<<<<<< 12772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if stack_is_empty(self.stack) != 0: 12782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise IndexError('pop(): stack is empty') 12792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 12802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 12812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_19pop(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 12822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_f_8bintrees_7cwalker_7cWalker_pop(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, int __pyx_skip_dispatch) { 12832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 12842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 12852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 12862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 12872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_3; 12882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 12892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 12902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 12912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("pop", 0); 12922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* Check if called by wrapper */ 12932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__pyx_skip_dispatch)) ; 12942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* Check if overriden in Python */ 12952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { 12962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__pop); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 12972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 12982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_19pop)) { 12992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 13002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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 = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 13012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 13022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_2; 13032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = 0; 13042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 13052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 13062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 13072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 13082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 13092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":64 13112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 13122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef pop(self): 13132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if stack_is_empty(self.stack) != 0: # <<<<<<<<<<<<<< 13142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise IndexError('pop(): stack is empty') 13152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = stack_pop(self.stack) 13162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 13172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = (stack_is_empty(__pyx_v_self->stack) != 0); 13182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_3) { 13192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":65 13212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef pop(self): 13222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if stack_is_empty(self.stack) != 0: 13232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise IndexError('pop(): stack is empty') # <<<<<<<<<<<<<< 13242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = stack_pop(self.stack) 13252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 13262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 13272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_Call(__pyx_builtin_IndexError, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 13282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 13292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_Raise(__pyx_t_1, 0, 0, 0); 13302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 13312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 13322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L3; 13332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 13342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3:; 13352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":66 13372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if stack_is_empty(self.stack) != 0: 13382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise IndexError('pop(): stack is empty') 13392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = stack_pop(self.stack) # <<<<<<<<<<<<<< 13402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 13412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def stack_is_empty(self): 13422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 13432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = stack_pop(__pyx_v_self->stack); 13442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 13462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 13472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 13482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 13492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 13502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.pop", __pyx_clineno, __pyx_lineno, __pyx_filename); 13512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = 0; 13522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 13532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 13542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 13552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 13562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 13572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 13592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_19pop(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 13602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_19pop(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 13612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 13622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 13632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("pop (wrapper)", 0); 13642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_18pop(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 13652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 13662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 13672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 13682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":63 13702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * stack_push(self.stack, self.node) 13712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 13722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef pop(self): # <<<<<<<<<<<<<< 13732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if stack_is_empty(self.stack) != 0: 13742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise IndexError('pop(): stack is empty') 13752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 13762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_18pop(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 13782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 13792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 13802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 13812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 13822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 13832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 13842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("pop", 0); 13852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 13862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = ((struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker *)__pyx_v_self->__pyx_vtab)->pop(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 13872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 13882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_1; 13892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 13902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 13912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 13932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 13942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 13952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 13962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.pop", __pyx_clineno, __pyx_lineno, __pyx_filename); 13972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 13982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 13992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 14002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 14012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 14022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 14032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 14052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_21stack_is_empty(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 14062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_21stack_is_empty(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 14072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 14082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 14092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("stack_is_empty (wrapper)", 0); 14102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_20stack_is_empty(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 14112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 14122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 14132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 14142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":68 14162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = stack_pop(self.stack) 14172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 14182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def stack_is_empty(self): # <<<<<<<<<<<<<< 14192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return <bint> stack_is_empty(self.stack) 14202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 14212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 14222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_20stack_is_empty(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 14242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 14252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 14262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 14272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 14282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 14292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 14302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("stack_is_empty", 0); 14312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":69 14332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 14342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def stack_is_empty(self): 14352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return <bint> stack_is_empty(self.stack) # <<<<<<<<<<<<<< 14362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 14372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def goto_leaf(self): 14382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 14392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 14402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = __Pyx_PyBool_FromLong(((int)stack_is_empty(__pyx_v_self->stack))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 14412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 14422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_1; 14432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 14442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 14452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 14472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 14482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 14492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 14502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.stack_is_empty", __pyx_clineno, __pyx_lineno, __pyx_filename); 14512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 14522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 14532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 14542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 14552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 14562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 14572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 14592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_23goto_leaf(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 14602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_doc_8bintrees_7cwalker_7cWalker_22goto_leaf[] = " get a leaf node "; 14612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_23goto_leaf(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 14622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 14632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 14642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("goto_leaf (wrapper)", 0); 14652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_22goto_leaf(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 14662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 14672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 14682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 14692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":71 14712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return <bint> stack_is_empty(self.stack) 14722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 14732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def goto_leaf(self): # <<<<<<<<<<<<<< 14742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ get a leaf node """ 14752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * while self.node != NULL: 14762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 14772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_22goto_leaf(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 14792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 14802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 14812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_1; 14822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("goto_leaf", 0); 14832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":73 14852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def goto_leaf(self): 14862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ get a leaf node """ 14872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * while self.node != NULL: # <<<<<<<<<<<<<< 14882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node.link[0] != NULL: 14892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] 14902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 14912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (1) { 14922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = (__pyx_v_self->node != NULL); 14932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!__pyx_t_1) break; 14942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":74 14962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ get a leaf node """ 14972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * while self.node != NULL: 14982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node.link[0] != NULL: # <<<<<<<<<<<<<< 14992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] 15002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * elif self.node.link[1] != NULL: 15012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 15022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = ((__pyx_v_self->node->link[0]) != NULL); 15032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_1) { 15042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":75 15062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * while self.node != NULL: 15072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node.link[0] != NULL: 15082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] # <<<<<<<<<<<<<< 15092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * elif self.node.link[1] != NULL: 15102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[1] 15112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 15122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = (__pyx_v_self->node->link[0]); 15132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L5; 15142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 15152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":76 15172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node.link[0] != NULL: 15182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] 15192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * elif self.node.link[1] != NULL: # <<<<<<<<<<<<<< 15202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[1] 15212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 15222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 15232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = ((__pyx_v_self->node->link[1]) != NULL); 15242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_1) { 15252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":77 15272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] 15282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * elif self.node.link[1] != NULL: 15292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[1] # <<<<<<<<<<<<<< 15302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 15312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return 15322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 15332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = (__pyx_v_self->node->link[1]); 15342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L5; 15352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 15362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*else*/ { 15372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":79 15392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[1] 15402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * else: 15412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return # <<<<<<<<<<<<<< 15422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 15432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def has_child(self, int direction): 15442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 15452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 15462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 15472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 15482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 15492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L5:; 15502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 15512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 15532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 15542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 15552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 15562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 15572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 15582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 15602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_25has_child(PyObject *__pyx_v_self, PyObject *__pyx_arg_direction); /*proto*/ 15612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_25has_child(PyObject *__pyx_v_self, PyObject *__pyx_arg_direction) { 15622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_v_direction; 15632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 15642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 15652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("has_child (wrapper)", 0); 15662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(__pyx_arg_direction); { 15672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_direction = __Pyx_PyInt_AsInt(__pyx_arg_direction); if (unlikely((__pyx_v_direction == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;} 15682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 15692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L4_argument_unpacking_done; 15702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3_error:; 15712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.has_child", __pyx_clineno, __pyx_lineno, __pyx_filename); 15722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 15732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 15742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L4_argument_unpacking_done:; 15752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_24has_child(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self), ((int)__pyx_v_direction)); 15762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 15772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 15782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 15792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":81 15812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return 15822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 15832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def has_child(self, int direction): # <<<<<<<<<<<<<< 15842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node.link[direction] != NULL 15852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 15862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 15872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_24has_child(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, int __pyx_v_direction) { 15892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 15902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 15912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 15922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 15932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 15942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 15952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("has_child", 0); 15962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":82 15982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 15992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def has_child(self, int direction): 16002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node.link[direction] != NULL # <<<<<<<<<<<<<< 16012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 16022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def down(self, int direction): 16032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 16042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 16052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = __Pyx_PyBool_FromLong(((__pyx_v_self->node->link[__pyx_v_direction]) != NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 16062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 16072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_1; 16082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 16092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 16102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 16122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 16132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 16142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 16152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.has_child", __pyx_clineno, __pyx_lineno, __pyx_filename); 16162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 16172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 16182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 16192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 16202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 16212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 16222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 16242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_27down(PyObject *__pyx_v_self, PyObject *__pyx_arg_direction); /*proto*/ 16252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_27down(PyObject *__pyx_v_self, PyObject *__pyx_arg_direction) { 16262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_v_direction; 16272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 16282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 16292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("down (wrapper)", 0); 16302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(__pyx_arg_direction); { 16312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_direction = __Pyx_PyInt_AsInt(__pyx_arg_direction); if (unlikely((__pyx_v_direction == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L3_error;} 16322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 16332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L4_argument_unpacking_done; 16342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3_error:; 16352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.down", __pyx_clineno, __pyx_lineno, __pyx_filename); 16362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 16372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 16382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L4_argument_unpacking_done:; 16392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_26down(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self), ((int)__pyx_v_direction)); 16402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 16412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 16422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 16432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":84 16452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node.link[direction] != NULL 16462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 16472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def down(self, int direction): # <<<<<<<<<<<<<< 16482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[direction] 16492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 16502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 16512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_26down(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, int __pyx_v_direction) { 16532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 16542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 16552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("down", 0); 16562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":85 16582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 16592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def down(self, int direction): 16602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[direction] # <<<<<<<<<<<<<< 16612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 16622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def go_left(self): 16632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 16642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = (__pyx_v_self->node->link[__pyx_v_direction]); 16652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 16672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 16682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 16692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 16702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 16712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 16732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_29go_left(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 16742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_29go_left(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 16752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 16762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 16772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("go_left (wrapper)", 0); 16782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_28go_left(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 16792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 16802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 16812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 16822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":87 16842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[direction] 16852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 16862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def go_left(self): # <<<<<<<<<<<<<< 16872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] 16882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 16892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 16902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_28go_left(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 16922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 16932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 16942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("go_left", 0); 16952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 16962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":88 16972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 16982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def go_left(self): 16992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] # <<<<<<<<<<<<<< 17002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 17012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def go_right(self): 17022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 17032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = (__pyx_v_self->node->link[0]); 17042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 17062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 17072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 17082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 17092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 17102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 17122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_31go_right(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 17132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_31go_right(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 17142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 17152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 17162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("go_right (wrapper)", 0); 17172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_30go_right(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 17182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 17192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 17202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 17212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":90 17232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[0] 17242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 17252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def go_right(self): # <<<<<<<<<<<<<< 17262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[1] 17272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 17282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 17292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_30go_right(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 17312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 17322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 17332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("go_right", 0); 17342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":91 17362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 17372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def go_right(self): 17382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[1] # <<<<<<<<<<<<<< 17392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 17402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def has_left(self): 17412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 17422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = (__pyx_v_self->node->link[1]); 17432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 17452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 17462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 17472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 17482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 17492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 17512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_33has_left(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 17522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_33has_left(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 17532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 17542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 17552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("has_left (wrapper)", 0); 17562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_32has_left(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 17572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 17582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 17592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 17602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":93 17622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = self.node.link[1] 17632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 17642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def has_left(self): # <<<<<<<<<<<<<< 17652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node.link[0] != NULL 17662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 17672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 17682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_32has_left(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 17702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 17712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 17722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 17732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 17742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 17752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 17762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("has_left", 0); 17772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":94 17792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 17802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def has_left(self): 17812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node.link[0] != NULL # <<<<<<<<<<<<<< 17822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 17832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def has_right(self): 17842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 17852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 17862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = __Pyx_PyBool_FromLong(((__pyx_v_self->node->link[0]) != NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 17872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 17882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_1; 17892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 17902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 17912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 17922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 17932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 17942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 17952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 17962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.has_left", __pyx_clineno, __pyx_lineno, __pyx_filename); 17972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 17982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 17992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 18002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 18012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 18022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 18032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 18052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_35has_right(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ 18062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_35has_right(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { 18072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 18082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 18092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("has_right (wrapper)", 0); 18102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_34has_right(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self)); 18112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 18122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 18132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 18142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":96 18162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node.link[0] != NULL 18172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 18182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def has_right(self): # <<<<<<<<<<<<<< 18192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node.link[1] != NULL 18202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 18212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 18222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_34has_right(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self) { 18242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 18252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 18262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 18272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 18282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 18292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 18302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("has_right", 0); 18312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":97 18332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 18342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def has_right(self): 18352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node.link[1] != NULL # <<<<<<<<<<<<<< 18362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 18372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def succ_item(self, key): 18382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 18392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 18402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = __Pyx_PyBool_FromLong(((__pyx_v_self->node->link[1]) != NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 18412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 18422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_t_1; 18432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 18442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 18452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 18472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 18482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 18492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 18502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.has_right", __pyx_clineno, __pyx_lineno, __pyx_filename); 18512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 18522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 18532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 18542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 18552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 18562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 18572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 18592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_37succ_item(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ 18602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_doc_8bintrees_7cwalker_7cWalker_36succ_item[] = " Get successor (k,v) pair of key, raises KeyError if key is max key\n or key does not exist.\n "; 18612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_37succ_item(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { 18622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 18632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 18642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("succ_item (wrapper)", 0); 18652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_36succ_item(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self), ((PyObject *)__pyx_v_key)); 18662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 18672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 18682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 18692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":99 18712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node.link[1] != NULL 18722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 18732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def succ_item(self, key): # <<<<<<<<<<<<<< 18742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ Get successor (k,v) pair of key, raises KeyError if key is max key 18752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * or key does not exist. 18762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 18772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_36succ_item(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, PyObject *__pyx_v_key) { 18792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 18802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 18812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_1; 18822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 18832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_3 = NULL; 18842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 18852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 18862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 18872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("succ_item", 0); 18882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":103 18902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * or key does not exist. 18912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ 18922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_succ_node(self.root, key) # <<<<<<<<<<<<<< 18932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is biggest in tree 18942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 18952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 18962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = ct_succ_node(__pyx_v_self->root, __pyx_v_key); 18972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":104 18992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ 19002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_succ_node(self.root, key) 19012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is biggest in tree # <<<<<<<<<<<<<< 19022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 19032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) 19042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 19052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = (__pyx_v_self->node == NULL); 19062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_1) { 19072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":105 19092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_succ_node(self.root, key) 19102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is biggest in tree 19112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) # <<<<<<<<<<<<<< 19122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) 19132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 19142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 19152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 19172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(__pyx_v_key); 19182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key); 19192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_v_key); 19202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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 = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 19222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 19232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 19252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); 19262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_t_3); 19272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = 0; 19282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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 = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 19302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 19312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_Raise(__pyx_t_3, 0, 0, 0); 19322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; 19332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L3; 19352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 19362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3:; 19372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":106 19392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is biggest in tree 19402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 19412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) # <<<<<<<<<<<<<< 19422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 19432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def prev_item(self, key): 19442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 19452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 19462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 19472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 19482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->key)); 19492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->node->key)); 19502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_self->node->key)); 19512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->value)); 19522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->node->value)); 19532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_self->node->value)); 19542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = ((PyObject *)__pyx_t_3); 19552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = 0; 19562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 19572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 19592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 19602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 19612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 19622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_3); 19632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.succ_item", __pyx_clineno, __pyx_lineno, __pyx_filename); 19642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 19652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 19662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 19672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 19682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 19692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 19702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 19722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_39prev_item(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ 19732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_doc_8bintrees_7cwalker_7cWalker_38prev_item[] = " Get predecessor (k,v) pair of key, raises KeyError if key is min key\n or key does not exist.\n "; 19742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_39prev_item(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { 19752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 19762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 19772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("prev_item (wrapper)", 0); 19782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_38prev_item(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self), ((PyObject *)__pyx_v_key)); 19792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 19802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 19812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 19822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":108 19842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) 19852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 19862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def prev_item(self, key): # <<<<<<<<<<<<<< 19872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ Get predecessor (k,v) pair of key, raises KeyError if key is min key 19882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * or key does not exist. 19892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 19902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 19912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_38prev_item(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, PyObject *__pyx_v_key) { 19922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 19932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 19942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_1; 19952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 19962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_3 = NULL; 19972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 19982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 19992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 20002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("prev_item", 0); 20012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 20022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":112 20032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * or key does not exist. 20042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ 20052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_prev_node(self.root, key) # <<<<<<<<<<<<<< 20062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is smallest in tree 20072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 20082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 20092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = ct_prev_node(__pyx_v_self->root, __pyx_v_key); 20102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 20112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":113 20122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ 20132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_prev_node(self.root, key) 20142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is smallest in tree # <<<<<<<<<<<<<< 20152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 20162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) 20172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 20182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = (__pyx_v_self->node == NULL); 20192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_1) { 20202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 20212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":114 20222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_prev_node(self.root, key) 20232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is smallest in tree 20242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) # <<<<<<<<<<<<<< 20252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) 20262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 20272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 20282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 20302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(__pyx_v_key); 20312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key); 20322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_v_key); 20332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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 = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 20352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 20362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 20382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); 20392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_t_3); 20402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = 0; 20412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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 = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 20432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 20442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_Raise(__pyx_t_3, 0, 0, 0); 20452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; 20462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L3; 20482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 20492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3:; 20502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 20512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":115 20522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is smallest in tree 20532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 20542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) # <<<<<<<<<<<<<< 20552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 20562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def floor_item(self, key): 20572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 20582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 20592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 20602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 20612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->key)); 20622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->node->key)); 20632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_self->node->key)); 20642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->value)); 20652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->node->value)); 20662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_self->node->value)); 20672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = ((PyObject *)__pyx_t_3); 20682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = 0; 20692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 20702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 20712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 20722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 20732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 20742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 20752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_3); 20762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.prev_item", __pyx_clineno, __pyx_lineno, __pyx_filename); 20772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 20782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 20792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 20802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 20812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 20822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 20832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 20842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 20852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_41floor_item(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ 20862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_doc_8bintrees_7cwalker_7cWalker_40floor_item[] = " Get the element (k,v) pair associated with the greatest key less\n than or equal to the given key, raises KeyError if there is no such key.\n "; 20872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_41floor_item(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { 20882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 20892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 20902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("floor_item (wrapper)", 0); 20912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_40floor_item(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self), ((PyObject *)__pyx_v_key)); 20922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 20932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 20942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 20952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 20962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":117 20972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) 20982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 20992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def floor_item(self, key): # <<<<<<<<<<<<<< 21002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ Get the element (k,v) pair associated with the greatest key less 21012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * than or equal to the given key, raises KeyError if there is no such key. 21022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 21032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_40floor_item(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, PyObject *__pyx_v_key) { 21052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 21062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 21072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_1; 21082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 21092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_3 = NULL; 21102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 21112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 21122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 21132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("floor_item", 0); 21142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":121 21162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * than or equal to the given key, raises KeyError if there is no such key. 21172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ 21182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_floor_node(self.root, key) # <<<<<<<<<<<<<< 21192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is smaller than min-key in tree 21202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 21212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 21222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = ct_floor_node(__pyx_v_self->root, __pyx_v_key); 21232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":122 21252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ 21262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_floor_node(self.root, key) 21272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is smaller than min-key in tree # <<<<<<<<<<<<<< 21282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 21292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) 21302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 21312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = (__pyx_v_self->node == NULL); 21322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_1) { 21332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":123 21352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_floor_node(self.root, key) 21362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is smaller than min-key in tree 21372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) # <<<<<<<<<<<<<< 21382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) 21392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 21402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 21412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 21432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(__pyx_v_key); 21442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key); 21452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_v_key); 21462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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 = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 21482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 21492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 21512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); 21522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_t_3); 21532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = 0; 21542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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 = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 21562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 21572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_Raise(__pyx_t_3, 0, 0, 0); 21582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; 21592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L3; 21612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 21622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3:; 21632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":124 21652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is smaller than min-key in tree 21662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 21672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) # <<<<<<<<<<<<<< 21682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 21692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def ceiling_item(self, key): 21702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 21712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 21722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 21732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 21742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->key)); 21752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->node->key)); 21762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_self->node->key)); 21772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->value)); 21782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->node->value)); 21792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_self->node->value)); 21802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = ((PyObject *)__pyx_t_3); 21812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = 0; 21822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 21832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 21852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 21862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 21872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 21882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_3); 21892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.floor_item", __pyx_clineno, __pyx_lineno, __pyx_filename); 21902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 21912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 21922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 21932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 21942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 21952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 21962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 21972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Python wrapper */ 21982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_43ceiling_item(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ 21992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static char __pyx_doc_8bintrees_7cwalker_7cWalker_42ceiling_item[] = " Get the element (k,v) pair associated with the smallest key greater\n than or equal to the given key, raises KeyError if there is no such key.\n "; 22002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pw_8bintrees_7cwalker_7cWalker_43ceiling_item(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { 22012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = 0; 22022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 22032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("ceiling_item (wrapper)", 0); 22042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = __pyx_pf_8bintrees_7cwalker_7cWalker_42ceiling_item(((struct __pyx_obj_8bintrees_7cwalker_cWalker *)__pyx_v_self), ((PyObject *)__pyx_v_key)); 22052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 22062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 22072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 22082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 22092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* "bintrees\cwalker.pyx":126 22102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) 22112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 22122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def ceiling_item(self, key): # <<<<<<<<<<<<<< 22132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ Get the element (k,v) pair associated with the smallest key greater 22142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * than or equal to the given key, raises KeyError if there is no such key. 22152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 22162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 22172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_pf_8bintrees_7cwalker_7cWalker_42ceiling_item(struct __pyx_obj_8bintrees_7cwalker_cWalker *__pyx_v_self, PyObject *__pyx_v_key) { 22182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_r = NULL; 22192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 22202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_t_1; 22212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 22222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_3 = NULL; 22232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_lineno = 0; 22242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *__pyx_filename = NULL; 22252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int __pyx_clineno = 0; 22262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("ceiling_item", 0); 22272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 22282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":130 22292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * than or equal to the given key, raises KeyError if there is no such key. 22302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ 22312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_ceiling_node(self.root, key) # <<<<<<<<<<<<<< 22322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is greater than max-key in tree 22332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 22342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 22352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_v_self->node = ct_ceiling_node(__pyx_v_self->root, __pyx_v_key); 22362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 22372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":131 22382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * """ 22392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_ceiling_node(self.root, key) 22402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is greater than max-key in tree # <<<<<<<<<<<<<< 22412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 22422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) 22432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 22442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = (__pyx_v_self->node == NULL); 22452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_t_1) { 22462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 22472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":132 22482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = ct_ceiling_node(self.root, key) 22492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is greater than max-key in tree 22502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) # <<<<<<<<<<<<<< 22512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) 22522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 22532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 22542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 22552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(__pyx_v_key); 22562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key); 22572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_v_key); 22582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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 = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 22592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 22602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 22612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 22622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 22632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); 22642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_t_3); 22652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = 0; 22662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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 = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 22672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 22682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 22692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_Raise(__pyx_t_3, 0, 0, 0); 22702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; 22712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 22722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L3; 22732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 22742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L3:; 22752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 22762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":133 22772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if self.node == NULL: # given key is greater than max-key in tree 22782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise KeyError(str(key)) 22792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object> self.node.key, <object> self.node.value) # <<<<<<<<<<<<<< 22802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 22812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_r); 22822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 22832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_3); 22842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->key)); 22852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self->node->key)); 22862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_self->node->key)); 22872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_v_self->node->value)); 22882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->node->value)); 22892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_v_self->node->value)); 22902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = ((PyObject *)__pyx_t_3); 22912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_3 = 0; 22922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 22932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 22942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = Py_None; __Pyx_INCREF(Py_None); 22952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 22962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 22972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 22982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_3); 22992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("bintrees.cwalker.cWalker.ceiling_item", __pyx_clineno, __pyx_lineno, __pyx_filename); 23002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_r = NULL; 23012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 23022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XGIVEREF(__pyx_r); 23032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 23042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_r; 23052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 23062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static struct __pyx_vtabstruct_8bintrees_7cwalker_cWalker __pyx_vtable_8bintrees_7cwalker_cWalker; 23072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 23082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__pyx_tp_new_8bintrees_7cwalker_cWalker(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { 23092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) struct __pyx_obj_8bintrees_7cwalker_cWalker *p; 23102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *o = (*t->tp_alloc)(t, 0); 23112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!o) return 0; 23122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) p = ((struct __pyx_obj_8bintrees_7cwalker_cWalker *)o); 23132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) p->__pyx_vtab = __pyx_vtabptr_8bintrees_7cwalker_cWalker; 23142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_pw_8bintrees_7cwalker_7cWalker_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) { 23152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(o); o = 0; 23162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 23172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return o; 23182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 23192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 23202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_tp_dealloc_8bintrees_7cwalker_cWalker(PyObject *o) { 23212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 23222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *etype, *eval, *etb; 23232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Fetch(&etype, &eval, &etb); 23242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ++Py_REFCNT(o); 23252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_pw_8bintrees_7cwalker_7cWalker_3__dealloc__(o); 23262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyErr_Occurred()) PyErr_WriteUnraisable(o); 23272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) --Py_REFCNT(o); 23282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Restore(etype, eval, etb); 23292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 23302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (*Py_TYPE(o)->tp_free)(o); 23312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 23322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 23332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyMethodDef __pyx_methods_8bintrees_7cwalker_cWalker[] = { 23342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("reset"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_5reset, METH_NOARGS, __Pyx_DOCSTR(0)}, 23352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("key"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_7key, METH_NOARGS, __Pyx_DOCSTR(0)}, 23362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("value"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_9value, METH_NOARGS, __Pyx_DOCSTR(0)}, 23372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("item"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_11item, METH_NOARGS, __Pyx_DOCSTR(0)}, 23382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("is_valid"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_13is_valid, METH_NOARGS, __Pyx_DOCSTR(0)}, 23392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("goto"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_15goto, METH_O, __Pyx_DOCSTR(0)}, 23402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("push"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_17push, METH_NOARGS, __Pyx_DOCSTR(0)}, 23412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("pop"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_19pop, METH_NOARGS, __Pyx_DOCSTR(0)}, 23422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("stack_is_empty"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_21stack_is_empty, METH_NOARGS, __Pyx_DOCSTR(0)}, 23432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("goto_leaf"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_23goto_leaf, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_8bintrees_7cwalker_7cWalker_22goto_leaf)}, 23442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("has_child"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_25has_child, METH_O, __Pyx_DOCSTR(0)}, 23452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("down"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_27down, METH_O, __Pyx_DOCSTR(0)}, 23462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("go_left"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_29go_left, METH_NOARGS, __Pyx_DOCSTR(0)}, 23472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("go_right"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_31go_right, METH_NOARGS, __Pyx_DOCSTR(0)}, 23482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("has_left"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_33has_left, METH_NOARGS, __Pyx_DOCSTR(0)}, 23492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("has_right"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_35has_right, METH_NOARGS, __Pyx_DOCSTR(0)}, 23502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("succ_item"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_37succ_item, METH_O, __Pyx_DOCSTR(__pyx_doc_8bintrees_7cwalker_7cWalker_36succ_item)}, 23512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("prev_item"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_39prev_item, METH_O, __Pyx_DOCSTR(__pyx_doc_8bintrees_7cwalker_7cWalker_38prev_item)}, 23522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("floor_item"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_41floor_item, METH_O, __Pyx_DOCSTR(__pyx_doc_8bintrees_7cwalker_7cWalker_40floor_item)}, 23532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {__Pyx_NAMESTR("ceiling_item"), (PyCFunction)__pyx_pw_8bintrees_7cwalker_7cWalker_43ceiling_item, METH_O, __Pyx_DOCSTR(__pyx_doc_8bintrees_7cwalker_7cWalker_42ceiling_item)}, 23542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {0, 0, 0, 0} 23552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 23562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 23572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyNumberMethods __pyx_tp_as_number_cWalker = { 23582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_add*/ 23592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_subtract*/ 23602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_multiply*/ 23612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 23622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_divide*/ 23632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 23642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_remainder*/ 23652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_divmod*/ 23662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_power*/ 23672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_negative*/ 23682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_positive*/ 23692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_absolute*/ 23702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_nonzero*/ 23712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_invert*/ 23722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_lshift*/ 23732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_rshift*/ 23742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_and*/ 23752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_xor*/ 23762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_or*/ 23772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 23782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_coerce*/ 23792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 23802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_int*/ 23812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 23822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_long*/ 23832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 23842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*reserved*/ 23852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 23862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_float*/ 23872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 23882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_oct*/ 23892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 23902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 23912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_hex*/ 23922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 23932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_add*/ 23942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_subtract*/ 23952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_multiply*/ 23962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 23972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_divide*/ 23982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 23992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_remainder*/ 24002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_power*/ 24012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_lshift*/ 24022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_rshift*/ 24032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_and*/ 24042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_xor*/ 24052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_or*/ 24062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_floor_divide*/ 24072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_true_divide*/ 24082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_floor_divide*/ 24092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_inplace_true_divide*/ 24102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX >= 0x02050000 24112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*nb_index*/ 24122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 24132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 24142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 24152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PySequenceMethods __pyx_tp_as_sequence_cWalker = { 24162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_length*/ 24172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_concat*/ 24182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_repeat*/ 24192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_item*/ 24202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_slice*/ 24212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_ass_item*/ 24222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_ass_slice*/ 24232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_contains*/ 24242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_inplace_concat*/ 24252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*sq_inplace_repeat*/ 24262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 24272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 24282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyMappingMethods __pyx_tp_as_mapping_cWalker = { 24292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*mp_length*/ 24302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*mp_subscript*/ 24312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*mp_ass_subscript*/ 24322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 24332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 24342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyBufferProcs __pyx_tp_as_buffer_cWalker = { 24352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 24362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_getreadbuffer*/ 24372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 24382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 24392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_getwritebuffer*/ 24402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 24412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 24422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_getsegcount*/ 24432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 24442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 24452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_getcharbuffer*/ 24462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 24472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX >= 0x02060000 24482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_getbuffer*/ 24492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 24502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX >= 0x02060000 24512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*bf_releasebuffer*/ 24522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 24532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 24542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 24552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyTypeObject __pyx_type_8bintrees_7cwalker_cWalker = { 24562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyVarObject_HEAD_INIT(0, 0) 24572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_NAMESTR("bintrees.cwalker.cWalker"), /*tp_name*/ 24582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) sizeof(struct __pyx_obj_8bintrees_7cwalker_cWalker), /*tp_basicsize*/ 24592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_itemsize*/ 24602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_tp_dealloc_8bintrees_7cwalker_cWalker, /*tp_dealloc*/ 24612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_print*/ 24622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_getattr*/ 24632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_setattr*/ 24642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 24652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_compare*/ 24662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 24672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*reserved*/ 24682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 24692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_repr*/ 24702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &__pyx_tp_as_number_cWalker, /*tp_as_number*/ 24712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &__pyx_tp_as_sequence_cWalker, /*tp_as_sequence*/ 24722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &__pyx_tp_as_mapping_cWalker, /*tp_as_mapping*/ 24732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_hash*/ 24742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_call*/ 24752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_str*/ 24762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_getattro*/ 24772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_setattro*/ 24782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) &__pyx_tp_as_buffer_cWalker, /*tp_as_buffer*/ 24792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ 24802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_doc*/ 24812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_traverse*/ 24822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_clear*/ 24832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_richcompare*/ 24842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_weaklistoffset*/ 24852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_iter*/ 24862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_iternext*/ 24872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_methods_8bintrees_7cwalker_cWalker, /*tp_methods*/ 24882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_members*/ 24892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_getset*/ 24902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_base*/ 24912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_dict*/ 24922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_descr_get*/ 24932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_descr_set*/ 24942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_dictoffset*/ 24952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_init*/ 24962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_alloc*/ 24972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_tp_new_8bintrees_7cwalker_cWalker, /*tp_new*/ 24982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_free*/ 24992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_is_gc*/ 25002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_bases*/ 25012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_mro*/ 25022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_cache*/ 25032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_subclasses*/ 25042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_weaklist*/ 25052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_del*/ 25062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX >= 0x02060000 25072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*tp_version_tag*/ 25082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 25092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 25102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 25112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyMethodDef __pyx_methods[] = { 25122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {0, 0, 0, 0} 25132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 25142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 25152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION >= 3 25162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static struct PyModuleDef __pyx_moduledef = { 25172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyModuleDef_HEAD_INIT, 25182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_NAMESTR("cwalker"), 25192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /* m_doc */ 25202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) -1, /* m_size */ 25212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_methods /* m_methods */, 25222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NULL, /* m_reload */ 25232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NULL, /* m_traverse */ 25242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NULL, /* m_clear */ 25252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NULL /* m_free */ 25262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 25272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 25282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 25292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static __Pyx_StringTabEntry __pyx_string_tab[] = { 25302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0}, 25312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__IndexError, __pyx_k__IndexError, sizeof(__pyx_k__IndexError), 0, 0, 1, 1}, 25322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__KeyError, __pyx_k__KeyError, sizeof(__pyx_k__KeyError), 0, 0, 1, 1}, 25332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1}, 25342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1}, 25352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__is_valid, __pyx_k__is_valid, sizeof(__pyx_k__is_valid), 0, 0, 1, 1}, 25362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__item, __pyx_k__item, sizeof(__pyx_k__item), 0, 0, 1, 1}, 25372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__key, __pyx_k__key, sizeof(__pyx_k__key), 0, 0, 1, 1}, 25382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__pop, __pyx_k__pop, sizeof(__pyx_k__pop), 0, 0, 1, 1}, 25392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__property, __pyx_k__property, sizeof(__pyx_k__property), 0, 0, 1, 1}, 25402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__push, __pyx_k__push, sizeof(__pyx_k__push), 0, 0, 1, 1}, 25412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__reset, __pyx_k__reset, sizeof(__pyx_k__reset), 0, 0, 1, 1}, 25422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {&__pyx_n_s__value, __pyx_k__value, sizeof(__pyx_k__value), 0, 0, 1, 1}, 25432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) {0, 0, 0, 0, 0, 0, 0} 25442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 25452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitCachedBuiltins(void) { 25462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_builtin_property = __Pyx_GetName(__pyx_b, __pyx_n_s__property); if (!__pyx_builtin_property) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 25472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_builtin_IndexError = __Pyx_GetName(__pyx_b, __pyx_n_s__IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 25482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_builtin_KeyError = __Pyx_GetName(__pyx_b, __pyx_n_s__KeyError); if (!__pyx_builtin_KeyError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 25492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 25502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 25512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return -1; 25522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 25532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 25542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitCachedConstants(void) { 25552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 25562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); 25572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 25582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":65 25592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * cpdef pop(self): 25602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * if stack_is_empty(self.stack) != 0: 25612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * raise IndexError('pop(): stack is empty') # <<<<<<<<<<<<<< 25622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * self.node = stack_pop(self.stack) 25632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 25642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 25652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_k_tuple_2 = PyTuple_New(1); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 25662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_k_tuple_2); 25672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_INCREF(((PyObject *)__pyx_kp_s_1)); 25682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_k_tuple_2, 0, ((PyObject *)__pyx_kp_s_1)); 25692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_kp_s_1)); 25702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_2)); 25712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 25722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 25732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 25742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 25752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return -1; 25762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 25772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 25782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitGlobals(void) { 25792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; 25802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 25812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 25822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return -1; 25832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 25842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 25852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3 25862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC initcwalker(void); /*proto*/ 25872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC initcwalker(void) 25882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 25892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC PyInit_cwalker(void); /*proto*/ 25902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PyMODINIT_FUNC PyInit_cwalker(void) 25912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 25922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ 25932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_1 = NULL; 25942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *__pyx_t_2 = NULL; 25952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyDeclarations 25962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if CYTHON_REFNANNY 25972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); 25982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!__Pyx_RefNanny) { 25992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Clear(); 26002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); 26012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!__Pyx_RefNanny) 26022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_FatalError("failed to import 'refnanny' module"); 26032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 26052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_cwalker(void)", 0); 26062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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;} 26082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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;} 26092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifdef __Pyx_CyFunction_USED 26102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 26122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifdef __Pyx_FusedFunction_USED 26132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_FusedFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 26152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifdef __Pyx_Generator_USED 26162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_Generator_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 26182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Library function declarations ---*/ 26192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Threads initialization code ---*/ 26202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS 26212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #ifdef WITH_THREAD /* Python build with threading support? */ 26222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyEval_InitThreads(); 26232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 26242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 26252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Module creation code ---*/ 26262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 26272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_m = Py_InitModule4(__Pyx_NAMESTR("cwalker"), __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); 26282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 26292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_m = PyModule_Create(&__pyx_moduledef); 26302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 26312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION >= 3 26332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) { 26342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyDict_GetItemString(modules, "bintrees.cwalker")) { 26362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(PyDict_SetItemString(modules, "bintrees.cwalker", __pyx_m) < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 26402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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;} 26412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if CYTHON_COMPILING_IN_PYPY 26422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(__pyx_b); 26432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 26442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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;}; 26452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Initialize various global constants etc. ---*/ 26462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_module_is_main_bintrees__cwalker) { 26482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (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;}; 26492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 26502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Builtin init code ---*/ 26512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Constants init code ---*/ 26532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Global init code ---*/ 26552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Variable export code ---*/ 26562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Function export code ---*/ 26572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Type init code ---*/ 26582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_vtabptr_8bintrees_7cwalker_cWalker = &__pyx_vtable_8bintrees_7cwalker_cWalker; 26592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_vtable_8bintrees_7cwalker_cWalker.set_tree = (void (*)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, node_t *))__pyx_f_8bintrees_7cwalker_7cWalker_set_tree; 26602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_vtable_8bintrees_7cwalker_cWalker.reset = (PyObject *(*)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch))__pyx_f_8bintrees_7cwalker_7cWalker_reset; 26612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_vtable_8bintrees_7cwalker_cWalker.push = (PyObject *(*)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch))__pyx_f_8bintrees_7cwalker_7cWalker_push; 26622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_vtable_8bintrees_7cwalker_cWalker.pop = (PyObject *(*)(struct __pyx_obj_8bintrees_7cwalker_cWalker *, int __pyx_skip_dispatch))__pyx_f_8bintrees_7cwalker_7cWalker_pop; 26632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyType_Ready(&__pyx_type_8bintrees_7cwalker_cWalker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__Pyx_SetVtable(__pyx_type_8bintrees_7cwalker_cWalker.tp_dict, __pyx_vtabptr_8bintrees_7cwalker_cWalker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__Pyx_SetAttrString(__pyx_m, "cWalker", (PyObject *)&__pyx_type_8bintrees_7cwalker_cWalker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_ptype_8bintrees_7cwalker_cWalker = &__pyx_type_8bintrees_7cwalker_cWalker; 26672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Type import code ---*/ 26682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Variable import code ---*/ 26692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Function import code ---*/ 26702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /*--- Execution code ---*/ 26712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 26722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":32 26732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 26742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 26752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def key(self): # <<<<<<<<<<<<<< 26762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return <object> self.node.key 26772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 26782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 26792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = __Pyx_GetName((PyObject *)__pyx_ptype_8bintrees_7cwalker_cWalker, __pyx_n_s__key); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 26812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 26832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); 26842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_t_1); 26852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 26862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 26882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 26892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyDict_SetItem((PyObject *)__pyx_ptype_8bintrees_7cwalker_cWalker->tp_dict, __pyx_n_s__key, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 26902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 26912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyType_Modified(__pyx_ptype_8bintrees_7cwalker_cWalker); 26922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 26932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":36 26942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 26952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 26962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def value(self): # <<<<<<<<<<<<<< 26972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return <object> self.node.value 26982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 26992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 27002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = __Pyx_GetName((PyObject *)__pyx_ptype_8bintrees_7cwalker_cWalker, __pyx_n_s__value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 27022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 27042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); 27052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_t_1); 27062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 27072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 27092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 27102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyDict_SetItem((PyObject *)__pyx_ptype_8bintrees_7cwalker_cWalker->tp_dict, __pyx_n_s__value, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 27122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyType_Modified(__pyx_ptype_8bintrees_7cwalker_cWalker); 27132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":40 27152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 27162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 27172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def item(self): # <<<<<<<<<<<<<< 27182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return (<object>self.node.key, <object>self.node.value) 27192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 27202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 27212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = __Pyx_GetName((PyObject *)__pyx_ptype_8bintrees_7cwalker_cWalker, __pyx_n_s__item); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 27232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 27252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); 27262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_t_1); 27272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 27282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 27302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 27312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyDict_SetItem((PyObject *)__pyx_ptype_8bintrees_7cwalker_cWalker->tp_dict, __pyx_n_s__item, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 27332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyType_Modified(__pyx_ptype_8bintrees_7cwalker_cWalker); 27342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":44 27362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 27372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @property 27382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * def is_valid(self): # <<<<<<<<<<<<<< 27392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * return self.node != NULL 27402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 27412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 27422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = __Pyx_GetName((PyObject *)__pyx_ptype_8bintrees_7cwalker_cWalker, __pyx_n_s__is_valid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 27442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_2); 27462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); 27472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GIVEREF(__pyx_t_1); 27482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = 0; 27492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyObject_Call(__pyx_builtin_property, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(__pyx_t_1); 27512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; 27522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyDict_SetItem((PyObject *)__pyx_ptype_8bintrees_7cwalker_cWalker->tp_dict, __pyx_n_s__is_valid, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; 27542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyType_Modified(__pyx_ptype_8bintrees_7cwalker_cWalker); 27552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /* "bintrees\cwalker.pyx":1 27572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * #!/usr/bin/env python # <<<<<<<<<<<<<< 27582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * #coding:utf-8 27592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * # Author: mozman 27602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 27612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_GOTREF(((PyObject *)__pyx_t_1)); 27632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} 27642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; 27652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto __pyx_L0; 27662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L1_error:; 27672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_1); 27682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_XDECREF(__pyx_t_2); 27692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_m) { 27702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_AddTraceback("init bintrees.cwalker", __pyx_clineno, __pyx_lineno, __pyx_filename); 27712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(__pyx_m); __pyx_m = 0; 27722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (!PyErr_Occurred()) { 27732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_ImportError, "init bintrees.cwalker"); 27742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 27752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_L0:; 27762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_RefNannyFinishContext(); 27772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 27782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 27792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 27802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return __pyx_m; 27812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 27822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 27832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 27842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Runtime support code */ 27852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_REFNANNY 27862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { 27872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *m = NULL, *p = NULL; 27882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void *r = NULL; 27892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) m = PyImport_ImportModule((char *)modname); 27902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!m) goto end; 27912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); 27922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!p) goto end; 27932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) r = PyLong_AsVoidPtr(p); 27942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)end: 27952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(p); 27962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(m); 27972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (__Pyx_RefNannyAPIStruct *)r; 27982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 27992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* CYTHON_REFNANNY */ 28002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 28012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) { 28022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *result; 28032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) result = PyObject_GetAttr(dict, name); 28042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!result) { 28052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (dict != __pyx_b) { 28062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Clear(); 28072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) result = PyObject_GetAttr(__pyx_b, name); 28082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!result) { 28102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetObject(PyExc_NameError, name); 28112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return result; 28142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 28152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 28162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_RaiseArgtupleInvalid( 28172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* func_name, 28182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int exact, 28192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t num_min, 28202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t num_max, 28212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t num_found) 28222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ 28232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t num_expected; 28242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *more_or_less; 28252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (num_found < num_min) { 28262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) num_expected = num_min; 28272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) more_or_less = "at least"; 28282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 28292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) num_expected = num_max; 28302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) more_or_less = "at most"; 28312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (exact) { 28332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) more_or_less = "exactly"; 28342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 28362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s() takes %s %" CYTHON_FORMAT_SSIZE_T "d positional argument%s (%" CYTHON_FORMAT_SSIZE_T "d given)", 28372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) func_name, more_or_less, num_expected, 28382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (num_expected == 1) ? "" : "s", num_found); 28392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 28402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 28412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_CheckKeywordStrings( 28422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *kwdict, 28432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* function_name, 28442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int kw_allowed) 28452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles){ 28462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject* key = 0; 28472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t pos = 0; 28482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CPYTHON_COMPILING_IN_PYPY 28492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) 28502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto invalid_keyword; 28512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 1; 28522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 28532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (PyDict_Next(kwdict, &pos, &key, 0)) { 28542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 28552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) 28562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 28572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!PyUnicode_Check(key))) 28582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto invalid_keyword_type; 28592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 28602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if ((!kw_allowed) && unlikely(key)) 28612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto invalid_keyword; 28622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 1; 28632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)invalid_keyword_type: 28642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 28652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s() keywords must be strings", function_name); 28662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 28672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 28682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)invalid_keyword: 28692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 28702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 28712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s() got an unexpected keyword argument '%s'", 28722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) function_name, PyString_AsString(key)); 28732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 28742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "%s() got an unexpected keyword argument '%U'", 28752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) function_name, key); 28762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 28772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 28782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 28792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 28802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) { 28812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON 28822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp_type, *tmp_value, *tmp_tb; 28832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyThreadState *tstate = PyThreadState_GET(); 28842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tmp_type = tstate->curexc_type; 28852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tmp_value = tstate->curexc_value; 28862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tmp_tb = tstate->curexc_traceback; 28872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_type = type; 28882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_value = value; 28892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_traceback = tb; 28902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(tmp_type); 28912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(tmp_value); 28922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(tmp_tb); 28932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 28942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Restore(type, value, tb); 28952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 28962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 28972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) { 28982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_CPYTHON 28992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyThreadState *tstate = PyThreadState_GET(); 29002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *type = tstate->curexc_type; 29012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *value = tstate->curexc_value; 29022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *tb = tstate->curexc_traceback; 29032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_type = 0; 29042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_value = 0; 29052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_traceback = 0; 29062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 29072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Fetch(type, value, tb); 29082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 29092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 29102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 29112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_MAJOR_VERSION < 3 29122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, 29132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) CYTHON_UNUSED PyObject *cause) { 29142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XINCREF(type); 29152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!value || value == Py_None) 29162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = NULL; 29172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else 29182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(value); 29192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tb || tb == Py_None) 29202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tb = NULL; 29212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 29222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(tb); 29232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyTraceBack_Check(tb)) { 29242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 29252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "raise: arg 3 must be a traceback or None"); 29262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto raise_error; 29272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX < 0x02050000 29302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyClass_Check(type)) { 29312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 29322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyType_Check(type)) { 29332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 29342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if CYTHON_COMPILING_IN_PYPY 29352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!value) { 29362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(Py_None); 29372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = Py_None; 29382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 29402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_NormalizeException(&type, &value, &tb); 29412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 29422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (value) { 29432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 29442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "instance exception may not have a separate value"); 29452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto raise_error; 29462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = type; 29482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX < 0x02050000 29492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyInstance_Check(type)) { 29502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) type = (PyObject*) ((PyInstanceObject*)type)->in_class; 29512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(type); 29522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 29542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) type = 0; 29552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 29562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "raise: exception must be an old-style class or instance"); 29572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto raise_error; 29582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 29602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) type = (PyObject*) Py_TYPE(type); 29612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(type); 29622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { 29632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 29642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "raise: exception class must be a subclass of BaseException"); 29652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto raise_error; 29662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 29682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_ErrRestore(type, value, tb); 29702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 29712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)raise_error: 29722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(value); 29732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(type); 29742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(tb); 29752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 29762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 29772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else /* Python 3+ */ 29782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { 29792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject* owned_instance = NULL; 29802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (tb == Py_None) { 29812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tb = 0; 29822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (tb && !PyTraceBack_Check(tb)) { 29832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 29842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "raise: arg 3 must be a traceback or None"); 29852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 29862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (value == Py_None) 29882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = 0; 29892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyExceptionInstance_Check(type)) { 29902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (value) { 29912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 29922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "instance exception may not have a separate value"); 29932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 29942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 29952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = type; 29962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) type = (PyObject*) Py_TYPE(value); 29972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (PyExceptionClass_Check(type)) { 29982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *args; 29992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!value) 30002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) args = PyTuple_New(0); 30012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (PyTuple_Check(value)) { 30022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(value); 30032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) args = value; 30042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else 30062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) args = PyTuple_Pack(1, value); 30072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!args) 30082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) owned_instance = PyEval_CallObject(type, args); 30102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(args); 30112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!owned_instance) 30122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) value = owned_instance; 30142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyExceptionInstance_Check(value)) { 30152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 30162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "calling %R should have returned an instance of " 30172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "BaseException, not %R", 30182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) type, Py_TYPE(value)); 30192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 30222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 30232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "raise: exception class must be a subclass of BaseException"); 30242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (cause && cause != Py_None) { 30272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *fixed_cause; 30282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyExceptionClass_Check(cause)) { 30292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) fixed_cause = PyObject_CallObject(cause, NULL); 30302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (fixed_cause == NULL) 30312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (PyExceptionInstance_Check(cause)) { 30342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) fixed_cause = cause; 30352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(fixed_cause); 30362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 30382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 30392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "exception causes must derive from " 30402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "BaseException"); 30412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 30422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyException_SetCause(value, fixed_cause); 30442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetObject(type, value); 30462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (tb) { 30472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyThreadState *tstate = PyThreadState_GET(); 30482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject* tmp_tb = tstate->curexc_traceback; 30492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (tb != tmp_tb) { 30502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(tb); 30512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) tstate->curexc_traceback = tb; 30522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(tmp_tb); 30532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 30562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(owned_instance); 30572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 30582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 30592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 30602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 30612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) { 30622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const unsigned char neg_one = (unsigned char)-1, const_zero = 0; 30632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 30642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(unsigned char) < sizeof(long)) { 30652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 30662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(unsigned char)val)) { 30672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 30682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 30692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 30702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned char" : 30712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to unsigned char"); 30722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned char)-1; 30742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned char)val; 30762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x); 30782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 30792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 30802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) { 30812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const unsigned short neg_one = (unsigned short)-1, const_zero = 0; 30822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 30832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(unsigned short) < sizeof(long)) { 30842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 30852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(unsigned short)val)) { 30862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 30872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 30882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 30892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned short" : 30902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to unsigned short"); 30912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned short)-1; 30932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned short)val; 30952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 30962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x); 30972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 30982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 30992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) { 31002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const unsigned int neg_one = (unsigned int)-1, const_zero = 0; 31012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 31022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(unsigned int) < sizeof(long)) { 31032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 31042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(unsigned int)val)) { 31052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 31062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 31072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 31082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned int" : 31092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to unsigned int"); 31102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned int)-1; 31122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned int)val; 31142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x); 31162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 31172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 31182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) { 31192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char neg_one = (char)-1, const_zero = 0; 31202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 31212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(char) < sizeof(long)) { 31222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 31232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(char)val)) { 31242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 31252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 31262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 31272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to char" : 31282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to char"); 31292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (char)-1; 31312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (char)val; 31332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (char)__Pyx_PyInt_AsLong(x); 31352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 31362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 31372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) { 31382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const short neg_one = (short)-1, const_zero = 0; 31392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 31402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(short) < sizeof(long)) { 31412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 31422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(short)val)) { 31432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 31442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 31452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 31462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to short" : 31472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to short"); 31482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (short)-1; 31502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (short)val; 31522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (short)__Pyx_PyInt_AsLong(x); 31542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 31552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 31562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) { 31572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int neg_one = (int)-1, const_zero = 0; 31582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 31592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(int) < sizeof(long)) { 31602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 31612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(int)val)) { 31622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 31632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 31642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 31652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to int" : 31662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to int"); 31672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)-1; 31692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)val; 31712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)__Pyx_PyInt_AsLong(x); 31732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 31742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 31752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) { 31762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const signed char neg_one = (signed char)-1, const_zero = 0; 31772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 31782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(signed char) < sizeof(long)) { 31792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 31802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(signed char)val)) { 31812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 31822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 31832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 31842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed char" : 31852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to signed char"); 31862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed char)-1; 31882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed char)val; 31902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 31912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed char)__Pyx_PyInt_AsSignedLong(x); 31922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 31932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 31942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) { 31952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const signed short neg_one = (signed short)-1, const_zero = 0; 31962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 31972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(signed short) < sizeof(long)) { 31982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 31992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(signed short)val)) { 32002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 32012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 32022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 32032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed short" : 32042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to signed short"); 32052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed short)-1; 32072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed short)val; 32092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed short)__Pyx_PyInt_AsSignedLong(x); 32112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 32122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 32132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) { 32142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const signed int neg_one = (signed int)-1, const_zero = 0; 32152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 32162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(signed int) < sizeof(long)) { 32172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 32182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(signed int)val)) { 32192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 32202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 32212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 32222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed int" : 32232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to signed int"); 32242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed int)-1; 32262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed int)val; 32282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed int)__Pyx_PyInt_AsSignedLong(x); 32302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 32312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 32322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) { 32332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int neg_one = (int)-1, const_zero = 0; 32342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 32352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (sizeof(int) < sizeof(long)) { 32362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = __Pyx_PyInt_AsLong(x); 32372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val != (long)(int)val)) { 32382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!unlikely(val == -1 && PyErr_Occurred())) { 32392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 32402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (is_unsigned && unlikely(val < 0)) ? 32412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to int" : 32422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to int"); 32432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)-1; 32452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)val; 32472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (int)__Pyx_PyInt_AsLong(x); 32492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 32502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 32512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) { 32522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const unsigned long neg_one = (unsigned long)-1, const_zero = 0; 32532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 32542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 32552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 32562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 32572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 32582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 32592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned long"); 32602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned long)-1; 32612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned long)val; 32632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 32642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 32652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 32662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 32672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 32682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 32692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned long"); 32702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned long)-1; 32712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned long)PyLong_AsUnsignedLong(x); 32732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 32742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned long)PyLong_AsLong(x); 32752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 32772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) unsigned long val; 32782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 32792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (unsigned long)-1; 32802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsUnsignedLong(tmp); 32812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 32822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 32832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 32852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 32862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) { 32872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0; 32882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 32892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 32902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 32912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 32922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 32932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 32942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned PY_LONG_LONG"); 32952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned PY_LONG_LONG)-1; 32962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 32972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned PY_LONG_LONG)val; 32982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 32992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 33002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 33012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 33022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 33032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 33042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to unsigned PY_LONG_LONG"); 33052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned PY_LONG_LONG)-1; 33062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); 33082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 33092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x); 33102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 33122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) unsigned PY_LONG_LONG val; 33132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 33142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (unsigned PY_LONG_LONG)-1; 33152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsUnsignedLongLong(tmp); 33162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 33172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 33182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 33202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) { 33222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const long neg_one = (long)-1, const_zero = 0; 33232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 33242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 33252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 33262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 33272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 33282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 33292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to long"); 33302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (long)-1; 33312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (long)val; 33332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 33342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 33352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 33362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 33372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 33382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 33392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to long"); 33402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (long)-1; 33412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (long)PyLong_AsUnsignedLong(x); 33432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 33442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (long)PyLong_AsLong(x); 33452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 33472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val; 33482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 33492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (long)-1; 33502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsLong(tmp); 33512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 33522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 33532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 33552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) { 33572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0; 33582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 33592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 33602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 33612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 33622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 33632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 33642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to PY_LONG_LONG"); 33652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (PY_LONG_LONG)-1; 33662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (PY_LONG_LONG)val; 33682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 33692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 33702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 33712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 33722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 33732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 33742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to PY_LONG_LONG"); 33752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (PY_LONG_LONG)-1; 33762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); 33782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 33792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (PY_LONG_LONG)PyLong_AsLongLong(x); 33802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 33822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PY_LONG_LONG val; 33832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 33842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (PY_LONG_LONG)-1; 33852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsLongLong(tmp); 33862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 33872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 33882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 33892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 33902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 33912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) { 33922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const signed long neg_one = (signed long)-1, const_zero = 0; 33932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 33942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 33952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 33962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 33972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 33982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 33992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed long"); 34002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed long)-1; 34012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 34022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed long)val; 34032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 34042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 34052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 34062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 34072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 34082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 34092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed long"); 34102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed long)-1; 34112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 34122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed long)PyLong_AsUnsignedLong(x); 34132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 34142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed long)PyLong_AsLong(x); 34152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 34162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 34172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) signed long val; 34182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 34192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (signed long)-1; 34202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsSignedLong(tmp); 34212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 34222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 34232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 34242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 34252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 34262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) { 34272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0; 34282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int is_unsigned = neg_one > const_zero; 34292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 34302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyInt_Check(x))) { 34312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) long val = PyInt_AS_LONG(x); 34322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned && unlikely(val < 0)) { 34332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 34342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed PY_LONG_LONG"); 34352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed PY_LONG_LONG)-1; 34362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 34372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed PY_LONG_LONG)val; 34382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else 34392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 34402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(PyLong_Check(x))) { 34412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_unsigned) { 34422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(Py_SIZE(x) < 0)) { 34432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 34442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "can't convert negative value to signed PY_LONG_LONG"); 34452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed PY_LONG_LONG)-1; 34462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 34472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); 34482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 34492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (signed PY_LONG_LONG)PyLong_AsLongLong(x); 34502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 34512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 34522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) signed PY_LONG_LONG val; 34532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *tmp = __Pyx_PyNumber_Int(x); 34542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!tmp) return (signed PY_LONG_LONG)-1; 34552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) val = __Pyx_PyInt_AsSignedLongLong(tmp); 34562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 34572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return val; 34582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 34592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 34602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 34612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, 34622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename) { 34632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *old_exc, *old_val, *old_tb; 34642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *ctx; 34652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_ErrFetch(&old_exc, &old_val, &old_tb); 34662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 34672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ctx = PyString_FromString(name); 34682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 34692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ctx = PyUnicode_FromString(name); 34702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 34712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_ErrRestore(old_exc, old_val, old_tb); 34722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!ctx) { 34732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_WriteUnraisable(Py_None); 34742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 34752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_WriteUnraisable(ctx); 34762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(ctx); 34772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 34782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 34792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 34802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_check_binary_version(void) { 34812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) char ctversion[4], rtversion[4]; 34822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); 34832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); 34842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { 34852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) char message[200]; 34862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyOS_snprintf(message, sizeof(message), 34872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "compiletime version %s of module '%.100s' " 34882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "does not match runtime version %s", 34892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ctversion, __Pyx_MODULE_NAME, rtversion); 34902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_VERSION_HEX < 0x02050000 34912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PyErr_Warn(NULL, message); 34922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 34932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PyErr_WarnEx(NULL, message, 1); 34942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 34952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 34962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 34972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 34982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 34992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_SetVtable(PyObject *dict, void *vtable) { 35002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0) 35012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *ob = PyCapsule_New(vtable, 0, 0); 35022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 35032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); 35042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 35052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!ob) 35062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 35072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyDict_SetItemString(dict, "__pyx_vtable__", ob) < 0) 35082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) goto bad; 35092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(ob); 35102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 35112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 35122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(ob); 35132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return -1; 35142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 35152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 35162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { 35172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int start = 0, mid = 0, end = count - 1; 35182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (end >= 0 && code_line > entries[end].code_line) { 35192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return count; 35202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (start < end) { 35222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) mid = (start + end) / 2; 35232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (code_line < entries[mid].code_line) { 35242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) end = mid; 35252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (code_line > entries[mid].code_line) { 35262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) start = mid + 1; 35272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 35282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mid; 35292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (code_line <= entries[mid].code_line) { 35322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mid; 35332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 35342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return mid + 1; 35352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 35372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyCodeObject *__pyx_find_code_object(int code_line) { 35382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCodeObject* code_object; 35392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int pos; 35402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { 35412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 35422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); 35442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { 35452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 35462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) code_object = __pyx_code_cache.entries[pos].code_object; 35482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(code_object); 35492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return code_object; 35502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 35512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { 35522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int pos, i; 35532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; 35542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!code_line)) { 35552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 35562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!entries)) { 35582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); 35592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (likely(entries)) { 35602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.entries = entries; 35612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.max_count = 64; 35622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.count = 1; 35632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[0].code_line = code_line; 35642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[0].code_object = code_object; 35652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(code_object); 35662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 35682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); 35702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { 35712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCodeObject* tmp = entries[pos].code_object; 35722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[pos].code_object = code_object; 35732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(tmp); 35742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 35752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (__pyx_code_cache.count == __pyx_code_cache.max_count) { 35772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int new_max = __pyx_code_cache.max_count + 64; 35782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( 35792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.entries, new_max*sizeof(__Pyx_CodeObjectCacheEntry)); 35802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(!entries)) { 35812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 35822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.entries = entries; 35842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.max_count = new_max; 35852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) for (i=__pyx_code_cache.count; i>pos; i--) { 35872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[i] = entries[i-1]; 35882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 35892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[pos].code_line = code_line; 35902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) entries[pos].code_object = code_object; 35912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_code_cache.count++; 35922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_INCREF(code_object); 35932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 35942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 35952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "compile.h" 35962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "frameobject.h" 35972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "traceback.h" 35982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( 35992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *funcname, int c_line, 36002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int py_line, const char *filename) { 36012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCodeObject *py_code = 0; 36022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_srcfile = 0; 36032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_funcname = 0; 36042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 36052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_srcfile = PyString_FromString(filename); 36062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 36072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_srcfile = PyUnicode_FromString(filename); 36082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 36092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_srcfile) goto bad; 36102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (c_line) { 36112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 36122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); 36132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 36142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); 36152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 36162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 36172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 36182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 36192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_funcname = PyString_FromString(funcname); 36202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else 36212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_funcname = PyUnicode_FromString(funcname); 36222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 36232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 36242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_funcname) goto bad; 36252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_code = __Pyx_PyCode_New( 36262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*int argcount,*/ 36272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*int kwonlyargcount,*/ 36282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*int nlocals,*/ 36292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*int stacksize,*/ 36302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0, /*int flags,*/ 36312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_bytes, /*PyObject *code,*/ 36322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_tuple, /*PyObject *consts,*/ 36332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_tuple, /*PyObject *names,*/ 36342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_tuple, /*PyObject *varnames,*/ 36352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_tuple, /*PyObject *freevars,*/ 36362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_tuple, /*PyObject *cellvars,*/ 36372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_srcfile, /*PyObject *filename,*/ 36382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_funcname, /*PyObject *name,*/ 36392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_line, /*int firstlineno,*/ 36402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_empty_bytes /*PyObject *lnotab*/ 36412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ); 36422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(py_srcfile); 36432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(py_funcname); 36442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return py_code; 36452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 36462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(py_srcfile); 36472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(py_funcname); 36482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 36492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 36502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static void __Pyx_AddTraceback(const char *funcname, int c_line, 36512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int py_line, const char *filename) { 36522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyCodeObject *py_code = 0; 36532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *py_globals = 0; 36542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyFrameObject *py_frame = 0; 36552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_code = __pyx_find_code_object(c_line ? c_line : py_line); 36562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_code) { 36572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_code = __Pyx_CreateCodeObjectForTraceback( 36582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) funcname, c_line, py_line, filename); 36592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_code) goto bad; 36602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) __pyx_insert_code_object(c_line ? c_line : py_line, py_code); 36612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 36622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_globals = PyModule_GetDict(__pyx_m); 36632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_globals) goto bad; 36642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_frame = PyFrame_New( 36652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyThreadState_GET(), /*PyThreadState *tstate,*/ 36662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_code, /*PyCodeObject *code,*/ 36672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_globals, /*PyObject *globals,*/ 36682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 0 /*PyObject *locals*/ 36692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ); 36702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!py_frame) goto bad; 36712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) py_frame->f_lineno = py_line; 36722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyTraceBack_Here(py_frame); 36732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bad: 36742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(py_code); 36752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_XDECREF(py_frame); 36762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 36772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 36782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { 36792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) while (t->p) { 36802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #if PY_MAJOR_VERSION < 3 36812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (t->is_unicode) { 36822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); 36832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (t->intern) { 36842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyString_InternFromString(t->s); 36852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 36862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyString_FromStringAndSize(t->s, t->n - 1); 36872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 36882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #else /* Python 3+ has unicode identifiers */ 36892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (t->is_unicode | t->is_str) { 36902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (t->intern) { 36912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyUnicode_InternFromString(t->s); 36922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (t->encoding) { 36932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); 36942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 36952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); 36962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 36972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else { 36982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); 36992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 37002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) #endif 37012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!*t->p) 37022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return -1; 37032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ++t; 37042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 37052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return 0; 37062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 37072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 37082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 37092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* Type Conversion Functions */ 37102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 37112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { 37122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int is_true = x == Py_True; 37132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (is_true | (x == Py_False) | (x == Py_None)) return is_true; 37142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else return PyObject_IsTrue(x); 37152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 37162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 37172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) { 37182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyNumberMethods *m; 37192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char *name = NULL; 37202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject *res = NULL; 37212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 37222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyInt_Check(x) || PyLong_Check(x)) 37232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 37242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (PyLong_Check(x)) 37252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 37262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return Py_INCREF(x), x; 37272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) m = Py_TYPE(x)->tp_as_number; 37282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 37292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (m && m->nb_int) { 37302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name = "int"; 37312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) res = PyNumber_Int(x); 37322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 37332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (m && m->nb_long) { 37342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name = "long"; 37352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) res = PyNumber_Long(x); 37362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 37372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 37382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (m && m->nb_int) { 37392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name = "int"; 37402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) res = PyNumber_Long(x); 37412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 37422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 37432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (res) { 37442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x03000000 37452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyInt_Check(res) && !PyLong_Check(res)) { 37462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 37472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!PyLong_Check(res)) { 37482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 37492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_Format(PyExc_TypeError, 37502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "__%s__ returned non-%s (type %.200s)", 37512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) name, name, Py_TYPE(res)->tp_name); 37522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(res); 37532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return NULL; 37542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 37552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 37562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else if (!PyErr_Occurred()) { 37572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_TypeError, 37582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "an integer is required"); 37592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 37602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return res; 37612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 37622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 37632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { 37642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_ssize_t ival; 37652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyObject* x = PyNumber_Index(b); 37662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!x) return -1; 37672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ival = PyInt_AsSsize_t(x); 37682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Py_DECREF(x); 37692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return ival; 37702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 37712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 37722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { 37732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if PY_VERSION_HEX < 0x02050000 37742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (ival <= LONG_MAX) 37752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PyInt_FromLong((long)ival); 37762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) else { 37772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) unsigned char *bytes = (unsigned char *) &ival; 37782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int one = 1; int little = (int)*(unsigned char*)&one; 37792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0); 37802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 37812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 37822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return PyInt_FromSize_t(ival); 37832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 37842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 37852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 37862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) { 37872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x); 37882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) { 37892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (size_t)-1; 37902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) { 37912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PyErr_SetString(PyExc_OverflowError, 37922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) "value too large to convert to size_t"); 37932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (size_t)-1; 37942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 37952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return (size_t)val; 37962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 37972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 37982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 37992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif /* Py_PYTHON_H */ 3800