diff --git a/pyflowline/algorithms/auxiliary/find_index_in_list.py b/pyflowline/algorithms/auxiliary/find_index_in_list.py index a6fdd9d..d9194dc 100644 --- a/pyflowline/algorithms/auxiliary/find_index_in_list.py +++ b/pyflowline/algorithms/auxiliary/find_index_in_list.py @@ -1,10 +1,10 @@ import copy import numpy as np import importlib.util -iFlag_cython = importlib.util.find_spec("cython") +iFlag_cython = importlib.util.find_spec("cython") if iFlag_cython is not None: from pyflowline.algorithms.cython.kernel import find_vertex_in_list - from pyflowline.external.tinyr.tinyr.tinyr import RTree + from tinyr import RTree iFlag_use_rtree = 1 else: iFlag_use_rtree =0 @@ -17,26 +17,26 @@ def find_vertex_on_edge(aVertex_in, pEdge_in): aIndex_order=list() aDistance=list() nVertex= len(aVertex_in) - npoint = 0 + npoint = 0 if nVertex > 0 : if iFlag_use_rtree == 1: index_vertex = RTree(max_cap=5, min_cap=2) for i in range(nVertex): - lID = i + lID = i x = aVertex_in[i].dLongitude_degree - y = aVertex_in[i].dLatitude_degree + y = aVertex_in[i].dLatitude_degree left = x - 1E-5 right = x + 1E-5 bottom = y - 1E-5 top = y + 1E-5 pBound= (left, bottom, right, top) - index_vertex.insert(lID, pBound) # + index_vertex.insert(lID, pBound) # pass #now the new vertex pVertex_start = pEdge_in.pVertex_start pVertex_end = pEdge_in.pVertex_end x1=pVertex_start.dLongitude_degree - y1=pVertex_start.dLatitude_degree + y1=pVertex_start.dLatitude_degree x2=pVertex_end.dLongitude_degree y2=pVertex_end.dLatitude_degree left = np.min([x1, x2]) @@ -48,12 +48,12 @@ def find_vertex_on_edge(aVertex_in, pEdge_in): for k in aIntersect: pVertex = aVertex_in[k] iFlag_overlap, dDistance, diff = pEdge_in.check_vertex_on_edge(pVertex) - if iFlag_overlap == 1: - iFlag_exist = 1 + if iFlag_overlap == 1: + iFlag_exist = 1 aDistance.append(dDistance) - aIndex.append(k) - npoint = npoint + 1 - else: + aIndex.append(k) + npoint = npoint + 1 + else: if diff < 1.0: iFlag_overlap = pEdge_in.check_vertex_on_edge(pVertex) @@ -64,27 +64,27 @@ def find_vertex_on_edge(aVertex_in, pEdge_in): for i in np.arange( nVertex): pVertex = aVertex_in[i] iFlag_overlap, dDistance, diff = pEdge_in.check_vertex_on_edge(pVertex) - if iFlag_overlap == 1: - iFlag_exist = 1 + if iFlag_overlap == 1: + iFlag_exist = 1 aDistance.append(dDistance) - aIndex.append(i) - npoint = npoint + 1 - else: + aIndex.append(i) + npoint = npoint + 1 + else: if diff < 1.0: iFlag_overlap = pEdge_in.check_vertex_on_edge(pVertex) pass - #re-order + #re-order if iFlag_exist == 1 : x = np.array(aDistance) b = np.argsort(x) c = np.array(aIndex) d= c[b] - aIndex_order = list(d) + aIndex_order = list(d) else: pass - + return iFlag_exist, npoint , aIndex_order @@ -106,11 +106,11 @@ def find_edge_in_list(aEdge_in, pEdge_in): for i in np.arange( nEdge): pEdge = aEdge_in[i] if pEdge == pEdge_in: - iFlag_exist = 1 - lIndex = i - break - - + iFlag_exist = 1 + lIndex = i + break + + return iFlag_exist, lIndex @@ -132,10 +132,10 @@ def find_flowline_in_list(aFlowline_in, pFlowline_in): for i in np.arange( nFlowline): pFlowline = aFlowline_in[i] if pFlowline == pFlowline_in: - iFlag_exist = 1 - lIndex = i - break - + iFlag_exist = 1 + lIndex = i + break + return iFlag_exist, lIndex def find_hexagon_through_edge(aHexagon_in, pEdge_in): @@ -154,7 +154,7 @@ def find_hexagon_through_edge(aHexagon_in, pEdge_in): for i in range(nHexagon): pHexagon = aHexagon_in[i] if pHexagon.has_this_edge(pEdge_in) ==1: - aHexagon_out.append(pHexagon) + aHexagon_out.append(pHexagon) return aHexagon_out @@ -170,7 +170,7 @@ def check_if_duplicates(aList_in): # iFlag_unique = 0 # break # else: - # pass + # pass #return iFlag_unique return int(len(aList_in) == len(set(aList_in))) @@ -186,7 +186,7 @@ def add_unique_vertex(aVertex_in, pVertex_in, dThreshold_in = 1.0E-6): [type]: [description] """ iFlag_exist = 0 - nVertex = len(aVertex_in) + nVertex = len(aVertex_in) iFlag_exist, dummy = find_vertex_in_list(aVertex_in, pVertex_in, dThreshold_in) @@ -208,9 +208,9 @@ def find_list_in_list(aList_in, pList_in): b = copy.deepcopy(a) b.sort() if (b == c ): - iFlag =1 + iFlag =1 break else: iFlag = 0 - + return iFlag diff --git a/pyflowline/algorithms/auxiliary/find_vertex_in_list.py b/pyflowline/algorithms/auxiliary/find_vertex_in_list.py index 99dec2e..e3aa2a0 100644 --- a/pyflowline/algorithms/auxiliary/find_vertex_in_list.py +++ b/pyflowline/algorithms/auxiliary/find_vertex_in_list.py @@ -1,9 +1,9 @@ import importlib.util import numpy as np -iFlag_cython = importlib.util.find_spec("cython") +iFlag_cython = importlib.util.find_spec("cython") if iFlag_cython is not None: - from pyflowline.external.tinyr.tinyr.tinyr import RTree + from tinyr import RTree iFlag_use_rtree = 1 else: iFlag_use_rtree =0 @@ -28,20 +28,20 @@ def find_vertex_in_list(aVertex_in, pVertex_in, dThreshold_in=1.0E-6): #index_vertex = rtree.index.Index() index_vertex = RTree(max_cap=5, min_cap=2) for i in range(nVertex): - lID = i + lID = i x=aVertex_in[i].dLongitude_degree - y=aVertex_in[i].dLatitude_degree + y=aVertex_in[i].dLatitude_degree left = x - 1E-5 right = x + 1E-5 bottom = y - 1E-5 top = y + 1E-5 pBound = (left, bottom, right, top) - index_vertex.insert(lID, pBound) # + index_vertex.insert(lID, pBound) # pass #now the new vertex x=pVertex_in.dLongitude_degree - y=pVertex_in.dLatitude_degree + y=pVertex_in.dLatitude_degree left = x - 1E-5 right = x + 1E-5 bottom = y-1E-5 @@ -53,10 +53,10 @@ def find_vertex_in_list(aVertex_in, pVertex_in, dThreshold_in=1.0E-6): pVertex = aVertex_in[k] #dDistance = pVertex.calculate_distance(pVertex_in) if pVertex == pVertex_in: #if dDistance < dThreshold_in: - - iFlag_exist = 1 + + iFlag_exist = 1 lIndex = k - break + break else: pass pass @@ -67,16 +67,16 @@ def find_vertex_in_list(aVertex_in, pVertex_in, dThreshold_in=1.0E-6): pVertex = aVertex_in[i] #dDistance = pVertex.calculate_distance(pVertex_in) if pVertex == pVertex_in: #if dDistance < dThreshold_in: - - iFlag_exist = 1 - lIndex = i - break + + iFlag_exist = 1 + lIndex = i + break else: pass - pass + pass else: pass - + return iFlag_exist, lIndex \ No newline at end of file diff --git a/pyflowline/algorithms/cython/build/temp.linux-x86_64-cpython-311/kernel.o b/pyflowline/algorithms/cython/build/temp.linux-x86_64-cpython-311/kernel.o deleted file mode 100644 index f7398f3..0000000 Binary files a/pyflowline/algorithms/cython/build/temp.linux-x86_64-cpython-311/kernel.o and /dev/null differ diff --git a/pyflowline/algorithms/cython/build/temp.linux-x86_64-cpython-312/kernel.o b/pyflowline/algorithms/cython/build/temp.linux-x86_64-cpython-312/kernel.o index 5db51e0..cb2429f 100644 Binary files a/pyflowline/algorithms/cython/build/temp.linux-x86_64-cpython-312/kernel.o and b/pyflowline/algorithms/cython/build/temp.linux-x86_64-cpython-312/kernel.o differ diff --git a/pyflowline/algorithms/cython/kernel.cpp b/pyflowline/algorithms/cython/kernel.cpp index 6971629..b0bc9f0 100644 --- a/pyflowline/algorithms/cython/kernel.cpp +++ b/pyflowline/algorithms/cython/kernel.cpp @@ -2299,6 +2299,7 @@ static const char __pyx_k_RTree[] = "RTree"; static const char __pyx_k_array[] = "array"; static const char __pyx_k_numpy[] = "numpy"; static const char __pyx_k_range[] = "range"; +static const char __pyx_k_tinyr[] = "tinyr"; static const char __pyx_k_import[] = "__import__"; static const char __pyx_k_insert[] = "insert"; static const char __pyx_k_kernel[] = "kernel"; @@ -2339,7 +2340,6 @@ static const char __pyx_k_dLongitude_degree2_in[] = "dLongitude_degree2_in"; static const char __pyx_k_dLongitude_degree3_in[] = "dLongitude_degree3_in"; static const char __pyx_k_calculate_distance_to_plane[] = "calculate_distance_to_plane"; static const char __pyx_k_calculate_angle_betwen_vertex[] = "calculate_angle_betwen_vertex"; -static const char __pyx_k_pyflowline_external_tinyr_tinyr[] = "pyflowline.external.tinyr.tinyr.tinyr"; static const char __pyx_k_angle_between_vectors_coordinate[] = "angle_between_vectors_coordinates"; static const char __pyx_k_calculate_distance_based_on_long[] = "calculate_distance_based_on_longitude_latitude"; /* #### Code section: decls ### */ @@ -2439,11 +2439,11 @@ typedef struct { PyObject *__pyx_n_s_pVertex_end; PyObject *__pyx_n_s_pVertex_in; PyObject *__pyx_n_s_pVertex_start; - PyObject *__pyx_n_s_pyflowline_external_tinyr_tinyr; PyObject *__pyx_n_s_range; PyObject *__pyx_n_s_search; PyObject *__pyx_n_s_spec; PyObject *__pyx_n_s_test; + PyObject *__pyx_n_s_tinyr; PyObject *__pyx_n_s_x1; PyObject *__pyx_n_s_x2; PyObject *__pyx_n_s_y1; @@ -2568,11 +2568,11 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_pVertex_end); Py_CLEAR(clear_module_state->__pyx_n_s_pVertex_in); Py_CLEAR(clear_module_state->__pyx_n_s_pVertex_start); - Py_CLEAR(clear_module_state->__pyx_n_s_pyflowline_external_tinyr_tinyr); Py_CLEAR(clear_module_state->__pyx_n_s_range); Py_CLEAR(clear_module_state->__pyx_n_s_search); Py_CLEAR(clear_module_state->__pyx_n_s_spec); Py_CLEAR(clear_module_state->__pyx_n_s_test); + Py_CLEAR(clear_module_state->__pyx_n_s_tinyr); Py_CLEAR(clear_module_state->__pyx_n_s_x1); Py_CLEAR(clear_module_state->__pyx_n_s_x2); Py_CLEAR(clear_module_state->__pyx_n_s_y1); @@ -2675,11 +2675,11 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_pVertex_end); Py_VISIT(traverse_module_state->__pyx_n_s_pVertex_in); Py_VISIT(traverse_module_state->__pyx_n_s_pVertex_start); - Py_VISIT(traverse_module_state->__pyx_n_s_pyflowline_external_tinyr_tinyr); Py_VISIT(traverse_module_state->__pyx_n_s_range); Py_VISIT(traverse_module_state->__pyx_n_s_search); Py_VISIT(traverse_module_state->__pyx_n_s_spec); Py_VISIT(traverse_module_state->__pyx_n_s_test); + Py_VISIT(traverse_module_state->__pyx_n_s_tinyr); Py_VISIT(traverse_module_state->__pyx_n_s_x1); Py_VISIT(traverse_module_state->__pyx_n_s_x2); Py_VISIT(traverse_module_state->__pyx_n_s_y1); @@ -2798,11 +2798,11 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_pVertex_end __pyx_mstate_global->__pyx_n_s_pVertex_end #define __pyx_n_s_pVertex_in __pyx_mstate_global->__pyx_n_s_pVertex_in #define __pyx_n_s_pVertex_start __pyx_mstate_global->__pyx_n_s_pVertex_start -#define __pyx_n_s_pyflowline_external_tinyr_tinyr __pyx_mstate_global->__pyx_n_s_pyflowline_external_tinyr_tinyr #define __pyx_n_s_range __pyx_mstate_global->__pyx_n_s_range #define __pyx_n_s_search __pyx_mstate_global->__pyx_n_s_search #define __pyx_n_s_spec __pyx_mstate_global->__pyx_n_s_spec #define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test +#define __pyx_n_s_tinyr __pyx_mstate_global->__pyx_n_s_tinyr #define __pyx_n_s_x1 __pyx_mstate_global->__pyx_n_s_x1 #define __pyx_n_s_x2 __pyx_mstate_global->__pyx_n_s_x2 #define __pyx_n_s_y1 __pyx_mstate_global->__pyx_n_s_y1 @@ -3420,7 +3420,7 @@ PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds PyObject *__pyx_args, PyObject *__pyx_kwds #endif ); /*proto*/ -PyDoc_STRVAR(__pyx_doc_6kernel_calculate_distance_based_on_longitude_latitude, "\n Calculate the great circle distance between two points \n on the earth (specified in decimal degrees)\n "); +PyDoc_STRVAR(__pyx_doc_6kernel_calculate_distance_based_on_longitude_latitude, "\n Calculate the great circle distance between two points\n on the earth (specified in decimal degrees)\n "); static PyMethodDef __pyx_mdef_6kernel_1calculate_distance_based_on_longitude_latitude = {"calculate_distance_based_on_longitude_latitude", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_6kernel_1calculate_distance_based_on_longitude_latitude, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_6kernel_calculate_distance_based_on_longitude_latitude}; static PyObject *__pyx_pw_6kernel_1calculate_distance_based_on_longitude_latitude(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL @@ -7724,11 +7724,11 @@ static int __Pyx_CreateStringTabAndInitStrings(void) { {&__pyx_n_s_pVertex_end, __pyx_k_pVertex_end, sizeof(__pyx_k_pVertex_end), 0, 0, 1, 1}, {&__pyx_n_s_pVertex_in, __pyx_k_pVertex_in, sizeof(__pyx_k_pVertex_in), 0, 0, 1, 1}, {&__pyx_n_s_pVertex_start, __pyx_k_pVertex_start, sizeof(__pyx_k_pVertex_start), 0, 0, 1, 1}, - {&__pyx_n_s_pyflowline_external_tinyr_tinyr, __pyx_k_pyflowline_external_tinyr_tinyr, sizeof(__pyx_k_pyflowline_external_tinyr_tinyr), 0, 0, 1, 1}, {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, {&__pyx_n_s_search, __pyx_k_search, sizeof(__pyx_k_search), 0, 0, 1, 1}, {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, + {&__pyx_n_s_tinyr, __pyx_k_tinyr, sizeof(__pyx_k_tinyr), 0, 0, 1, 1}, {&__pyx_n_s_x1, __pyx_k_x1, sizeof(__pyx_k_x1), 0, 0, 1, 1}, {&__pyx_n_s_x2, __pyx_k_x2, sizeof(__pyx_k_x2), 0, 0, 1, 1}, {&__pyx_n_s_y1, __pyx_k_y1, sizeof(__pyx_k_y1), 0, 0, 1, 1}, @@ -8243,7 +8243,7 @@ if (!__Pyx_RefNanny) { /* "kernel.pyx":5 * from libcpp.vector cimport vector * from libc.math cimport sin, cos, asin,acos, sqrt, abs - * from pyflowline.external.tinyr.tinyr.tinyr import RTree # <<<<<<<<<<<<<< + * from tinyr import RTree # <<<<<<<<<<<<<< * * """ Low-level function for pyflowline */ @@ -8252,7 +8252,7 @@ if (!__Pyx_RefNanny) { __Pyx_INCREF(__pyx_n_s_RTree); __Pyx_GIVEREF(__pyx_n_s_RTree); if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_RTree)) __PYX_ERR(0, 5, __pyx_L1_error); - __pyx_t_3 = __Pyx_Import(__pyx_n_s_pyflowline_external_tinyr_tinyr, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5, __pyx_L1_error) + __pyx_t_3 = __Pyx_Import(__pyx_n_s_tinyr, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_RTree); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5, __pyx_L1_error) diff --git a/pyflowline/algorithms/cython/kernel.pyx b/pyflowline/algorithms/cython/kernel.pyx index 6a6e6c0..004b33e 100644 --- a/pyflowline/algorithms/cython/kernel.pyx +++ b/pyflowline/algorithms/cython/kernel.pyx @@ -2,7 +2,7 @@ import numpy as np cimport cython from libcpp.vector cimport vector from libc.math cimport sin, cos, asin,acos, sqrt, abs -from pyflowline.external.tinyr.tinyr.tinyr import RTree +from tinyr import RTree """ Low-level function for pyflowline """ @@ -11,32 +11,32 @@ from pyflowline.external.tinyr.tinyr.tinyr import RTree #constant cdef double pi = 3.14159265358979323846264338327 -cdef double dRadius = 6378137.0 +cdef double dRadius = 6378137.0 @cython.boundscheck(False) # deactivate bnds checking cpdef calculate_distance_based_on_longitude_latitude(double dLongitude_degree1_in, double dLatitude_degree1_in, double dLongitude_degree2_in, double dLatitude_degree2_in): """ - Calculate the great circle distance between two points + Calculate the great circle distance between two points on the earth (specified in decimal degrees) """ - # convert decimal degrees to radians - + # convert decimal degrees to radians + cdef double dLongitude_radian1_in, dLatitude_radian1_in cdef double dLongitude_radian2_in, dLatitude_radian2_in cdef double dLongtitude_diff, dLatitude_diff, a, b, c - - # Radius of earth in kilometers. Use 3956 for miles - + + # Radius of earth in kilometers. Use 3956 for miles + dLongitude_radian1_in = dLongitude_degree1_in /180.0 * pi dLatitude_radian1_in = dLatitude_degree1_in /180.0 * pi dLongitude_radian2_in = dLongitude_degree2_in /180.0 * pi dLatitude_radian2_in = dLatitude_degree2_in /180.0 * pi - - # haversine formula - dLongtitude_diff = dLongitude_radian2_in - dLongitude_radian1_in - dLatitude_diff = dLatitude_radian2_in - dLatitude_radian1_in + + # haversine formula + dLongtitude_diff = dLongitude_radian2_in - dLongitude_radian1_in + dLatitude_diff = dLatitude_radian2_in - dLatitude_radian1_in a = sin(dLatitude_diff/2)*sin(dLatitude_diff/2) + cos(dLatitude_radian1_in) * cos(dLatitude_radian2_in) * sin(dLongtitude_diff/2)*sin(dLongtitude_diff/2) - b = 2 * asin(sqrt(a)) + b = 2 * asin(sqrt(a)) c = b * dRadius return c @@ -50,8 +50,8 @@ cpdef convert_360_to_180(double dLongitude_in): Returns: [type]: [description] - """ - cdef int a + """ + cdef int a cdef double dLongitude_out a = int(dLongitude_in /180.0) dLongitude_out = dLongitude_in - a * 360.0 @@ -80,17 +80,17 @@ cpdef find_vertex_in_list(list aVertex_in, pVertex_in, double dThreshold_in = 1 index_vertex = RTree( max_cap=5, min_cap=2) for i in range(nVertex): x = aVertex_in[i].dLongitude_degree - y = aVertex_in[i].dLatitude_degree + y = aVertex_in[i].dLatitude_degree left = x - 1E-5 right = x + 1E-5 bottom = y - 1E-5 top = y + 1E-5 pBound= (left, bottom, right, top) - index_vertex.insert(i, pBound) + index_vertex.insert(i, pBound) #now the new vertex x=pVertex_in.dLongitude_degree - y=pVertex_in.dLatitude_degree + y=pVertex_in.dLatitude_degree left = x - 1E-5 right = x + 1E-5 bottom = y - 1E-5 @@ -103,13 +103,13 @@ cpdef find_vertex_in_list(list aVertex_in, pVertex_in, double dThreshold_in = 1 dDistance = pVertex.calculate_distance(pVertex_in) #if pVertex == pVertex_in: if dDistance < dThreshold_in: - iFlag_exist = 1 + iFlag_exist = 1 lIndex = k - break + break else: pass pass - + #if nVertex > 0 : # for i in range(nVertex): @@ -117,15 +117,15 @@ cpdef find_vertex_in_list(list aVertex_in, pVertex_in, double dThreshold_in = 1 # dDistance = pVertex.calculate_distance(pVertex_in) # #if pVertex == pVertex_in: # if dDistance < dThreshold_in: - # iFlag_exist = 1 - # lIndex = i - # break + # iFlag_exist = 1 + # lIndex = i + # break # else: # pass - # pass + # pass #else: # pass - + return iFlag_exist, lIndex @cython.boundscheck(False) # deactivate bnds checking @@ -134,29 +134,29 @@ cpdef find_vertex_on_edge(list aVertex_in, pEdge_in): cdef int iFlag_exist = 0 cdef int nVertex, npoint cdef vector[int] aIndex ,aIndex_order - cdef vector[double] aDistance + cdef vector[double] aDistance cdef double x, y, left, right, bottom, top - + nVertex= len(aVertex_in) - npoint = 0 + npoint = 0 if nVertex > 0 : index_vertex = RTree(max_cap=5, min_cap=2) for i in range(nVertex): - lID = i + lID = i x = aVertex_in[i].dLongitude_degree - y = aVertex_in[i].dLatitude_degree + y = aVertex_in[i].dLatitude_degree left = x - 1E-5 right= x + 1E-5 bottom= y -1E-5 top= y + 1E-5 pBound= (left, bottom, right, top) - index_vertex.insert(lID, pBound) # + index_vertex.insert(lID, pBound) # pass #now the new vertex pVertex_start = pEdge_in.pVertex_start pVertex_end = pEdge_in.pVertex_end x1=pVertex_start.dLongitude_degree - y1=pVertex_start.dLatitude_degree + y1=pVertex_start.dLatitude_degree x2=pVertex_end.dLongitude_degree y2=pVertex_end.dLatitude_degree left = np.min([x1, x2]) @@ -168,12 +168,12 @@ cpdef find_vertex_on_edge(list aVertex_in, pEdge_in): for k in aIntersect: pVertex = aVertex_in[k] iFlag_overlap, dDistance, diff = pEdge_in.check_vertex_on_edge(pVertex) - if iFlag_overlap == 1: - iFlag_exist = 1 + if iFlag_overlap == 1: + iFlag_exist = 1 aDistance.push_back(dDistance) aIndex.push_back(i) - npoint = npoint + 1 - else: + npoint = npoint + 1 + else: if diff < 1.0: iFlag_overlap = pEdge_in.check_vertex_on_edge(pVertex) pass @@ -182,27 +182,27 @@ cpdef find_vertex_on_edge(list aVertex_in, pEdge_in): #for i in range( nVertex): # pVertex = aVertex_in[i] # iFlag_overlap, dDistance, diff = pEdge_in.check_vertex_on_edge(pVertex) - # if iFlag_overlap == 1: - # iFlag_exist = 1 + # if iFlag_overlap == 1: + # iFlag_exist = 1 # aDistance.push_back(dDistance) # aIndex.push_back(i) - # npoint = npoint + 1 - # else: + # npoint = npoint + 1 + # else: # if diff < 1.0: - # iFlag_overlap = pEdge_in.check_vertex_on_edge(pVertex) + # iFlag_overlap = pEdge_in.check_vertex_on_edge(pVertex) # pass # - #re-order + #re-order if iFlag_exist == 1 : x = np.array(aDistance) b = np.argsort(x) c = np.array(aIndex) d= c[b] - aIndex_order = list(d) + aIndex_order = list(d) else: pass - + return iFlag_exist, npoint, aIndex_order @cython.boundscheck(False) # deactivate bnds checking @@ -220,7 +220,7 @@ cpdef add_unique_vertex(list aVertex_in, pVertex_in, double dThreshold_in = 1.0E cdef int nVertex cdef int dummy iFlag_exist = 0 - nVertex = len(aVertex_in) + nVertex = len(aVertex_in) iFlag_exist, dummy = find_vertex_in_list(aVertex_in, pVertex_in, dThreshold_in) @@ -239,10 +239,10 @@ cpdef angle_between_vectors_coordinates(double x1, double y1, double z1, double """Return the angle between two vectors in any dimension space, in degrees. """ - cdef double a, b, c, d, e, f + cdef double a, b, c, d, e, f a = x1*x2 + y1*y2 + z1*z2 - b = sqrt( x1*x1 + y1*y1 + z1*z1 ) - c = sqrt( x2*x2 + y2*y2 + z2*z2 ) + b = sqrt( x1*x1 + y1*y1 + z1*z1 ) + c = sqrt( x2*x2 + y2*y2 + z2*z2 ) d = a / (b* c) if d > 1: d = 1 @@ -250,7 +250,7 @@ cpdef angle_between_vectors_coordinates(double x1, double y1, double z1, double d = -1 e = acos(d) f = e / pi * 180.0 - return f + return f @cython.boundscheck(False) # deactivate bnds checking cpdef (double, double, double) longlat_to_3d(dLongitude_degree_in, dLatitude_degree_in): @@ -267,7 +267,7 @@ cpdef (double, double, double) longlat_to_3d(dLongitude_degree_in, dLatitude_deg x = cos(dLatitude_radian) * cos(dLongitude_radian) y = cos(dLatitude_radian) * sin(dLongitude_radian) z = sin(dLatitude_radian) - + return x, y, z @@ -277,21 +277,21 @@ cpdef calculate_angle_betwen_vertex(dLongitude_degree1_in, dLatitude_degree1_in, cdef double angle3deg cdef double x1, y1, z1 - cdef double x2, y2, z2 - cdef double x3, y3, z3 + cdef double x2, y2, z2 + cdef double x3, y3, z3 cdef double x4, y4, z4 cdef double x5, y5, z5 - + # The points in 3D space x1, y1, z1 = longlat_to_3d(dLongitude_degree1_in, dLatitude_degree1_in) x2, y2, z2 = longlat_to_3d(dLongitude_degree2_in, dLatitude_degree2_in) x3, y3, z3 = longlat_to_3d(dLongitude_degree3_in, dLatitude_degree3_in) # Vectors in 3D space - + x4 = x1 - x2 y4 = y1 - y2 z4 = z1 - z2 - #c3vec[i] = aCoordinate3[i] - aCoordinate2[i] + #c3vec[i] = aCoordinate3[i] - aCoordinate2[i] x5 = x3 - x2 y5 = y3 - y2 z5 = z3 - z2 @@ -300,17 +300,17 @@ cpdef calculate_angle_betwen_vertex(dLongitude_degree1_in, dLatitude_degree1_in, return angle3deg @cython.boundscheck(False) # deactivate bnds checking -cpdef calculate_distance_to_plane(dLongitude_degree1_in, dLatitude_degree1_in, dLongitude_degree2_in, dLatitude_degree2_in, dLongitude_degree3_in, dLatitude_degree3_in): +cpdef calculate_distance_to_plane(dLongitude_degree1_in, dLatitude_degree1_in, dLongitude_degree2_in, dLatitude_degree2_in, dLongitude_degree3_in, dLatitude_degree3_in): cdef double x1, y1, z1 - cdef double x2, y2, z2 - cdef double x3, y3, z3 + cdef double x2, y2, z2 + cdef double x3, y3, z3 cdef double distance - cdef b, c + cdef b, c # The points in 3D space x1, y1, z1 = longlat_to_3d(dLongitude_degree1_in, dLatitude_degree1_in) x2, y2, z2 = longlat_to_3d(dLongitude_degree2_in, dLatitude_degree2_in) x3, y3, z3 = longlat_to_3d(dLongitude_degree3_in, dLatitude_degree3_in) - #The formula is x+b*y+c*z=0 + #The formula is x+b*y+c*z=0 c = (-x1*y3 + x3* y1)/( z1*y3 - z3*y1 ) b = (-x1*z3 + x3 * z1 ) / (y1 * z3 - y3*z1) distance = abs( x2 + b * y2 + c * z2 ) diff --git a/pyflowline/algorithms/index/define_stream_order.py b/pyflowline/algorithms/index/define_stream_order.py index 749f2a5..4e0be6d 100644 --- a/pyflowline/algorithms/index/define_stream_order.py +++ b/pyflowline/algorithms/index/define_stream_order.py @@ -1,10 +1,10 @@ -import numpy as np +import numpy as np import importlib.util -from pyflowline.algorithms.auxiliary.check_head_water import check_head_water #this function should not be used since stream order of headwater is available -iFlag_cython = importlib.util.find_spec("cython") +from pyflowline.algorithms.auxiliary.check_head_water import check_head_water #this function should not be used since stream order of headwater is available +iFlag_cython = importlib.util.find_spec("cython") if iFlag_cython is not None: - from pyflowline.external.tinyr.tinyr.tinyr import RTree + from tinyr import RTree iFlag_use_rtree = 1 else: iFlag_use_rtree =0 @@ -24,13 +24,13 @@ def update_head_water_stream_order(aFlowline_in): #nFlowline = len(aFlowline_in) #aFlowline_out = list() #for i in range(nFlowline): - # pFlowline = aFlowline_in[i] - # pVertex_start = pFlowline.pVertex_start + # pFlowline = aFlowline_in[i] + # pVertex_start = pFlowline.pVertex_start # if check_head_water(aFlowline_in, pVertex_start)==1: # pFlowline.iStream_order = 1 # else: # pFlowline.iStream_order = -1 - # + # # aFlowline_out.append(pFlowline) #return aFlowline_out @@ -47,42 +47,42 @@ def define_stream_order(aFlowline_in, aConfluence_in): """ nFlowline = len(aFlowline_in) nSegment = nFlowline - aFlowline_out = list() - if iFlag_use_rtree == 1: - iMethod = 1 + aFlowline_out = list() + if iFlag_use_rtree == 1: + iMethod = 1 else: iMethod = 2 pass - + if nFlowline == 0 : print ('data incomplete') - else: - aStream_order = np.full(nFlowline, 0, dtype=int) + else: + aStream_order = np.full(nFlowline, 0, dtype=int) if iMethod == 1: #the new method nConfleunce = len(aConfluence_in) aFlag_confluence_treated = np.full(nConfleunce, 0, dtype=int) #build rtree for confluence - index_confluence = RTree( max_cap=5, min_cap=2) + index_confluence = RTree( max_cap=5, min_cap=2) for i, confluence in enumerate(aConfluence_in): - pVertex_confluence = confluence.pVertex_confluence + pVertex_confluence = confluence.pVertex_confluence x, y = pVertex_confluence.dLongitude_degree, pVertex_confluence.dLatitude_degree pBound = (x - 1E-5, y - 1E-5, x + 1E-5, y + 1E-5) index_confluence.insert(i, pBound) - + while aFlowline_in[0].iStream_order < 0: for i in range(nConfleunce): if aFlag_confluence_treated[i] == 1: continue pConfluence = aConfluence_in[i] - aFlowline_upstream = pConfluence.aFlowline_upstream + aFlowline_upstream = pConfluence.aFlowline_upstream pFlowline_downstream = pConfluence.pFlowline_downstream iStream_segment = pFlowline_downstream.iStream_segment #iFlag_upstream_done = 1 #nUpstream = len(aFlowline_upstream) aStrord = [upstream.iStream_order for upstream in aFlowline_upstream if upstream.iStream_order >= 1] - + #aStrord = list() #for j in range(nUpstream): # pFlowline_upstream = aFlowline_upstream[j] @@ -91,26 +91,26 @@ def define_stream_order(aFlowline_in, aConfluence_in): # iFlag_upstream_done = 0 # break # else: - # aStrord.append( iStream_order_upstream ) + # aStrord.append( iStream_order_upstream ) #if iFlag_upstream_done == 1: if len(aStrord) == len(aFlowline_upstream): aFlag_confluence_treated[i] = 1 #now we can process the downstream #get unique value - iStream_order = max(aStrord) if len(set(aStrord)) > 1 else aStrord[0] + 1 - + iStream_order = max(aStrord) if len(set(aStrord)) > 1 else aStrord[0] + 1 + #update pFlowline_downstream.iStream_order = iStream_order aFlowline_in[nSegment-iStream_segment].iStream_order = iStream_order #update confluence #x = pFlowline_downstream.pVertex_end.dLongitude_degree - #y = pFlowline_downstream.pVertex_end.dLatitude_degree + #y = pFlowline_downstream.pVertex_end.dLatitude_degree #left = x - 1E-5 #right = x + 1E-5 #bottom = y - 1E-5 #top = y + 1E-5 - #pBound= (left, bottom, right, top) + #pBound= (left, bottom, right, top) #aIntersect = list(index_confluence.search(pBound)) #update confluence @@ -127,21 +127,21 @@ def define_stream_order(aFlowline_in, aConfluence_in): break pass - - - for i, flowline in enumerate(aFlowline_in): + + + for i, flowline in enumerate(aFlowline_in): aFlowline_out.append(flowline) aStream_order[i] = flowline.iStream_order - - - else: #the old method, not computationally efficient enough + + + else: #the old method, not computationally efficient enough for i in range(nFlowline): pFlowline = aFlowline_in[i] pVertex_start=pFlowline.pVertex_start - if check_head_water(aFlowline_in, pVertex_start)==1: + if check_head_water(aFlowline_in, pVertex_start)==1: aStream_order[i] = 1 - pass - + pass + while aStream_order[0] == 0: for i in range(nFlowline): if aStream_order[i] !=0: @@ -171,11 +171,11 @@ def define_stream_order(aFlowline_in, aConfluence_in): if len(dummy1) == 1: #all upstreams have the same order aStream_order[i] = aStrord[0] + 1 else: - aStream_order[i] = np.max(dummy) + aStream_order[i] = np.max(dummy) for i in range(nFlowline): - pFlowline = aFlowline_in[i] - pFlowline.iStream_order = aStream_order[i] + pFlowline = aFlowline_in[i] + pFlowline.iStream_order = aStream_order[i] aFlowline_out.append(pFlowline) return aFlowline_out, aStream_order \ No newline at end of file diff --git a/pyflowline/algorithms/intersect/intersect_flowline_with_mesh.py b/pyflowline/algorithms/intersect/intersect_flowline_with_mesh.py index 263054a..8d1e509 100644 --- a/pyflowline/algorithms/intersect/intersect_flowline_with_mesh.py +++ b/pyflowline/algorithms/intersect/intersect_flowline_with_mesh.py @@ -9,25 +9,25 @@ from pyflowline.formats.convert_coordinates import convert_gcs_coordinates_to_flowline from pyearth.gis.location.get_geometry_coordinates import get_geometry_coordinates -iFlag_cython = importlib.util.find_spec("cython") +iFlag_cython = importlib.util.find_spec("cython") if iFlag_cython is not None: - from pyflowline.external.tinyr.tinyr.tinyr import RTree + from tinyr import RTree iFlag_use_rtree = 1 else: iFlag_use_rtree =0 pass def intersect_flowline_with_mesh(iMesh_type_in, sFilename_mesh_in, sFilename_flowline_in, sFilename_output_in): - if os.path.exists(sFilename_mesh_in) and os.path.exists(sFilename_flowline_in) : + if os.path.exists(sFilename_mesh_in) and os.path.exists(sFilename_flowline_in) : pass else: print('The input file does not exist') return - if os.path.exists(sFilename_output_in): + if os.path.exists(sFilename_output_in): os.remove(sFilename_output_in) - + pDriver_geojson = ogr.GetDriverByName( "GeoJSON") aCell=list() aCell_intersect=list() @@ -37,19 +37,19 @@ def intersect_flowline_with_mesh(iMesh_type_in, sFilename_mesh_in, sFilename_flo pSpatial_reference_mesh = pLayer_mesh.GetSpatialRef() nfeature_mesh = pLayer_mesh.GetFeatureCount() - pDataset_flowline = pDriver_geojson.Open(sFilename_flowline_in, 0) + pDataset_flowline = pDriver_geojson.Open(sFilename_flowline_in, 0) pLayer_flowline = pDataset_flowline.GetLayer(0) pSpatial_reference_flowline = pLayer_flowline.GetSpatialRef() nfeature_flowline = pLayer_flowline.GetFeatureCount() pLayerDefinition = pLayer_flowline.GetLayerDefn() - + comparison = pSpatial_reference_mesh.IsSame(pSpatial_reference_flowline) if(comparison != 1): iFlag_transform = 1 transform = osr.CoordinateTransformation(pSpatial_reference_mesh, pSpatial_reference_flowline) else: iFlag_transform = 0 - + pDataset_out = pDriver_geojson.CreateDataSource(sFilename_output_in) pLayerOut = pDataset_out.CreateLayer('flowline', pSpatial_reference_flowline, ogr.wkbMultiLineString) @@ -58,21 +58,21 @@ def intersect_flowline_with_mesh(iMesh_type_in, sFilename_mesh_in, sFilename_flo pLayerOut.CreateField(ogr.FieldDefn('stream_segment', ogr.OFTInteger)) #long type for high resolution pLayerOut.CreateField(ogr.FieldDefn('stream_order', ogr.OFTInteger)) #long type for high resolution pLayerDefn = pLayerOut.GetLayerDefn() - pFeatureOut = ogr.Feature(pLayerDefn) + pFeatureOut = ogr.Feature(pLayerDefn) - lFlowlineID = 0 - aFlowline_intersect_all=list() - if iFlag_use_rtree ==1: #use the rtree to speed up + lFlowlineID = 0 + aFlowline_intersect_all=list() + if iFlag_use_rtree ==1: #use the rtree to speed up #index_flowline = rtree.index.Index() interleaved = True index_flowline = RTree(interleaved=interleaved, max_cap=5, min_cap=2) for i in range(nfeature_flowline): - lID = i + lID = i pFeature_flowline = pLayer_flowline.GetFeature(i) - pGeometry_flowline = pFeature_flowline.GetGeometryRef() - left, right, bottom, top= pGeometry_flowline.GetEnvelope() + pGeometry_flowline = pFeature_flowline.GetGeometryRef() + left, right, bottom, top= pGeometry_flowline.GetEnvelope() pBound= (left, bottom, right, top) - index_flowline.insert(lID, pBound) # + index_flowline.insert(lID, pBound) # #now intersect using rtree for j in range (nfeature_mesh): @@ -81,48 +81,48 @@ def intersect_flowline_with_mesh(iMesh_type_in, sFilename_mesh_in, sFilename_flo aCoords_gcs = get_geometry_coordinates(pGeometry_mesh) lCellID = pFeature_mesh.GetField("cellid") dLon = pFeature_mesh.GetField("longitude") - dLat = pFeature_mesh.GetField("latitude") + dLat = pFeature_mesh.GetField("latitude") dArea = pFeature_mesh.GetField("area") if (pGeometry_mesh.IsValid()): pass else: - print('Geometry issue') + print('Geometry issue') pGeometrytype_mesh = pGeometry_mesh.GetGeometryName() - if(pGeometrytype_mesh == 'POLYGON'): - pCell = convert_gcs_coordinates_to_cell(iMesh_type_in, dLon, dLat, aCoords_gcs) - pCell.lCellID = lCellID - pCell.dArea = dArea + if(pGeometrytype_mesh == 'POLYGON'): + pCell = convert_gcs_coordinates_to_cell(iMesh_type_in, dLon, dLat, aCoords_gcs) + pCell.lCellID = lCellID + pCell.dArea = dArea pCell.dLength = pCell.calculate_edge_length() - pCell.dLength_flowline = pCell.dLength + pCell.dLength_flowline = pCell.dLength aFlowline_intersect = list() - iFlag_intersected = 0 + iFlag_intersected = 0 - left, right, bottom, top= pGeometry_mesh.GetEnvelope() + left, right, bottom, top= pGeometry_mesh.GetEnvelope() pBound= (left, bottom, right, top) - + aIntersect = list(index_flowline.search(pBound)) for k in aIntersect: pFeature_flowline = pLayer_flowline.GetFeature(k) - pGeometry_flowline = pFeature_flowline.GetGeometryRef() + pGeometry_flowline = pFeature_flowline.GetGeometryRef() iFlag_intersect = pGeometry_flowline.Intersects( pGeometry_mesh ) if( iFlag_intersect == True): iFlag_intersected = 1 - pGeometry_intersect = pGeometry_flowline.Intersection(pGeometry_mesh) + pGeometry_intersect = pGeometry_flowline.Intersection(pGeometry_mesh) pGeometrytype_intersect = pGeometry_intersect.GetGeometryName() iStream_segment = pFeature_flowline.GetField("stream_segment") iStream_order = pFeature_flowline.GetField("stream_order") if pGeometrytype_intersect == 'LINESTRING': pFeatureOut.SetGeometry(pGeometry_intersect) - pFeatureOut.SetField("lineid", lFlowlineID) - pFeatureOut.SetField("stream_segment", iStream_segment) - pFeatureOut.SetField("stream_order", iStream_order) - pLayerOut.CreateFeature(pFeatureOut) + pFeatureOut.SetField("lineid", lFlowlineID) + pFeatureOut.SetField("stream_segment", iStream_segment) + pFeatureOut.SetField("stream_order", iStream_order) + pLayerOut.CreateFeature(pFeatureOut) aCoords = list() - for i in range(0, pGeometry_intersect.GetPointCount()): + for i in range(0, pGeometry_intersect.GetPointCount()): pt = pGeometry_intersect.GetPoint(i) - aCoords.append( [ pt[0], pt[1]]) + aCoords.append( [ pt[0], pt[1]]) dummy1= np.array(aCoords) pFlowline = convert_gcs_coordinates_to_flowline(dummy1) @@ -138,16 +138,16 @@ def intersect_flowline_with_mesh(iMesh_type_in, sFilename_mesh_in, sFilename_flo if(pGeometrytype_intersect == 'MULTILINESTRING'): nLine = pGeometry_intersect.GetGeometryCount() for i in range(nLine): - Line = pGeometry_intersect.GetGeometryRef(i) + Line = pGeometry_intersect.GetGeometryRef(i) pFeatureOut.SetGeometry(Line) - pFeatureOut.SetField("lineid", lFlowlineID) - pFeatureOut.SetField("stream_segment", iStream_segment) - pFeatureOut.SetField("stream_order", iStream_order) - pLayerOut.CreateFeature(pFeatureOut) + pFeatureOut.SetField("lineid", lFlowlineID) + pFeatureOut.SetField("stream_segment", iStream_segment) + pFeatureOut.SetField("stream_order", iStream_order) + pLayerOut.CreateFeature(pFeatureOut) aCoords = list() - for i in range(0, Line.GetPointCount()): + for i in range(0, Line.GetPointCount()): pt = Line.GetPoint(i) - aCoords.append( [ pt[0], pt[1]]) + aCoords.append( [ pt[0], pt[1]]) dummy1= np.array(aCoords) pFlowline = convert_gcs_coordinates_to_flowline(dummy1) @@ -160,41 +160,41 @@ def intersect_flowline_with_mesh(iMesh_type_in, sFilename_mesh_in, sFilename_flo lFlowlineID = lFlowlineID + 1 pass else: - pass + pass + + pass - pass - #now add back to the cell object pCell.aFlowline = aFlowline_intersect pCell.nFlowline = len(aFlowline_intersect) - if iFlag_intersected ==1: - pCell.iFlag_intersected = 1 + if iFlag_intersected ==1: + pCell.iFlag_intersected = 1 pCell.dLength_flowline = 0.0 #reset the flowline length for i in range (pCell.nFlowline): pFlowline = pCell.aFlowline[i] - dLength_flowline = pFlowline.dLength + dLength_flowline = pFlowline.dLength if ( dLength_flowline > pCell.dLength_flowline ): pCell.dLength_flowline = dLength_flowline - #replace flowline length if there is an actual flowline + #replace flowline length if there is an actual flowline aCell_intersect.append(pCell) aCell.append(pCell) else: - pCell.iFlag_intersected = 0 + pCell.iFlag_intersected = 0 aCell.append(pCell) pass - else: - - for pFeature_mesh in pLayer_mesh: - pGeometry_mesh = pFeature_mesh.GetGeometryRef() + else: + + for pFeature_mesh in pLayer_mesh: + pGeometry_mesh = pFeature_mesh.GetGeometryRef() aCoords_gcs = get_geometry_coordinates(pGeometry_mesh) lCellID = pFeature_mesh.GetField("cellid") dLon = pFeature_mesh.GetField("longitude") - dLat = pFeature_mesh.GetField("latitude") + dLat = pFeature_mesh.GetField("latitude") dArea = pFeature_mesh.GetField("area") - if (iFlag_transform ==1): + if (iFlag_transform ==1): pGeometry_mesh.Transform(transform) if (pGeometry_mesh.IsValid()): pass @@ -202,14 +202,14 @@ def intersect_flowline_with_mesh(iMesh_type_in, sFilename_mesh_in, sFilename_flo print('Geometry issue') pGeometrytype_mesh = pGeometry_mesh.GetGeometryName() - if(pGeometrytype_mesh == 'POLYGON'): - pCell = convert_gcs_coordinates_to_cell(iMesh_type_in, dLon, dLat, aCoords_gcs) - pCell.lCellID = lCellID - pCell.dArea = dArea + if(pGeometrytype_mesh == 'POLYGON'): + pCell = convert_gcs_coordinates_to_cell(iMesh_type_in, dLon, dLat, aCoords_gcs) + pCell.lCellID = lCellID + pCell.dArea = dArea pCell.dLength = pCell.calculate_edge_length() - pCell.dLength_flowline = pCell.dLength + pCell.dLength_flowline = pCell.dLength aFlowline_intersect = list() - iFlag_intersected = 0 + iFlag_intersected = 0 for j in range (nfeature_flowline): pFeature_flowline = pLayer_flowline.GetFeature(j) pGeometry_flowline = pFeature_flowline.GetGeometryRef() @@ -218,24 +218,24 @@ def intersect_flowline_with_mesh(iMesh_type_in, sFilename_mesh_in, sFilename_flo if (pGeometry_flowline.IsValid()): pass else: - print('Geometry issue') + print('Geometry issue') iFlag_intersect = pGeometry_flowline.Intersects( pGeometry_mesh ) if( iFlag_intersect == True): iFlag_intersected = 1 - pGeometry_intersect = pGeometry_flowline.Intersection(pGeometry_mesh) + pGeometry_intersect = pGeometry_flowline.Intersection(pGeometry_mesh) pGeometrytype_intersect = pGeometry_intersect.GetGeometryName() if pGeometrytype_intersect == 'LINESTRING': pFeatureOut.SetGeometry(pGeometry_intersect) - pFeatureOut.SetField("lineid", lFlowlineID) - pFeatureOut.SetField("stream_segment", iStream_segment) - pFeatureOut.SetField("stream_order", iStream_order) - pLayerOut.CreateFeature(pFeatureOut) + pFeatureOut.SetField("lineid", lFlowlineID) + pFeatureOut.SetField("stream_segment", iStream_segment) + pFeatureOut.SetField("stream_order", iStream_order) + pLayerOut.CreateFeature(pFeatureOut) aCoords = list() - for i in range(0, pGeometry_intersect.GetPointCount()): + for i in range(0, pGeometry_intersect.GetPointCount()): pt = pGeometry_intersect.GetPoint(i) - aCoords.append( [ pt[0], pt[1]]) + aCoords.append( [ pt[0], pt[1]]) dummy1= np.array(aCoords) pFlowline = convert_gcs_coordinates_to_flowline(dummy1) @@ -251,16 +251,16 @@ def intersect_flowline_with_mesh(iMesh_type_in, sFilename_mesh_in, sFilename_flo if(pGeometrytype_intersect == 'MULTILINESTRING'): nLine = pGeometry_intersect.GetGeometryCount() for i in range(nLine): - Line = pGeometry_intersect.GetGeometryRef(i) + Line = pGeometry_intersect.GetGeometryRef(i) pFeatureOut.SetGeometry(Line) - pFeatureOut.SetField("lineid", lFlowlineID) - pFeatureOut.SetField("stream_segment", iStream_segment) - pFeatureOut.SetField("stream_order", iStream_order) - pLayerOut.CreateFeature(pFeatureOut) + pFeatureOut.SetField("lineid", lFlowlineID) + pFeatureOut.SetField("stream_segment", iStream_segment) + pFeatureOut.SetField("stream_order", iStream_order) + pLayerOut.CreateFeature(pFeatureOut) aCoords = list() - for i in range(0, Line.GetPointCount()): + for i in range(0, Line.GetPointCount()): pt = Line.GetPoint(i) - aCoords.append( [ pt[0], pt[1]]) + aCoords.append( [ pt[0], pt[1]]) dummy1= np.array(aCoords) pFlowline = convert_gcs_coordinates_to_flowline(dummy1) @@ -273,33 +273,33 @@ def intersect_flowline_with_mesh(iMesh_type_in, sFilename_mesh_in, sFilename_flo lFlowlineID = lFlowlineID + 1 pass else: - pass + pass else: pass - + #now add back to the cell object pCell.aFlowline = aFlowline_intersect pCell.nFlowline = len(aFlowline_intersect) - if iFlag_intersected ==1: - pCell.iFlag_intersected = 1 + if iFlag_intersected ==1: + pCell.iFlag_intersected = 1 pCell.dLength_flowline = 0.0 for i in range (pCell.nFlowline): pFlowline = pCell.aFlowline[i] - dLength_flowline = pFlowline.dLength + dLength_flowline = pFlowline.dLength if ( dLength_flowline > pCell.dLength_flowline ): pCell.dLength_flowline = dLength_flowline - #replace flowline length if there is an actual flowline + #replace flowline length if there is an actual flowline aCell_intersect.append(pCell) aCell.append(pCell) else: - pCell.iFlag_intersected = 0 + pCell.iFlag_intersected = 0 aCell.append(pCell) pass - + else: pass - + return aCell, aCell_intersect, aFlowline_intersect_all \ No newline at end of file diff --git a/pyflowline/algorithms/potentiometric/calculate_potentiometric.py b/pyflowline/algorithms/potentiometric/calculate_potentiometric.py new file mode 100644 index 0000000..6ce7be0 --- /dev/null +++ b/pyflowline/algorithms/potentiometric/calculate_potentiometric.py @@ -0,0 +1,45 @@ +def calculate_potentiometric(dElevation_bedrock_in, dThickness_ice_in, dDensity_ice_in=None): + #calculate potentiometric surface + + #if both are missing value, keep it as missing + if dElevation_bedrock_in == -9999 or dThickness_ice_in == -9999: + return -9999 + + if dDensity_ice_in is None: + dDensity_ice = 917.0 #unit + else: + dDensity_ice = dDensity_ice_in + + dDensity_water = 1000.0 #unit + + iOption = 1 + dGravity = 9.81 + if iOption == 1: + #reference + #https://www.tandfonline.com/doi/full/10.1080/15481603.2016.1230084 + dRatio_k = 1.0 + dDummy0 = dDensity_ice / dDensity_water + dDummy1 = dRatio_k * dDummy0 * dThickness_ice_in + dPotentiometric = dDummy1 + dElevation_bedrock_in + + else: + #unit and quality check? + #reference + #use equation 1 from https://onlinelibrary.wiley.com/doi/epdf/10.1002/hyp.7343 + dFactor = 0.1 + dElevation_ice = dElevation_bedrock_in + dThickness_ice_in + dDummy= dElevation_ice + dElevation_bedrock_in * dFactor + dPotentiometric = dDensity_ice * dGravity * dDummy + + return dPotentiometric + + +if __name__ == "__main__": + + dElevation_bedrock = 100.0 + dThickness_ice = 1000.0 + dDensity_ice = 917.0 + + dPotentiometric = calculate_potentiometric(dElevation_bedrock, dThickness_ice, dDensity_ice) + + print(dPotentiometric) \ No newline at end of file diff --git a/pyflowline/classes/_visual.py b/pyflowline/classes/_visual.py index 72980a9..4b6fc9c 100644 --- a/pyflowline/classes/_visual.py +++ b/pyflowline/classes/_visual.py @@ -10,10 +10,12 @@ def plot(self, iFlag_type_in = None, iFlag_title_in = None, + iDPI_in = None, sFilename_output_in = None, sVariable_in = None, aExtent_in = None, - pProjection_map_in = None): + pProjection_map_in = None, + pProjection_data_in=None): """_summary_ Args: @@ -76,6 +78,8 @@ def plot(self, if sVariable_in == 'mesh': self._plot_mesh(sFilename_output_in=sFilename_output_in, aExtent_in = aExtent_in, + iDPI_in = iDPI_in, + pProjection_data_in = pProjection_data_in, pProjection_map_in = pProjection_map_in) else: @@ -97,6 +101,8 @@ def plot(self, def _plot_mesh(self, sFilename_output_in=None, aExtent_in=None, + iDPI_in=None, + pProjection_data_in = None, pProjection_map_in = None): sFilename_in = self.sFilename_mesh @@ -106,9 +112,11 @@ def _plot_mesh(self, iFlag_zebra_in= 1, iFlag_color_in = 0, iFlag_fill_in= False, + iDPI_in=iDPI_in, sFilename_output_in = sFilename_output_in, sTitle_in = sMesh_type, aExtent_in = aExtent_in, + pProjection_data_in= pProjection_data_in, pProjection_map_in = pProjection_map_in) return @@ -153,6 +161,7 @@ def _plot_mesh_with_flowline(self, aFlag_discrete_in = aFlag_discrete, aExtent_in = aExtent_in, aVariable_in = aVariable_in, + pProjection_map_in = pProjection_map_in) return diff --git a/pyflowline/classes/_visual_basin.py b/pyflowline/classes/_visual_basin.py index f3de3c0..f5bd898 100644 --- a/pyflowline/classes/_visual_basin.py +++ b/pyflowline/classes/_visual_basin.py @@ -29,8 +29,9 @@ def basin_plot(self, dData_max_in = None, sVariable_in=None, aExtent_in = None, - aLegend_in = None, - pProjection_map_in = None): + aLegend_in = None, + pProjection_map_in = None, + pProjection_data_in = None): """_summary_ Args: diff --git a/pyflowline/classes/basin.py b/pyflowline/classes/basin.py index 235b5b5..b279a70 100644 --- a/pyflowline/classes/basin.py +++ b/pyflowline/classes/basin.py @@ -40,9 +40,8 @@ #cython for performance improvement iFlag_cython = importlib.util.find_spec("cython") if iFlag_cython is not None: - from pyflowline.algorithms.cython.kernel import find_vertex_in_list - from pyflowline.external.tinyr.tinyr.tinyr import RTree + from tinyr import RTree iFlag_use_rtree = 1 else: from pyflowline.algorithms.auxiliary.find_vertex_in_list import find_vertex_in_list @@ -163,7 +162,7 @@ class pybasin(object): sFilename_stream_segment='' sFilename_stream_edge='' - + sFilename_variable_polygon='' sFilename_variable_polyline='' @@ -336,7 +335,7 @@ def __init__(self, aParameter): self.sFilename_confluence_simplified_info = os.path.join(str(self.sWorkspace_output_basin ),'confluence_simplified_info.json') #geojson, full path of the file - #full paths are required for the following files + #full paths are required for the following files self.sFilename_flowline_segment_index_before_intersect = os.path.join(str(self.sWorkspace_output_basin ),'flowline_segment_index_before_intersect.geojson') self.sFilename_flowline_simplified = os.path.join(str(self.sWorkspace_output_basin ),'flowline_simplified.geojson') self.sFilename_flowline_split = os.path.join(str(self.sWorkspace_output_basin ),'flowline_split.geojson') @@ -486,7 +485,7 @@ def basin_flowline_simplification(self): print('Basin ', self.sBasinID, ' has dam', nFlowline_before, nFlowline_after) ptimer.stop() else: - print('Basin ', self.sBasinID, ' has no dam') + print('Basin ', self.sBasinID, ' has no dam') sFilename_flowline_filter = self.sFilename_flowline_filter_geojson #sFilename_flowline_filter = self.sFilename_flowline_filter aFlowline_basin_filtered, pSpatial_reference = read_flowline_geojson( sFilename_flowline_filter ) #aVertex_filtered = find_flowline_vertex(aFlowline_basin_filtered) @@ -529,7 +528,7 @@ def basin_flowline_simplification(self): print('Basin ', self.sBasinID, 'split flowline') sys.stdout.flush() ptimer.start() - + nFlowline_before = len(aFlowline_basin_filtered) aFlowline_basin_simplified = split_flowline(aFlowline_basin_filtered, aVertex) nFlowline_after = len(aFlowline_basin_simplified) @@ -727,7 +726,7 @@ def basin_reconstruct_topological_relationship(self, iMesh_type, sFilename_mesh) Returns: list [pyflowline]: A list of intersected cells """ - print('Basin ', self.sBasinID, 'Start topology reconstruction') + print('Basin ', self.sBasinID, 'Start topology reconstruction') ptimer = pytimer() sWorkspace_output_basin = self.sWorkspace_output_basin sFilename_flowline_in = self.sFilename_flowline_simplified @@ -740,7 +739,7 @@ def basin_reconstruct_topological_relationship(self, iMesh_type, sFilename_mesh) aCell, aCell_intersect_basin, aFlowline_intersect_all = intersect_flowline_with_mesh(iMesh_type, sFilename_mesh, \ sFilename_flowline_in, sFilename_flowline_intersect_out) ptimer.stop() - + if self.iFlag_debug ==1: sFilename_out = 'flowline_intersect_flowline_with_mesh.geojson' sFilename_out = os.path.join(sWorkspace_output_basin, sFilename_out) @@ -751,7 +750,7 @@ def basin_reconstruct_topological_relationship(self, iMesh_type, sFilename_mesh) #not an ideal setup, but it could be improved if self.iFlag_simplification_done ==1: pVertex_outlet_initial = self.pVertex_outlet - else: + else: point= dict() point['dLongitude_degree'] = self.dLongitude_outlet_degree point['dLatitude_degree'] = self.dLatitude_outlet_degree @@ -767,7 +766,7 @@ def basin_reconstruct_topological_relationship(self, iMesh_type, sFilename_mesh) print('Outlet ID', lCellID_outlet) #this outlet is the one intersect outlet cell, not cell center print('Outlet location', pVertex_outlet.dLongitude_degree, pVertex_outlet.dLatitude_degree) - ptimer.stop() + ptimer.stop() if self.iFlag_debug ==1: sFilename_out = 'flowline_simplified_after_intersect.geojson' sFilename_out = os.path.join(sWorkspace_output_basin, sFilename_out) @@ -795,7 +794,7 @@ def basin_reconstruct_topological_relationship(self, iMesh_type, sFilename_mesh) sys.stdout.flush() ptimer.start() aFlowline_basin_conceptual = remove_duplicate_flowline(aFlowline_basin_conceptual) - ptimer.stop() + ptimer.stop() if self.iFlag_debug ==1: sFilename_out = 'flowline_edge_remove_duplicate_flowline.geojson' sFilename_out = os.path.join(sWorkspace_output_basin, sFilename_out) diff --git a/pyflowline/classes/pycase.py b/pyflowline/classes/pycase.py index eecab3e..af67a75 100644 --- a/pyflowline/classes/pycase.py +++ b/pyflowline/classes/pycase.py @@ -45,7 +45,7 @@ iFlag_cython = importlib.util.find_spec("cython") if iFlag_cython is not None: - from pyflowline.external.tinyr.tinyr.tinyr import RTree + from tinyr import RTree iFlag_use_rtree = 1 else: iFlag_use_rtree =0 @@ -110,6 +110,7 @@ class flowlinecase(object): iFlag_flowline = 1 iFlag_global = 0 iFlag_antarctic = 0 + iFlag_arctic = 0 iFlag_multiple_outlet = 0 iFlag_mesh_boundary = 0 iFlag_user_provided_binary = 0 @@ -229,6 +230,9 @@ def __init__(self, aConfig_in, if 'iFlag_antarctic' in aConfig_in: self.iFlag_antarctic = int(aConfig_in[ 'iFlag_antarctic']) + if 'iFlag_arctic' in aConfig_in: + self.iFlag_arctic = int(aConfig_in[ 'iFlag_arctic']) + if 'iFlag_mesh_boundary' in aConfig_in: self.iFlag_mesh_boundary = int(aConfig_in[ 'iFlag_mesh_boundary']) else: @@ -245,6 +249,8 @@ def __init__(self, aConfig_in, self.iFlag_simplification = 1 if self.iFlag_simplification ==1: self.iFlag_flowline = 1 + else: + self.iFlag_flowline = 0 if 'iFlag_create_mesh' in aConfig_in: self.iFlag_create_mesh = int(aConfig_in['iFlag_create_mesh']) @@ -551,6 +557,9 @@ def pyflowline_check_parameters(self): #other requirements maybe needed pass else: + if self.iFlag_antarctic==1 and self.iFlag_arctic==1: + print('Both antarctic and arctic flags are on, please check the parameters!') + if self.iFlag_mesh_boundary == 1: if not os.path.isfile(self.sFilename_mesh_boundary ): print("The mesh boundary file does not exist, you should update this parameter before running the model!") @@ -561,7 +570,6 @@ def pyflowline_check_parameters(self): self.dLatitude_mean = 0.5 * (aExtent[1] + aExtent[3]) pass - if sMesh_type =='hexagon': #hexagon #need spatial referece #check boundary if self.iFlag_mesh_boundary == 1: @@ -741,7 +749,7 @@ def pyflowline_flowline_simplification(self): return aFlowline_out - def pyflowline_mesh_generation(self, iFlag_antarctic_in=None): + def pyflowline_mesh_generation(self, iFlag_antarctic_in=None, iFlag_arctic_in=None): """ The mesh generation operation @@ -751,10 +759,15 @@ def pyflowline_mesh_generation(self, iFlag_antarctic_in=None): print('Start mesh generation.') if iFlag_antarctic_in is None: - iFlag_antarctic = 0 + iFlag_antarctic = self.iFlag_antarctic else: iFlag_antarctic = iFlag_antarctic_in + if iFlag_arctic_in is None: + iFlag_arctic = self.iFlag_arctic + else: + iFlag_arctic = iFlag_arctic_in + if self.iFlag_create_mesh ==1: iFlag_global = self.iFlag_global iMesh_type = self.iMesh_type @@ -867,10 +880,11 @@ def pyflowline_mesh_generation(self, iFlag_antarctic_in=None): dLongitude_left = self.dLongitude_left dLongitude_right = self.dLongitude_right - if iFlag_antarctic ==1: + if iFlag_antarctic ==1 or iFlag_arctic ==1: aMpas = create_mpas_mesh(iFlag_global, iFlag_use_mesh_dem, iFlag_save_mesh, sFilename_mesh_netcdf, sFilename_mesh, - iFlag_antarctic_in=iFlag_antarctic_in ) + iFlag_antarctic_in=iFlag_antarctic, + iFlag_arctic_in=iFlag_arctic) pass else: if iFlag_mesh_boundary ==1: @@ -881,6 +895,7 @@ def pyflowline_mesh_generation(self, iFlag_antarctic_in=None): aMpas = create_mpas_mesh(iFlag_global, iFlag_use_mesh_dem, iFlag_save_mesh, sFilename_mesh_netcdf, sFilename_mesh, iFlag_antarctic_in=iFlag_antarctic_in, + iFlag_arctic_in=iFlag_arctic_in, pBoundary_in = pBoundary_wkt) pass else: @@ -898,6 +913,7 @@ def pyflowline_mesh_generation(self, iFlag_antarctic_in=None): aMpas = create_mpas_mesh(iFlag_global, iFlag_use_mesh_dem, iFlag_save_mesh, sFilename_mesh_netcdf, sFilename_mesh, iFlag_antarctic_in= iFlag_antarctic_in, + iFlag_arctic_in=iFlag_arctic_in, pBoundary_in = pBoundary_wkt ) pass @@ -927,6 +943,7 @@ def pyflowline_mesh_generation(self, iFlag_antarctic_in=None): sWorkspace_output, iResolution_index_in= self.iResolution_index, iFlag_antarctic_in=iFlag_antarctic_in, + iFlag_arctic_in=iFlag_arctic_in, sDggrid_type_in = self.sDggrid_type, sFilename_boundary_in = self.sFilename_mesh_boundary) @@ -1135,7 +1152,7 @@ def pyflowline_run(self): pass if self.iFlag_create_mesh: - self.aCell = self.pyflowline_mesh_generation(iFlag_antarctic_in= self.iFlag_antarctic) + self.aCell = self.pyflowline_mesh_generation(iFlag_antarctic_in= self.iFlag_antarctic, iFlag_arctic_in=self.iFlag_arctic) aCell_out = self.aCell pass else: @@ -1233,10 +1250,10 @@ def tojson(self): obj.pop(sKey, None) pass - sJson = json.dumps(obj,\ - sort_keys=True, \ - indent = 4, \ - ensure_ascii=True, \ + sJson = json.dumps(obj, + sort_keys=True, + indent = 4, + ensure_ascii=True, cls=CaseClassEncoder) return sJson diff --git a/pyflowline/classes/vertex.py b/pyflowline/classes/vertex.py index 9873507..1610199 100644 --- a/pyflowline/classes/vertex.py +++ b/pyflowline/classes/vertex.py @@ -4,7 +4,7 @@ import importlib.util import numpy as np -iFlag_cython = importlib.util.find_spec("cython") +iFlag_cython = importlib.util.find_spec("cython") if iFlag_cython is not None: from pyflowline.algorithms.cython.kernel import calculate_distance_based_on_longitude_latitude else: @@ -17,7 +17,7 @@ def default(self, obj): if isinstance(obj, np.integer): return int(obj) if isinstance(obj, np.ndarray): - return obj.tolist() + return obj.tolist() return JSONEncoder.default(self, obj) class pyvertex(object): @@ -30,10 +30,10 @@ class pyvertex(object): Returns: pyvertex: A vertex object """ - - - - lVerterIndex=-1 #this index will be used for array - class variable + + + + lVerterIndex=-1 #this index will be used for array - class variable lVertexID=-1 lFlowlineID = -1 #we use this id only for intersect dX_meter=-9999 @@ -43,53 +43,53 @@ class pyvertex(object): dLatitude_degree=0.0 dLongitude_radian=0.0 dLatitude_radian=0.0 - dElevation=0.0 - + dElevation=0.0 + def __init__(self, aParameter): """ Initilize a vertex object - Args: + Args: aParameter (dict): A dictionary parameters """ - if 'x' in aParameter: + if 'x' in aParameter: self.dX_meter = float(aParameter['x']) - - if 'y' in aParameter: + + if 'y' in aParameter: self.dY_meter = float(aParameter['y']) - - if 'z' in aParameter: + + if 'z' in aParameter: self.dZ_meter = float(aParameter['z']) - - #dLongitude and dLatitude are always required - try: - self.dLongitude_degree = float(aParameter['dLongitude_degree']) - """dLongitude_degree - object variable""" + + #dLongitude and dLatitude are always required + try: + self.dLongitude_degree = float(aParameter['dLongitude_degree']) + """dLongitude_degree - object variable""" self.dLatitude_degree = float(aParameter['dLatitude_degree']) """dLatitude_degree - object variable""" self.dLongitude_radian = np.radians(self.dLongitude_degree) self.dLatitude_radian = np.radians(self.dLatitude_degree) - + except: print('Initialization of vertex failed!') - + return - def toNvector(self): + def toNvector(self): """ Note: replicated in LatLon_NvectorEllipsoidal Returns: pynvector: A nvector object """ - + a = self.dLatitude_radian b = self.dLongitude_radian c = np.sin(a) e = np.cos(a) - d = np.sin(b) + d = np.sin(b) f = np.cos(b) #// right-handed vector: x -> 0°E,0°N; y -> 90°E,0°N, z -> 90°N x = e * f @@ -101,7 +101,7 @@ def toNvector(self): point['z'] = z pNvector = pynvector(point) return pNvector - + def __hash__(self, precision=iPrecision_default): #design a hash function that uses both dLongitude and dLatitude @@ -116,10 +116,10 @@ def __hash__(self, precision=iPrecision_default): # Combine the scaled values into a single hash code hash_code = (scaled_latitude << 32) | scaled_longitude - + return hash_code - + def __eq__(self, other): """ Check whether two vertices are equivalent @@ -131,21 +131,21 @@ def __eq__(self, other): int: 1 if equivalent, 0 if not """ iFlag = False - dThreshold_in = 10 ** (-1 * iPrecision_default) - if isinstance(other, pyvertex): + dThreshold_in = 10 ** (-1 * iPrecision_default) + if isinstance(other, pyvertex): if (self.dLongitude_degree == other.dLongitude_degree) and \ (self.dLatitude_degree == other.dLatitude_degree): iFlag = True - else: + else: #use absolute difference to check whether two vertices are the same if (abs(self.dLongitude_degree - other.dLongitude_degree) < dThreshold_in) and \ - (abs(self.dLatitude_degree - other.dLatitude_degree) < dThreshold_in): + (abs(self.dLatitude_degree - other.dLatitude_degree) < dThreshold_in): iFlag = True else: - iFlag = False - + iFlag = False + else: - iFlag = False + iFlag = False return iFlag @@ -160,7 +160,7 @@ def __ne__(self, other): int: 0 if equivalent, 1 if not """ return not self.__eq__(other) - + def calculate_distance(self, other): """ Calculate the distance between two vertices @@ -173,12 +173,12 @@ def calculate_distance(self, other): """ dDistance = 0.0 lon1 = self.dLongitude_degree - lat1 = self.dLatitude_degree + lat1 = self.dLatitude_degree lon2 = other.dLongitude_degree lat2 = other.dLatitude_degree - dDistance = calculate_distance_based_on_longitude_latitude(lon1, lat1, lon2, lat2) + dDistance = calculate_distance_based_on_longitude_latitude(lon1, lat1, lon2, lat2) return dDistance - + def tojson(self): """ Convert a vecter object to a json string @@ -192,7 +192,7 @@ def tojson(self): obj = self.__dict__.copy() for sKey in aSkip: obj.pop(sKey, None) - + #sJson = json.dumps(self.__dict__, \ sJson = json.dumps(obj, \ sort_keys=True, \ @@ -201,7 +201,7 @@ def tojson(self): cls=VertexClassEncoder) return sJson - + class pynvector(object): """ The vector class @@ -217,13 +217,13 @@ class pynvector(object): dZ=-9999 def __init__(self, aParameter): - if 'x' in aParameter: + if 'x' in aParameter: self.dX = float(aParameter['x']) - - if 'y' in aParameter: + + if 'y' in aParameter: self.dY = float(aParameter['y']) - - if 'z' in aParameter: + + if 'z' in aParameter: self.dZ = float(aParameter['z']) self.dLength = self.calculate_length() self.dX = self.dX/self.dLength @@ -254,11 +254,11 @@ def toLatLon(self): a = np.arctan2(z, np.sqrt(x*x + y*y)) b = np.arctan2(y, x) - point0= dict() + point0= dict() point0['dLongitude_degree'] = np.degrees(b) point0['dLatitude_degree'] = np.degrees(a) pv = pyvertex(point0) return pv - + diff --git a/pyflowline/external/readme.md b/pyflowline/external/readme.md new file mode 100644 index 0000000..1576620 --- /dev/null +++ b/pyflowline/external/readme.md @@ -0,0 +1 @@ +Both PyEarth and Tinyr should be installed independently. \ No newline at end of file diff --git a/pyflowline/external/tinyr/build/temp.linux-x86_64-cpython-312/tinyr/tinyr.o b/pyflowline/external/tinyr/build/temp.linux-x86_64-cpython-312/tinyr/tinyr.o deleted file mode 100644 index ee695b5..0000000 Binary files a/pyflowline/external/tinyr/build/temp.linux-x86_64-cpython-312/tinyr/tinyr.o and /dev/null differ diff --git a/pyflowline/external/tinyr/requirements.txt b/pyflowline/external/tinyr/requirements.txt deleted file mode 100644 index b9401c6..0000000 --- a/pyflowline/external/tinyr/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -Cython==0.23.3 diff --git a/pyflowline/external/tinyr/setup.py b/pyflowline/external/tinyr/setup.py deleted file mode 100755 index 42672b6..0000000 --- a/pyflowline/external/tinyr/setup.py +++ /dev/null @@ -1,27 +0,0 @@ - -import os -from distutils.core import setup -from distutils.extension import Extension -from Cython.Distutils import build_ext - - -src_path = 'tinyr' - -extensions = [Extension( - 'tinyr', - [os.path.join(src_path, 'tinyr.pyx')], - extra_compile_args = ['-O3', '-Wall'], - extra_link_args = ['-g'], - )] - -setup( - name='tinyr', - version='0.1', - description='Fast 2D R-Tree implementation in cython', - author='Matthias Simon', - url='', - packages=['tinyr'], - ext_modules=extensions, - cmdclass=dict(build_ext=build_ext), -) - diff --git a/pyflowline/external/tinyr/tinyr/__init__.pxd b/pyflowline/external/tinyr/tinyr/__init__.pxd deleted file mode 100644 index e69de29..0000000 diff --git a/pyflowline/external/tinyr/tinyr/__init__.pyx b/pyflowline/external/tinyr/tinyr/__init__.pyx deleted file mode 100644 index e69de29..0000000 diff --git a/pyflowline/external/tinyr/tinyr/tinyr.c b/pyflowline/external/tinyr/tinyr/tinyr.c deleted file mode 100644 index 13a790d..0000000 --- a/pyflowline/external/tinyr/tinyr/tinyr.c +++ /dev/null @@ -1,34547 +0,0 @@ -/* Generated by Cython 3.0.8 */ - -/* BEGIN: Cython Metadata -{ - "distutils": { - "depends": [], - "extra_compile_args": [ - "-O3", - "-Wall" - ], - "extra_link_args": [ - "-g" - ], - "name": "tinyr", - "sources": [ - "tinyr/tinyr.pyx" - ] - }, - "module_name": "tinyr" -} -END: Cython Metadata */ - -#ifndef PY_SSIZE_T_CLEAN -#define PY_SSIZE_T_CLEAN -#endif /* PY_SSIZE_T_CLEAN */ -#if defined(CYTHON_LIMITED_API) && 0 - #ifndef Py_LIMITED_API - #if CYTHON_LIMITED_API+0 > 0x03030000 - #define Py_LIMITED_API CYTHON_LIMITED_API - #else - #define Py_LIMITED_API 0x03030000 - #endif - #endif -#endif - -#include "Python.h" -#ifndef Py_PYTHON_H - #error Python headers needed to compile C extensions, please install development version of Python. -#elif PY_VERSION_HEX < 0x02070000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) - #error Cython requires Python 2.7+ or Python 3.3+. -#else -#if defined(CYTHON_LIMITED_API) && CYTHON_LIMITED_API -#define __PYX_EXTRA_ABI_MODULE_NAME "limited" -#else -#define __PYX_EXTRA_ABI_MODULE_NAME "" -#endif -#define CYTHON_ABI "3_0_8" __PYX_EXTRA_ABI_MODULE_NAME -#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI -#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "." -#define CYTHON_HEX_VERSION 0x030008F0 -#define CYTHON_FUTURE_DIVISION 1 -#include -#ifndef offsetof - #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) -#endif -#if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS) - #ifndef __stdcall - #define __stdcall - #endif - #ifndef __cdecl - #define __cdecl - #endif - #ifndef __fastcall - #define __fastcall - #endif -#endif -#ifndef DL_IMPORT - #define DL_IMPORT(t) t -#endif -#ifndef DL_EXPORT - #define DL_EXPORT(t) t -#endif -#define __PYX_COMMA , -#ifndef HAVE_LONG_LONG - #define HAVE_LONG_LONG -#endif -#ifndef PY_LONG_LONG - #define PY_LONG_LONG LONG_LONG -#endif -#ifndef Py_HUGE_VAL - #define Py_HUGE_VAL HUGE_VAL -#endif -#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX -#if defined(GRAALVM_PYTHON) - /* For very preliminary testing purposes. Most variables are set the same as PyPy. - The existence of this section does not imply that anything works or is even tested */ - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #define CYTHON_COMPILING_IN_LIMITED_API 0 - #define CYTHON_COMPILING_IN_GRAAL 1 - #define CYTHON_COMPILING_IN_NOGIL 0 - #undef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 0 - #undef CYTHON_USE_TYPE_SPECS - #define CYTHON_USE_TYPE_SPECS 0 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #if PY_VERSION_HEX < 0x03050000 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #undef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #undef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 1 - #undef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 0 - #undef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 0 - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_GIL - #define CYTHON_FAST_GIL 0 - #undef CYTHON_METH_FASTCALL - #define CYTHON_METH_FASTCALL 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #ifndef CYTHON_PEP487_INIT_SUBCLASS - #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3) - #endif - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 1 - #undef CYTHON_USE_MODULE_STATE - #define CYTHON_USE_MODULE_STATE 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 - #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC - #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 - #endif -#elif defined(PYPY_VERSION) - #define CYTHON_COMPILING_IN_PYPY 1 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #define CYTHON_COMPILING_IN_LIMITED_API 0 - #define CYTHON_COMPILING_IN_GRAAL 0 - #define CYTHON_COMPILING_IN_NOGIL 0 - #undef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 0 - #ifndef CYTHON_USE_TYPE_SPECS - #define CYTHON_USE_TYPE_SPECS 0 - #endif - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #if PY_VERSION_HEX < 0x03050000 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #undef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 0 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #undef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 1 - #undef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 0 - #undef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 0 - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_GIL - #define CYTHON_FAST_GIL 0 - #undef CYTHON_METH_FASTCALL - #define CYTHON_METH_FASTCALL 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #ifndef CYTHON_PEP487_INIT_SUBCLASS - #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3) - #endif - #if PY_VERSION_HEX < 0x03090000 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT) - #define CYTHON_PEP489_MULTI_PHASE_INIT 1 - #endif - #undef CYTHON_USE_MODULE_STATE - #define CYTHON_USE_MODULE_STATE 0 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1 && PYPY_VERSION_NUM >= 0x07030C00) - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 - #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC - #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 - #endif -#elif defined(CYTHON_LIMITED_API) - #ifdef Py_LIMITED_API - #undef __PYX_LIMITED_VERSION_HEX - #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API - #endif - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #define CYTHON_COMPILING_IN_LIMITED_API 1 - #define CYTHON_COMPILING_IN_GRAAL 0 - #define CYTHON_COMPILING_IN_NOGIL 0 - #undef CYTHON_CLINE_IN_TRACEBACK - #define CYTHON_CLINE_IN_TRACEBACK 0 - #undef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 0 - #undef CYTHON_USE_TYPE_SPECS - #define CYTHON_USE_TYPE_SPECS 1 - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #undef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 0 - #ifndef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #endif - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #undef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 0 - #undef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 0 - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_GIL - #define CYTHON_FAST_GIL 0 - #undef CYTHON_METH_FASTCALL - #define CYTHON_METH_FASTCALL 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #ifndef CYTHON_PEP487_INIT_SUBCLASS - #define CYTHON_PEP487_INIT_SUBCLASS 1 - #endif - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #undef CYTHON_USE_MODULE_STATE - #define CYTHON_USE_MODULE_STATE 1 - #ifndef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #endif - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 - #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC - #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 - #endif -#elif defined(Py_GIL_DISABLED) || defined(Py_NOGIL) - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_CPYTHON 0 - #define CYTHON_COMPILING_IN_LIMITED_API 0 - #define CYTHON_COMPILING_IN_GRAAL 0 - #define CYTHON_COMPILING_IN_NOGIL 1 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #undef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 0 - #ifndef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #undef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 0 - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #undef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 0 - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #undef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 0 - #undef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 0 - #ifndef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 1 - #endif - #ifndef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 1 - #endif - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 -#else - #define CYTHON_COMPILING_IN_PYPY 0 - #define CYTHON_COMPILING_IN_CPYTHON 1 - #define CYTHON_COMPILING_IN_LIMITED_API 0 - #define CYTHON_COMPILING_IN_GRAAL 0 - #define CYTHON_COMPILING_IN_NOGIL 0 - #ifndef CYTHON_USE_TYPE_SLOTS - #define CYTHON_USE_TYPE_SLOTS 1 - #endif - #ifndef CYTHON_USE_TYPE_SPECS - #define CYTHON_USE_TYPE_SPECS 0 - #endif - #ifndef CYTHON_USE_PYTYPE_LOOKUP - #define CYTHON_USE_PYTYPE_LOOKUP 1 - #endif - #if PY_MAJOR_VERSION < 3 - #undef CYTHON_USE_ASYNC_SLOTS - #define CYTHON_USE_ASYNC_SLOTS 0 - #elif !defined(CYTHON_USE_ASYNC_SLOTS) - #define CYTHON_USE_ASYNC_SLOTS 1 - #endif - #ifndef CYTHON_USE_PYLONG_INTERNALS - #define CYTHON_USE_PYLONG_INTERNALS 1 - #endif - #ifndef CYTHON_USE_PYLIST_INTERNALS - #define CYTHON_USE_PYLIST_INTERNALS 1 - #endif - #ifndef CYTHON_USE_UNICODE_INTERNALS - #define CYTHON_USE_UNICODE_INTERNALS 1 - #endif - #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2 - #undef CYTHON_USE_UNICODE_WRITER - #define CYTHON_USE_UNICODE_WRITER 0 - #elif !defined(CYTHON_USE_UNICODE_WRITER) - #define CYTHON_USE_UNICODE_WRITER 1 - #endif - #ifndef CYTHON_AVOID_BORROWED_REFS - #define CYTHON_AVOID_BORROWED_REFS 0 - #endif - #ifndef CYTHON_ASSUME_SAFE_MACROS - #define CYTHON_ASSUME_SAFE_MACROS 1 - #endif - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif - #ifndef CYTHON_FAST_THREAD_STATE - #define CYTHON_FAST_THREAD_STATE 1 - #endif - #ifndef CYTHON_FAST_GIL - #define CYTHON_FAST_GIL (PY_MAJOR_VERSION < 3 || PY_VERSION_HEX >= 0x03060000 && PY_VERSION_HEX < 0x030C00A6) - #endif - #ifndef CYTHON_METH_FASTCALL - #define CYTHON_METH_FASTCALL (PY_VERSION_HEX >= 0x030700A1) - #endif - #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 - #endif - #ifndef CYTHON_PEP487_INIT_SUBCLASS - #define CYTHON_PEP487_INIT_SUBCLASS 1 - #endif - #if PY_VERSION_HEX < 0x03050000 - #undef CYTHON_PEP489_MULTI_PHASE_INIT - #define CYTHON_PEP489_MULTI_PHASE_INIT 0 - #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT) - #define CYTHON_PEP489_MULTI_PHASE_INIT 1 - #endif - #ifndef CYTHON_USE_MODULE_STATE - #define CYTHON_USE_MODULE_STATE 0 - #endif - #if PY_VERSION_HEX < 0x030400a1 - #undef CYTHON_USE_TP_FINALIZE - #define CYTHON_USE_TP_FINALIZE 0 - #elif !defined(CYTHON_USE_TP_FINALIZE) - #define CYTHON_USE_TP_FINALIZE 1 - #endif - #if PY_VERSION_HEX < 0x030600B1 - #undef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS 0 - #elif !defined(CYTHON_USE_DICT_VERSIONS) - #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX < 0x030C00A5) - #endif - #if PY_VERSION_HEX < 0x030700A3 - #undef CYTHON_USE_EXC_INFO_STACK - #define CYTHON_USE_EXC_INFO_STACK 0 - #elif !defined(CYTHON_USE_EXC_INFO_STACK) - #define CYTHON_USE_EXC_INFO_STACK 1 - #endif - #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC - #define CYTHON_UPDATE_DESCRIPTOR_DOC 1 - #endif -#endif -#if !defined(CYTHON_FAST_PYCCALL) -#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) -#endif -#if !defined(CYTHON_VECTORCALL) -#define CYTHON_VECTORCALL (CYTHON_FAST_PYCCALL && PY_VERSION_HEX >= 0x030800B1) -#endif -#define CYTHON_BACKPORT_VECTORCALL (CYTHON_METH_FASTCALL && PY_VERSION_HEX < 0x030800B1) -#if CYTHON_USE_PYLONG_INTERNALS - #if PY_MAJOR_VERSION < 3 - #include "longintrepr.h" - #endif - #undef SHIFT - #undef BASE - #undef MASK - #ifdef SIZEOF_VOID_P - enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; - #endif -#endif -#ifndef __has_attribute - #define __has_attribute(x) 0 -#endif -#ifndef __has_cpp_attribute - #define __has_cpp_attribute(x) 0 -#endif -#ifndef CYTHON_RESTRICT - #if defined(__GNUC__) - #define CYTHON_RESTRICT __restrict__ - #elif defined(_MSC_VER) && _MSC_VER >= 1400 - #define CYTHON_RESTRICT __restrict - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_RESTRICT restrict - #else - #define CYTHON_RESTRICT - #endif -#endif -#ifndef CYTHON_UNUSED - #if defined(__cplusplus) - /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17 - * but leads to warnings with -pedantic, since it is a C++17 feature */ - #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) - #if __has_cpp_attribute(maybe_unused) - #define CYTHON_UNUSED [[maybe_unused]] - #endif - #endif - #endif -#endif -#ifndef CYTHON_UNUSED -# if defined(__GNUC__) -# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) -# define CYTHON_UNUSED __attribute__ ((__unused__)) -# else -# define CYTHON_UNUSED -# endif -#endif -#ifndef CYTHON_UNUSED_VAR -# if defined(__cplusplus) - template void CYTHON_UNUSED_VAR( const T& ) { } -# else -# define CYTHON_UNUSED_VAR(x) (void)(x) -# endif -#endif -#ifndef CYTHON_MAYBE_UNUSED_VAR - #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x) -#endif -#ifndef CYTHON_NCP_UNUSED -# if CYTHON_COMPILING_IN_CPYTHON -# define CYTHON_NCP_UNUSED -# else -# define CYTHON_NCP_UNUSED CYTHON_UNUSED -# endif -#endif -#ifndef CYTHON_USE_CPP_STD_MOVE - #if defined(__cplusplus) && (\ - __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600)) - #define CYTHON_USE_CPP_STD_MOVE 1 - #else - #define CYTHON_USE_CPP_STD_MOVE 0 - #endif -#endif -#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) -#ifdef _MSC_VER - #ifndef _MSC_STDINT_H_ - #if _MSC_VER < 1300 - typedef unsigned char uint8_t; - typedef unsigned short uint16_t; - typedef unsigned int uint32_t; - #else - typedef unsigned __int8 uint8_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int32 uint32_t; - #endif - #endif - #if _MSC_VER < 1300 - #ifdef _WIN64 - typedef unsigned long long __pyx_uintptr_t; - #else - typedef unsigned int __pyx_uintptr_t; - #endif - #else - #ifdef _WIN64 - typedef unsigned __int64 __pyx_uintptr_t; - #else - typedef unsigned __int32 __pyx_uintptr_t; - #endif - #endif -#else - #include - typedef uintptr_t __pyx_uintptr_t; -#endif -#ifndef CYTHON_FALLTHROUGH - #if defined(__cplusplus) - /* for clang __has_cpp_attribute(fallthrough) is true even before C++17 - * but leads to warnings with -pedantic, since it is a C++17 feature */ - #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L) - #if __has_cpp_attribute(fallthrough) - #define CYTHON_FALLTHROUGH [[fallthrough]] - #endif - #endif - #ifndef CYTHON_FALLTHROUGH - #if __has_cpp_attribute(clang::fallthrough) - #define CYTHON_FALLTHROUGH [[clang::fallthrough]] - #elif __has_cpp_attribute(gnu::fallthrough) - #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] - #endif - #endif - #endif - #ifndef CYTHON_FALLTHROUGH - #if __has_attribute(fallthrough) - #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) - #else - #define CYTHON_FALLTHROUGH - #endif - #endif - #if defined(__clang__) && defined(__apple_build_version__) - #if __apple_build_version__ < 7000000 - #undef CYTHON_FALLTHROUGH - #define CYTHON_FALLTHROUGH - #endif - #endif -#endif -#ifdef __cplusplus - template - struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);}; - #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL::value) -#else - #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0) -#endif -#if CYTHON_COMPILING_IN_PYPY == 1 - #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x030A0000) -#else - #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000) -#endif -#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer)) - -#ifndef CYTHON_INLINE - #if defined(__clang__) - #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) - #elif defined(__GNUC__) - #define CYTHON_INLINE __inline__ - #elif defined(_MSC_VER) - #define CYTHON_INLINE __inline - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define CYTHON_INLINE inline - #else - #define CYTHON_INLINE - #endif -#endif - -#define __PYX_BUILD_PY_SSIZE_T "n" -#define CYTHON_FORMAT_SSIZE_T "z" -#if PY_MAJOR_VERSION < 3 - #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" - #define __Pyx_DefaultClassType PyClass_Type - #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#else - #define __Pyx_BUILTIN_MODULE_NAME "builtins" - #define __Pyx_DefaultClassType PyType_Type -#if CYTHON_COMPILING_IN_LIMITED_API - static CYTHON_INLINE PyObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f, - PyObject *code, PyObject *c, PyObject* n, PyObject *v, - PyObject *fv, PyObject *cell, PyObject* fn, - PyObject *name, int fline, PyObject *lnos) { - PyObject *exception_table = NULL; - PyObject *types_module=NULL, *code_type=NULL, *result=NULL; - #if __PYX_LIMITED_VERSION_HEX < 0x030B0000 - PyObject *version_info; - PyObject *py_minor_version = NULL; - #endif - long minor_version = 0; - PyObject *type, *value, *traceback; - PyErr_Fetch(&type, &value, &traceback); - #if __PYX_LIMITED_VERSION_HEX >= 0x030B0000 - minor_version = 11; - #else - if (!(version_info = PySys_GetObject("version_info"))) goto end; - if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end; - minor_version = PyLong_AsLong(py_minor_version); - Py_DECREF(py_minor_version); - if (minor_version == -1 && PyErr_Occurred()) goto end; - #endif - if (!(types_module = PyImport_ImportModule("types"))) goto end; - if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end; - if (minor_version <= 7) { - (void)p; - result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOO", a, k, l, s, f, code, - c, n, v, fn, name, fline, lnos, fv, cell); - } else if (minor_version <= 10) { - result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOO", a,p, k, l, s, f, code, - c, n, v, fn, name, fline, lnos, fv, cell); - } else { - if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end; - result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOO", a,p, k, l, s, f, code, - c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell); - } - end: - Py_XDECREF(code_type); - Py_XDECREF(exception_table); - Py_XDECREF(types_module); - if (type) { - PyErr_Restore(type, value, traceback); - } - return result; - } - #ifndef CO_OPTIMIZED - #define CO_OPTIMIZED 0x0001 - #endif - #ifndef CO_NEWLOCALS - #define CO_NEWLOCALS 0x0002 - #endif - #ifndef CO_VARARGS - #define CO_VARARGS 0x0004 - #endif - #ifndef CO_VARKEYWORDS - #define CO_VARKEYWORDS 0x0008 - #endif - #ifndef CO_ASYNC_GENERATOR - #define CO_ASYNC_GENERATOR 0x0200 - #endif - #ifndef CO_GENERATOR - #define CO_GENERATOR 0x0020 - #endif - #ifndef CO_COROUTINE - #define CO_COROUTINE 0x0080 - #endif -#elif PY_VERSION_HEX >= 0x030B0000 - static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f, - PyObject *code, PyObject *c, PyObject* n, PyObject *v, - PyObject *fv, PyObject *cell, PyObject* fn, - PyObject *name, int fline, PyObject *lnos) { - PyCodeObject *result; - PyObject *empty_bytes = PyBytes_FromStringAndSize("", 0); - if (!empty_bytes) return NULL; - result = - #if PY_VERSION_HEX >= 0x030C0000 - PyUnstable_Code_NewWithPosOnlyArgs - #else - PyCode_NewWithPosOnlyArgs - #endif - (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, empty_bytes); - Py_DECREF(empty_bytes); - return result; - } -#elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY - #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#else - #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ - PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) -#endif -#endif -#if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE) - #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type) -#else - #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type)) -#endif -#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is) - #define __Pyx_Py_Is(x, y) Py_Is(x, y) -#else - #define __Pyx_Py_Is(x, y) ((x) == (y)) -#endif -#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone) - #define __Pyx_Py_IsNone(ob) Py_IsNone(ob) -#else - #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None) -#endif -#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue) - #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob) -#else - #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True) -#endif -#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse) - #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob) -#else - #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False) -#endif -#define __Pyx_NoneAsNull(obj) (__Pyx_Py_IsNone(obj) ? NULL : (obj)) -#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY - #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o) -#else - #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o) -#endif -#ifndef CO_COROUTINE - #define CO_COROUTINE 0x80 -#endif -#ifndef CO_ASYNC_GENERATOR - #define CO_ASYNC_GENERATOR 0x200 -#endif -#ifndef Py_TPFLAGS_CHECKTYPES - #define Py_TPFLAGS_CHECKTYPES 0 -#endif -#ifndef Py_TPFLAGS_HAVE_INDEX - #define Py_TPFLAGS_HAVE_INDEX 0 -#endif -#ifndef Py_TPFLAGS_HAVE_NEWBUFFER - #define Py_TPFLAGS_HAVE_NEWBUFFER 0 -#endif -#ifndef Py_TPFLAGS_HAVE_FINALIZE - #define Py_TPFLAGS_HAVE_FINALIZE 0 -#endif -#ifndef Py_TPFLAGS_SEQUENCE - #define Py_TPFLAGS_SEQUENCE 0 -#endif -#ifndef Py_TPFLAGS_MAPPING - #define Py_TPFLAGS_MAPPING 0 -#endif -#ifndef METH_STACKLESS - #define METH_STACKLESS 0 -#endif -#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) - #ifndef METH_FASTCALL - #define METH_FASTCALL 0x80 - #endif - typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); - typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, - Py_ssize_t nargs, PyObject *kwnames); -#else - #define __Pyx_PyCFunctionFast _PyCFunctionFast - #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords -#endif -#if CYTHON_METH_FASTCALL - #define __Pyx_METH_FASTCALL METH_FASTCALL - #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast - #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords -#else - #define __Pyx_METH_FASTCALL METH_VARARGS - #define __Pyx_PyCFunction_FastCall PyCFunction - #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords -#endif -#if CYTHON_VECTORCALL - #define __pyx_vectorcallfunc vectorcallfunc - #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET PY_VECTORCALL_ARGUMENTS_OFFSET - #define __Pyx_PyVectorcall_NARGS(n) PyVectorcall_NARGS((size_t)(n)) -#elif CYTHON_BACKPORT_VECTORCALL - typedef PyObject *(*__pyx_vectorcallfunc)(PyObject *callable, PyObject *const *args, - size_t nargsf, PyObject *kwnames); - #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET ((size_t)1 << (8 * sizeof(size_t) - 1)) - #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(((size_t)(n)) & ~__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)) -#else - #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET 0 - #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(n)) -#endif -#if PY_MAJOR_VERSION >= 0x030900B1 -#define __Pyx_PyCFunction_CheckExact(func) PyCFunction_CheckExact(func) -#else -#define __Pyx_PyCFunction_CheckExact(func) PyCFunction_Check(func) -#endif -#define __Pyx_CyOrPyCFunction_Check(func) PyCFunction_Check(func) -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) (((PyCFunctionObject*)(func))->m_ml->ml_meth) -#elif !CYTHON_COMPILING_IN_LIMITED_API -#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(func) -#endif -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_CyOrPyCFunction_GET_FLAGS(func) (((PyCFunctionObject*)(func))->m_ml->ml_flags) -static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) { - return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self; -} -#endif -static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void *cfunc) { -#if CYTHON_COMPILING_IN_LIMITED_API - return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc; -#else - return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc; -#endif -} -#define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCFunction(func, cfunc) -#if __PYX_LIMITED_VERSION_HEX < 0x030900B1 - #define __Pyx_PyType_FromModuleAndSpec(m, s, b) ((void)m, PyType_FromSpecWithBases(s, b)) - typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *); -#else - #define __Pyx_PyType_FromModuleAndSpec(m, s, b) PyType_FromModuleAndSpec(m, s, b) - #define __Pyx_PyCMethod PyCMethod -#endif -#ifndef METH_METHOD - #define METH_METHOD 0x200 -#endif -#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) - #define PyObject_Malloc(s) PyMem_Malloc(s) - #define PyObject_Free(p) PyMem_Free(p) - #define PyObject_Realloc(p) PyMem_Realloc(p) -#endif -#if CYTHON_COMPILING_IN_LIMITED_API - #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) -#else - #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) - #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) -#endif -#if CYTHON_COMPILING_IN_LIMITED_API - #define __Pyx_PyThreadState_Current PyThreadState_Get() -#elif !CYTHON_FAST_THREAD_STATE - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#elif PY_VERSION_HEX >= 0x030d00A1 - #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked() -#elif PY_VERSION_HEX >= 0x03060000 - #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() -#elif PY_VERSION_HEX >= 0x03000000 - #define __Pyx_PyThreadState_Current PyThreadState_GET() -#else - #define __Pyx_PyThreadState_Current _PyThreadState_Current -#endif -#if CYTHON_COMPILING_IN_LIMITED_API -static CYTHON_INLINE void *__Pyx_PyModule_GetState(PyObject *op) -{ - void *result; - result = PyModule_GetState(op); - if (!result) - Py_FatalError("Couldn't find the module state"); - return result; -} -#endif -#define __Pyx_PyObject_GetSlot(obj, name, func_ctype) __Pyx_PyType_GetSlot(Py_TYPE(obj), name, func_ctype) -#if CYTHON_COMPILING_IN_LIMITED_API - #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((func_ctype) PyType_GetSlot((type), Py_##name)) -#else - #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((type)->name) -#endif -#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) -#include "pythread.h" -#define Py_tss_NEEDS_INIT 0 -typedef int Py_tss_t; -static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { - *key = PyThread_create_key(); - return 0; -} -static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { - Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); - *key = Py_tss_NEEDS_INIT; - return key; -} -static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { - PyObject_Free(key); -} -static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { - return *key != Py_tss_NEEDS_INIT; -} -static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { - PyThread_delete_key(*key); - *key = Py_tss_NEEDS_INIT; -} -static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { - return PyThread_set_key_value(*key, value); -} -static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - return PyThread_get_key_value(*key); -} -#endif -#if PY_MAJOR_VERSION < 3 - #if CYTHON_COMPILING_IN_PYPY - #if PYPY_VERSION_NUM < 0x07030600 - #if defined(__cplusplus) && __cplusplus >= 201402L - [[deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")]] - #elif defined(__GNUC__) || defined(__clang__) - __attribute__ ((__deprecated__("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6"))) - #elif defined(_MSC_VER) - __declspec(deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")) - #endif - static CYTHON_INLINE int PyGILState_Check(void) { - return 0; - } - #else // PYPY_VERSION_NUM < 0x07030600 - #endif // PYPY_VERSION_NUM < 0x07030600 - #else - static CYTHON_INLINE int PyGILState_Check(void) { - PyThreadState * tstate = _PyThreadState_Current; - return tstate && (tstate == PyGILState_GetThisThreadState()); - } - #endif -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000 || defined(_PyDict_NewPresized) -#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) -#else -#define __Pyx_PyDict_NewPresized(n) PyDict_New() -#endif -#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION - #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) -#else - #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) - #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030600B4 && PY_VERSION_HEX < 0x030d0000 && CYTHON_USE_UNICODE_INTERNALS -#define __Pyx_PyDict_GetItemStrWithError(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) -static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) { - PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name); - if (res == NULL) PyErr_Clear(); - return res; -} -#elif PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000) -#define __Pyx_PyDict_GetItemStrWithError PyDict_GetItemWithError -#define __Pyx_PyDict_GetItemStr PyDict_GetItem -#else -static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) { -#if CYTHON_COMPILING_IN_PYPY - return PyDict_GetItem(dict, name); -#else - PyDictEntry *ep; - PyDictObject *mp = (PyDictObject*) dict; - long hash = ((PyStringObject *) name)->ob_shash; - assert(hash != -1); - ep = (mp->ma_lookup)(mp, name, hash); - if (ep == NULL) { - return NULL; - } - return ep->me_value; -#endif -} -#define __Pyx_PyDict_GetItemStr PyDict_GetItem -#endif -#if CYTHON_USE_TYPE_SLOTS - #define __Pyx_PyType_GetFlags(tp) (((PyTypeObject *)tp)->tp_flags) - #define __Pyx_PyType_HasFeature(type, feature) ((__Pyx_PyType_GetFlags(type) & (feature)) != 0) - #define __Pyx_PyObject_GetIterNextFunc(obj) (Py_TYPE(obj)->tp_iternext) -#else - #define __Pyx_PyType_GetFlags(tp) (PyType_GetFlags((PyTypeObject *)tp)) - #define __Pyx_PyType_HasFeature(type, feature) PyType_HasFeature(type, feature) - #define __Pyx_PyObject_GetIterNextFunc(obj) PyIter_Next -#endif -#if CYTHON_COMPILING_IN_LIMITED_API - #define __Pyx_SetItemOnTypeDict(tp, k, v) PyObject_GenericSetAttr((PyObject*)tp, k, v) -#else - #define __Pyx_SetItemOnTypeDict(tp, k, v) PyDict_SetItem(tp->tp_dict, k, v) -#endif -#if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX >= 0x03080000 -#define __Pyx_PyHeapTypeObject_GC_Del(obj) {\ - PyTypeObject *type = Py_TYPE((PyObject*)obj);\ - assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\ - PyObject_GC_Del(obj);\ - Py_DECREF(type);\ -} -#else -#define __Pyx_PyHeapTypeObject_GC_Del(obj) PyObject_GC_Del(obj) -#endif -#if CYTHON_COMPILING_IN_LIMITED_API - #define CYTHON_PEP393_ENABLED 1 - #define __Pyx_PyUnicode_READY(op) (0) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GetLength(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((void)u, 1114111U) - #define __Pyx_PyUnicode_KIND(u) ((void)u, (0)) - #define __Pyx_PyUnicode_DATA(u) ((void*)u) - #define __Pyx_PyUnicode_READ(k, d, i) ((void)k, PyUnicode_ReadChar((PyObject*)(d), i)) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GetLength(u)) -#elif PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) - #define CYTHON_PEP393_ENABLED 1 - #if PY_VERSION_HEX >= 0x030C0000 - #define __Pyx_PyUnicode_READY(op) (0) - #else - #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ - 0 : _PyUnicode_Ready((PyObject *)(op))) - #endif - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) - #define __Pyx_PyUnicode_KIND(u) ((int)PyUnicode_KIND(u)) - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, (Py_UCS4) ch) - #if PY_VERSION_HEX >= 0x030C0000 - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) - #else - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) - #else - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) - #endif - #endif -#else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 - #define PyUnicode_2BYTE_KIND 2 - #define PyUnicode_4BYTE_KIND 4 - #define __Pyx_PyUnicode_READY(op) (0) - #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) - #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) - #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535U : 1114111U) - #define __Pyx_PyUnicode_KIND(u) ((int)sizeof(Py_UNICODE)) - #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) - #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = (Py_UNICODE) ch) - #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) -#endif -#if CYTHON_COMPILING_IN_PYPY - #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) -#else - #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) - #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ - PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) -#endif -#if CYTHON_COMPILING_IN_PYPY - #if !defined(PyUnicode_DecodeUnicodeEscape) - #define PyUnicode_DecodeUnicodeEscape(s, size, errors) PyUnicode_Decode(s, size, "unicode_escape", errors) - #endif - #if !defined(PyUnicode_Contains) || (PY_MAJOR_VERSION == 2 && PYPY_VERSION_NUM < 0x07030500) - #undef PyUnicode_Contains - #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) - #endif - #if !defined(PyByteArray_Check) - #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) - #endif - #if !defined(PyObject_Format) - #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) - #endif -#endif -#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) -#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) -#else - #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) -#endif -#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) - #define PyObject_ASCII(o) PyObject_Repr(o) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBaseString_Type PyUnicode_Type - #define PyStringObject PyUnicodeObject - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str -#endif -#endif -#if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -#else - #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) - #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) -#endif -#if CYTHON_COMPILING_IN_CPYTHON - #define __Pyx_PySequence_ListKeepNew(obj)\ - (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj)) -#else - #define __Pyx_PySequence_ListKeepNew(obj) PySequence_List(obj) -#endif -#ifndef PySet_CheckExact - #define PySet_CheckExact(obj) __Pyx_IS_TYPE(obj, &PySet_Type) -#endif -#if PY_VERSION_HEX >= 0x030900A4 - #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) - #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -#else - #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) - #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -#endif -#if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i) - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0)) - #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0)) - #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o) - #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o) - #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o) - #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o) - #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o) -#else - #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i) - #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) - #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v) - #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v) - #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o) - #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o) - #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o) - #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o) - #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o) -#endif -#if PY_VERSION_HEX >= 0x030d00A1 - #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name) -#else - static CYTHON_INLINE PyObject *__Pyx_PyImport_AddModuleRef(const char *name) { - PyObject *module = PyImport_AddModule(name); - Py_XINCREF(module); - return module; - } -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyIntObject PyLongObject - #define PyInt_Type PyLong_Type - #define PyInt_Check(op) PyLong_Check(op) - #define PyInt_CheckExact(op) PyLong_CheckExact(op) - #define __Pyx_Py3Int_Check(op) PyLong_Check(op) - #define __Pyx_Py3Int_CheckExact(op) PyLong_CheckExact(op) - #define PyInt_FromString PyLong_FromString - #define PyInt_FromUnicode PyLong_FromUnicode - #define PyInt_FromLong PyLong_FromLong - #define PyInt_FromSize_t PyLong_FromSize_t - #define PyInt_FromSsize_t PyLong_FromSsize_t - #define PyInt_AsLong PyLong_AsLong - #define PyInt_AS_LONG PyLong_AS_LONG - #define PyInt_AsSsize_t PyLong_AsSsize_t - #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask - #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask - #define PyNumber_Int PyNumber_Long -#else - #define __Pyx_Py3Int_Check(op) (PyLong_Check(op) || PyInt_Check(op)) - #define __Pyx_Py3Int_CheckExact(op) (PyLong_CheckExact(op) || PyInt_CheckExact(op)) -#endif -#if PY_MAJOR_VERSION >= 3 - #define PyBoolObject PyLongObject -#endif -#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY - #ifndef PyUnicode_InternFromString - #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) - #endif -#endif -#if PY_VERSION_HEX < 0x030200A4 - typedef long Py_hash_t; - #define __Pyx_PyInt_FromHash_t PyInt_FromLong - #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t -#else - #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t - #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t -#endif -#if CYTHON_USE_ASYNC_SLOTS - #if PY_VERSION_HEX >= 0x030500B1 - #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods - #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) - #else - #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) - #endif -#else - #define __Pyx_PyType_AsAsync(obj) NULL -#endif -#ifndef __Pyx_PyAsyncMethodsStruct - typedef struct { - unaryfunc am_await; - unaryfunc am_aiter; - unaryfunc am_anext; - } __Pyx_PyAsyncMethodsStruct; -#endif - -#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS) - #if !defined(_USE_MATH_DEFINES) - #define _USE_MATH_DEFINES - #endif -#endif -#include -#ifdef NAN -#define __PYX_NAN() ((float) NAN) -#else -static CYTHON_INLINE float __PYX_NAN() { - float value; - memset(&value, 0xFF, sizeof(value)); - return value; -} -#endif -#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) -#define __Pyx_truncl trunc -#else -#define __Pyx_truncl truncl -#endif - -#define __PYX_MARK_ERR_POS(f_index, lineno) \ - { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } -#define __PYX_ERR(f_index, lineno, Ln_error) \ - { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - -#ifdef CYTHON_EXTERN_C - #undef __PYX_EXTERN_C - #define __PYX_EXTERN_C CYTHON_EXTERN_C -#elif defined(__PYX_EXTERN_C) - #ifdef _MSC_VER - #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.") - #else - #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead. - #endif -#else - #ifdef __cplusplus - #define __PYX_EXTERN_C extern "C" - #else - #define __PYX_EXTERN_C extern - #endif -#endif - -#define __PYX_HAVE__tinyr -#define __PYX_HAVE_API__tinyr -/* Early includes */ -#include -#ifdef _OPENMP -#include -#endif /* _OPENMP */ - -#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) -#define CYTHON_WITHOUT_ASSERTIONS -#endif - -typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; - const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; - -#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 -#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) -#define __PYX_DEFAULT_STRING_ENCODING "" -#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString -#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#define __Pyx_uchar_cast(c) ((unsigned char)c) -#define __Pyx_long_cast(x) ((long)x) -#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ - (sizeof(type) < sizeof(Py_ssize_t)) ||\ - (sizeof(type) > sizeof(Py_ssize_t) &&\ - likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX) &&\ - (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ - v == (type)PY_SSIZE_T_MIN))) ||\ - (sizeof(type) == sizeof(Py_ssize_t) &&\ - (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ - v == (type)PY_SSIZE_T_MAX))) ) -static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { - return (size_t) i < (size_t) limit; -} -#if defined (__cplusplus) && __cplusplus >= 201103L - #include - #define __Pyx_sst_abs(value) std::abs(value) -#elif SIZEOF_INT >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) abs(value) -#elif SIZEOF_LONG >= SIZEOF_SIZE_T - #define __Pyx_sst_abs(value) labs(value) -#elif defined (_MSC_VER) - #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) -#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - #define __Pyx_sst_abs(value) llabs(value) -#elif defined (__GNUC__) - #define __Pyx_sst_abs(value) __builtin_llabs(value) -#else - #define __Pyx_sst_abs(value) ((value<0) ? -value : value) -#endif -static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s); -static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); -static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*); -#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) -#define __Pyx_PyBytes_FromString PyBytes_FromString -#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); -#if PY_MAJOR_VERSION < 3 - #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize -#else - #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString - #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize -#endif -#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) -#define __Pyx_PyObject_AsWritableString(s) ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableSString(s) ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) -#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) -#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) -#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) -#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) -#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) -#if CYTHON_COMPILING_IN_LIMITED_API -static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const wchar_t *u) -{ - const wchar_t *u_end = u; - while (*u_end++) ; - return (size_t)(u_end - u - 1); -} -#else -static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) -{ - const Py_UNICODE *u_end = u; - while (*u_end++) ; - return (size_t)(u_end - u - 1); -} -#endif -#define __Pyx_PyUnicode_FromOrdinal(o) PyUnicode_FromOrdinal((int)o) -#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) -#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode -#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode -#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) -#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) -static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); -static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); -#define __Pyx_PySequence_Tuple(obj)\ - (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); -static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); -#if CYTHON_ASSUME_SAFE_MACROS -#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) -#else -#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) -#endif -#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) -#if PY_MAJOR_VERSION >= 3 -#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) -#else -#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) -#endif -#if CYTHON_USE_PYLONG_INTERNALS - #if PY_VERSION_HEX >= 0x030C00A7 - #ifndef _PyLong_SIGN_MASK - #define _PyLong_SIGN_MASK 3 - #endif - #ifndef _PyLong_NON_SIZE_BITS - #define _PyLong_NON_SIZE_BITS 3 - #endif - #define __Pyx_PyLong_Sign(x) (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK) - #define __Pyx_PyLong_IsNeg(x) ((__Pyx_PyLong_Sign(x) & 2) != 0) - #define __Pyx_PyLong_IsNonNeg(x) (!__Pyx_PyLong_IsNeg(x)) - #define __Pyx_PyLong_IsZero(x) (__Pyx_PyLong_Sign(x) & 1) - #define __Pyx_PyLong_IsPos(x) (__Pyx_PyLong_Sign(x) == 0) - #define __Pyx_PyLong_CompactValueUnsigned(x) (__Pyx_PyLong_Digits(x)[0]) - #define __Pyx_PyLong_DigitCount(x) ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS)) - #define __Pyx_PyLong_SignedDigitCount(x)\ - ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x)) - #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue) - #define __Pyx_PyLong_IsCompact(x) PyUnstable_Long_IsCompact((PyLongObject*) x) - #define __Pyx_PyLong_CompactValue(x) PyUnstable_Long_CompactValue((PyLongObject*) x) - #else - #define __Pyx_PyLong_IsCompact(x) (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS)) - #define __Pyx_PyLong_CompactValue(x) ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0]) - #endif - typedef Py_ssize_t __Pyx_compact_pylong; - typedef size_t __Pyx_compact_upylong; - #else - #define __Pyx_PyLong_IsNeg(x) (Py_SIZE(x) < 0) - #define __Pyx_PyLong_IsNonNeg(x) (Py_SIZE(x) >= 0) - #define __Pyx_PyLong_IsZero(x) (Py_SIZE(x) == 0) - #define __Pyx_PyLong_IsPos(x) (Py_SIZE(x) > 0) - #define __Pyx_PyLong_CompactValueUnsigned(x) ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0]) - #define __Pyx_PyLong_DigitCount(x) __Pyx_sst_abs(Py_SIZE(x)) - #define __Pyx_PyLong_SignedDigitCount(x) Py_SIZE(x) - #define __Pyx_PyLong_IsCompact(x) (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1) - #define __Pyx_PyLong_CompactValue(x)\ - ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0])) - typedef sdigit __Pyx_compact_pylong; - typedef digit __Pyx_compact_upylong; - #endif - #if PY_VERSION_HEX >= 0x030C00A5 - #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->long_value.ob_digit) - #else - #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->ob_digit) - #endif -#endif -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII -#include -static int __Pyx_sys_getdefaultencoding_not_ascii; -static int __Pyx_init_sys_getdefaultencoding_params(void) { - PyObject* sys; - PyObject* default_encoding = NULL; - PyObject* ascii_chars_u = NULL; - PyObject* ascii_chars_b = NULL; - const char* default_encoding_c; - sys = PyImport_ImportModule("sys"); - if (!sys) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); - Py_DECREF(sys); - if (!default_encoding) goto bad; - default_encoding_c = PyBytes_AsString(default_encoding); - if (!default_encoding_c) goto bad; - if (strcmp(default_encoding_c, "ascii") == 0) { - __Pyx_sys_getdefaultencoding_not_ascii = 0; - } else { - char ascii_chars[128]; - int c; - for (c = 0; c < 128; c++) { - ascii_chars[c] = (char) c; - } - __Pyx_sys_getdefaultencoding_not_ascii = 1; - ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); - if (!ascii_chars_u) goto bad; - ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); - if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { - PyErr_Format( - PyExc_ValueError, - "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", - default_encoding_c); - goto bad; - } - Py_DECREF(ascii_chars_u); - Py_DECREF(ascii_chars_b); - } - Py_DECREF(default_encoding); - return 0; -bad: - Py_XDECREF(default_encoding); - Py_XDECREF(ascii_chars_u); - Py_XDECREF(ascii_chars_b); - return -1; -} -#endif -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) -#else -#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) -#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -#include -static char* __PYX_DEFAULT_STRING_ENCODING; -static int __Pyx_init_sys_getdefaultencoding_params(void) { - PyObject* sys; - PyObject* default_encoding = NULL; - char* default_encoding_c; - sys = PyImport_ImportModule("sys"); - if (!sys) goto bad; - default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); - Py_DECREF(sys); - if (!default_encoding) goto bad; - default_encoding_c = PyBytes_AsString(default_encoding); - if (!default_encoding_c) goto bad; - __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); - if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; - strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); - Py_DECREF(default_encoding); - return 0; -bad: - Py_XDECREF(default_encoding); - return -1; -} -#endif -#endif - - -/* Test for GCC > 2.95 */ -#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) - #define likely(x) __builtin_expect(!!(x), 1) - #define unlikely(x) __builtin_expect(!!(x), 0) -#else /* !__GNUC__ or GCC < 2.95 */ - #define likely(x) (x) - #define unlikely(x) (x) -#endif /* __GNUC__ */ -static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } - -#if !CYTHON_USE_MODULE_STATE -static PyObject *__pyx_m = NULL; -#endif -static int __pyx_lineno; -static int __pyx_clineno = 0; -static const char * __pyx_cfilenm = __FILE__; -static const char *__pyx_filename; - -/* #### Code section: filename_table ### */ - -static const char *__pyx_f[] = { - "tinyr/tinyr.pyx", - "", -}; -/* #### Code section: utility_code_proto_before_types ### */ -/* ForceInitThreads.proto */ -#ifndef __PYX_FORCE_INIT_THREADS - #define __PYX_FORCE_INIT_THREADS 0 -#endif - -/* #### Code section: numeric_typedefs ### */ - -/* "tinyr.pyx":42 - * from libc.float cimport DBL_MAX as Dfloat_max, DBL_MIN as Dfloat_min - * - * ctypedef double Dfloat # <<<<<<<<<<<<<< - * ctypedef unsigned Duint - * - */ -typedef double __pyx_t_5tinyr_Dfloat; - -/* "tinyr.pyx":43 - * - * ctypedef double Dfloat - * ctypedef unsigned Duint # <<<<<<<<<<<<<< - * - * - */ -typedef unsigned int __pyx_t_5tinyr_Duint; -/* #### Code section: complex_type_declarations ### */ -/* #### Code section: type_declarations ### */ - -/*--- Type declarations ---*/ -struct __pyx_obj_5tinyr__Record; -struct __pyx_obj_5tinyr__ChildRecord; -struct __pyx_obj_5tinyr__InnerRecord; -struct __pyx_obj_5tinyr__Node; -struct __pyx_obj_5tinyr_RTree; -struct __pyx_obj_5tinyr__Iterator; -struct __pyx_obj_5tinyr__NodeIter; -struct __pyx_obj_5tinyr__RectangleIter; -struct __pyx_obj_5tinyr__ChildRecordIter; -struct __pyx_obj_5tinyr__KVIIter; -struct __pyx_obj_5tinyr__KeysIter; -struct __pyx_obj_5tinyr__ValuesIter; -struct __pyx_obj_5tinyr__ItemsIter; -struct __pyx_obj_5tinyr_RTreeInfo; - -/* "tinyr.pyx":50 - * ############################################################################### - * - * cdef class _Record # <<<<<<<<<<<<<< - * cdef class _ChildRecord(_Record) - * cdef class _InnerRecord(_Record) - */ -struct __pyx_obj_5tinyr__Record { - PyObject_HEAD - struct __pyx_vtabstruct_5tinyr__Record *__pyx_vtab; - __pyx_t_5tinyr_Dfloat coords[4]; -}; - - -/* "tinyr.pyx":51 - * - * cdef class _Record - * cdef class _ChildRecord(_Record) # <<<<<<<<<<<<<< - * cdef class _InnerRecord(_Record) - * cdef class _Node - */ -struct __pyx_obj_5tinyr__ChildRecord { - struct __pyx_obj_5tinyr__Record __pyx_base; - PyObject *identifier; -}; - - -/* "tinyr.pyx":52 - * cdef class _Record - * cdef class _ChildRecord(_Record) - * cdef class _InnerRecord(_Record) # <<<<<<<<<<<<<< - * cdef class _Node - * cdef class RTree - */ -struct __pyx_obj_5tinyr__InnerRecord { - struct __pyx_obj_5tinyr__Record __pyx_base; - struct __pyx_obj_5tinyr__Node *child; -}; - - -/* "tinyr.pyx":53 - * cdef class _ChildRecord(_Record) - * cdef class _InnerRecord(_Record) - * cdef class _Node # <<<<<<<<<<<<<< - * cdef class RTree - * cdef class _Iterator - */ -struct __pyx_obj_5tinyr__Node { - PyObject_HEAD - struct __pyx_vtabstruct_5tinyr__Node *__pyx_vtab; - struct __pyx_obj_5tinyr__Node *parent; - PyObject *records; - int is_leaf; -}; - - -/* "tinyr.pyx":54 - * cdef class _InnerRecord(_Record) - * cdef class _Node - * cdef class RTree # <<<<<<<<<<<<<< - * cdef class _Iterator - * cdef class _ChildRecordIter(_Iterator) - */ -struct __pyx_obj_5tinyr_RTree { - PyObject_HEAD - struct __pyx_vtabstruct_5tinyr_RTree *__pyx_vtab; - struct __pyx_obj_5tinyr__Node *root; - __pyx_t_5tinyr_Duint _leaf_level; - __pyx_t_5tinyr_Duint _node_cnt; - int M_cap; - int m_cap; - PyObject *(*find_overlapping_leafs)(struct __pyx_obj_5tinyr_RTree *, __pyx_t_5tinyr_Dfloat *); - int (*PickSeeds)(struct __pyx_obj_5tinyr__Node *, PyObject *, struct __pyx_obj_5tinyr__Node *); - void (*tuple_to_array)(PyObject *, __pyx_t_5tinyr_Dfloat *); - PyObject *(*array_to_tuple)(__pyx_t_5tinyr_Dfloat *); -}; - - -/* "tinyr.pyx":55 - * cdef class _Node - * cdef class RTree - * cdef class _Iterator # <<<<<<<<<<<<<< - * cdef class _ChildRecordIter(_Iterator) - * cdef class _KVIIter(_Iterator) - */ -struct __pyx_obj_5tinyr__Iterator { - PyObject_HEAD - struct __pyx_obj_5tinyr_RTree *rtree; -}; - - -/* "tinyr.pyx":892 - * return self - * - * cdef class _NodeIter(_Iterator): # <<<<<<<<<<<<<< - * cdef: - * list nodeset - */ -struct __pyx_obj_5tinyr__NodeIter { - struct __pyx_obj_5tinyr__Iterator __pyx_base; - PyObject *nodeset; -}; - - -/* "tinyr.pyx":917 - * return level, next - * - * cdef class _RectangleIter(_Iterator): # <<<<<<<<<<<<<< - * cdef: - * _NodeIter ni - */ -struct __pyx_obj_5tinyr__RectangleIter { - struct __pyx_obj_5tinyr__Iterator __pyx_base; - struct __pyx_obj_5tinyr__NodeIter *ni; - PyObject *leafrecords; - int l_level; -}; - - -/* "tinyr.pyx":56 - * cdef class RTree - * cdef class _Iterator - * cdef class _ChildRecordIter(_Iterator) # <<<<<<<<<<<<<< - * cdef class _KVIIter(_Iterator) - * cdef class _KeysIter(_KVIIter) - */ -struct __pyx_obj_5tinyr__ChildRecordIter { - struct __pyx_obj_5tinyr__Iterator __pyx_base; - PyObject *nodeset; - PyObject *current_crs; - PyObject *(*returner)(struct __pyx_obj_5tinyr__ChildRecordIter *, struct __pyx_obj_5tinyr__ChildRecord *); -}; - - -/* "tinyr.pyx":57 - * cdef class _Iterator - * cdef class _ChildRecordIter(_Iterator) - * cdef class _KVIIter(_Iterator) # <<<<<<<<<<<<<< - * cdef class _KeysIter(_KVIIter) - * cdef class _ValuesIter(_KVIIter) - */ -struct __pyx_obj_5tinyr__KVIIter { - struct __pyx_obj_5tinyr__Iterator __pyx_base; - struct __pyx_obj_5tinyr__ChildRecordIter *cri; -}; - - -/* "tinyr.pyx":58 - * cdef class _ChildRecordIter(_Iterator) - * cdef class _KVIIter(_Iterator) - * cdef class _KeysIter(_KVIIter) # <<<<<<<<<<<<<< - * cdef class _ValuesIter(_KVIIter) - * cdef class _ItemsIter(_KVIIter) - */ -struct __pyx_obj_5tinyr__KeysIter { - struct __pyx_obj_5tinyr__KVIIter __pyx_base; -}; - - -/* "tinyr.pyx":59 - * cdef class _KVIIter(_Iterator) - * cdef class _KeysIter(_KVIIter) - * cdef class _ValuesIter(_KVIIter) # <<<<<<<<<<<<<< - * cdef class _ItemsIter(_KVIIter) - * - */ -struct __pyx_obj_5tinyr__ValuesIter { - struct __pyx_obj_5tinyr__KVIIter __pyx_base; -}; - - -/* "tinyr.pyx":60 - * cdef class _KeysIter(_KVIIter) - * cdef class _ValuesIter(_KVIIter) - * cdef class _ItemsIter(_KVIIter) # <<<<<<<<<<<<<< - * - * class RTreeInvalid(Exception): - */ -struct __pyx_obj_5tinyr__ItemsIter { - struct __pyx_obj_5tinyr__KVIIter __pyx_base; -}; - - -/* "tinyr.pyx":1007 - * - * - * cdef class RTreeInfo: # <<<<<<<<<<<<<< - * '''Provides some meta-info about an existing RTree - * - */ -struct __pyx_obj_5tinyr_RTreeInfo { - PyObject_HEAD - struct __pyx_obj_5tinyr_RTree *rtree; -}; - - - -/* "tinyr.pyx":129 - * return (coords[2] - coords[0]) * (coords[3] - coords[1]) - * - * cdef class _Record: # <<<<<<<<<<<<<< - * cdef: - * Dfloat coords[4] - */ - -struct __pyx_vtabstruct_5tinyr__Record { - int (*overlaps)(struct __pyx_obj_5tinyr__Record *, __pyx_t_5tinyr_Dfloat *); - void (*copy_coords_to)(struct __pyx_obj_5tinyr__Record *, __pyx_t_5tinyr_Dfloat *); - struct __pyx_obj_5tinyr__Record *(*copy)(struct __pyx_obj_5tinyr__Record *, struct __pyx_obj_5tinyr__Node *); -}; -static struct __pyx_vtabstruct_5tinyr__Record *__pyx_vtabptr_5tinyr__Record; -static CYTHON_INLINE int __pyx_f_5tinyr_7_Record_overlaps(struct __pyx_obj_5tinyr__Record *, __pyx_t_5tinyr_Dfloat *); -static CYTHON_INLINE void __pyx_f_5tinyr_7_Record_copy_coords_to(struct __pyx_obj_5tinyr__Record *, __pyx_t_5tinyr_Dfloat *); - - -/* "tinyr.pyx":143 - * raise NotImplemented - * - * cdef class _ChildRecord(_Record): # <<<<<<<<<<<<<< - * cdef: - * object identifier - */ - -struct __pyx_vtabstruct_5tinyr__ChildRecord { - struct __pyx_vtabstruct_5tinyr__Record __pyx_base; -}; -static struct __pyx_vtabstruct_5tinyr__ChildRecord *__pyx_vtabptr_5tinyr__ChildRecord; - - -/* "tinyr.pyx":158 - * return ret - * - * cdef class _InnerRecord(_Record): # <<<<<<<<<<<<<< - * cdef: - * _Node child - */ - -struct __pyx_vtabstruct_5tinyr__InnerRecord { - struct __pyx_vtabstruct_5tinyr__Record __pyx_base; -}; -static struct __pyx_vtabstruct_5tinyr__InnerRecord *__pyx_vtabptr_5tinyr__InnerRecord; - - -/* "tinyr.pyx":173 - * return ret - * - * cdef class _Node(object): # <<<<<<<<<<<<<< - * cdef: - * _Node parent - */ - -struct __pyx_vtabstruct_5tinyr__Node { - struct __pyx_obj_5tinyr__Node *(*copy)(struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Node *); - void (*common_boundaries)(struct __pyx_obj_5tinyr__Node *, __pyx_t_5tinyr_Dfloat *); - struct __pyx_obj_5tinyr__Record *(*choose_subtree_least_enlargement)(struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Record *); - void (*find_overlapping_leafs_recursive)(struct __pyx_obj_5tinyr__Node *, PyObject *, __pyx_t_5tinyr_Dfloat *); - void (*addChild)(struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Node *); -}; -static struct __pyx_vtabstruct_5tinyr__Node *__pyx_vtabptr_5tinyr__Node; -static CYTHON_INLINE void __pyx_f_5tinyr_5_Node_common_boundaries(struct __pyx_obj_5tinyr__Node *, __pyx_t_5tinyr_Dfloat *); -static CYTHON_INLINE struct __pyx_obj_5tinyr__Record *__pyx_f_5tinyr_5_Node_choose_subtree_least_enlargement(struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Record *); - - -/* "tinyr.pyx":329 - * # raise NotImplemented - * - * cdef class RTree(object): # <<<<<<<<<<<<<< - * '''RTree - structure for 2D-indexed items. - * - */ - -struct __pyx_vtabstruct_5tinyr_RTree { - int (*insert_at_node)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Record *, struct __pyx_obj_5tinyr__Node *); - void (*after_remove)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *); - struct __pyx_obj_5tinyr__Node *(*FindLeaf_and_remove)(struct __pyx_obj_5tinyr_RTree *, PyObject *, __pyx_t_5tinyr_Dfloat *); - int (*CondenseTree)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *); - struct __pyx_obj_5tinyr__Node *(*find_inner_node)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__InnerRecord *); - __pyx_t_5tinyr_Duint (*subtree_len)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__InnerRecord *); - int (*is_full)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *); - struct __pyx_obj_5tinyr__Node *(*_ChooseLeaf)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Record *); - PyObject *(*_AdjustTree)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Node *); - struct __pyx_obj_5tinyr__Node *(*SplitNode)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Record *); - int (*PickNext)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *, PyObject *, struct __pyx_obj_5tinyr__Node *); -}; -static struct __pyx_vtabstruct_5tinyr_RTree *__pyx_vtabptr_5tinyr_RTree; -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_insert_at_node(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Record *, struct __pyx_obj_5tinyr__Node *); -static CYTHON_INLINE void __pyx_f_5tinyr_5RTree_after_remove(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *); -static CYTHON_INLINE struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5RTree_FindLeaf_and_remove(struct __pyx_obj_5tinyr_RTree *, PyObject *, __pyx_t_5tinyr_Dfloat *); -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_CondenseTree(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *); -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_is_full(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *); -static CYTHON_INLINE struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5RTree__ChooseLeaf(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Record *); -static CYTHON_INLINE PyObject *__pyx_f_5tinyr_5RTree__AdjustTree(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Node *); -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_PickNext(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *, PyObject *, struct __pyx_obj_5tinyr__Node *); -/* #### Code section: utility_code_proto ### */ - -/* --- Runtime support code (head) --- */ -/* Refnanny.proto */ -#ifndef CYTHON_REFNANNY - #define CYTHON_REFNANNY 0 -#endif -#if CYTHON_REFNANNY - typedef struct { - void (*INCREF)(void*, PyObject*, Py_ssize_t); - void (*DECREF)(void*, PyObject*, Py_ssize_t); - void (*GOTREF)(void*, PyObject*, Py_ssize_t); - void (*GIVEREF)(void*, PyObject*, Py_ssize_t); - void* (*SetupContext)(const char*, Py_ssize_t, const char*); - void (*FinishContext)(void**); - } __Pyx_RefNannyAPIStruct; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; - static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); - #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; -#ifdef WITH_THREAD - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - if (acquire_gil) {\ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ - PyGILState_Release(__pyx_gilstate_save);\ - } else {\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\ - } - #define __Pyx_RefNannyFinishContextNogil() {\ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ - __Pyx_RefNannyFinishContext();\ - PyGILState_Release(__pyx_gilstate_save);\ - } -#else - #define __Pyx_RefNannySetupContext(name, acquire_gil)\ - __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__)) - #define __Pyx_RefNannyFinishContextNogil() __Pyx_RefNannyFinishContext() -#endif - #define __Pyx_RefNannyFinishContextNogil() {\ - PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ - __Pyx_RefNannyFinishContext();\ - PyGILState_Release(__pyx_gilstate_save);\ - } - #define __Pyx_RefNannyFinishContext()\ - __Pyx_RefNanny->FinishContext(&__pyx_refnanny) - #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) - #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) - #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) - #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__)) - #define __Pyx_XINCREF(r) do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0) - #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0) - #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0) - #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0) -#else - #define __Pyx_RefNannyDeclarations - #define __Pyx_RefNannySetupContext(name, acquire_gil) - #define __Pyx_RefNannyFinishContextNogil() - #define __Pyx_RefNannyFinishContext() - #define __Pyx_INCREF(r) Py_INCREF(r) - #define __Pyx_DECREF(r) Py_DECREF(r) - #define __Pyx_GOTREF(r) - #define __Pyx_GIVEREF(r) - #define __Pyx_XINCREF(r) Py_XINCREF(r) - #define __Pyx_XDECREF(r) Py_XDECREF(r) - #define __Pyx_XGOTREF(r) - #define __Pyx_XGIVEREF(r) -#endif -#define __Pyx_Py_XDECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; Py_XDECREF(tmp);\ - } while (0) -#define __Pyx_XDECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_XDECREF(tmp);\ - } while (0) -#define __Pyx_DECREF_SET(r, v) do {\ - PyObject *tmp = (PyObject *) r;\ - r = v; __Pyx_DECREF(tmp);\ - } while (0) -#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) -#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) - -/* PyErrExceptionMatches.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) -static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); -#else -#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) -#endif - -/* PyThreadStateGet.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; -#if PY_VERSION_HEX >= 0x030C00A6 -#define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL) -#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL) -#else -#define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL) -#define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type) -#endif -#else -#define __Pyx_PyThreadState_declare -#define __Pyx_PyThreadState_assign -#define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL) -#define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred() -#endif - -/* PyErrFetchRestore.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) -#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6 -#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) -#else -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#endif -#else -#define __Pyx_PyErr_Clear() PyErr_Clear() -#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) -#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) -#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) -#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) -#endif - -/* PyObjectGetAttrStr.proto */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) -#endif - -/* PyObjectGetAttrStrNoError.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); - -/* GetBuiltinName.proto */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name); - -/* GetTopmostException.proto */ -#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE -static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); -#endif - -/* SaveResetException.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) -static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); -#else -#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) -#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) -#endif - -/* FastTypeChecks.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2) -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); -static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); -static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); -#else -#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) -#define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2)) -#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) -#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) -#endif -#define __Pyx_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2) -#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) - -/* GetItemInt.proto */ -#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ - (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ - __Pyx_GetItemInt_Generic(o, to_py_func(i)))) -#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ - (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, - int wraparound, int boundscheck); -#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ - (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, - int wraparound, int boundscheck); -static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); -static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, - int is_list, int wraparound, int boundscheck); - -/* ListCompAppend.proto */ -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { - PyListObject* L = (PyListObject*) list; - Py_ssize_t len = Py_SIZE(list); - if (likely(L->allocated > len)) { - Py_INCREF(x); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 - L->ob_item[len] = x; - #else - PyList_SET_ITEM(list, len, x); - #endif - __Pyx_SET_SIZE(list, len + 1); - return 0; - } - return PyList_Append(list, x); -} -#else -#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) -#endif - -/* ExtTypeTest.proto */ -static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); - -/* RaiseException.proto */ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - -/* TupleAndListFromArray.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n); -static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n); -#endif - -/* IncludeStringH.proto */ -#include - -/* BytesEquals.proto */ -static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); - -/* UnicodeEquals.proto */ -static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); - -/* fastcall.proto */ -#if CYTHON_AVOID_BORROWED_REFS - #define __Pyx_Arg_VARARGS(args, i) PySequence_GetItem(args, i) -#elif CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_Arg_VARARGS(args, i) PyTuple_GET_ITEM(args, i) -#else - #define __Pyx_Arg_VARARGS(args, i) PyTuple_GetItem(args, i) -#endif -#if CYTHON_AVOID_BORROWED_REFS - #define __Pyx_Arg_NewRef_VARARGS(arg) __Pyx_NewRef(arg) - #define __Pyx_Arg_XDECREF_VARARGS(arg) Py_XDECREF(arg) -#else - #define __Pyx_Arg_NewRef_VARARGS(arg) arg - #define __Pyx_Arg_XDECREF_VARARGS(arg) -#endif -#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds) -#define __Pyx_KwValues_VARARGS(args, nargs) NULL -#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s) -#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw) -#if CYTHON_METH_FASTCALL - #define __Pyx_Arg_FASTCALL(args, i) args[i] - #define __Pyx_NumKwargs_FASTCALL(kwds) PyTuple_GET_SIZE(kwds) - #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs)) - static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s); -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 - CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues); - #else - #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw) - #endif - #define __Pyx_Arg_NewRef_FASTCALL(arg) arg /* no-op, __Pyx_Arg_FASTCALL is direct and this needs - to have the same reference counting */ - #define __Pyx_Arg_XDECREF_FASTCALL(arg) -#else - #define __Pyx_Arg_FASTCALL __Pyx_Arg_VARARGS - #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS - #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS - #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS - #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS - #define __Pyx_Arg_NewRef_FASTCALL(arg) __Pyx_Arg_NewRef_VARARGS(arg) - #define __Pyx_Arg_XDECREF_FASTCALL(arg) __Pyx_Arg_XDECREF_VARARGS(arg) -#endif -#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS -#define __Pyx_ArgsSlice_VARARGS(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_VARARGS(args, start), stop - start) -#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_FASTCALL(args, start), stop - start) -#else -#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop) -#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop) -#endif - -/* RaiseArgTupleInvalid.proto */ -static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, - Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); - -/* KeywordStringCheck.proto */ -static int __Pyx_CheckKeywordStrings(PyObject *kw, const char* function_name, int kw_allowed); - -/* GetAttr3.proto */ -static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); - -/* PyDictVersioning.proto */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) -#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ - (version_var) = __PYX_GET_DICT_VERSION(dict);\ - (cache_var) = (value); -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ - static PY_UINT64_T __pyx_dict_version = 0;\ - static PyObject *__pyx_dict_cached_value = NULL;\ - if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ - (VAR) = __pyx_dict_cached_value;\ - } else {\ - (VAR) = __pyx_dict_cached_value = (LOOKUP);\ - __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ - }\ -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); -#else -#define __PYX_GET_DICT_VERSION(dict) (0) -#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) -#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); -#endif - -/* GetModuleGlobalName.proto */ -#if CYTHON_USE_DICT_VERSIONS -#define __Pyx_GetModuleGlobalName(var, name) do {\ - static PY_UINT64_T __pyx_dict_version = 0;\ - static PyObject *__pyx_dict_cached_value = NULL;\ - (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ - (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ - __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ -} while(0) -#define __Pyx_GetModuleGlobalNameUncached(var, name) do {\ - PY_UINT64_T __pyx_dict_version;\ - PyObject *__pyx_dict_cached_value;\ - (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ -} while(0) -static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); -#else -#define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) -#define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) -static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); -#endif - -/* RaiseDoubleKeywords.proto */ -static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); - -/* ParseKeywords.proto */ -static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject *const *kwvalues, - PyObject **argnames[], - PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, - const char* function_name); - -/* RaiseUnexpectedTypeError.proto */ -static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj); - -/* PyFunctionFastCall.proto */ -#if CYTHON_FAST_PYCALL -#if !CYTHON_VECTORCALL -#define __Pyx_PyFunction_FastCall(func, args, nargs)\ - __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); -#endif -#define __Pyx_BUILD_ASSERT_EXPR(cond)\ - (sizeof(char [1 - 2*!(cond)]) - 1) -#ifndef Py_MEMBER_SIZE -#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) -#endif -#if !CYTHON_VECTORCALL -#if PY_VERSION_HEX >= 0x03080000 - #include "frameobject.h" -#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API - #ifndef Py_BUILD_CORE - #define Py_BUILD_CORE 1 - #endif - #include "internal/pycore_frame.h" -#endif - #define __Pxy_PyFrame_Initialize_Offsets() - #define __Pyx_PyFrame_GetLocalsplus(frame) ((frame)->f_localsplus) -#else - static size_t __pyx_pyframe_localsplus_offset = 0; - #include "frameobject.h" - #define __Pxy_PyFrame_Initialize_Offsets()\ - ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ - (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) - #define __Pyx_PyFrame_GetLocalsplus(frame)\ - (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) -#endif -#endif -#endif - -/* PyObjectCall.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); -#else -#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) -#endif - -/* PyObjectCallMethO.proto */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); -#endif - -/* PyObjectFastCall.proto */ -#define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL) -static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs); - -/* PyObjectCallOneArg.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); - -/* ArgTypeTest.proto */ -#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ - ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\ - __Pyx__ArgTypeTest(obj, type, name, exact)) -static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); - -/* SetItemInt.proto */ -#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ - (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ - __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\ - (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ - __Pyx_SetItemInt_Generic(o, to_py_func(i), v))) -static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); -static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, - int is_list, int wraparound, int boundscheck); - -/* RaiseUnboundLocalError.proto */ -static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); - -/* ListAppend.proto */ -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { - PyListObject* L = (PyListObject*) list; - Py_ssize_t len = Py_SIZE(list); - if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { - Py_INCREF(x); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 - L->ob_item[len] = x; - #else - PyList_SET_ITEM(list, len, x); - #endif - __Pyx_SET_SIZE(list, len + 1); - return 0; - } - return PyList_Append(list, x); -} -#else -#define __Pyx_PyList_Append(L,x) PyList_Append(L,x) -#endif - -/* RaiseTooManyValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); - -/* RaiseNeedMoreValuesToUnpack.proto */ -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); - -/* IterFinish.proto */ -static CYTHON_INLINE int __Pyx_IterFinish(void); - -/* UnpackItemEndCheck.proto */ -static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); - -/* UnpackUnboundCMethod.proto */ -typedef struct { - PyObject *type; - PyObject **method_name; - PyCFunction func; - PyObject *method; - int flag; -} __Pyx_CachedCFunction; - -/* CallUnboundCMethod1.proto */ -static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg); -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg); -#else -#define __Pyx_CallUnboundCMethod1(cfunc, self, arg) __Pyx__CallUnboundCMethod1(cfunc, self, arg) -#endif - -/* PyFloatBinop.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyFloat_TrueDivideObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check); -#else -#define __Pyx_PyFloat_TrueDivideObjC(op1, op2, floatval, inplace, zerodivision_check)\ - (inplace ? PyNumber_InPlaceTrueDivide(op1, op2) : PyNumber_TrueDivide(op1, op2)) -#endif - -/* AssertionsEnabled.proto */ -#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) - #define __Pyx_init_assertions_enabled() (0) - #define __pyx_assertions_enabled() (1) -#elif CYTHON_COMPILING_IN_LIMITED_API || (CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030C0000) - static int __pyx_assertions_enabled_flag; - #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag) - static int __Pyx_init_assertions_enabled(void) { - PyObject *builtins, *debug, *debug_str; - int flag; - builtins = PyEval_GetBuiltins(); - if (!builtins) goto bad; - debug_str = PyUnicode_FromStringAndSize("__debug__", 9); - if (!debug_str) goto bad; - debug = PyObject_GetItem(builtins, debug_str); - Py_DECREF(debug_str); - if (!debug) goto bad; - flag = PyObject_IsTrue(debug); - Py_DECREF(debug); - if (flag == -1) goto bad; - __pyx_assertions_enabled_flag = flag; - return 0; - bad: - __pyx_assertions_enabled_flag = 1; - return -1; - } -#else - #define __Pyx_init_assertions_enabled() (0) - #define __pyx_assertions_enabled() (!Py_OptimizeFlag) -#endif - -/* PyIntBinop.proto */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_MultiplyCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); -#else -#define __Pyx_PyInt_MultiplyCObj(op1, op2, intval, inplace, zerodivision_check)\ - (inplace ? PyNumber_InPlaceMultiply(op1, op2) : PyNumber_Multiply(op1, op2)) -#endif - -/* RaiseNoneIterError.proto */ -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); - -/* PyObjectCallNoArg.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); - -/* PyObjectGetMethod.proto */ -static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); - -/* PyObjectCallMethod0.proto */ -static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); - -/* pop.proto */ -static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L); -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L); -#define __Pyx_PyObject_Pop(L) (likely(PyList_CheckExact(L)) ?\ - __Pyx_PyList_Pop(L) : __Pyx__PyObject_Pop(L)) -#else -#define __Pyx_PyList_Pop(L) __Pyx__PyObject_Pop(L) -#define __Pyx_PyObject_Pop(L) __Pyx__PyObject_Pop(L) -#endif - -/* CallUnboundCMethod0.proto */ -static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self); -#if CYTHON_COMPILING_IN_CPYTHON -#define __Pyx_CallUnboundCMethod0(cfunc, self)\ - (likely((cfunc)->func) ?\ - (likely((cfunc)->flag == METH_NOARGS) ? (*((cfunc)->func))(self, NULL) :\ - (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\ - (PY_VERSION_HEX >= 0x030700A0 ?\ - (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\ - (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\ - (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\ - (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\ - (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ? ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\ - ((cfunc)->flag == METH_VARARGS ? (*((cfunc)->func))(self, __pyx_empty_tuple) :\ - __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\ - __Pyx__CallUnboundCMethod0(cfunc, self)) -#else -#define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self) -#endif - -/* PyObject_Str.proto */ -#define __Pyx_PyObject_Str(obj)\ - (likely(PyString_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj)) - -/* ListExtend.proto */ -static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) { -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000 - PyObject* none = _PyList_Extend((PyListObject*)L, v); - if (unlikely(!none)) - return -1; - Py_DECREF(none); - return 0; -#else - return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v); -#endif -} - -/* PyObjectCall2Args.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); - -/* PyObjectCallMethod1.proto */ -static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); - -/* pop_index.proto */ -static PyObject* __Pyx__PyObject_PopNewIndex(PyObject* L, PyObject* py_ix); -static PyObject* __Pyx__PyObject_PopIndex(PyObject* L, PyObject* py_ix); -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static PyObject* __Pyx__PyList_PopIndex(PyObject* L, PyObject* py_ix, Py_ssize_t ix); -#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ - (likely(PyList_CheckExact(L) && __Pyx_fits_Py_ssize_t(ix, type, is_signed))) ?\ - __Pyx__PyList_PopIndex(L, py_ix, ix) : (\ - (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ - __Pyx__PyObject_PopIndex(L, py_ix))) -#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ - __Pyx_fits_Py_ssize_t(ix, type, is_signed) ?\ - __Pyx__PyList_PopIndex(L, py_ix, ix) : (\ - (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ - __Pyx__PyObject_PopIndex(L, py_ix))) -#else -#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func)\ - __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) -#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ - (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ - __Pyx__PyObject_PopIndex(L, py_ix)) -#endif - -/* GetException.proto */ -#if CYTHON_FAST_THREAD_STATE -#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) -static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -#else -static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); -#endif - -/* PySequenceContains.proto */ -static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { - int result = PySequence_Contains(seq, item); - return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); -} - -/* Import.proto */ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); - -/* ImportFrom.proto */ -static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); - -/* GetAttr.proto */ -static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); - -/* HasAttr.proto */ -#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1 -#define __Pyx_HasAttr(o, n) PyObject_HasAttrWithError(o, n) -#else -static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); -#endif - -/* CallNextTpTraverse.proto */ -static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse); - -/* CallNextTpClear.proto */ -static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear); - -/* SetPackagePathFromImportLib.proto */ -#if PY_MAJOR_VERSION >= 3 && !CYTHON_PEP489_MULTI_PHASE_INIT -static int __Pyx_SetPackagePathFromImportLib(PyObject *module_name); -#else -#define __Pyx_SetPackagePathFromImportLib(a) 0 -#endif - -/* IncludeStructmemberH.proto */ -#include - -/* FixUpExtensionType.proto */ -#if CYTHON_USE_TYPE_SPECS -static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type); -#endif - -/* ValidateBasesTuple.proto */ -#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS -static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases); -#endif - -/* PyType_Ready.proto */ -CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t); - -/* PyObject_GenericGetAttrNoDict.proto */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr -#endif - -/* PyObject_GenericGetAttr.proto */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); -#else -#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr -#endif - -/* SetVTable.proto */ -static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable); - -/* GetVTable.proto */ -static void* __Pyx_GetVtable(PyTypeObject *type); - -/* MergeVTables.proto */ -#if !CYTHON_COMPILING_IN_LIMITED_API -static int __Pyx_MergeVtables(PyTypeObject *type); -#endif - -/* SetupReduce.proto */ -#if !CYTHON_COMPILING_IN_LIMITED_API -static int __Pyx_setup_reduce(PyObject* type_obj); -#endif - -/* ImportDottedModule.proto */ -static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple); -#if PY_MAJOR_VERSION >= 3 -static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple); -#endif - -/* Py3UpdateBases.proto */ -static PyObject* __Pyx_PEP560_update_bases(PyObject *bases); - -/* CalculateMetaclass.proto */ -static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases); - -/* PyObjectLookupSpecial.proto */ -#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS -#define __Pyx_PyObject_LookupSpecialNoError(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 0) -#define __Pyx_PyObject_LookupSpecial(obj, attr_name) __Pyx__PyObject_LookupSpecial(obj, attr_name, 1) -static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error); -#else -#define __Pyx_PyObject_LookupSpecialNoError(o,n) __Pyx_PyObject_GetAttrStrNoError(o,n) -#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n) -#endif - -/* Py3ClassCreate.proto */ -static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, - PyObject *mkw, PyObject *modname, PyObject *doc); -static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, - PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass); - -/* FetchSharedCythonModule.proto */ -static PyObject *__Pyx_FetchSharedCythonABIModule(void); - -/* FetchCommonType.proto */ -#if !CYTHON_USE_TYPE_SPECS -static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); -#else -static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases); -#endif - -/* PyMethodNew.proto */ -#if CYTHON_COMPILING_IN_LIMITED_API -static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) { - PyObject *typesModule=NULL, *methodType=NULL, *result=NULL; - CYTHON_UNUSED_VAR(typ); - if (!self) - return __Pyx_NewRef(func); - typesModule = PyImport_ImportModule("types"); - if (!typesModule) return NULL; - methodType = PyObject_GetAttrString(typesModule, "MethodType"); - Py_DECREF(typesModule); - if (!methodType) return NULL; - result = PyObject_CallFunctionObjArgs(methodType, func, self, NULL); - Py_DECREF(methodType); - return result; -} -#elif PY_MAJOR_VERSION >= 3 -static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) { - CYTHON_UNUSED_VAR(typ); - if (!self) - return __Pyx_NewRef(func); - return PyMethod_New(func, self); -} -#else - #define __Pyx_PyMethod_New PyMethod_New -#endif - -/* PyVectorcallFastCallDict.proto */ -#if CYTHON_METH_FASTCALL -static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw); -#endif - -/* CythonFunctionShared.proto */ -#define __Pyx_CyFunction_USED -#define __Pyx_CYFUNCTION_STATICMETHOD 0x01 -#define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 -#define __Pyx_CYFUNCTION_CCLASS 0x04 -#define __Pyx_CYFUNCTION_COROUTINE 0x08 -#define __Pyx_CyFunction_GetClosure(f)\ - (((__pyx_CyFunctionObject *) (f))->func_closure) -#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API - #define __Pyx_CyFunction_GetClassObj(f)\ - (((__pyx_CyFunctionObject *) (f))->func_classobj) -#else - #define __Pyx_CyFunction_GetClassObj(f)\ - ((PyObject*) ((PyCMethodObject *) (f))->mm_class) -#endif -#define __Pyx_CyFunction_SetClassObj(f, classobj)\ - __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj)) -#define __Pyx_CyFunction_Defaults(type, f)\ - ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) -#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ - ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) -typedef struct { -#if CYTHON_COMPILING_IN_LIMITED_API - PyObject_HEAD - PyObject *func; -#elif PY_VERSION_HEX < 0x030900B1 - PyCFunctionObject func; -#else - PyCMethodObject func; -#endif -#if CYTHON_BACKPORT_VECTORCALL - __pyx_vectorcallfunc func_vectorcall; -#endif -#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API - PyObject *func_weakreflist; -#endif - PyObject *func_dict; - PyObject *func_name; - PyObject *func_qualname; - PyObject *func_doc; - PyObject *func_globals; - PyObject *func_code; - PyObject *func_closure; -#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API - PyObject *func_classobj; -#endif - void *defaults; - int defaults_pyobjects; - size_t defaults_size; - int flags; - PyObject *defaults_tuple; - PyObject *defaults_kwdict; - PyObject *(*defaults_getter)(PyObject *); - PyObject *func_annotations; - PyObject *func_is_coroutine; -} __pyx_CyFunctionObject; -#undef __Pyx_CyOrPyCFunction_Check -#define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_CyFunctionType) -#define __Pyx_CyOrPyCFunction_Check(obj) __Pyx_TypeCheck2(obj, __pyx_CyFunctionType, &PyCFunction_Type) -#define __Pyx_CyFunction_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_CyFunctionType) -static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc); -#undef __Pyx_IsSameCFunction -#define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCyOrCFunction(func, cfunc) -static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml, - int flags, PyObject* qualname, - PyObject *closure, - PyObject *module, PyObject *globals, - PyObject* code); -static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj); -static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, - size_t size, - int pyobjects); -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, - PyObject *tuple); -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, - PyObject *dict); -static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, - PyObject *dict); -static int __pyx_CyFunction_init(PyObject *module); -#if CYTHON_METH_FASTCALL -static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); -static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); -static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); -static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames); -#if CYTHON_BACKPORT_VECTORCALL -#define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall) -#else -#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall) -#endif -#endif - -/* CythonFunction.proto */ -static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, - int flags, PyObject* qualname, - PyObject *closure, - PyObject *module, PyObject *globals, - PyObject* code); - -/* CLineInTraceback.proto */ -#ifdef CYTHON_CLINE_IN_TRACEBACK -#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) -#else -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); -#endif - -/* CodeObjectCache.proto */ -#if !CYTHON_COMPILING_IN_LIMITED_API -typedef struct { - PyCodeObject* code_object; - int code_line; -} __Pyx_CodeObjectCacheEntry; -struct __Pyx_CodeObjectCache { - int count; - int max_count; - __Pyx_CodeObjectCacheEntry* entries; -}; -static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); -static PyCodeObject *__pyx_find_code_object(int code_line); -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); -#endif - -/* AddTraceback.proto */ -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename); - -/* GCCDiagnostics.proto */ -#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -#define __Pyx_HAS_GCC_DIAGNOSTIC -#endif - -/* CIntFromPy.proto */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -/* CIntFromPy.proto */ -static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *); - -/* CIntToPy.proto */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value); - -/* CIntFromPy.proto */ -static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); - -/* FormatTypeName.proto */ -#if CYTHON_COMPILING_IN_LIMITED_API -typedef PyObject *__Pyx_TypeName; -#define __Pyx_FMT_TYPENAME "%U" -static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp); -#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj) -#else -typedef const char *__Pyx_TypeName; -#define __Pyx_FMT_TYPENAME "%.200s" -#define __Pyx_PyType_GetName(tp) ((tp)->tp_name) -#define __Pyx_DECREF_TypeName(obj) -#endif - -/* CheckBinaryVersion.proto */ -static unsigned long __Pyx_get_runtime_version(void); -static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer); - -/* InitStrings.proto */ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); - -/* #### Code section: module_declarations ### */ -static CYTHON_INLINE int __pyx_f_5tinyr_7_Record_overlaps(struct __pyx_obj_5tinyr__Record *__pyx_v_self, __pyx_t_5tinyr_Dfloat *__pyx_v_rect); /* proto*/ -static CYTHON_INLINE void __pyx_f_5tinyr_7_Record_copy_coords_to(struct __pyx_obj_5tinyr__Record *__pyx_v_self, __pyx_t_5tinyr_Dfloat *__pyx_v_coords); /* proto*/ -static struct __pyx_obj_5tinyr__Record *__pyx_f_5tinyr_7_Record_copy(CYTHON_UNUSED struct __pyx_obj_5tinyr__Record *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_5tinyr__Node *__pyx_v_newparent); /* proto*/ -static struct __pyx_obj_5tinyr__Record *__pyx_f_5tinyr_12_ChildRecord_copy(struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_5tinyr__Node *__pyx_v_newparent); /* proto*/ -static struct __pyx_obj_5tinyr__Record *__pyx_f_5tinyr_12_InnerRecord_copy(struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_newparent); /* proto*/ -static struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5_Node_copy(struct __pyx_obj_5tinyr__Node *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_parent); /* proto*/ -static CYTHON_INLINE void __pyx_f_5tinyr_5_Node_common_boundaries(struct __pyx_obj_5tinyr__Node *__pyx_v_self, __pyx_t_5tinyr_Dfloat *__pyx_v_target); /* proto*/ -static CYTHON_INLINE struct __pyx_obj_5tinyr__Record *__pyx_f_5tinyr_5_Node_choose_subtree_least_enlargement(struct __pyx_obj_5tinyr__Node *__pyx_v_self, struct __pyx_obj_5tinyr__Record *__pyx_v_ir); /* proto*/ -static void __pyx_f_5tinyr_5_Node_find_overlapping_leafs_recursive(struct __pyx_obj_5tinyr__Node *__pyx_v_self, PyObject *__pyx_v_result, __pyx_t_5tinyr_Dfloat *__pyx_v_coords); /* proto*/ -static void __pyx_f_5tinyr_5_Node_addChild(struct __pyx_obj_5tinyr__Node *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node); /* proto*/ -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_insert_at_node(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Record *__pyx_v_r, struct __pyx_obj_5tinyr__Node *__pyx_v_L); /* proto*/ -static CYTHON_INLINE void __pyx_f_5tinyr_5RTree_after_remove(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node); /* proto*/ -static CYTHON_INLINE struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5RTree_FindLeaf_and_remove(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_identifier, __pyx_t_5tinyr_Dfloat *__pyx_v_coords); /* proto*/ -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_CondenseTree(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node); /* proto*/ -static struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5RTree_find_inner_node(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_record); /* proto*/ -static __pyx_t_5tinyr_Duint __pyx_f_5tinyr_5RTree_subtree_len(CYTHON_UNUSED struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_rec); /* proto*/ -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_is_full(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node); /* proto*/ -static CYTHON_INLINE struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5RTree__ChooseLeaf(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Record *__pyx_v_ir); /* proto*/ -static CYTHON_INLINE PyObject *__pyx_f_5tinyr_5RTree__AdjustTree(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_L, struct __pyx_obj_5tinyr__Node *__pyx_v_LL); /* proto*/ -static struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5RTree_SplitNode(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node, struct __pyx_obj_5tinyr__Record *__pyx_v_ir); /* proto*/ -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_PickNext(CYTHON_UNUSED struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node, PyObject *__pyx_v_remaining, struct __pyx_obj_5tinyr__Node *__pyx_v_newnode); /* proto*/ - -/* Module declarations from "libc.float" */ - -/* Module declarations from "tinyr" */ -static CYTHON_INLINE void __pyx_f_5tinyr_init_Dfloat4(__pyx_t_5tinyr_Dfloat *); /*proto*/ -static CYTHON_INLINE void __pyx_f_5tinyr_make_order(__pyx_t_5tinyr_Dfloat *); /*proto*/ -static void __pyx_f_5tinyr_tuple_to_array_interleaved(PyObject *, __pyx_t_5tinyr_Dfloat *); /*proto*/ -static void __pyx_f_5tinyr_tuple_to_array_normal(PyObject *, __pyx_t_5tinyr_Dfloat *); /*proto*/ -static PyObject *__pyx_f_5tinyr_array_to_tuple_interleaved(__pyx_t_5tinyr_Dfloat *); /*proto*/ -static PyObject *__pyx_f_5tinyr_array_to_tuple_normal(__pyx_t_5tinyr_Dfloat *); /*proto*/ -static CYTHON_INLINE struct __pyx_obj_5tinyr__InnerRecord *__pyx_f_5tinyr_parent_record(struct __pyx_obj_5tinyr__Node *); /*proto*/ -static CYTHON_INLINE void __pyx_f_5tinyr_common_boundaries(PyObject *, __pyx_t_5tinyr_Dfloat *); /*proto*/ -static CYTHON_INLINE __pyx_t_5tinyr_Dfloat __pyx_f_5tinyr_area(__pyx_t_5tinyr_Dfloat *); /*proto*/ -static PyObject *__pyx_f_5tinyr_find_overlapping_leafs_recursive(struct __pyx_obj_5tinyr_RTree *, __pyx_t_5tinyr_Dfloat *); /*proto*/ -static int __pyx_f_5tinyr_PickSeedsQuadratic(struct __pyx_obj_5tinyr__Node *, PyObject *, struct __pyx_obj_5tinyr__Node *); /*proto*/ -static PyObject *__pyx_f_5tinyr___pyx_unpickle__Record__set_state(struct __pyx_obj_5tinyr__Record *, PyObject *); /*proto*/ -static PyObject *__pyx_f_5tinyr___pyx_unpickle__ChildRecord__set_state(struct __pyx_obj_5tinyr__ChildRecord *, PyObject *); /*proto*/ -static PyObject *__pyx_f_5tinyr___pyx_unpickle_RTreeInfo__set_state(struct __pyx_obj_5tinyr_RTreeInfo *, PyObject *); /*proto*/ -static CYTHON_INLINE PyObject *__Pyx_carray_to_py___pyx_t_5tinyr_Dfloat(__pyx_t_5tinyr_Dfloat *, Py_ssize_t); /*proto*/ -static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple___pyx_t_5tinyr_Dfloat(__pyx_t_5tinyr_Dfloat *, Py_ssize_t); /*proto*/ -static int __Pyx_carray_from_py___pyx_t_5tinyr_Dfloat(PyObject *, __pyx_t_5tinyr_Dfloat *, Py_ssize_t); /*proto*/ -/* #### Code section: typeinfo ### */ -/* #### Code section: before_global_var ### */ -#define __Pyx_MODULE_NAME "tinyr" -extern int __pyx_module_is_main_tinyr; -int __pyx_module_is_main_tinyr = 0; - -/* Implementation of "tinyr" */ -/* #### Code section: global_var ### */ -static PyObject *__pyx_builtin_range; -static PyObject *__pyx_builtin_NotImplemented; -static PyObject *__pyx_builtin_TypeError; -static PyObject *__pyx_builtin_ValueError; -static PyObject *__pyx_builtin_AttributeError; -static PyObject *__pyx_builtin_AssertionError; -static PyObject *__pyx_builtin_KeyError; -static PyObject *__pyx_builtin_IndexError; -static PyObject *__pyx_builtin_StopIteration; -static PyObject *__pyx_builtin_id; -static PyObject *__pyx_builtin_OverflowError; -static PyObject *__pyx_builtin_enumerate; -/* #### Code section: string_decls ### */ -static const char __pyx_k_L[] = "L"; -static const char __pyx_k_d[] = " %d;\n"; -static const char __pyx_k_n[] = "n"; -static const char __pyx_k__4[] = "\n"; -static const char __pyx_k__5[] = "}"; -static const char __pyx_k__7[] = "."; -static const char __pyx_k_cr[] = "cr"; -static const char __pyx_k_gc[] = "gc"; -static const char __pyx_k_id[] = "id"; -static const char __pyx_k_ir[] = "ir"; -static const char __pyx_k__10[] = "*"; -static const char __pyx_k__65[] = "?"; -static const char __pyx_k_d_2[] = "d"; -static const char __pyx_k_doc[] = "__doc__"; -static const char __pyx_k_key[] = "key"; -static const char __pyx_k_lid[] = "lid"; -static const char __pyx_k_new[] = "__new__"; -static const char __pyx_k_nid[] = "nid"; -static const char __pyx_k_pop[] = "pop"; -static const char __pyx_k_rec[] = "rec"; -static const char __pyx_k_ret[] = "ret"; -static const char __pyx_k_rid[] = "rid"; -static const char __pyx_k_Node[] = "_Node"; -static const char __pyx_k_chid[] = "chid"; -static const char __pyx_k_copy[] = "copy"; -static const char __pyx_k_dict[] = "__dict__"; -static const char __pyx_k_leaf[] = "leaf"; -static const char __pyx_k_main[] = "__main__"; -static const char __pyx_k_name[] = "__name__"; -static const char __pyx_k_next[] = "next"; -static const char __pyx_k_node[] = "node"; -static const char __pyx_k_self[] = "self"; -static const char __pyx_k_spec[] = "__spec__"; -static const char __pyx_k_test[] = "__test__"; -static const char __pyx_k_RTree[] = "RTree"; -static const char __pyx_k_child[] = "child"; -static const char __pyx_k_class[] = "__class__"; -static const char __pyx_k_depth[] = "depth"; -static const char __pyx_k_level[] = "level"; -static const char __pyx_k_point[] = "point"; -static const char __pyx_k_range[] = "range"; -static const char __pyx_k_rtree[] = "rtree"; -static const char __pyx_k_state[] = "state"; -static const char __pyx_k_super[] = "super"; -static const char __pyx_k_tinyr[] = "tinyr"; -static const char __pyx_k_valid[] = "valid"; -static const char __pyx_k_write[] = "write"; -static const char __pyx_k_Record[] = "_Record"; -static const char __pyx_k_coords[] = "coords"; -static const char __pyx_k_dict_2[] = "_dict"; -static const char __pyx_k_enable[] = "enable"; -static const char __pyx_k_import[] = "__import__"; -static const char __pyx_k_insert[] = "insert"; -static const char __pyx_k_module[] = "__module__"; -static const char __pyx_k_parent[] = "parent"; -static const char __pyx_k_pickle[] = "pickle"; -static const char __pyx_k_record[] = "record"; -static const char __pyx_k_reduce[] = "__reduce__"; -static const char __pyx_k_remove[] = "remove"; -static const char __pyx_k_result[] = "result"; -static const char __pyx_k_search[] = "search"; -static const char __pyx_k_to_dot[] = "to_dot"; -static const char __pyx_k_update[] = "update"; -static const char __pyx_k_KVIIter[] = "_KVIIter"; -static const char __pyx_k_disable[] = "disable"; -static const char __pyx_k_max_cap[] = "max_cap"; -static const char __pyx_k_min_cap[] = "min_cap"; -static const char __pyx_k_prepare[] = "__prepare__"; -static const char __pyx_k_Iterator[] = "_Iterator"; -static const char __pyx_k_KeyError[] = "KeyError"; -static const char __pyx_k_KeysIter[] = "_KeysIter"; -static const char __pyx_k_NodeIter[] = "_NodeIter"; -static const char __pyx_k_TR_TABLE[] = ">];\n"; -static const char __pyx_k_coords_a[] = "coords_a"; -static const char __pyx_k_filelike[] = "filelike"; -static const char __pyx_k_get_info[] = "get_info"; -static const char __pyx_k_getstate[] = "__getstate__"; -static const char __pyx_k_iterkeys[] = "iterkeys"; -static const char __pyx_k_pyx_type[] = "__pyx_type"; -static const char __pyx_k_qualname[] = "__qualname__"; -static const char __pyx_k_set_name[] = "__set_name__"; -static const char __pyx_k_setstate[] = "__setstate__"; -static const char __pyx_k_ItemsIter[] = "_ItemsIter"; -static const char __pyx_k_RTreeInfo[] = "RTreeInfo"; -static const char __pyx_k_TypeError[] = "TypeError"; -static const char __pyx_k_enumerate[] = "enumerate"; -static const char __pyx_k_isenabled[] = "isenabled"; -static const char __pyx_k_iteritems[] = "iteritems"; -static const char __pyx_k_itertools[] = "itertools"; -static const char __pyx_k_leafnodes[] = "leafnodes"; -static const char __pyx_k_metaclass[] = "__metaclass__"; -static const char __pyx_k_nodedepht[] = "nodedepht"; -static const char __pyx_k_pyx_state[] = "__pyx_state"; -static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; -static const char __pyx_k_IndexError[] = "IndexError"; -static const char __pyx_k_RTree_copy[] = "RTree.copy"; -static const char __pyx_k_ValueError[] = "ValueError"; -static const char __pyx_k_ValuesIter[] = "_ValuesIter"; -static const char __pyx_k_identifier[] = "identifier"; -static const char __pyx_k_item_count[] = "item_count"; -static const char __pyx_k_itervalues[] = "itervalues"; -static const char __pyx_k_pyx_result[] = "__pyx_result"; -static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; -static const char __pyx_k_tmp_coords[] = "tmp_coords"; -static const char __pyx_k_ChildRecord[] = "_ChildRecord"; -static const char __pyx_k_InnerRecord[] = "_InnerRecord"; -static const char __pyx_k_PickleError[] = "PickleError"; -static const char __pyx_k_RTree_valid[] = "RTree.valid"; -static const char __pyx_k_interleaved[] = "interleaved"; -static const char __pyx_k_mro_entries[] = "__mro_entries__"; -static const char __pyx_k_RTreeInvalid[] = "RTreeInvalid"; -static const char __pyx_k_RTree_insert[] = "RTree.insert"; -static const char __pyx_k_RTree_remove[] = "RTree.remove"; -static const char __pyx_k_RTree_search[] = "RTree.search"; -static const char __pyx_k_combinations[] = "combinations"; -static const char __pyx_k_initializing[] = "_initializing"; -static const char __pyx_k_is_coroutine[] = "_is_coroutine"; -static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; -static const char __pyx_k_stringsource[] = ""; -static const char __pyx_k_use_setstate[] = "use_setstate"; -static const char __pyx_k_OverflowError[] = "OverflowError"; -static const char __pyx_k_RectangleIter[] = "_RectangleIter"; -static const char __pyx_k_StopIteration[] = "StopIteration"; -static const char __pyx_k_init_subclass[] = "__init_subclass__"; -static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; -static const char __pyx_k_AssertionError[] = "AssertionError"; -static const char __pyx_k_AttributeError[] = "AttributeError"; -static const char __pyx_k_NotImplemented[] = "NotImplemented"; -static const char __pyx_k_RTree_get_info[] = "RTree.get_info"; -static const char __pyx_k_RTree_iterkeys[] = "RTree.iterkeys"; -static const char __pyx_k_ChildRecordIter[] = "_ChildRecordIter"; -static const char __pyx_k_RTree_iteritems[] = "RTree.iteritems"; -static const char __pyx_k_iter_rectangles[] = "iter_rectangles"; -static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; -static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; -static const char __pyx_k_tinyr_tinyr_pyx[] = "tinyr/tinyr.pyx"; -static const char __pyx_k_RTreeInfo_to_dot[] = "RTreeInfo.to_dot"; -static const char __pyx_k_RTree_itervalues[] = "RTree.itervalues"; -static const char __pyx_k_d_d_tailport_d_s[] = " %d->%d [tailport=\"%d:s\"]\n"; -static const char __pyx_k_node_record_leaf[] = "node_record_leaf"; -static const char __pyx_k_node_record_child[] = "node_record_child"; -static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines"; -static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_node_shape_ellipse[] = "\n node [shape=\"ellipse\"]; \n"; -static const char __pyx_k_search_surrounding[] = "search_surrounding"; -static const char __pyx_k_leafnodes_and_depth[] = "leafnodes_and_depth"; -static const char __pyx_k_Node___reduce_cython[] = "_Node.__reduce_cython__"; -static const char __pyx_k_pyx_unpickle__Record[] = "__pyx_unpickle__Record"; -static const char __pyx_k_RTree___reduce_cython[] = "RTree.__reduce_cython__"; -static const char __pyx_k_Node___setstate_cython[] = "_Node.__setstate_cython__"; -static const char __pyx_k_Record___reduce_cython[] = "_Record.__reduce_cython__"; -static const char __pyx_k_pyx_unpickle_RTreeInfo[] = "__pyx_unpickle_RTreeInfo"; -static const char __pyx_k_KVIIter___reduce_cython[] = "_KVIIter.__reduce_cython__"; -static const char __pyx_k_RTree___setstate_cython[] = "RTree.__setstate_cython__"; -static const char __pyx_k_Iterator___reduce_cython[] = "_Iterator.__reduce_cython__"; -static const char __pyx_k_KeysIter___reduce_cython[] = "_KeysIter.__reduce_cython__"; -static const char __pyx_k_NodeIter___reduce_cython[] = "_NodeIter.__reduce_cython__"; -static const char __pyx_k_RTree_search_surrounding[] = "RTree.search_surrounding"; -static const char __pyx_k_Record___setstate_cython[] = "_Record.__setstate_cython__"; -static const char __pyx_k_ItemsIter___reduce_cython[] = "_ItemsIter.__reduce_cython__"; -static const char __pyx_k_KVIIter___setstate_cython[] = "_KVIIter.__setstate_cython__"; -static const char __pyx_k_RTreeInfo___reduce_cython[] = "RTreeInfo.__reduce_cython__"; -static const char __pyx_k_RTreeInfo_iter_rectangles[] = "RTreeInfo.iter_rectangles"; -static const char __pyx_k_misspositioned_inner_node[] = "misspositioned inner node"; -static const char __pyx_k_pyx_unpickle__ChildRecord[] = "__pyx_unpickle__ChildRecord"; -static const char __pyx_k_Iterator___setstate_cython[] = "_Iterator.__setstate_cython__"; -static const char __pyx_k_KeysIter___setstate_cython[] = "_KeysIter.__setstate_cython__"; -static const char __pyx_k_NodeIter___setstate_cython[] = "_NodeIter.__setstate_cython__"; -static const char __pyx_k_ValuesIter___reduce_cython[] = "_ValuesIter.__reduce_cython__"; -static const char __pyx_k_ChildRecord___reduce_cython[] = "_ChildRecord.__reduce_cython__"; -static const char __pyx_k_InnerRecord___reduce_cython[] = "_InnerRecord.__reduce_cython__"; -static const char __pyx_k_ItemsIter___setstate_cython[] = "_ItemsIter.__setstate_cython__"; -static const char __pyx_k_RTreeInfo___setstate_cython[] = "RTreeInfo.__setstate_cython__"; -static const char __pyx_k_inconsistent_item_count_d_d[] = "inconsistent item count %d != %d"; -static const char __pyx_k_inconsistent_node_depth_d_d[] = "inconsistent node depth: %d != %d"; -static const char __pyx_k_TD_PORT_d_CELLSPACING_0_d_TD[] = "%d"; -static const char __pyx_k_ValuesIter___setstate_cython[] = "_ValuesIter.__setstate_cython__"; -static const char __pyx_k_len_point_must_be_2_len_is_d[] = "len(point) must be 2, len is %d"; -static const char __pyx_k_ChildRecord___setstate_cython[] = "_ChildRecord.__setstate_cython__"; -static const char __pyx_k_InnerRecord___setstate_cython[] = "_InnerRecord.__setstate_cython__"; -static const char __pyx_k_RectangleIter___reduce_cython[] = "_RectangleIter.__reduce_cython__"; -static const char __pyx_k_digraph_RTree_node_shape_none[] = "digraph RTree {\n node [shape=\"none\"]; \n"; -static const char __pyx_k_len_coords_must_be_4_len_is_d[] = "len(coords) must be 4, len is %d"; -static const char __pyx_k_ChildRecordIter___reduce_cython[] = "_ChildRecordIter.__reduce_cython__"; -static const char __pyx_k_ChildRecordIter___setstate_cyth[] = "_ChildRecordIter.__setstate_cython__"; -static const char __pyx_k_Fast_2D_R_Tree_implementation_i[] = "\nFast 2D R-Tree implementation in cython.\n\nThe implementation is based on the original paper [Gut84]. \n\n\n\n[Gut84] R-trees: A Dynamic Index Structure for Spatial Searching, A. Guttman,\n Proc ACM SIGMOD Int, 47-57, 1984\n \n[Bec90] The R*-tree: An efficient and robust access method for points and\n rectangles, N. Beckmann, H.-P. Kriegel, R. Schneider, and B. Seeger,\n ACM SIGMOD, 322-331, 1990\n"; -static const char __pyx_k_RectangleIter___setstate_cython[] = "_RectangleIter.__setstate_cython__"; -static const char __pyx_k_d_label_TABLE_BORDER_0_CELLBORD[] = " %d [label=<"; -static const char __pyx_k_leaf_level_is_not_equal_for_all[] = "leaf level is not equal for all leafs"; -static const char __pyx_k_no_parent_entry_holds_the_child[] = "no parent entry holds the child"; -static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0xd6fae5e, 0xd6626c4, 0xfb1b8c2) = (coords))"; -static const char __pyx_k_coordinates_as_list_or_tuple_exp[] = "coordinates as list or tuple expected, got %s"; -static const char __pyx_k_double_link_doesn_t_cover_itself[] = "double-link doesn't cover itself"; -static const char __pyx_k_for_min_max_capacities_it_s_requ[] = "for min/max capacities, it's required that min_cap <= max_cap/2.0"; -static const char __pyx_k_indexing_RTree_only_possible_wit[] = "indexing RTree only possible with rectangle or point (x, y)"; -static const char __pyx_k_len_coords_must_be_4_length_is_d[] = "len(coords) must be 4, length is %d"; -static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; -static const char __pyx_k_non_leaf_node_has_invalid_number[] = "non-leaf node has invalid number of entries: %d <= len(%s) <= %d == False"; -static const char __pyx_k_root_must_have_at_least_2_record[] = "root must have at least 2 records, not %d."; -static const char __pyx_k_wrong_combined_area_of_records_o[] = "wrong combined area of records of a node"; -static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_2[] = "Incompatible checksums (0x%x vs (0x9d7f65c, 0xaab32ac, 0xcaebb2a) = (coords, identifier))"; -static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_3[] = "Incompatible checksums (0x%x vs (0xda92ccd, 0x4106bf8, 0x9a335a4) = (rtree))"; -/* #### Code section: decls ### */ -static PyObject *__pyx_pf_5tinyr_7_Record___reduce_cython__(struct __pyx_obj_5tinyr__Record *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_7_Record_2__setstate_cython__(struct __pyx_obj_5tinyr__Record *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ -static int __pyx_pf_5tinyr_12_ChildRecord___init__(struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_self, PyObject *__pyx_v_identifier); /* proto */ -static PyObject *__pyx_pf_5tinyr_12_ChildRecord_2__reduce_cython__(struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_12_ChildRecord_4__setstate_cython__(struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ -static int __pyx_pf_5tinyr_12_InnerRecord___cinit__(struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_child); /* proto */ -static PyObject *__pyx_pf_5tinyr_12_InnerRecord_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_12_InnerRecord_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static int __pyx_pf_5tinyr_5_Node___cinit__(struct __pyx_obj_5tinyr__Node *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_parent); /* proto */ -static PyObject *__pyx_pf_5tinyr_5_Node_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__Node *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_5_Node_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__Node *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_7min_cap___get__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_7max_cap___get__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self); /* proto */ -static int __pyx_pf_5tinyr_5RTree___cinit__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self); /* proto */ -static int __pyx_pf_5tinyr_5RTree_2__init__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_interleaved, PyObject *__pyx_v_max_cap, PyObject *__pyx_v_min_cap); /* proto */ -static Py_ssize_t __pyx_pf_5tinyr_5RTree_4__len__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_6__getitem__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_8iterkeys(struct __pyx_obj_5tinyr_RTree *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_10itervalues(struct __pyx_obj_5tinyr_RTree *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_12iteritems(struct __pyx_obj_5tinyr_RTree *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_14get_info(struct __pyx_obj_5tinyr_RTree *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_16insert(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_coords); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_18search(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_coords); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_20copy(struct __pyx_obj_5tinyr_RTree *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_22search_surrounding(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_point); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_24remove(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_identifier, PyObject *__pyx_v_coords); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_26valid(struct __pyx_obj_5tinyr_RTree *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_28__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr_RTree *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_5RTree_30__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr_RTree *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static int __pyx_pf_5tinyr_9_Iterator___cinit__(struct __pyx_obj_5tinyr__Iterator *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree); /* proto */ -static PyObject *__pyx_pf_5tinyr_9_Iterator_2__iter__(struct __pyx_obj_5tinyr__Iterator *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_9_Iterator_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__Iterator *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_9_Iterator_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__Iterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static int __pyx_pf_5tinyr_9_NodeIter___cinit__(struct __pyx_obj_5tinyr__NodeIter *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree); /* proto */ -static PyObject *__pyx_pf_5tinyr_9_NodeIter_2__next__(struct __pyx_obj_5tinyr__NodeIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_9_NodeIter_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__NodeIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_9_NodeIter_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__NodeIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static int __pyx_pf_5tinyr_14_RectangleIter___cinit__(struct __pyx_obj_5tinyr__RectangleIter *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree); /* proto */ -static PyObject *__pyx_pf_5tinyr_14_RectangleIter_2__next__(struct __pyx_obj_5tinyr__RectangleIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_14_RectangleIter_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__RectangleIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_14_RectangleIter_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__RectangleIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static int __pyx_pf_5tinyr_16_ChildRecordIter___cinit__(struct __pyx_obj_5tinyr__ChildRecordIter *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree); /* proto */ -static PyObject *__pyx_pf_5tinyr_16_ChildRecordIter_2__next__(struct __pyx_obj_5tinyr__ChildRecordIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_16_ChildRecordIter_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ChildRecordIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_16_ChildRecordIter_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ChildRecordIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static int __pyx_pf_5tinyr_8_KVIIter___cinit__(struct __pyx_obj_5tinyr__KVIIter *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree); /* proto */ -static PyObject *__pyx_pf_5tinyr_8_KVIIter_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__KVIIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_8_KVIIter_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__KVIIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_5tinyr_9_KeysIter___next__(struct __pyx_obj_5tinyr__KeysIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_9_KeysIter_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__KeysIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_9_KeysIter_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__KeysIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_5tinyr_11_ValuesIter___next__(struct __pyx_obj_5tinyr__ValuesIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_11_ValuesIter_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ValuesIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_11_ValuesIter_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ValuesIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_5tinyr_10_ItemsIter___next__(struct __pyx_obj_5tinyr__ItemsIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_10_ItemsIter_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ItemsIter *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_10_ItemsIter_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ItemsIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_6levels___get__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self); /* proto */ -static int __pyx_pf_5tinyr_9RTreeInfo___init__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree); /* proto */ -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_2iter_rectangles(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_15common_boundary___get__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_5width___get__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_6height___get__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_4to_dot(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self, PyObject *__pyx_v_filelike); /* proto */ -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_6__reduce_cython__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self); /* proto */ -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_8__setstate_cython__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_5tinyr___pyx_unpickle__Record(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_5tinyr_2__pyx_unpickle__ChildRecord(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_pf_5tinyr_4__pyx_unpickle_RTreeInfo(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ -static PyObject *__pyx_tp_new_5tinyr__Record(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_5tinyr__ChildRecord(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_5tinyr__InnerRecord(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_5tinyr__Node(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_5tinyr_RTree(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_5tinyr__Iterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_5tinyr__ChildRecordIter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_5tinyr__KVIIter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_5tinyr__NodeIter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_5tinyr__RectangleIter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static PyObject *__pyx_tp_new_5tinyr_RTreeInfo(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -static __Pyx_CachedCFunction __pyx_umethod_PyList_Type_pop = {0, 0, 0, 0, 0}; -static __Pyx_CachedCFunction __pyx_umethod_PyList_Type_remove = {0, 0, 0, 0, 0}; -/* #### Code section: late_includes ### */ -/* #### Code section: module_state ### */ -typedef struct { - PyObject *__pyx_d; - PyObject *__pyx_b; - PyObject *__pyx_cython_runtime; - PyObject *__pyx_empty_tuple; - PyObject *__pyx_empty_bytes; - PyObject *__pyx_empty_unicode; - #ifdef __Pyx_CyFunction_USED - PyTypeObject *__pyx_CyFunctionType; - #endif - #ifdef __Pyx_FusedFunction_USED - PyTypeObject *__pyx_FusedFunctionType; - #endif - #ifdef __Pyx_Generator_USED - PyTypeObject *__pyx_GeneratorType; - #endif - #ifdef __Pyx_IterableCoroutine_USED - PyTypeObject *__pyx_IterableCoroutineType; - #endif - #ifdef __Pyx_Coroutine_USED - PyTypeObject *__pyx_CoroutineAwaitType; - #endif - #ifdef __Pyx_Coroutine_USED - PyTypeObject *__pyx_CoroutineType; - #endif - #if CYTHON_USE_MODULE_STATE - #endif - #if CYTHON_USE_MODULE_STATE - PyObject *__pyx_type_5tinyr__Record; - PyObject *__pyx_type_5tinyr__ChildRecord; - PyObject *__pyx_type_5tinyr__InnerRecord; - PyObject *__pyx_type_5tinyr__Node; - PyObject *__pyx_type_5tinyr_RTree; - PyObject *__pyx_type_5tinyr__Iterator; - PyObject *__pyx_type_5tinyr__ChildRecordIter; - PyObject *__pyx_type_5tinyr__KVIIter; - PyObject *__pyx_type_5tinyr__KeysIter; - PyObject *__pyx_type_5tinyr__ValuesIter; - PyObject *__pyx_type_5tinyr__ItemsIter; - PyObject *__pyx_type_5tinyr__NodeIter; - PyObject *__pyx_type_5tinyr__RectangleIter; - PyObject *__pyx_type_5tinyr_RTreeInfo; - #endif - PyTypeObject *__pyx_ptype_5tinyr__Record; - PyTypeObject *__pyx_ptype_5tinyr__ChildRecord; - PyTypeObject *__pyx_ptype_5tinyr__InnerRecord; - PyTypeObject *__pyx_ptype_5tinyr__Node; - PyTypeObject *__pyx_ptype_5tinyr_RTree; - PyTypeObject *__pyx_ptype_5tinyr__Iterator; - PyTypeObject *__pyx_ptype_5tinyr__ChildRecordIter; - PyTypeObject *__pyx_ptype_5tinyr__KVIIter; - PyTypeObject *__pyx_ptype_5tinyr__KeysIter; - PyTypeObject *__pyx_ptype_5tinyr__ValuesIter; - PyTypeObject *__pyx_ptype_5tinyr__ItemsIter; - PyTypeObject *__pyx_ptype_5tinyr__NodeIter; - PyTypeObject *__pyx_ptype_5tinyr__RectangleIter; - PyTypeObject *__pyx_ptype_5tinyr_RTreeInfo; - PyObject *__pyx_n_s_AssertionError; - PyObject *__pyx_n_s_AttributeError; - PyObject *__pyx_n_s_ChildRecord; - PyObject *__pyx_n_s_ChildRecordIter; - PyObject *__pyx_n_s_ChildRecordIter___reduce_cython; - PyObject *__pyx_n_s_ChildRecordIter___setstate_cyth; - PyObject *__pyx_n_s_ChildRecord___reduce_cython; - PyObject *__pyx_n_s_ChildRecord___setstate_cython; - PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0; - PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2; - PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3; - PyObject *__pyx_n_s_IndexError; - PyObject *__pyx_n_s_InnerRecord; - PyObject *__pyx_n_s_InnerRecord___reduce_cython; - PyObject *__pyx_n_s_InnerRecord___setstate_cython; - PyObject *__pyx_n_s_ItemsIter; - PyObject *__pyx_n_s_ItemsIter___reduce_cython; - PyObject *__pyx_n_s_ItemsIter___setstate_cython; - PyObject *__pyx_n_s_Iterator; - PyObject *__pyx_n_s_Iterator___reduce_cython; - PyObject *__pyx_n_s_Iterator___setstate_cython; - PyObject *__pyx_n_s_KVIIter; - PyObject *__pyx_n_s_KVIIter___reduce_cython; - PyObject *__pyx_n_s_KVIIter___setstate_cython; - PyObject *__pyx_n_s_KeyError; - PyObject *__pyx_n_s_KeysIter; - PyObject *__pyx_n_s_KeysIter___reduce_cython; - PyObject *__pyx_n_s_KeysIter___setstate_cython; - PyObject *__pyx_n_s_L; - PyObject *__pyx_n_s_Node; - PyObject *__pyx_n_s_NodeIter; - PyObject *__pyx_n_s_NodeIter___reduce_cython; - PyObject *__pyx_n_s_NodeIter___setstate_cython; - PyObject *__pyx_n_s_Node___reduce_cython; - PyObject *__pyx_n_s_Node___setstate_cython; - PyObject *__pyx_n_s_NotImplemented; - PyObject *__pyx_n_s_OverflowError; - PyObject *__pyx_n_s_PickleError; - PyObject *__pyx_n_s_RTree; - PyObject *__pyx_n_s_RTreeInfo; - PyObject *__pyx_n_s_RTreeInfo___reduce_cython; - PyObject *__pyx_n_s_RTreeInfo___setstate_cython; - PyObject *__pyx_n_s_RTreeInfo_iter_rectangles; - PyObject *__pyx_n_s_RTreeInfo_to_dot; - PyObject *__pyx_n_s_RTreeInvalid; - PyObject *__pyx_n_s_RTree___reduce_cython; - PyObject *__pyx_n_s_RTree___setstate_cython; - PyObject *__pyx_n_s_RTree_copy; - PyObject *__pyx_n_s_RTree_get_info; - PyObject *__pyx_n_s_RTree_insert; - PyObject *__pyx_n_s_RTree_iteritems; - PyObject *__pyx_n_s_RTree_iterkeys; - PyObject *__pyx_n_s_RTree_itervalues; - PyObject *__pyx_n_s_RTree_remove; - PyObject *__pyx_n_s_RTree_search; - PyObject *__pyx_n_s_RTree_search_surrounding; - PyObject *__pyx_n_s_RTree_valid; - PyObject *__pyx_n_s_Record; - PyObject *__pyx_n_s_Record___reduce_cython; - PyObject *__pyx_n_s_Record___setstate_cython; - PyObject *__pyx_n_s_RectangleIter; - PyObject *__pyx_n_s_RectangleIter___reduce_cython; - PyObject *__pyx_n_s_RectangleIter___setstate_cython; - PyObject *__pyx_n_s_StopIteration; - PyObject *__pyx_kp_s_TD_PORT_d_CELLSPACING_0_d_TD; - PyObject *__pyx_kp_s_TR_TABLE; - PyObject *__pyx_n_s_TypeError; - PyObject *__pyx_n_s_ValueError; - PyObject *__pyx_n_s_ValuesIter; - PyObject *__pyx_n_s_ValuesIter___reduce_cython; - PyObject *__pyx_n_s_ValuesIter___setstate_cython; - PyObject *__pyx_n_s__10; - PyObject *__pyx_kp_s__4; - PyObject *__pyx_kp_s__5; - PyObject *__pyx_n_s__65; - PyObject *__pyx_kp_u__7; - PyObject *__pyx_n_s_asyncio_coroutines; - PyObject *__pyx_n_s_chid; - PyObject *__pyx_n_s_child; - PyObject *__pyx_n_s_class; - PyObject *__pyx_n_s_cline_in_traceback; - PyObject *__pyx_n_s_combinations; - PyObject *__pyx_kp_s_coordinates_as_list_or_tuple_exp; - PyObject *__pyx_n_s_coords; - PyObject *__pyx_n_s_coords_a; - PyObject *__pyx_n_s_copy; - PyObject *__pyx_n_s_cr; - PyObject *__pyx_kp_s_d; - PyObject *__pyx_n_s_d_2; - PyObject *__pyx_kp_s_d_d_tailport_d_s; - PyObject *__pyx_kp_s_d_label_TABLE_BORDER_0_CELLBORD; - PyObject *__pyx_n_s_depth; - PyObject *__pyx_n_s_dict; - PyObject *__pyx_n_s_dict_2; - PyObject *__pyx_kp_s_digraph_RTree_node_shape_none; - PyObject *__pyx_kp_u_disable; - PyObject *__pyx_n_s_doc; - PyObject *__pyx_kp_s_double_link_doesn_t_cover_itself; - PyObject *__pyx_kp_u_enable; - PyObject *__pyx_n_s_enumerate; - PyObject *__pyx_n_s_filelike; - PyObject *__pyx_kp_s_for_min_max_capacities_it_s_requ; - PyObject *__pyx_kp_u_gc; - PyObject *__pyx_n_s_get_info; - PyObject *__pyx_n_s_getstate; - PyObject *__pyx_n_s_id; - PyObject *__pyx_n_s_identifier; - PyObject *__pyx_n_s_import; - PyObject *__pyx_kp_s_inconsistent_item_count_d_d; - PyObject *__pyx_kp_s_inconsistent_node_depth_d_d; - PyObject *__pyx_kp_s_indexing_RTree_only_possible_wit; - PyObject *__pyx_n_s_init_subclass; - PyObject *__pyx_n_s_initializing; - PyObject *__pyx_n_s_insert; - PyObject *__pyx_n_s_interleaved; - PyObject *__pyx_n_s_ir; - PyObject *__pyx_n_s_is_coroutine; - PyObject *__pyx_kp_u_isenabled; - PyObject *__pyx_n_s_item_count; - PyObject *__pyx_n_s_iter_rectangles; - PyObject *__pyx_n_s_iteritems; - PyObject *__pyx_n_s_iterkeys; - PyObject *__pyx_n_s_itertools; - PyObject *__pyx_n_s_itervalues; - PyObject *__pyx_n_s_key; - PyObject *__pyx_n_s_leaf; - PyObject *__pyx_kp_s_leaf_level_is_not_equal_for_all; - PyObject *__pyx_n_s_leafnodes; - PyObject *__pyx_n_s_leafnodes_and_depth; - PyObject *__pyx_kp_s_len_coords_must_be_4_len_is_d; - PyObject *__pyx_kp_s_len_coords_must_be_4_length_is_d; - PyObject *__pyx_kp_s_len_point_must_be_2_len_is_d; - PyObject *__pyx_n_s_level; - PyObject *__pyx_n_s_lid; - PyObject *__pyx_n_s_main; - PyObject *__pyx_n_s_max_cap; - PyObject *__pyx_n_s_metaclass; - PyObject *__pyx_n_s_min_cap; - PyObject *__pyx_kp_s_misspositioned_inner_node; - PyObject *__pyx_n_s_module; - PyObject *__pyx_n_s_mro_entries; - PyObject *__pyx_n_s_n; - PyObject *__pyx_n_s_name; - PyObject *__pyx_n_s_new; - PyObject *__pyx_n_s_next; - PyObject *__pyx_n_s_nid; - PyObject *__pyx_kp_s_no_default___reduce___due_to_non; - PyObject *__pyx_kp_s_no_parent_entry_holds_the_child; - PyObject *__pyx_n_s_node; - PyObject *__pyx_n_s_node_record_child; - PyObject *__pyx_n_s_node_record_leaf; - PyObject *__pyx_kp_s_node_shape_ellipse; - PyObject *__pyx_n_s_nodedepht; - PyObject *__pyx_kp_s_non_leaf_node_has_invalid_number; - PyObject *__pyx_n_s_parent; - PyObject *__pyx_n_s_pickle; - PyObject *__pyx_n_s_point; - PyObject *__pyx_n_s_pop; - PyObject *__pyx_n_s_prepare; - PyObject *__pyx_n_s_pyx_PickleError; - PyObject *__pyx_n_s_pyx_checksum; - PyObject *__pyx_n_s_pyx_result; - PyObject *__pyx_n_s_pyx_state; - PyObject *__pyx_n_s_pyx_type; - PyObject *__pyx_n_s_pyx_unpickle_RTreeInfo; - PyObject *__pyx_n_s_pyx_unpickle__ChildRecord; - PyObject *__pyx_n_s_pyx_unpickle__Record; - PyObject *__pyx_n_s_pyx_vtable; - PyObject *__pyx_n_s_qualname; - PyObject *__pyx_n_s_range; - PyObject *__pyx_n_s_rec; - PyObject *__pyx_n_s_record; - PyObject *__pyx_n_s_reduce; - PyObject *__pyx_n_s_reduce_cython; - PyObject *__pyx_n_s_reduce_ex; - PyObject *__pyx_n_s_remove; - PyObject *__pyx_n_s_result; - PyObject *__pyx_n_s_ret; - PyObject *__pyx_n_s_rid; - PyObject *__pyx_kp_s_root_must_have_at_least_2_record; - PyObject *__pyx_n_s_rtree; - PyObject *__pyx_n_s_search; - PyObject *__pyx_n_s_search_surrounding; - PyObject *__pyx_n_s_self; - PyObject *__pyx_n_s_set_name; - PyObject *__pyx_n_s_setstate; - PyObject *__pyx_n_s_setstate_cython; - PyObject *__pyx_n_s_spec; - PyObject *__pyx_n_s_state; - PyObject *__pyx_kp_s_stringsource; - PyObject *__pyx_n_s_super; - PyObject *__pyx_n_s_test; - PyObject *__pyx_n_s_tinyr; - PyObject *__pyx_n_u_tinyr; - PyObject *__pyx_kp_s_tinyr_tinyr_pyx; - PyObject *__pyx_n_s_tmp_coords; - PyObject *__pyx_n_s_to_dot; - PyObject *__pyx_n_s_update; - PyObject *__pyx_n_s_use_setstate; - PyObject *__pyx_n_s_valid; - PyObject *__pyx_n_s_write; - PyObject *__pyx_kp_s_wrong_combined_area_of_records_o; - PyObject *__pyx_float_2_; - PyObject *__pyx_int_0; - PyObject *__pyx_int_2; - PyObject *__pyx_int_5; - PyObject *__pyx_int_68185080; - PyObject *__pyx_int_161691044; - PyObject *__pyx_int_165148252; - PyObject *__pyx_int_178991788; - PyObject *__pyx_int_212777770; - PyObject *__pyx_int_224798404; - PyObject *__pyx_int_225422942; - PyObject *__pyx_int_229190861; - PyObject *__pyx_int_263305410; - PyObject *__pyx_tuple_; - PyObject *__pyx_tuple__2; - PyObject *__pyx_tuple__3; - PyObject *__pyx_tuple__6; - PyObject *__pyx_tuple__8; - PyObject *__pyx_tuple__9; - PyObject *__pyx_tuple__11; - PyObject *__pyx_tuple__13; - PyObject *__pyx_tuple__17; - PyObject *__pyx_tuple__26; - PyObject *__pyx_tuple__28; - PyObject *__pyx_tuple__30; - PyObject *__pyx_tuple__32; - PyObject *__pyx_tuple__34; - PyObject *__pyx_tuple__36; - PyObject *__pyx_tuple__57; - PyObject *__pyx_tuple__61; - PyObject *__pyx_codeobj__12; - PyObject *__pyx_codeobj__14; - PyObject *__pyx_codeobj__15; - PyObject *__pyx_codeobj__16; - PyObject *__pyx_codeobj__18; - PyObject *__pyx_codeobj__19; - PyObject *__pyx_codeobj__20; - PyObject *__pyx_codeobj__21; - PyObject *__pyx_codeobj__22; - PyObject *__pyx_codeobj__23; - PyObject *__pyx_codeobj__24; - PyObject *__pyx_codeobj__25; - PyObject *__pyx_codeobj__27; - PyObject *__pyx_codeobj__29; - PyObject *__pyx_codeobj__31; - PyObject *__pyx_codeobj__33; - PyObject *__pyx_codeobj__35; - PyObject *__pyx_codeobj__37; - PyObject *__pyx_codeobj__38; - PyObject *__pyx_codeobj__39; - PyObject *__pyx_codeobj__40; - PyObject *__pyx_codeobj__41; - PyObject *__pyx_codeobj__42; - PyObject *__pyx_codeobj__43; - PyObject *__pyx_codeobj__44; - PyObject *__pyx_codeobj__45; - PyObject *__pyx_codeobj__46; - PyObject *__pyx_codeobj__47; - PyObject *__pyx_codeobj__48; - PyObject *__pyx_codeobj__49; - PyObject *__pyx_codeobj__50; - PyObject *__pyx_codeobj__51; - PyObject *__pyx_codeobj__52; - PyObject *__pyx_codeobj__53; - PyObject *__pyx_codeobj__54; - PyObject *__pyx_codeobj__55; - PyObject *__pyx_codeobj__56; - PyObject *__pyx_codeobj__58; - PyObject *__pyx_codeobj__59; - PyObject *__pyx_codeobj__60; - PyObject *__pyx_codeobj__62; - PyObject *__pyx_codeobj__63; - PyObject *__pyx_codeobj__64; -} __pyx_mstate; - -#if CYTHON_USE_MODULE_STATE -#ifdef __cplusplus -namespace { - extern struct PyModuleDef __pyx_moduledef; -} /* anonymous namespace */ -#else -static struct PyModuleDef __pyx_moduledef; -#endif - -#define __pyx_mstate(o) ((__pyx_mstate *)__Pyx_PyModule_GetState(o)) - -#define __pyx_mstate_global (__pyx_mstate(PyState_FindModule(&__pyx_moduledef))) - -#define __pyx_m (PyState_FindModule(&__pyx_moduledef)) -#else -static __pyx_mstate __pyx_mstate_global_static = -#ifdef __cplusplus - {}; -#else - {0}; -#endif -static __pyx_mstate *__pyx_mstate_global = &__pyx_mstate_global_static; -#endif -/* #### Code section: module_state_clear ### */ -#if CYTHON_USE_MODULE_STATE -static int __pyx_m_clear(PyObject *m) { - __pyx_mstate *clear_module_state = __pyx_mstate(m); - if (!clear_module_state) return 0; - Py_CLEAR(clear_module_state->__pyx_d); - Py_CLEAR(clear_module_state->__pyx_b); - Py_CLEAR(clear_module_state->__pyx_cython_runtime); - Py_CLEAR(clear_module_state->__pyx_empty_tuple); - Py_CLEAR(clear_module_state->__pyx_empty_bytes); - Py_CLEAR(clear_module_state->__pyx_empty_unicode); - #ifdef __Pyx_CyFunction_USED - Py_CLEAR(clear_module_state->__pyx_CyFunctionType); - #endif - #ifdef __Pyx_FusedFunction_USED - Py_CLEAR(clear_module_state->__pyx_FusedFunctionType); - #endif - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__Record); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__Record); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__ChildRecord); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__ChildRecord); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__InnerRecord); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__InnerRecord); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__Node); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__Node); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr_RTree); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr_RTree); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__Iterator); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__Iterator); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__ChildRecordIter); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__ChildRecordIter); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__KVIIter); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__KVIIter); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__KeysIter); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__KeysIter); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__ValuesIter); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__ValuesIter); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__ItemsIter); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__ItemsIter); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__NodeIter); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__NodeIter); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr__RectangleIter); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr__RectangleIter); - Py_CLEAR(clear_module_state->__pyx_ptype_5tinyr_RTreeInfo); - Py_CLEAR(clear_module_state->__pyx_type_5tinyr_RTreeInfo); - Py_CLEAR(clear_module_state->__pyx_n_s_AssertionError); - Py_CLEAR(clear_module_state->__pyx_n_s_AttributeError); - Py_CLEAR(clear_module_state->__pyx_n_s_ChildRecord); - Py_CLEAR(clear_module_state->__pyx_n_s_ChildRecordIter); - Py_CLEAR(clear_module_state->__pyx_n_s_ChildRecordIter___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_ChildRecordIter___setstate_cyth); - Py_CLEAR(clear_module_state->__pyx_n_s_ChildRecord___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_ChildRecord___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0); - Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2); - Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3); - Py_CLEAR(clear_module_state->__pyx_n_s_IndexError); - Py_CLEAR(clear_module_state->__pyx_n_s_InnerRecord); - Py_CLEAR(clear_module_state->__pyx_n_s_InnerRecord___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_InnerRecord___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_ItemsIter); - Py_CLEAR(clear_module_state->__pyx_n_s_ItemsIter___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_ItemsIter___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_Iterator); - Py_CLEAR(clear_module_state->__pyx_n_s_Iterator___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_Iterator___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_KVIIter); - Py_CLEAR(clear_module_state->__pyx_n_s_KVIIter___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_KVIIter___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_KeyError); - Py_CLEAR(clear_module_state->__pyx_n_s_KeysIter); - Py_CLEAR(clear_module_state->__pyx_n_s_KeysIter___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_KeysIter___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_L); - Py_CLEAR(clear_module_state->__pyx_n_s_Node); - Py_CLEAR(clear_module_state->__pyx_n_s_NodeIter); - Py_CLEAR(clear_module_state->__pyx_n_s_NodeIter___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_NodeIter___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_Node___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_Node___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_NotImplemented); - Py_CLEAR(clear_module_state->__pyx_n_s_OverflowError); - Py_CLEAR(clear_module_state->__pyx_n_s_PickleError); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree); - Py_CLEAR(clear_module_state->__pyx_n_s_RTreeInfo); - Py_CLEAR(clear_module_state->__pyx_n_s_RTreeInfo___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_RTreeInfo___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_RTreeInfo_iter_rectangles); - Py_CLEAR(clear_module_state->__pyx_n_s_RTreeInfo_to_dot); - Py_CLEAR(clear_module_state->__pyx_n_s_RTreeInvalid); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree_copy); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree_get_info); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree_insert); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree_iteritems); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree_iterkeys); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree_itervalues); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree_remove); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree_search); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree_search_surrounding); - Py_CLEAR(clear_module_state->__pyx_n_s_RTree_valid); - Py_CLEAR(clear_module_state->__pyx_n_s_Record); - Py_CLEAR(clear_module_state->__pyx_n_s_Record___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_Record___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_RectangleIter); - Py_CLEAR(clear_module_state->__pyx_n_s_RectangleIter___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_RectangleIter___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_StopIteration); - Py_CLEAR(clear_module_state->__pyx_kp_s_TD_PORT_d_CELLSPACING_0_d_TD); - Py_CLEAR(clear_module_state->__pyx_kp_s_TR_TABLE); - Py_CLEAR(clear_module_state->__pyx_n_s_TypeError); - Py_CLEAR(clear_module_state->__pyx_n_s_ValueError); - Py_CLEAR(clear_module_state->__pyx_n_s_ValuesIter); - Py_CLEAR(clear_module_state->__pyx_n_s_ValuesIter___reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_ValuesIter___setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s__10); - Py_CLEAR(clear_module_state->__pyx_kp_s__4); - Py_CLEAR(clear_module_state->__pyx_kp_s__5); - Py_CLEAR(clear_module_state->__pyx_n_s__65); - Py_CLEAR(clear_module_state->__pyx_kp_u__7); - Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_coroutines); - Py_CLEAR(clear_module_state->__pyx_n_s_chid); - Py_CLEAR(clear_module_state->__pyx_n_s_child); - Py_CLEAR(clear_module_state->__pyx_n_s_class); - Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback); - Py_CLEAR(clear_module_state->__pyx_n_s_combinations); - Py_CLEAR(clear_module_state->__pyx_kp_s_coordinates_as_list_or_tuple_exp); - Py_CLEAR(clear_module_state->__pyx_n_s_coords); - Py_CLEAR(clear_module_state->__pyx_n_s_coords_a); - Py_CLEAR(clear_module_state->__pyx_n_s_copy); - Py_CLEAR(clear_module_state->__pyx_n_s_cr); - Py_CLEAR(clear_module_state->__pyx_kp_s_d); - Py_CLEAR(clear_module_state->__pyx_n_s_d_2); - Py_CLEAR(clear_module_state->__pyx_kp_s_d_d_tailport_d_s); - Py_CLEAR(clear_module_state->__pyx_kp_s_d_label_TABLE_BORDER_0_CELLBORD); - Py_CLEAR(clear_module_state->__pyx_n_s_depth); - Py_CLEAR(clear_module_state->__pyx_n_s_dict); - Py_CLEAR(clear_module_state->__pyx_n_s_dict_2); - Py_CLEAR(clear_module_state->__pyx_kp_s_digraph_RTree_node_shape_none); - Py_CLEAR(clear_module_state->__pyx_kp_u_disable); - Py_CLEAR(clear_module_state->__pyx_n_s_doc); - Py_CLEAR(clear_module_state->__pyx_kp_s_double_link_doesn_t_cover_itself); - Py_CLEAR(clear_module_state->__pyx_kp_u_enable); - Py_CLEAR(clear_module_state->__pyx_n_s_enumerate); - Py_CLEAR(clear_module_state->__pyx_n_s_filelike); - Py_CLEAR(clear_module_state->__pyx_kp_s_for_min_max_capacities_it_s_requ); - Py_CLEAR(clear_module_state->__pyx_kp_u_gc); - Py_CLEAR(clear_module_state->__pyx_n_s_get_info); - Py_CLEAR(clear_module_state->__pyx_n_s_getstate); - Py_CLEAR(clear_module_state->__pyx_n_s_id); - Py_CLEAR(clear_module_state->__pyx_n_s_identifier); - Py_CLEAR(clear_module_state->__pyx_n_s_import); - Py_CLEAR(clear_module_state->__pyx_kp_s_inconsistent_item_count_d_d); - Py_CLEAR(clear_module_state->__pyx_kp_s_inconsistent_node_depth_d_d); - Py_CLEAR(clear_module_state->__pyx_kp_s_indexing_RTree_only_possible_wit); - Py_CLEAR(clear_module_state->__pyx_n_s_init_subclass); - Py_CLEAR(clear_module_state->__pyx_n_s_initializing); - Py_CLEAR(clear_module_state->__pyx_n_s_insert); - Py_CLEAR(clear_module_state->__pyx_n_s_interleaved); - Py_CLEAR(clear_module_state->__pyx_n_s_ir); - Py_CLEAR(clear_module_state->__pyx_n_s_is_coroutine); - Py_CLEAR(clear_module_state->__pyx_kp_u_isenabled); - Py_CLEAR(clear_module_state->__pyx_n_s_item_count); - Py_CLEAR(clear_module_state->__pyx_n_s_iter_rectangles); - Py_CLEAR(clear_module_state->__pyx_n_s_iteritems); - Py_CLEAR(clear_module_state->__pyx_n_s_iterkeys); - Py_CLEAR(clear_module_state->__pyx_n_s_itertools); - Py_CLEAR(clear_module_state->__pyx_n_s_itervalues); - Py_CLEAR(clear_module_state->__pyx_n_s_key); - Py_CLEAR(clear_module_state->__pyx_n_s_leaf); - Py_CLEAR(clear_module_state->__pyx_kp_s_leaf_level_is_not_equal_for_all); - Py_CLEAR(clear_module_state->__pyx_n_s_leafnodes); - Py_CLEAR(clear_module_state->__pyx_n_s_leafnodes_and_depth); - Py_CLEAR(clear_module_state->__pyx_kp_s_len_coords_must_be_4_len_is_d); - Py_CLEAR(clear_module_state->__pyx_kp_s_len_coords_must_be_4_length_is_d); - Py_CLEAR(clear_module_state->__pyx_kp_s_len_point_must_be_2_len_is_d); - Py_CLEAR(clear_module_state->__pyx_n_s_level); - Py_CLEAR(clear_module_state->__pyx_n_s_lid); - Py_CLEAR(clear_module_state->__pyx_n_s_main); - Py_CLEAR(clear_module_state->__pyx_n_s_max_cap); - Py_CLEAR(clear_module_state->__pyx_n_s_metaclass); - Py_CLEAR(clear_module_state->__pyx_n_s_min_cap); - Py_CLEAR(clear_module_state->__pyx_kp_s_misspositioned_inner_node); - Py_CLEAR(clear_module_state->__pyx_n_s_module); - Py_CLEAR(clear_module_state->__pyx_n_s_mro_entries); - Py_CLEAR(clear_module_state->__pyx_n_s_n); - Py_CLEAR(clear_module_state->__pyx_n_s_name); - Py_CLEAR(clear_module_state->__pyx_n_s_new); - Py_CLEAR(clear_module_state->__pyx_n_s_next); - Py_CLEAR(clear_module_state->__pyx_n_s_nid); - Py_CLEAR(clear_module_state->__pyx_kp_s_no_default___reduce___due_to_non); - Py_CLEAR(clear_module_state->__pyx_kp_s_no_parent_entry_holds_the_child); - Py_CLEAR(clear_module_state->__pyx_n_s_node); - Py_CLEAR(clear_module_state->__pyx_n_s_node_record_child); - Py_CLEAR(clear_module_state->__pyx_n_s_node_record_leaf); - Py_CLEAR(clear_module_state->__pyx_kp_s_node_shape_ellipse); - Py_CLEAR(clear_module_state->__pyx_n_s_nodedepht); - Py_CLEAR(clear_module_state->__pyx_kp_s_non_leaf_node_has_invalid_number); - Py_CLEAR(clear_module_state->__pyx_n_s_parent); - Py_CLEAR(clear_module_state->__pyx_n_s_pickle); - Py_CLEAR(clear_module_state->__pyx_n_s_point); - Py_CLEAR(clear_module_state->__pyx_n_s_pop); - Py_CLEAR(clear_module_state->__pyx_n_s_prepare); - Py_CLEAR(clear_module_state->__pyx_n_s_pyx_PickleError); - Py_CLEAR(clear_module_state->__pyx_n_s_pyx_checksum); - Py_CLEAR(clear_module_state->__pyx_n_s_pyx_result); - Py_CLEAR(clear_module_state->__pyx_n_s_pyx_state); - Py_CLEAR(clear_module_state->__pyx_n_s_pyx_type); - Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_RTreeInfo); - Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle__ChildRecord); - Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle__Record); - Py_CLEAR(clear_module_state->__pyx_n_s_pyx_vtable); - Py_CLEAR(clear_module_state->__pyx_n_s_qualname); - Py_CLEAR(clear_module_state->__pyx_n_s_range); - Py_CLEAR(clear_module_state->__pyx_n_s_rec); - Py_CLEAR(clear_module_state->__pyx_n_s_record); - Py_CLEAR(clear_module_state->__pyx_n_s_reduce); - Py_CLEAR(clear_module_state->__pyx_n_s_reduce_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_reduce_ex); - Py_CLEAR(clear_module_state->__pyx_n_s_remove); - Py_CLEAR(clear_module_state->__pyx_n_s_result); - Py_CLEAR(clear_module_state->__pyx_n_s_ret); - Py_CLEAR(clear_module_state->__pyx_n_s_rid); - Py_CLEAR(clear_module_state->__pyx_kp_s_root_must_have_at_least_2_record); - Py_CLEAR(clear_module_state->__pyx_n_s_rtree); - Py_CLEAR(clear_module_state->__pyx_n_s_search); - Py_CLEAR(clear_module_state->__pyx_n_s_search_surrounding); - Py_CLEAR(clear_module_state->__pyx_n_s_self); - Py_CLEAR(clear_module_state->__pyx_n_s_set_name); - Py_CLEAR(clear_module_state->__pyx_n_s_setstate); - Py_CLEAR(clear_module_state->__pyx_n_s_setstate_cython); - Py_CLEAR(clear_module_state->__pyx_n_s_spec); - Py_CLEAR(clear_module_state->__pyx_n_s_state); - Py_CLEAR(clear_module_state->__pyx_kp_s_stringsource); - Py_CLEAR(clear_module_state->__pyx_n_s_super); - Py_CLEAR(clear_module_state->__pyx_n_s_test); - Py_CLEAR(clear_module_state->__pyx_n_s_tinyr); - Py_CLEAR(clear_module_state->__pyx_n_u_tinyr); - Py_CLEAR(clear_module_state->__pyx_kp_s_tinyr_tinyr_pyx); - Py_CLEAR(clear_module_state->__pyx_n_s_tmp_coords); - Py_CLEAR(clear_module_state->__pyx_n_s_to_dot); - Py_CLEAR(clear_module_state->__pyx_n_s_update); - Py_CLEAR(clear_module_state->__pyx_n_s_use_setstate); - Py_CLEAR(clear_module_state->__pyx_n_s_valid); - Py_CLEAR(clear_module_state->__pyx_n_s_write); - Py_CLEAR(clear_module_state->__pyx_kp_s_wrong_combined_area_of_records_o); - Py_CLEAR(clear_module_state->__pyx_float_2_); - Py_CLEAR(clear_module_state->__pyx_int_0); - Py_CLEAR(clear_module_state->__pyx_int_2); - Py_CLEAR(clear_module_state->__pyx_int_5); - Py_CLEAR(clear_module_state->__pyx_int_68185080); - Py_CLEAR(clear_module_state->__pyx_int_161691044); - Py_CLEAR(clear_module_state->__pyx_int_165148252); - Py_CLEAR(clear_module_state->__pyx_int_178991788); - Py_CLEAR(clear_module_state->__pyx_int_212777770); - Py_CLEAR(clear_module_state->__pyx_int_224798404); - Py_CLEAR(clear_module_state->__pyx_int_225422942); - Py_CLEAR(clear_module_state->__pyx_int_229190861); - Py_CLEAR(clear_module_state->__pyx_int_263305410); - Py_CLEAR(clear_module_state->__pyx_tuple_); - Py_CLEAR(clear_module_state->__pyx_tuple__2); - Py_CLEAR(clear_module_state->__pyx_tuple__3); - Py_CLEAR(clear_module_state->__pyx_tuple__6); - Py_CLEAR(clear_module_state->__pyx_tuple__8); - Py_CLEAR(clear_module_state->__pyx_tuple__9); - Py_CLEAR(clear_module_state->__pyx_tuple__11); - Py_CLEAR(clear_module_state->__pyx_tuple__13); - Py_CLEAR(clear_module_state->__pyx_tuple__17); - Py_CLEAR(clear_module_state->__pyx_tuple__26); - Py_CLEAR(clear_module_state->__pyx_tuple__28); - Py_CLEAR(clear_module_state->__pyx_tuple__30); - Py_CLEAR(clear_module_state->__pyx_tuple__32); - Py_CLEAR(clear_module_state->__pyx_tuple__34); - Py_CLEAR(clear_module_state->__pyx_tuple__36); - Py_CLEAR(clear_module_state->__pyx_tuple__57); - Py_CLEAR(clear_module_state->__pyx_tuple__61); - Py_CLEAR(clear_module_state->__pyx_codeobj__12); - Py_CLEAR(clear_module_state->__pyx_codeobj__14); - Py_CLEAR(clear_module_state->__pyx_codeobj__15); - Py_CLEAR(clear_module_state->__pyx_codeobj__16); - Py_CLEAR(clear_module_state->__pyx_codeobj__18); - Py_CLEAR(clear_module_state->__pyx_codeobj__19); - Py_CLEAR(clear_module_state->__pyx_codeobj__20); - Py_CLEAR(clear_module_state->__pyx_codeobj__21); - Py_CLEAR(clear_module_state->__pyx_codeobj__22); - Py_CLEAR(clear_module_state->__pyx_codeobj__23); - Py_CLEAR(clear_module_state->__pyx_codeobj__24); - Py_CLEAR(clear_module_state->__pyx_codeobj__25); - Py_CLEAR(clear_module_state->__pyx_codeobj__27); - Py_CLEAR(clear_module_state->__pyx_codeobj__29); - Py_CLEAR(clear_module_state->__pyx_codeobj__31); - Py_CLEAR(clear_module_state->__pyx_codeobj__33); - Py_CLEAR(clear_module_state->__pyx_codeobj__35); - Py_CLEAR(clear_module_state->__pyx_codeobj__37); - Py_CLEAR(clear_module_state->__pyx_codeobj__38); - Py_CLEAR(clear_module_state->__pyx_codeobj__39); - Py_CLEAR(clear_module_state->__pyx_codeobj__40); - Py_CLEAR(clear_module_state->__pyx_codeobj__41); - Py_CLEAR(clear_module_state->__pyx_codeobj__42); - Py_CLEAR(clear_module_state->__pyx_codeobj__43); - Py_CLEAR(clear_module_state->__pyx_codeobj__44); - Py_CLEAR(clear_module_state->__pyx_codeobj__45); - Py_CLEAR(clear_module_state->__pyx_codeobj__46); - Py_CLEAR(clear_module_state->__pyx_codeobj__47); - Py_CLEAR(clear_module_state->__pyx_codeobj__48); - Py_CLEAR(clear_module_state->__pyx_codeobj__49); - Py_CLEAR(clear_module_state->__pyx_codeobj__50); - Py_CLEAR(clear_module_state->__pyx_codeobj__51); - Py_CLEAR(clear_module_state->__pyx_codeobj__52); - Py_CLEAR(clear_module_state->__pyx_codeobj__53); - Py_CLEAR(clear_module_state->__pyx_codeobj__54); - Py_CLEAR(clear_module_state->__pyx_codeobj__55); - Py_CLEAR(clear_module_state->__pyx_codeobj__56); - Py_CLEAR(clear_module_state->__pyx_codeobj__58); - Py_CLEAR(clear_module_state->__pyx_codeobj__59); - Py_CLEAR(clear_module_state->__pyx_codeobj__60); - Py_CLEAR(clear_module_state->__pyx_codeobj__62); - Py_CLEAR(clear_module_state->__pyx_codeobj__63); - Py_CLEAR(clear_module_state->__pyx_codeobj__64); - return 0; -} -#endif -/* #### Code section: module_state_traverse ### */ -#if CYTHON_USE_MODULE_STATE -static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { - __pyx_mstate *traverse_module_state = __pyx_mstate(m); - if (!traverse_module_state) return 0; - Py_VISIT(traverse_module_state->__pyx_d); - Py_VISIT(traverse_module_state->__pyx_b); - Py_VISIT(traverse_module_state->__pyx_cython_runtime); - Py_VISIT(traverse_module_state->__pyx_empty_tuple); - Py_VISIT(traverse_module_state->__pyx_empty_bytes); - Py_VISIT(traverse_module_state->__pyx_empty_unicode); - #ifdef __Pyx_CyFunction_USED - Py_VISIT(traverse_module_state->__pyx_CyFunctionType); - #endif - #ifdef __Pyx_FusedFunction_USED - Py_VISIT(traverse_module_state->__pyx_FusedFunctionType); - #endif - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__Record); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__Record); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__ChildRecord); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__ChildRecord); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__InnerRecord); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__InnerRecord); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__Node); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__Node); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr_RTree); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr_RTree); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__Iterator); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__Iterator); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__ChildRecordIter); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__ChildRecordIter); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__KVIIter); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__KVIIter); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__KeysIter); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__KeysIter); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__ValuesIter); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__ValuesIter); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__ItemsIter); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__ItemsIter); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__NodeIter); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__NodeIter); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr__RectangleIter); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr__RectangleIter); - Py_VISIT(traverse_module_state->__pyx_ptype_5tinyr_RTreeInfo); - Py_VISIT(traverse_module_state->__pyx_type_5tinyr_RTreeInfo); - Py_VISIT(traverse_module_state->__pyx_n_s_AssertionError); - Py_VISIT(traverse_module_state->__pyx_n_s_AttributeError); - Py_VISIT(traverse_module_state->__pyx_n_s_ChildRecord); - Py_VISIT(traverse_module_state->__pyx_n_s_ChildRecordIter); - Py_VISIT(traverse_module_state->__pyx_n_s_ChildRecordIter___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_ChildRecordIter___setstate_cyth); - Py_VISIT(traverse_module_state->__pyx_n_s_ChildRecord___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_ChildRecord___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0); - Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2); - Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3); - Py_VISIT(traverse_module_state->__pyx_n_s_IndexError); - Py_VISIT(traverse_module_state->__pyx_n_s_InnerRecord); - Py_VISIT(traverse_module_state->__pyx_n_s_InnerRecord___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_InnerRecord___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_ItemsIter); - Py_VISIT(traverse_module_state->__pyx_n_s_ItemsIter___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_ItemsIter___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_Iterator); - Py_VISIT(traverse_module_state->__pyx_n_s_Iterator___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_Iterator___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_KVIIter); - Py_VISIT(traverse_module_state->__pyx_n_s_KVIIter___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_KVIIter___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_KeyError); - Py_VISIT(traverse_module_state->__pyx_n_s_KeysIter); - Py_VISIT(traverse_module_state->__pyx_n_s_KeysIter___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_KeysIter___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_L); - Py_VISIT(traverse_module_state->__pyx_n_s_Node); - Py_VISIT(traverse_module_state->__pyx_n_s_NodeIter); - Py_VISIT(traverse_module_state->__pyx_n_s_NodeIter___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_NodeIter___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_Node___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_Node___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_NotImplemented); - Py_VISIT(traverse_module_state->__pyx_n_s_OverflowError); - Py_VISIT(traverse_module_state->__pyx_n_s_PickleError); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree); - Py_VISIT(traverse_module_state->__pyx_n_s_RTreeInfo); - Py_VISIT(traverse_module_state->__pyx_n_s_RTreeInfo___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_RTreeInfo___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_RTreeInfo_iter_rectangles); - Py_VISIT(traverse_module_state->__pyx_n_s_RTreeInfo_to_dot); - Py_VISIT(traverse_module_state->__pyx_n_s_RTreeInvalid); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree_copy); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree_get_info); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree_insert); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree_iteritems); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree_iterkeys); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree_itervalues); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree_remove); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree_search); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree_search_surrounding); - Py_VISIT(traverse_module_state->__pyx_n_s_RTree_valid); - Py_VISIT(traverse_module_state->__pyx_n_s_Record); - Py_VISIT(traverse_module_state->__pyx_n_s_Record___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_Record___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_RectangleIter); - Py_VISIT(traverse_module_state->__pyx_n_s_RectangleIter___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_RectangleIter___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_StopIteration); - Py_VISIT(traverse_module_state->__pyx_kp_s_TD_PORT_d_CELLSPACING_0_d_TD); - Py_VISIT(traverse_module_state->__pyx_kp_s_TR_TABLE); - Py_VISIT(traverse_module_state->__pyx_n_s_TypeError); - Py_VISIT(traverse_module_state->__pyx_n_s_ValueError); - Py_VISIT(traverse_module_state->__pyx_n_s_ValuesIter); - Py_VISIT(traverse_module_state->__pyx_n_s_ValuesIter___reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_ValuesIter___setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s__10); - Py_VISIT(traverse_module_state->__pyx_kp_s__4); - Py_VISIT(traverse_module_state->__pyx_kp_s__5); - Py_VISIT(traverse_module_state->__pyx_n_s__65); - Py_VISIT(traverse_module_state->__pyx_kp_u__7); - Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_coroutines); - Py_VISIT(traverse_module_state->__pyx_n_s_chid); - Py_VISIT(traverse_module_state->__pyx_n_s_child); - Py_VISIT(traverse_module_state->__pyx_n_s_class); - Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback); - Py_VISIT(traverse_module_state->__pyx_n_s_combinations); - Py_VISIT(traverse_module_state->__pyx_kp_s_coordinates_as_list_or_tuple_exp); - Py_VISIT(traverse_module_state->__pyx_n_s_coords); - Py_VISIT(traverse_module_state->__pyx_n_s_coords_a); - Py_VISIT(traverse_module_state->__pyx_n_s_copy); - Py_VISIT(traverse_module_state->__pyx_n_s_cr); - Py_VISIT(traverse_module_state->__pyx_kp_s_d); - Py_VISIT(traverse_module_state->__pyx_n_s_d_2); - Py_VISIT(traverse_module_state->__pyx_kp_s_d_d_tailport_d_s); - Py_VISIT(traverse_module_state->__pyx_kp_s_d_label_TABLE_BORDER_0_CELLBORD); - Py_VISIT(traverse_module_state->__pyx_n_s_depth); - Py_VISIT(traverse_module_state->__pyx_n_s_dict); - Py_VISIT(traverse_module_state->__pyx_n_s_dict_2); - Py_VISIT(traverse_module_state->__pyx_kp_s_digraph_RTree_node_shape_none); - Py_VISIT(traverse_module_state->__pyx_kp_u_disable); - Py_VISIT(traverse_module_state->__pyx_n_s_doc); - Py_VISIT(traverse_module_state->__pyx_kp_s_double_link_doesn_t_cover_itself); - Py_VISIT(traverse_module_state->__pyx_kp_u_enable); - Py_VISIT(traverse_module_state->__pyx_n_s_enumerate); - Py_VISIT(traverse_module_state->__pyx_n_s_filelike); - Py_VISIT(traverse_module_state->__pyx_kp_s_for_min_max_capacities_it_s_requ); - Py_VISIT(traverse_module_state->__pyx_kp_u_gc); - Py_VISIT(traverse_module_state->__pyx_n_s_get_info); - Py_VISIT(traverse_module_state->__pyx_n_s_getstate); - Py_VISIT(traverse_module_state->__pyx_n_s_id); - Py_VISIT(traverse_module_state->__pyx_n_s_identifier); - Py_VISIT(traverse_module_state->__pyx_n_s_import); - Py_VISIT(traverse_module_state->__pyx_kp_s_inconsistent_item_count_d_d); - Py_VISIT(traverse_module_state->__pyx_kp_s_inconsistent_node_depth_d_d); - Py_VISIT(traverse_module_state->__pyx_kp_s_indexing_RTree_only_possible_wit); - Py_VISIT(traverse_module_state->__pyx_n_s_init_subclass); - Py_VISIT(traverse_module_state->__pyx_n_s_initializing); - Py_VISIT(traverse_module_state->__pyx_n_s_insert); - Py_VISIT(traverse_module_state->__pyx_n_s_interleaved); - Py_VISIT(traverse_module_state->__pyx_n_s_ir); - Py_VISIT(traverse_module_state->__pyx_n_s_is_coroutine); - Py_VISIT(traverse_module_state->__pyx_kp_u_isenabled); - Py_VISIT(traverse_module_state->__pyx_n_s_item_count); - Py_VISIT(traverse_module_state->__pyx_n_s_iter_rectangles); - Py_VISIT(traverse_module_state->__pyx_n_s_iteritems); - Py_VISIT(traverse_module_state->__pyx_n_s_iterkeys); - Py_VISIT(traverse_module_state->__pyx_n_s_itertools); - Py_VISIT(traverse_module_state->__pyx_n_s_itervalues); - Py_VISIT(traverse_module_state->__pyx_n_s_key); - Py_VISIT(traverse_module_state->__pyx_n_s_leaf); - Py_VISIT(traverse_module_state->__pyx_kp_s_leaf_level_is_not_equal_for_all); - Py_VISIT(traverse_module_state->__pyx_n_s_leafnodes); - Py_VISIT(traverse_module_state->__pyx_n_s_leafnodes_and_depth); - Py_VISIT(traverse_module_state->__pyx_kp_s_len_coords_must_be_4_len_is_d); - Py_VISIT(traverse_module_state->__pyx_kp_s_len_coords_must_be_4_length_is_d); - Py_VISIT(traverse_module_state->__pyx_kp_s_len_point_must_be_2_len_is_d); - Py_VISIT(traverse_module_state->__pyx_n_s_level); - Py_VISIT(traverse_module_state->__pyx_n_s_lid); - Py_VISIT(traverse_module_state->__pyx_n_s_main); - Py_VISIT(traverse_module_state->__pyx_n_s_max_cap); - Py_VISIT(traverse_module_state->__pyx_n_s_metaclass); - Py_VISIT(traverse_module_state->__pyx_n_s_min_cap); - Py_VISIT(traverse_module_state->__pyx_kp_s_misspositioned_inner_node); - Py_VISIT(traverse_module_state->__pyx_n_s_module); - Py_VISIT(traverse_module_state->__pyx_n_s_mro_entries); - Py_VISIT(traverse_module_state->__pyx_n_s_n); - Py_VISIT(traverse_module_state->__pyx_n_s_name); - Py_VISIT(traverse_module_state->__pyx_n_s_new); - Py_VISIT(traverse_module_state->__pyx_n_s_next); - Py_VISIT(traverse_module_state->__pyx_n_s_nid); - Py_VISIT(traverse_module_state->__pyx_kp_s_no_default___reduce___due_to_non); - Py_VISIT(traverse_module_state->__pyx_kp_s_no_parent_entry_holds_the_child); - Py_VISIT(traverse_module_state->__pyx_n_s_node); - Py_VISIT(traverse_module_state->__pyx_n_s_node_record_child); - Py_VISIT(traverse_module_state->__pyx_n_s_node_record_leaf); - Py_VISIT(traverse_module_state->__pyx_kp_s_node_shape_ellipse); - Py_VISIT(traverse_module_state->__pyx_n_s_nodedepht); - Py_VISIT(traverse_module_state->__pyx_kp_s_non_leaf_node_has_invalid_number); - Py_VISIT(traverse_module_state->__pyx_n_s_parent); - Py_VISIT(traverse_module_state->__pyx_n_s_pickle); - Py_VISIT(traverse_module_state->__pyx_n_s_point); - Py_VISIT(traverse_module_state->__pyx_n_s_pop); - Py_VISIT(traverse_module_state->__pyx_n_s_prepare); - Py_VISIT(traverse_module_state->__pyx_n_s_pyx_PickleError); - Py_VISIT(traverse_module_state->__pyx_n_s_pyx_checksum); - Py_VISIT(traverse_module_state->__pyx_n_s_pyx_result); - Py_VISIT(traverse_module_state->__pyx_n_s_pyx_state); - Py_VISIT(traverse_module_state->__pyx_n_s_pyx_type); - Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_RTreeInfo); - Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle__ChildRecord); - Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle__Record); - Py_VISIT(traverse_module_state->__pyx_n_s_pyx_vtable); - Py_VISIT(traverse_module_state->__pyx_n_s_qualname); - Py_VISIT(traverse_module_state->__pyx_n_s_range); - Py_VISIT(traverse_module_state->__pyx_n_s_rec); - Py_VISIT(traverse_module_state->__pyx_n_s_record); - Py_VISIT(traverse_module_state->__pyx_n_s_reduce); - Py_VISIT(traverse_module_state->__pyx_n_s_reduce_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_reduce_ex); - Py_VISIT(traverse_module_state->__pyx_n_s_remove); - Py_VISIT(traverse_module_state->__pyx_n_s_result); - Py_VISIT(traverse_module_state->__pyx_n_s_ret); - Py_VISIT(traverse_module_state->__pyx_n_s_rid); - Py_VISIT(traverse_module_state->__pyx_kp_s_root_must_have_at_least_2_record); - Py_VISIT(traverse_module_state->__pyx_n_s_rtree); - Py_VISIT(traverse_module_state->__pyx_n_s_search); - Py_VISIT(traverse_module_state->__pyx_n_s_search_surrounding); - Py_VISIT(traverse_module_state->__pyx_n_s_self); - Py_VISIT(traverse_module_state->__pyx_n_s_set_name); - Py_VISIT(traverse_module_state->__pyx_n_s_setstate); - Py_VISIT(traverse_module_state->__pyx_n_s_setstate_cython); - Py_VISIT(traverse_module_state->__pyx_n_s_spec); - Py_VISIT(traverse_module_state->__pyx_n_s_state); - Py_VISIT(traverse_module_state->__pyx_kp_s_stringsource); - Py_VISIT(traverse_module_state->__pyx_n_s_super); - Py_VISIT(traverse_module_state->__pyx_n_s_test); - Py_VISIT(traverse_module_state->__pyx_n_s_tinyr); - Py_VISIT(traverse_module_state->__pyx_n_u_tinyr); - Py_VISIT(traverse_module_state->__pyx_kp_s_tinyr_tinyr_pyx); - Py_VISIT(traverse_module_state->__pyx_n_s_tmp_coords); - Py_VISIT(traverse_module_state->__pyx_n_s_to_dot); - Py_VISIT(traverse_module_state->__pyx_n_s_update); - Py_VISIT(traverse_module_state->__pyx_n_s_use_setstate); - Py_VISIT(traverse_module_state->__pyx_n_s_valid); - Py_VISIT(traverse_module_state->__pyx_n_s_write); - Py_VISIT(traverse_module_state->__pyx_kp_s_wrong_combined_area_of_records_o); - Py_VISIT(traverse_module_state->__pyx_float_2_); - Py_VISIT(traverse_module_state->__pyx_int_0); - Py_VISIT(traverse_module_state->__pyx_int_2); - Py_VISIT(traverse_module_state->__pyx_int_5); - Py_VISIT(traverse_module_state->__pyx_int_68185080); - Py_VISIT(traverse_module_state->__pyx_int_161691044); - Py_VISIT(traverse_module_state->__pyx_int_165148252); - Py_VISIT(traverse_module_state->__pyx_int_178991788); - Py_VISIT(traverse_module_state->__pyx_int_212777770); - Py_VISIT(traverse_module_state->__pyx_int_224798404); - Py_VISIT(traverse_module_state->__pyx_int_225422942); - Py_VISIT(traverse_module_state->__pyx_int_229190861); - Py_VISIT(traverse_module_state->__pyx_int_263305410); - Py_VISIT(traverse_module_state->__pyx_tuple_); - Py_VISIT(traverse_module_state->__pyx_tuple__2); - Py_VISIT(traverse_module_state->__pyx_tuple__3); - Py_VISIT(traverse_module_state->__pyx_tuple__6); - Py_VISIT(traverse_module_state->__pyx_tuple__8); - Py_VISIT(traverse_module_state->__pyx_tuple__9); - Py_VISIT(traverse_module_state->__pyx_tuple__11); - Py_VISIT(traverse_module_state->__pyx_tuple__13); - Py_VISIT(traverse_module_state->__pyx_tuple__17); - Py_VISIT(traverse_module_state->__pyx_tuple__26); - Py_VISIT(traverse_module_state->__pyx_tuple__28); - Py_VISIT(traverse_module_state->__pyx_tuple__30); - Py_VISIT(traverse_module_state->__pyx_tuple__32); - Py_VISIT(traverse_module_state->__pyx_tuple__34); - Py_VISIT(traverse_module_state->__pyx_tuple__36); - Py_VISIT(traverse_module_state->__pyx_tuple__57); - Py_VISIT(traverse_module_state->__pyx_tuple__61); - Py_VISIT(traverse_module_state->__pyx_codeobj__12); - Py_VISIT(traverse_module_state->__pyx_codeobj__14); - Py_VISIT(traverse_module_state->__pyx_codeobj__15); - Py_VISIT(traverse_module_state->__pyx_codeobj__16); - Py_VISIT(traverse_module_state->__pyx_codeobj__18); - Py_VISIT(traverse_module_state->__pyx_codeobj__19); - Py_VISIT(traverse_module_state->__pyx_codeobj__20); - Py_VISIT(traverse_module_state->__pyx_codeobj__21); - Py_VISIT(traverse_module_state->__pyx_codeobj__22); - Py_VISIT(traverse_module_state->__pyx_codeobj__23); - Py_VISIT(traverse_module_state->__pyx_codeobj__24); - Py_VISIT(traverse_module_state->__pyx_codeobj__25); - Py_VISIT(traverse_module_state->__pyx_codeobj__27); - Py_VISIT(traverse_module_state->__pyx_codeobj__29); - Py_VISIT(traverse_module_state->__pyx_codeobj__31); - Py_VISIT(traverse_module_state->__pyx_codeobj__33); - Py_VISIT(traverse_module_state->__pyx_codeobj__35); - Py_VISIT(traverse_module_state->__pyx_codeobj__37); - Py_VISIT(traverse_module_state->__pyx_codeobj__38); - Py_VISIT(traverse_module_state->__pyx_codeobj__39); - Py_VISIT(traverse_module_state->__pyx_codeobj__40); - Py_VISIT(traverse_module_state->__pyx_codeobj__41); - Py_VISIT(traverse_module_state->__pyx_codeobj__42); - Py_VISIT(traverse_module_state->__pyx_codeobj__43); - Py_VISIT(traverse_module_state->__pyx_codeobj__44); - Py_VISIT(traverse_module_state->__pyx_codeobj__45); - Py_VISIT(traverse_module_state->__pyx_codeobj__46); - Py_VISIT(traverse_module_state->__pyx_codeobj__47); - Py_VISIT(traverse_module_state->__pyx_codeobj__48); - Py_VISIT(traverse_module_state->__pyx_codeobj__49); - Py_VISIT(traverse_module_state->__pyx_codeobj__50); - Py_VISIT(traverse_module_state->__pyx_codeobj__51); - Py_VISIT(traverse_module_state->__pyx_codeobj__52); - Py_VISIT(traverse_module_state->__pyx_codeobj__53); - Py_VISIT(traverse_module_state->__pyx_codeobj__54); - Py_VISIT(traverse_module_state->__pyx_codeobj__55); - Py_VISIT(traverse_module_state->__pyx_codeobj__56); - Py_VISIT(traverse_module_state->__pyx_codeobj__58); - Py_VISIT(traverse_module_state->__pyx_codeobj__59); - Py_VISIT(traverse_module_state->__pyx_codeobj__60); - Py_VISIT(traverse_module_state->__pyx_codeobj__62); - Py_VISIT(traverse_module_state->__pyx_codeobj__63); - Py_VISIT(traverse_module_state->__pyx_codeobj__64); - return 0; -} -#endif -/* #### Code section: module_state_defines ### */ -#define __pyx_d __pyx_mstate_global->__pyx_d -#define __pyx_b __pyx_mstate_global->__pyx_b -#define __pyx_cython_runtime __pyx_mstate_global->__pyx_cython_runtime -#define __pyx_empty_tuple __pyx_mstate_global->__pyx_empty_tuple -#define __pyx_empty_bytes __pyx_mstate_global->__pyx_empty_bytes -#define __pyx_empty_unicode __pyx_mstate_global->__pyx_empty_unicode -#ifdef __Pyx_CyFunction_USED -#define __pyx_CyFunctionType __pyx_mstate_global->__pyx_CyFunctionType -#endif -#ifdef __Pyx_FusedFunction_USED -#define __pyx_FusedFunctionType __pyx_mstate_global->__pyx_FusedFunctionType -#endif -#ifdef __Pyx_Generator_USED -#define __pyx_GeneratorType __pyx_mstate_global->__pyx_GeneratorType -#endif -#ifdef __Pyx_IterableCoroutine_USED -#define __pyx_IterableCoroutineType __pyx_mstate_global->__pyx_IterableCoroutineType -#endif -#ifdef __Pyx_Coroutine_USED -#define __pyx_CoroutineAwaitType __pyx_mstate_global->__pyx_CoroutineAwaitType -#endif -#ifdef __Pyx_Coroutine_USED -#define __pyx_CoroutineType __pyx_mstate_global->__pyx_CoroutineType -#endif -#if CYTHON_USE_MODULE_STATE -#endif -#if CYTHON_USE_MODULE_STATE -#define __pyx_type_5tinyr__Record __pyx_mstate_global->__pyx_type_5tinyr__Record -#define __pyx_type_5tinyr__ChildRecord __pyx_mstate_global->__pyx_type_5tinyr__ChildRecord -#define __pyx_type_5tinyr__InnerRecord __pyx_mstate_global->__pyx_type_5tinyr__InnerRecord -#define __pyx_type_5tinyr__Node __pyx_mstate_global->__pyx_type_5tinyr__Node -#define __pyx_type_5tinyr_RTree __pyx_mstate_global->__pyx_type_5tinyr_RTree -#define __pyx_type_5tinyr__Iterator __pyx_mstate_global->__pyx_type_5tinyr__Iterator -#define __pyx_type_5tinyr__ChildRecordIter __pyx_mstate_global->__pyx_type_5tinyr__ChildRecordIter -#define __pyx_type_5tinyr__KVIIter __pyx_mstate_global->__pyx_type_5tinyr__KVIIter -#define __pyx_type_5tinyr__KeysIter __pyx_mstate_global->__pyx_type_5tinyr__KeysIter -#define __pyx_type_5tinyr__ValuesIter __pyx_mstate_global->__pyx_type_5tinyr__ValuesIter -#define __pyx_type_5tinyr__ItemsIter __pyx_mstate_global->__pyx_type_5tinyr__ItemsIter -#define __pyx_type_5tinyr__NodeIter __pyx_mstate_global->__pyx_type_5tinyr__NodeIter -#define __pyx_type_5tinyr__RectangleIter __pyx_mstate_global->__pyx_type_5tinyr__RectangleIter -#define __pyx_type_5tinyr_RTreeInfo __pyx_mstate_global->__pyx_type_5tinyr_RTreeInfo -#endif -#define __pyx_ptype_5tinyr__Record __pyx_mstate_global->__pyx_ptype_5tinyr__Record -#define __pyx_ptype_5tinyr__ChildRecord __pyx_mstate_global->__pyx_ptype_5tinyr__ChildRecord -#define __pyx_ptype_5tinyr__InnerRecord __pyx_mstate_global->__pyx_ptype_5tinyr__InnerRecord -#define __pyx_ptype_5tinyr__Node __pyx_mstate_global->__pyx_ptype_5tinyr__Node -#define __pyx_ptype_5tinyr_RTree __pyx_mstate_global->__pyx_ptype_5tinyr_RTree -#define __pyx_ptype_5tinyr__Iterator __pyx_mstate_global->__pyx_ptype_5tinyr__Iterator -#define __pyx_ptype_5tinyr__ChildRecordIter __pyx_mstate_global->__pyx_ptype_5tinyr__ChildRecordIter -#define __pyx_ptype_5tinyr__KVIIter __pyx_mstate_global->__pyx_ptype_5tinyr__KVIIter -#define __pyx_ptype_5tinyr__KeysIter __pyx_mstate_global->__pyx_ptype_5tinyr__KeysIter -#define __pyx_ptype_5tinyr__ValuesIter __pyx_mstate_global->__pyx_ptype_5tinyr__ValuesIter -#define __pyx_ptype_5tinyr__ItemsIter __pyx_mstate_global->__pyx_ptype_5tinyr__ItemsIter -#define __pyx_ptype_5tinyr__NodeIter __pyx_mstate_global->__pyx_ptype_5tinyr__NodeIter -#define __pyx_ptype_5tinyr__RectangleIter __pyx_mstate_global->__pyx_ptype_5tinyr__RectangleIter -#define __pyx_ptype_5tinyr_RTreeInfo __pyx_mstate_global->__pyx_ptype_5tinyr_RTreeInfo -#define __pyx_n_s_AssertionError __pyx_mstate_global->__pyx_n_s_AssertionError -#define __pyx_n_s_AttributeError __pyx_mstate_global->__pyx_n_s_AttributeError -#define __pyx_n_s_ChildRecord __pyx_mstate_global->__pyx_n_s_ChildRecord -#define __pyx_n_s_ChildRecordIter __pyx_mstate_global->__pyx_n_s_ChildRecordIter -#define __pyx_n_s_ChildRecordIter___reduce_cython __pyx_mstate_global->__pyx_n_s_ChildRecordIter___reduce_cython -#define __pyx_n_s_ChildRecordIter___setstate_cyth __pyx_mstate_global->__pyx_n_s_ChildRecordIter___setstate_cyth -#define __pyx_n_s_ChildRecord___reduce_cython __pyx_mstate_global->__pyx_n_s_ChildRecord___reduce_cython -#define __pyx_n_s_ChildRecord___setstate_cython __pyx_mstate_global->__pyx_n_s_ChildRecord___setstate_cython -#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0 -#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2 -#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3 -#define __pyx_n_s_IndexError __pyx_mstate_global->__pyx_n_s_IndexError -#define __pyx_n_s_InnerRecord __pyx_mstate_global->__pyx_n_s_InnerRecord -#define __pyx_n_s_InnerRecord___reduce_cython __pyx_mstate_global->__pyx_n_s_InnerRecord___reduce_cython -#define __pyx_n_s_InnerRecord___setstate_cython __pyx_mstate_global->__pyx_n_s_InnerRecord___setstate_cython -#define __pyx_n_s_ItemsIter __pyx_mstate_global->__pyx_n_s_ItemsIter -#define __pyx_n_s_ItemsIter___reduce_cython __pyx_mstate_global->__pyx_n_s_ItemsIter___reduce_cython -#define __pyx_n_s_ItemsIter___setstate_cython __pyx_mstate_global->__pyx_n_s_ItemsIter___setstate_cython -#define __pyx_n_s_Iterator __pyx_mstate_global->__pyx_n_s_Iterator -#define __pyx_n_s_Iterator___reduce_cython __pyx_mstate_global->__pyx_n_s_Iterator___reduce_cython -#define __pyx_n_s_Iterator___setstate_cython __pyx_mstate_global->__pyx_n_s_Iterator___setstate_cython -#define __pyx_n_s_KVIIter __pyx_mstate_global->__pyx_n_s_KVIIter -#define __pyx_n_s_KVIIter___reduce_cython __pyx_mstate_global->__pyx_n_s_KVIIter___reduce_cython -#define __pyx_n_s_KVIIter___setstate_cython __pyx_mstate_global->__pyx_n_s_KVIIter___setstate_cython -#define __pyx_n_s_KeyError __pyx_mstate_global->__pyx_n_s_KeyError -#define __pyx_n_s_KeysIter __pyx_mstate_global->__pyx_n_s_KeysIter -#define __pyx_n_s_KeysIter___reduce_cython __pyx_mstate_global->__pyx_n_s_KeysIter___reduce_cython -#define __pyx_n_s_KeysIter___setstate_cython __pyx_mstate_global->__pyx_n_s_KeysIter___setstate_cython -#define __pyx_n_s_L __pyx_mstate_global->__pyx_n_s_L -#define __pyx_n_s_Node __pyx_mstate_global->__pyx_n_s_Node -#define __pyx_n_s_NodeIter __pyx_mstate_global->__pyx_n_s_NodeIter -#define __pyx_n_s_NodeIter___reduce_cython __pyx_mstate_global->__pyx_n_s_NodeIter___reduce_cython -#define __pyx_n_s_NodeIter___setstate_cython __pyx_mstate_global->__pyx_n_s_NodeIter___setstate_cython -#define __pyx_n_s_Node___reduce_cython __pyx_mstate_global->__pyx_n_s_Node___reduce_cython -#define __pyx_n_s_Node___setstate_cython __pyx_mstate_global->__pyx_n_s_Node___setstate_cython -#define __pyx_n_s_NotImplemented __pyx_mstate_global->__pyx_n_s_NotImplemented -#define __pyx_n_s_OverflowError __pyx_mstate_global->__pyx_n_s_OverflowError -#define __pyx_n_s_PickleError __pyx_mstate_global->__pyx_n_s_PickleError -#define __pyx_n_s_RTree __pyx_mstate_global->__pyx_n_s_RTree -#define __pyx_n_s_RTreeInfo __pyx_mstate_global->__pyx_n_s_RTreeInfo -#define __pyx_n_s_RTreeInfo___reduce_cython __pyx_mstate_global->__pyx_n_s_RTreeInfo___reduce_cython -#define __pyx_n_s_RTreeInfo___setstate_cython __pyx_mstate_global->__pyx_n_s_RTreeInfo___setstate_cython -#define __pyx_n_s_RTreeInfo_iter_rectangles __pyx_mstate_global->__pyx_n_s_RTreeInfo_iter_rectangles -#define __pyx_n_s_RTreeInfo_to_dot __pyx_mstate_global->__pyx_n_s_RTreeInfo_to_dot -#define __pyx_n_s_RTreeInvalid __pyx_mstate_global->__pyx_n_s_RTreeInvalid -#define __pyx_n_s_RTree___reduce_cython __pyx_mstate_global->__pyx_n_s_RTree___reduce_cython -#define __pyx_n_s_RTree___setstate_cython __pyx_mstate_global->__pyx_n_s_RTree___setstate_cython -#define __pyx_n_s_RTree_copy __pyx_mstate_global->__pyx_n_s_RTree_copy -#define __pyx_n_s_RTree_get_info __pyx_mstate_global->__pyx_n_s_RTree_get_info -#define __pyx_n_s_RTree_insert __pyx_mstate_global->__pyx_n_s_RTree_insert -#define __pyx_n_s_RTree_iteritems __pyx_mstate_global->__pyx_n_s_RTree_iteritems -#define __pyx_n_s_RTree_iterkeys __pyx_mstate_global->__pyx_n_s_RTree_iterkeys -#define __pyx_n_s_RTree_itervalues __pyx_mstate_global->__pyx_n_s_RTree_itervalues -#define __pyx_n_s_RTree_remove __pyx_mstate_global->__pyx_n_s_RTree_remove -#define __pyx_n_s_RTree_search __pyx_mstate_global->__pyx_n_s_RTree_search -#define __pyx_n_s_RTree_search_surrounding __pyx_mstate_global->__pyx_n_s_RTree_search_surrounding -#define __pyx_n_s_RTree_valid __pyx_mstate_global->__pyx_n_s_RTree_valid -#define __pyx_n_s_Record __pyx_mstate_global->__pyx_n_s_Record -#define __pyx_n_s_Record___reduce_cython __pyx_mstate_global->__pyx_n_s_Record___reduce_cython -#define __pyx_n_s_Record___setstate_cython __pyx_mstate_global->__pyx_n_s_Record___setstate_cython -#define __pyx_n_s_RectangleIter __pyx_mstate_global->__pyx_n_s_RectangleIter -#define __pyx_n_s_RectangleIter___reduce_cython __pyx_mstate_global->__pyx_n_s_RectangleIter___reduce_cython -#define __pyx_n_s_RectangleIter___setstate_cython __pyx_mstate_global->__pyx_n_s_RectangleIter___setstate_cython -#define __pyx_n_s_StopIteration __pyx_mstate_global->__pyx_n_s_StopIteration -#define __pyx_kp_s_TD_PORT_d_CELLSPACING_0_d_TD __pyx_mstate_global->__pyx_kp_s_TD_PORT_d_CELLSPACING_0_d_TD -#define __pyx_kp_s_TR_TABLE __pyx_mstate_global->__pyx_kp_s_TR_TABLE -#define __pyx_n_s_TypeError __pyx_mstate_global->__pyx_n_s_TypeError -#define __pyx_n_s_ValueError __pyx_mstate_global->__pyx_n_s_ValueError -#define __pyx_n_s_ValuesIter __pyx_mstate_global->__pyx_n_s_ValuesIter -#define __pyx_n_s_ValuesIter___reduce_cython __pyx_mstate_global->__pyx_n_s_ValuesIter___reduce_cython -#define __pyx_n_s_ValuesIter___setstate_cython __pyx_mstate_global->__pyx_n_s_ValuesIter___setstate_cython -#define __pyx_n_s__10 __pyx_mstate_global->__pyx_n_s__10 -#define __pyx_kp_s__4 __pyx_mstate_global->__pyx_kp_s__4 -#define __pyx_kp_s__5 __pyx_mstate_global->__pyx_kp_s__5 -#define __pyx_n_s__65 __pyx_mstate_global->__pyx_n_s__65 -#define __pyx_kp_u__7 __pyx_mstate_global->__pyx_kp_u__7 -#define __pyx_n_s_asyncio_coroutines __pyx_mstate_global->__pyx_n_s_asyncio_coroutines -#define __pyx_n_s_chid __pyx_mstate_global->__pyx_n_s_chid -#define __pyx_n_s_child __pyx_mstate_global->__pyx_n_s_child -#define __pyx_n_s_class __pyx_mstate_global->__pyx_n_s_class -#define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback -#define __pyx_n_s_combinations __pyx_mstate_global->__pyx_n_s_combinations -#define __pyx_kp_s_coordinates_as_list_or_tuple_exp __pyx_mstate_global->__pyx_kp_s_coordinates_as_list_or_tuple_exp -#define __pyx_n_s_coords __pyx_mstate_global->__pyx_n_s_coords -#define __pyx_n_s_coords_a __pyx_mstate_global->__pyx_n_s_coords_a -#define __pyx_n_s_copy __pyx_mstate_global->__pyx_n_s_copy -#define __pyx_n_s_cr __pyx_mstate_global->__pyx_n_s_cr -#define __pyx_kp_s_d __pyx_mstate_global->__pyx_kp_s_d -#define __pyx_n_s_d_2 __pyx_mstate_global->__pyx_n_s_d_2 -#define __pyx_kp_s_d_d_tailport_d_s __pyx_mstate_global->__pyx_kp_s_d_d_tailport_d_s -#define __pyx_kp_s_d_label_TABLE_BORDER_0_CELLBORD __pyx_mstate_global->__pyx_kp_s_d_label_TABLE_BORDER_0_CELLBORD -#define __pyx_n_s_depth __pyx_mstate_global->__pyx_n_s_depth -#define __pyx_n_s_dict __pyx_mstate_global->__pyx_n_s_dict -#define __pyx_n_s_dict_2 __pyx_mstate_global->__pyx_n_s_dict_2 -#define __pyx_kp_s_digraph_RTree_node_shape_none __pyx_mstate_global->__pyx_kp_s_digraph_RTree_node_shape_none -#define __pyx_kp_u_disable __pyx_mstate_global->__pyx_kp_u_disable -#define __pyx_n_s_doc __pyx_mstate_global->__pyx_n_s_doc -#define __pyx_kp_s_double_link_doesn_t_cover_itself __pyx_mstate_global->__pyx_kp_s_double_link_doesn_t_cover_itself -#define __pyx_kp_u_enable __pyx_mstate_global->__pyx_kp_u_enable -#define __pyx_n_s_enumerate __pyx_mstate_global->__pyx_n_s_enumerate -#define __pyx_n_s_filelike __pyx_mstate_global->__pyx_n_s_filelike -#define __pyx_kp_s_for_min_max_capacities_it_s_requ __pyx_mstate_global->__pyx_kp_s_for_min_max_capacities_it_s_requ -#define __pyx_kp_u_gc __pyx_mstate_global->__pyx_kp_u_gc -#define __pyx_n_s_get_info __pyx_mstate_global->__pyx_n_s_get_info -#define __pyx_n_s_getstate __pyx_mstate_global->__pyx_n_s_getstate -#define __pyx_n_s_id __pyx_mstate_global->__pyx_n_s_id -#define __pyx_n_s_identifier __pyx_mstate_global->__pyx_n_s_identifier -#define __pyx_n_s_import __pyx_mstate_global->__pyx_n_s_import -#define __pyx_kp_s_inconsistent_item_count_d_d __pyx_mstate_global->__pyx_kp_s_inconsistent_item_count_d_d -#define __pyx_kp_s_inconsistent_node_depth_d_d __pyx_mstate_global->__pyx_kp_s_inconsistent_node_depth_d_d -#define __pyx_kp_s_indexing_RTree_only_possible_wit __pyx_mstate_global->__pyx_kp_s_indexing_RTree_only_possible_wit -#define __pyx_n_s_init_subclass __pyx_mstate_global->__pyx_n_s_init_subclass -#define __pyx_n_s_initializing __pyx_mstate_global->__pyx_n_s_initializing -#define __pyx_n_s_insert __pyx_mstate_global->__pyx_n_s_insert -#define __pyx_n_s_interleaved __pyx_mstate_global->__pyx_n_s_interleaved -#define __pyx_n_s_ir __pyx_mstate_global->__pyx_n_s_ir -#define __pyx_n_s_is_coroutine __pyx_mstate_global->__pyx_n_s_is_coroutine -#define __pyx_kp_u_isenabled __pyx_mstate_global->__pyx_kp_u_isenabled -#define __pyx_n_s_item_count __pyx_mstate_global->__pyx_n_s_item_count -#define __pyx_n_s_iter_rectangles __pyx_mstate_global->__pyx_n_s_iter_rectangles -#define __pyx_n_s_iteritems __pyx_mstate_global->__pyx_n_s_iteritems -#define __pyx_n_s_iterkeys __pyx_mstate_global->__pyx_n_s_iterkeys -#define __pyx_n_s_itertools __pyx_mstate_global->__pyx_n_s_itertools -#define __pyx_n_s_itervalues __pyx_mstate_global->__pyx_n_s_itervalues -#define __pyx_n_s_key __pyx_mstate_global->__pyx_n_s_key -#define __pyx_n_s_leaf __pyx_mstate_global->__pyx_n_s_leaf -#define __pyx_kp_s_leaf_level_is_not_equal_for_all __pyx_mstate_global->__pyx_kp_s_leaf_level_is_not_equal_for_all -#define __pyx_n_s_leafnodes __pyx_mstate_global->__pyx_n_s_leafnodes -#define __pyx_n_s_leafnodes_and_depth __pyx_mstate_global->__pyx_n_s_leafnodes_and_depth -#define __pyx_kp_s_len_coords_must_be_4_len_is_d __pyx_mstate_global->__pyx_kp_s_len_coords_must_be_4_len_is_d -#define __pyx_kp_s_len_coords_must_be_4_length_is_d __pyx_mstate_global->__pyx_kp_s_len_coords_must_be_4_length_is_d -#define __pyx_kp_s_len_point_must_be_2_len_is_d __pyx_mstate_global->__pyx_kp_s_len_point_must_be_2_len_is_d -#define __pyx_n_s_level __pyx_mstate_global->__pyx_n_s_level -#define __pyx_n_s_lid __pyx_mstate_global->__pyx_n_s_lid -#define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main -#define __pyx_n_s_max_cap __pyx_mstate_global->__pyx_n_s_max_cap -#define __pyx_n_s_metaclass __pyx_mstate_global->__pyx_n_s_metaclass -#define __pyx_n_s_min_cap __pyx_mstate_global->__pyx_n_s_min_cap -#define __pyx_kp_s_misspositioned_inner_node __pyx_mstate_global->__pyx_kp_s_misspositioned_inner_node -#define __pyx_n_s_module __pyx_mstate_global->__pyx_n_s_module -#define __pyx_n_s_mro_entries __pyx_mstate_global->__pyx_n_s_mro_entries -#define __pyx_n_s_n __pyx_mstate_global->__pyx_n_s_n -#define __pyx_n_s_name __pyx_mstate_global->__pyx_n_s_name -#define __pyx_n_s_new __pyx_mstate_global->__pyx_n_s_new -#define __pyx_n_s_next __pyx_mstate_global->__pyx_n_s_next -#define __pyx_n_s_nid __pyx_mstate_global->__pyx_n_s_nid -#define __pyx_kp_s_no_default___reduce___due_to_non __pyx_mstate_global->__pyx_kp_s_no_default___reduce___due_to_non -#define __pyx_kp_s_no_parent_entry_holds_the_child __pyx_mstate_global->__pyx_kp_s_no_parent_entry_holds_the_child -#define __pyx_n_s_node __pyx_mstate_global->__pyx_n_s_node -#define __pyx_n_s_node_record_child __pyx_mstate_global->__pyx_n_s_node_record_child -#define __pyx_n_s_node_record_leaf __pyx_mstate_global->__pyx_n_s_node_record_leaf -#define __pyx_kp_s_node_shape_ellipse __pyx_mstate_global->__pyx_kp_s_node_shape_ellipse -#define __pyx_n_s_nodedepht __pyx_mstate_global->__pyx_n_s_nodedepht -#define __pyx_kp_s_non_leaf_node_has_invalid_number __pyx_mstate_global->__pyx_kp_s_non_leaf_node_has_invalid_number -#define __pyx_n_s_parent __pyx_mstate_global->__pyx_n_s_parent -#define __pyx_n_s_pickle __pyx_mstate_global->__pyx_n_s_pickle -#define __pyx_n_s_point __pyx_mstate_global->__pyx_n_s_point -#define __pyx_n_s_pop __pyx_mstate_global->__pyx_n_s_pop -#define __pyx_n_s_prepare __pyx_mstate_global->__pyx_n_s_prepare -#define __pyx_n_s_pyx_PickleError __pyx_mstate_global->__pyx_n_s_pyx_PickleError -#define __pyx_n_s_pyx_checksum __pyx_mstate_global->__pyx_n_s_pyx_checksum -#define __pyx_n_s_pyx_result __pyx_mstate_global->__pyx_n_s_pyx_result -#define __pyx_n_s_pyx_state __pyx_mstate_global->__pyx_n_s_pyx_state -#define __pyx_n_s_pyx_type __pyx_mstate_global->__pyx_n_s_pyx_type -#define __pyx_n_s_pyx_unpickle_RTreeInfo __pyx_mstate_global->__pyx_n_s_pyx_unpickle_RTreeInfo -#define __pyx_n_s_pyx_unpickle__ChildRecord __pyx_mstate_global->__pyx_n_s_pyx_unpickle__ChildRecord -#define __pyx_n_s_pyx_unpickle__Record __pyx_mstate_global->__pyx_n_s_pyx_unpickle__Record -#define __pyx_n_s_pyx_vtable __pyx_mstate_global->__pyx_n_s_pyx_vtable -#define __pyx_n_s_qualname __pyx_mstate_global->__pyx_n_s_qualname -#define __pyx_n_s_range __pyx_mstate_global->__pyx_n_s_range -#define __pyx_n_s_rec __pyx_mstate_global->__pyx_n_s_rec -#define __pyx_n_s_record __pyx_mstate_global->__pyx_n_s_record -#define __pyx_n_s_reduce __pyx_mstate_global->__pyx_n_s_reduce -#define __pyx_n_s_reduce_cython __pyx_mstate_global->__pyx_n_s_reduce_cython -#define __pyx_n_s_reduce_ex __pyx_mstate_global->__pyx_n_s_reduce_ex -#define __pyx_n_s_remove __pyx_mstate_global->__pyx_n_s_remove -#define __pyx_n_s_result __pyx_mstate_global->__pyx_n_s_result -#define __pyx_n_s_ret __pyx_mstate_global->__pyx_n_s_ret -#define __pyx_n_s_rid __pyx_mstate_global->__pyx_n_s_rid -#define __pyx_kp_s_root_must_have_at_least_2_record __pyx_mstate_global->__pyx_kp_s_root_must_have_at_least_2_record -#define __pyx_n_s_rtree __pyx_mstate_global->__pyx_n_s_rtree -#define __pyx_n_s_search __pyx_mstate_global->__pyx_n_s_search -#define __pyx_n_s_search_surrounding __pyx_mstate_global->__pyx_n_s_search_surrounding -#define __pyx_n_s_self __pyx_mstate_global->__pyx_n_s_self -#define __pyx_n_s_set_name __pyx_mstate_global->__pyx_n_s_set_name -#define __pyx_n_s_setstate __pyx_mstate_global->__pyx_n_s_setstate -#define __pyx_n_s_setstate_cython __pyx_mstate_global->__pyx_n_s_setstate_cython -#define __pyx_n_s_spec __pyx_mstate_global->__pyx_n_s_spec -#define __pyx_n_s_state __pyx_mstate_global->__pyx_n_s_state -#define __pyx_kp_s_stringsource __pyx_mstate_global->__pyx_kp_s_stringsource -#define __pyx_n_s_super __pyx_mstate_global->__pyx_n_s_super -#define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test -#define __pyx_n_s_tinyr __pyx_mstate_global->__pyx_n_s_tinyr -#define __pyx_n_u_tinyr __pyx_mstate_global->__pyx_n_u_tinyr -#define __pyx_kp_s_tinyr_tinyr_pyx __pyx_mstate_global->__pyx_kp_s_tinyr_tinyr_pyx -#define __pyx_n_s_tmp_coords __pyx_mstate_global->__pyx_n_s_tmp_coords -#define __pyx_n_s_to_dot __pyx_mstate_global->__pyx_n_s_to_dot -#define __pyx_n_s_update __pyx_mstate_global->__pyx_n_s_update -#define __pyx_n_s_use_setstate __pyx_mstate_global->__pyx_n_s_use_setstate -#define __pyx_n_s_valid __pyx_mstate_global->__pyx_n_s_valid -#define __pyx_n_s_write __pyx_mstate_global->__pyx_n_s_write -#define __pyx_kp_s_wrong_combined_area_of_records_o __pyx_mstate_global->__pyx_kp_s_wrong_combined_area_of_records_o -#define __pyx_float_2_ __pyx_mstate_global->__pyx_float_2_ -#define __pyx_int_0 __pyx_mstate_global->__pyx_int_0 -#define __pyx_int_2 __pyx_mstate_global->__pyx_int_2 -#define __pyx_int_5 __pyx_mstate_global->__pyx_int_5 -#define __pyx_int_68185080 __pyx_mstate_global->__pyx_int_68185080 -#define __pyx_int_161691044 __pyx_mstate_global->__pyx_int_161691044 -#define __pyx_int_165148252 __pyx_mstate_global->__pyx_int_165148252 -#define __pyx_int_178991788 __pyx_mstate_global->__pyx_int_178991788 -#define __pyx_int_212777770 __pyx_mstate_global->__pyx_int_212777770 -#define __pyx_int_224798404 __pyx_mstate_global->__pyx_int_224798404 -#define __pyx_int_225422942 __pyx_mstate_global->__pyx_int_225422942 -#define __pyx_int_229190861 __pyx_mstate_global->__pyx_int_229190861 -#define __pyx_int_263305410 __pyx_mstate_global->__pyx_int_263305410 -#define __pyx_tuple_ __pyx_mstate_global->__pyx_tuple_ -#define __pyx_tuple__2 __pyx_mstate_global->__pyx_tuple__2 -#define __pyx_tuple__3 __pyx_mstate_global->__pyx_tuple__3 -#define __pyx_tuple__6 __pyx_mstate_global->__pyx_tuple__6 -#define __pyx_tuple__8 __pyx_mstate_global->__pyx_tuple__8 -#define __pyx_tuple__9 __pyx_mstate_global->__pyx_tuple__9 -#define __pyx_tuple__11 __pyx_mstate_global->__pyx_tuple__11 -#define __pyx_tuple__13 __pyx_mstate_global->__pyx_tuple__13 -#define __pyx_tuple__17 __pyx_mstate_global->__pyx_tuple__17 -#define __pyx_tuple__26 __pyx_mstate_global->__pyx_tuple__26 -#define __pyx_tuple__28 __pyx_mstate_global->__pyx_tuple__28 -#define __pyx_tuple__30 __pyx_mstate_global->__pyx_tuple__30 -#define __pyx_tuple__32 __pyx_mstate_global->__pyx_tuple__32 -#define __pyx_tuple__34 __pyx_mstate_global->__pyx_tuple__34 -#define __pyx_tuple__36 __pyx_mstate_global->__pyx_tuple__36 -#define __pyx_tuple__57 __pyx_mstate_global->__pyx_tuple__57 -#define __pyx_tuple__61 __pyx_mstate_global->__pyx_tuple__61 -#define __pyx_codeobj__12 __pyx_mstate_global->__pyx_codeobj__12 -#define __pyx_codeobj__14 __pyx_mstate_global->__pyx_codeobj__14 -#define __pyx_codeobj__15 __pyx_mstate_global->__pyx_codeobj__15 -#define __pyx_codeobj__16 __pyx_mstate_global->__pyx_codeobj__16 -#define __pyx_codeobj__18 __pyx_mstate_global->__pyx_codeobj__18 -#define __pyx_codeobj__19 __pyx_mstate_global->__pyx_codeobj__19 -#define __pyx_codeobj__20 __pyx_mstate_global->__pyx_codeobj__20 -#define __pyx_codeobj__21 __pyx_mstate_global->__pyx_codeobj__21 -#define __pyx_codeobj__22 __pyx_mstate_global->__pyx_codeobj__22 -#define __pyx_codeobj__23 __pyx_mstate_global->__pyx_codeobj__23 -#define __pyx_codeobj__24 __pyx_mstate_global->__pyx_codeobj__24 -#define __pyx_codeobj__25 __pyx_mstate_global->__pyx_codeobj__25 -#define __pyx_codeobj__27 __pyx_mstate_global->__pyx_codeobj__27 -#define __pyx_codeobj__29 __pyx_mstate_global->__pyx_codeobj__29 -#define __pyx_codeobj__31 __pyx_mstate_global->__pyx_codeobj__31 -#define __pyx_codeobj__33 __pyx_mstate_global->__pyx_codeobj__33 -#define __pyx_codeobj__35 __pyx_mstate_global->__pyx_codeobj__35 -#define __pyx_codeobj__37 __pyx_mstate_global->__pyx_codeobj__37 -#define __pyx_codeobj__38 __pyx_mstate_global->__pyx_codeobj__38 -#define __pyx_codeobj__39 __pyx_mstate_global->__pyx_codeobj__39 -#define __pyx_codeobj__40 __pyx_mstate_global->__pyx_codeobj__40 -#define __pyx_codeobj__41 __pyx_mstate_global->__pyx_codeobj__41 -#define __pyx_codeobj__42 __pyx_mstate_global->__pyx_codeobj__42 -#define __pyx_codeobj__43 __pyx_mstate_global->__pyx_codeobj__43 -#define __pyx_codeobj__44 __pyx_mstate_global->__pyx_codeobj__44 -#define __pyx_codeobj__45 __pyx_mstate_global->__pyx_codeobj__45 -#define __pyx_codeobj__46 __pyx_mstate_global->__pyx_codeobj__46 -#define __pyx_codeobj__47 __pyx_mstate_global->__pyx_codeobj__47 -#define __pyx_codeobj__48 __pyx_mstate_global->__pyx_codeobj__48 -#define __pyx_codeobj__49 __pyx_mstate_global->__pyx_codeobj__49 -#define __pyx_codeobj__50 __pyx_mstate_global->__pyx_codeobj__50 -#define __pyx_codeobj__51 __pyx_mstate_global->__pyx_codeobj__51 -#define __pyx_codeobj__52 __pyx_mstate_global->__pyx_codeobj__52 -#define __pyx_codeobj__53 __pyx_mstate_global->__pyx_codeobj__53 -#define __pyx_codeobj__54 __pyx_mstate_global->__pyx_codeobj__54 -#define __pyx_codeobj__55 __pyx_mstate_global->__pyx_codeobj__55 -#define __pyx_codeobj__56 __pyx_mstate_global->__pyx_codeobj__56 -#define __pyx_codeobj__58 __pyx_mstate_global->__pyx_codeobj__58 -#define __pyx_codeobj__59 __pyx_mstate_global->__pyx_codeobj__59 -#define __pyx_codeobj__60 __pyx_mstate_global->__pyx_codeobj__60 -#define __pyx_codeobj__62 __pyx_mstate_global->__pyx_codeobj__62 -#define __pyx_codeobj__63 __pyx_mstate_global->__pyx_codeobj__63 -#define __pyx_codeobj__64 __pyx_mstate_global->__pyx_codeobj__64 -/* #### Code section: module_code ### */ - -/* "carray.to_py":114 - * - * @cname("__Pyx_carray_to_py___pyx_t_5tinyr_Dfloat") - * cdef inline list __Pyx_carray_to_py___pyx_t_5tinyr_Dfloat(base_type *v, Py_ssize_t length): # <<<<<<<<<<<<<< - * cdef size_t i - * cdef object value - */ - -static CYTHON_INLINE PyObject *__Pyx_carray_to_py___pyx_t_5tinyr_Dfloat(__pyx_t_5tinyr_Dfloat *__pyx_v_v, Py_ssize_t __pyx_v_length) { - size_t __pyx_v_i; - PyObject *__pyx_v_value = 0; - PyObject *__pyx_v_l = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - size_t __pyx_t_2; - size_t __pyx_t_3; - size_t __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_carray_to_py___pyx_t_5tinyr_Dfloat", 1); - - /* "carray.to_py":117 - * cdef size_t i - * cdef object value - * l = PyList_New(length) # <<<<<<<<<<<<<< - * for i in range(length): - * value = v[i] - */ - __pyx_t_1 = PyList_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_l = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "carray.to_py":118 - * cdef object value - * l = PyList_New(length) - * for i in range(length): # <<<<<<<<<<<<<< - * value = v[i] - * Py_INCREF(value) - */ - __pyx_t_2 = ((size_t)__pyx_v_length); - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "carray.to_py":119 - * l = PyList_New(length) - * for i in range(length): - * value = v[i] # <<<<<<<<<<<<<< - * Py_INCREF(value) - * PyList_SET_ITEM(l, i, value) - */ - __pyx_t_1 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; - - /* "carray.to_py":120 - * for i in range(length): - * value = v[i] - * Py_INCREF(value) # <<<<<<<<<<<<<< - * PyList_SET_ITEM(l, i, value) - * return l - */ - Py_INCREF(__pyx_v_value); - - /* "carray.to_py":121 - * value = v[i] - * Py_INCREF(value) - * PyList_SET_ITEM(l, i, value) # <<<<<<<<<<<<<< - * return l - * - */ - PyList_SET_ITEM(__pyx_v_l, __pyx_v_i, __pyx_v_value); - } - - /* "carray.to_py":122 - * Py_INCREF(value) - * PyList_SET_ITEM(l, i, value) - * return l # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_l); - __pyx_r = __pyx_v_l; - goto __pyx_L0; - - /* "carray.to_py":114 - * - * @cname("__Pyx_carray_to_py___pyx_t_5tinyr_Dfloat") - * cdef inline list __Pyx_carray_to_py___pyx_t_5tinyr_Dfloat(base_type *v, Py_ssize_t length): # <<<<<<<<<<<<<< - * cdef size_t i - * cdef object value - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_py___pyx_t_5tinyr_Dfloat", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_l); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "carray.to_py":126 - * - * @cname("__Pyx_carray_to_tuple___pyx_t_5tinyr_Dfloat") - * cdef inline tuple __Pyx_carray_to_tuple___pyx_t_5tinyr_Dfloat(base_type *v, Py_ssize_t length): # <<<<<<<<<<<<<< - * cdef size_t i - * cdef object value - */ - -static CYTHON_INLINE PyObject *__Pyx_carray_to_tuple___pyx_t_5tinyr_Dfloat(__pyx_t_5tinyr_Dfloat *__pyx_v_v, Py_ssize_t __pyx_v_length) { - size_t __pyx_v_i; - PyObject *__pyx_v_value = 0; - PyObject *__pyx_v_t = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - size_t __pyx_t_2; - size_t __pyx_t_3; - size_t __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_carray_to_tuple___pyx_t_5tinyr_Dfloat", 1); - - /* "carray.to_py":129 - * cdef size_t i - * cdef object value - * t = PyTuple_New(length) # <<<<<<<<<<<<<< - * for i in range(length): - * value = v[i] - */ - __pyx_t_1 = PyTuple_New(__pyx_v_length); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_t = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "carray.to_py":130 - * cdef object value - * t = PyTuple_New(length) - * for i in range(length): # <<<<<<<<<<<<<< - * value = v[i] - * Py_INCREF(value) - */ - __pyx_t_2 = ((size_t)__pyx_v_length); - __pyx_t_3 = __pyx_t_2; - for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { - __pyx_v_i = __pyx_t_4; - - /* "carray.to_py":131 - * t = PyTuple_New(length) - * for i in range(length): - * value = v[i] # <<<<<<<<<<<<<< - * Py_INCREF(value) - * PyTuple_SET_ITEM(t, i, value) - */ - __pyx_t_1 = PyFloat_FromDouble((__pyx_v_v[__pyx_v_i])); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 131, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); - __pyx_t_1 = 0; - - /* "carray.to_py":132 - * for i in range(length): - * value = v[i] - * Py_INCREF(value) # <<<<<<<<<<<<<< - * PyTuple_SET_ITEM(t, i, value) - * return t - */ - Py_INCREF(__pyx_v_value); - - /* "carray.to_py":133 - * value = v[i] - * Py_INCREF(value) - * PyTuple_SET_ITEM(t, i, value) # <<<<<<<<<<<<<< - * return t - */ - PyTuple_SET_ITEM(__pyx_v_t, __pyx_v_i, __pyx_v_value); - } - - /* "carray.to_py":134 - * Py_INCREF(value) - * PyTuple_SET_ITEM(t, i, value) - * return t # <<<<<<<<<<<<<< - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_t); - __pyx_r = __pyx_v_t; - goto __pyx_L0; - - /* "carray.to_py":126 - * - * @cname("__Pyx_carray_to_tuple___pyx_t_5tinyr_Dfloat") - * cdef inline tuple __Pyx_carray_to_tuple___pyx_t_5tinyr_Dfloat(base_type *v, Py_ssize_t length): # <<<<<<<<<<<<<< - * cdef size_t i - * cdef object value - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("carray.to_py.__Pyx_carray_to_tuple___pyx_t_5tinyr_Dfloat", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_value); - __Pyx_XDECREF(__pyx_v_t); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "carray.from_py":79 - * - * @cname("__Pyx_carray_from_py___pyx_t_5tinyr_Dfloat") - * cdef int __Pyx_carray_from_py___pyx_t_5tinyr_Dfloat(object o, base_type *v, Py_ssize_t length) except -1: # <<<<<<<<<<<<<< - * cdef Py_ssize_t i = length - * try: - */ - -static int __Pyx_carray_from_py___pyx_t_5tinyr_Dfloat(PyObject *__pyx_v_o, __pyx_t_5tinyr_Dfloat *__pyx_v_v, Py_ssize_t __pyx_v_length) { - Py_ssize_t __pyx_v_i; - PyObject *__pyx_v_item = NULL; - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - Py_ssize_t __pyx_t_4; - int __pyx_t_5; - int __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - Py_ssize_t __pyx_t_8; - PyObject *(*__pyx_t_9)(PyObject *); - PyObject *__pyx_t_10 = NULL; - __pyx_t_5tinyr_Dfloat __pyx_t_11; - char const *__pyx_t_12; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_carray_from_py___pyx_t_5tinyr_Dfloat", 1); - - /* "carray.from_py":80 - * @cname("__Pyx_carray_from_py___pyx_t_5tinyr_Dfloat") - * cdef int __Pyx_carray_from_py___pyx_t_5tinyr_Dfloat(object o, base_type *v, Py_ssize_t length) except -1: - * cdef Py_ssize_t i = length # <<<<<<<<<<<<<< - * try: - * i = len(o) - */ - __pyx_v_i = __pyx_v_length; - - /* "carray.from_py":81 - * cdef int __Pyx_carray_from_py___pyx_t_5tinyr_Dfloat(object o, base_type *v, Py_ssize_t length) except -1: - * cdef Py_ssize_t i = length - * try: # <<<<<<<<<<<<<< - * i = len(o) - * except (TypeError, OverflowError): - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - - /* "carray.from_py":82 - * cdef Py_ssize_t i = length - * try: - * i = len(o) # <<<<<<<<<<<<<< - * except (TypeError, OverflowError): - * pass - */ - __pyx_t_4 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 82, __pyx_L3_error) - __pyx_v_i = __pyx_t_4; - - /* "carray.from_py":81 - * cdef int __Pyx_carray_from_py___pyx_t_5tinyr_Dfloat(object o, base_type *v, Py_ssize_t length) except -1: - * cdef Py_ssize_t i = length - * try: # <<<<<<<<<<<<<< - * i = len(o) - * except (TypeError, OverflowError): - */ - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L8_try_end; - __pyx_L3_error:; - - /* "carray.from_py":83 - * try: - * i = len(o) - * except (TypeError, OverflowError): # <<<<<<<<<<<<<< - * pass - * if i == length: - */ - __pyx_t_5 = __Pyx_PyErr_ExceptionMatches2(__pyx_builtin_TypeError, __pyx_builtin_OverflowError); - if (__pyx_t_5) { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L4_exception_handled; - } - goto __pyx_L5_except_error; - - /* "carray.from_py":81 - * cdef int __Pyx_carray_from_py___pyx_t_5tinyr_Dfloat(object o, base_type *v, Py_ssize_t length) except -1: - * cdef Py_ssize_t i = length - * try: # <<<<<<<<<<<<<< - * i = len(o) - * except (TypeError, OverflowError): - */ - __pyx_L5_except_error:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_2); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); - goto __pyx_L1_error; - __pyx_L4_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_2); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); - __pyx_L8_try_end:; - } - - /* "carray.from_py":85 - * except (TypeError, OverflowError): - * pass - * if i == length: # <<<<<<<<<<<<<< - * for i, item in enumerate(o): - * if i >= length: - */ - __pyx_t_6 = (__pyx_v_i == __pyx_v_length); - if (__pyx_t_6) { - - /* "carray.from_py":86 - * pass - * if i == length: - * for i, item in enumerate(o): # <<<<<<<<<<<<<< - * if i >= length: - * break - */ - __pyx_t_4 = 0; - if (likely(PyList_CheckExact(__pyx_v_o)) || PyTuple_CheckExact(__pyx_v_o)) { - __pyx_t_7 = __pyx_v_o; __Pyx_INCREF(__pyx_t_7); - __pyx_t_8 = 0; - __pyx_t_9 = NULL; - } else { - __pyx_t_8 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 86, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 86, __pyx_L1_error) - } - for (;;) { - if (likely(!__pyx_t_9)) { - if (likely(PyList_CheckExact(__pyx_t_7))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_7); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 86, __pyx_L1_error) - #endif - if (__pyx_t_8 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_10 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(1, 86, __pyx_L1_error) - #else - __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 86, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - #endif - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_7); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 86, __pyx_L1_error) - #endif - if (__pyx_t_8 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(1, 86, __pyx_L1_error) - #else - __pyx_t_10 = __Pyx_PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 86, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - #endif - } - } else { - __pyx_t_10 = __pyx_t_9(__pyx_t_7); - if (unlikely(!__pyx_t_10)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(1, 86, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_10); - } - __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_10); - __pyx_t_10 = 0; - __pyx_v_i = __pyx_t_4; - __pyx_t_4 = (__pyx_t_4 + 1); - - /* "carray.from_py":87 - * if i == length: - * for i, item in enumerate(o): - * if i >= length: # <<<<<<<<<<<<<< - * break - * v[i] = item - */ - __pyx_t_6 = (__pyx_v_i >= __pyx_v_length); - if (__pyx_t_6) { - - /* "carray.from_py":88 - * for i, item in enumerate(o): - * if i >= length: - * break # <<<<<<<<<<<<<< - * v[i] = item - * else: - */ - goto __pyx_L11_break; - - /* "carray.from_py":87 - * if i == length: - * for i, item in enumerate(o): - * if i >= length: # <<<<<<<<<<<<<< - * break - * v[i] = item - */ - } - - /* "carray.from_py":89 - * if i >= length: - * break - * v[i] = item # <<<<<<<<<<<<<< - * else: - * i += 1 # convert index to length - */ - __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_v_item); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 89, __pyx_L1_error) - (__pyx_v_v[__pyx_v_i]) = __pyx_t_11; - - /* "carray.from_py":86 - * pass - * if i == length: - * for i, item in enumerate(o): # <<<<<<<<<<<<<< - * if i >= length: - * break - */ - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L13_for_else; - __pyx_L11_break:; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L14_for_end; - /*else*/ { - __pyx_L13_for_else:; - - /* "carray.from_py":91 - * v[i] = item - * else: - * i += 1 # convert index to length # <<<<<<<<<<<<<< - * if i == length: - * return 0 - */ - __pyx_v_i = (__pyx_v_i + 1); - - /* "carray.from_py":92 - * else: - * i += 1 # convert index to length - * if i == length: # <<<<<<<<<<<<<< - * return 0 - * - */ - __pyx_t_6 = (__pyx_v_i == __pyx_v_length); - if (__pyx_t_6) { - - /* "carray.from_py":93 - * i += 1 # convert index to length - * if i == length: - * return 0 # <<<<<<<<<<<<<< - * - * PyErr_Format( - */ - __pyx_r = 0; - goto __pyx_L0; - - /* "carray.from_py":92 - * else: - * i += 1 # convert index to length - * if i == length: # <<<<<<<<<<<<<< - * return 0 - * - */ - } - } - __pyx_L14_for_end:; - - /* "carray.from_py":85 - * except (TypeError, OverflowError): - * pass - * if i == length: # <<<<<<<<<<<<<< - * for i, item in enumerate(o): - * if i >= length: - */ - } - - /* "carray.from_py":98 - * IndexError, - * ("too many values found during array assignment, expected %zd" - * if i >= length else # <<<<<<<<<<<<<< - * "not enough values found during array assignment, expected %zd, got %zd"), - * length, i) - */ - __pyx_t_6 = (__pyx_v_i >= __pyx_v_length); - if (__pyx_t_6) { - __pyx_t_12 = ((char const *)"too many values found during array assignment, expected %zd"); - } else { - __pyx_t_12 = ((char const *)"not enough values found during array assignment, expected %zd, got %zd"); - } - - /* "carray.from_py":95 - * return 0 - * - * PyErr_Format( # <<<<<<<<<<<<<< - * IndexError, - * ("too many values found during array assignment, expected %zd" - */ - __pyx_t_7 = PyErr_Format(__pyx_builtin_IndexError, __pyx_t_12, __pyx_v_length, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 95, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "carray.from_py":79 - * - * @cname("__Pyx_carray_from_py___pyx_t_5tinyr_Dfloat") - * cdef int __Pyx_carray_from_py___pyx_t_5tinyr_Dfloat(object o, base_type *v, Py_ssize_t length) except -1: # <<<<<<<<<<<<<< - * cdef Py_ssize_t i = length - * try: - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_10); - __Pyx_AddTraceback("carray.from_py.__Pyx_carray_from_py___pyx_t_5tinyr_Dfloat", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_item); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":67 - * ############################################################################### - * - * cdef inline void init_Dfloat4(Dfloat *f): # <<<<<<<<<<<<<< - * # array initialization - compiler cries if we don't do that - * f[0] = 0 - */ - -static CYTHON_INLINE void __pyx_f_5tinyr_init_Dfloat4(__pyx_t_5tinyr_Dfloat *__pyx_v_f) { - - /* "tinyr.pyx":69 - * cdef inline void init_Dfloat4(Dfloat *f): - * # array initialization - compiler cries if we don't do that - * f[0] = 0 # <<<<<<<<<<<<<< - * f[1] = 0 - * f[2] = 0 - */ - (__pyx_v_f[0]) = 0.0; - - /* "tinyr.pyx":70 - * # array initialization - compiler cries if we don't do that - * f[0] = 0 - * f[1] = 0 # <<<<<<<<<<<<<< - * f[2] = 0 - * f[3] = 0 - */ - (__pyx_v_f[1]) = 0.0; - - /* "tinyr.pyx":71 - * f[0] = 0 - * f[1] = 0 - * f[2] = 0 # <<<<<<<<<<<<<< - * f[3] = 0 - * - */ - (__pyx_v_f[2]) = 0.0; - - /* "tinyr.pyx":72 - * f[1] = 0 - * f[2] = 0 - * f[3] = 0 # <<<<<<<<<<<<<< - * - * cdef inline void make_order(Dfloat *coords): - */ - (__pyx_v_f[3]) = 0.0; - - /* "tinyr.pyx":67 - * ############################################################################### - * - * cdef inline void init_Dfloat4(Dfloat *f): # <<<<<<<<<<<<<< - * # array initialization - compiler cries if we don't do that - * f[0] = 0 - */ - - /* function exit code */ -} - -/* "tinyr.pyx":74 - * f[3] = 0 - * - * cdef inline void make_order(Dfloat *coords): # <<<<<<<<<<<<<< - * cdef Dfloat switch - * if coords[0] > coords[2]: - */ - -static CYTHON_INLINE void __pyx_f_5tinyr_make_order(__pyx_t_5tinyr_Dfloat *__pyx_v_coords) { - __pyx_t_5tinyr_Dfloat __pyx_v_switch; - int __pyx_t_1; - - /* "tinyr.pyx":76 - * cdef inline void make_order(Dfloat *coords): - * cdef Dfloat switch - * if coords[0] > coords[2]: # <<<<<<<<<<<<<< - * switch = coords[0] - * coords[0] = coords[2] - */ - __pyx_t_1 = ((__pyx_v_coords[0]) > (__pyx_v_coords[2])); - if (__pyx_t_1) { - - /* "tinyr.pyx":77 - * cdef Dfloat switch - * if coords[0] > coords[2]: - * switch = coords[0] # <<<<<<<<<<<<<< - * coords[0] = coords[2] - * coords[2] = switch - */ - __pyx_v_switch = (__pyx_v_coords[0]); - - /* "tinyr.pyx":78 - * if coords[0] > coords[2]: - * switch = coords[0] - * coords[0] = coords[2] # <<<<<<<<<<<<<< - * coords[2] = switch - * if coords[1] > coords[3]: - */ - (__pyx_v_coords[0]) = (__pyx_v_coords[2]); - - /* "tinyr.pyx":79 - * switch = coords[0] - * coords[0] = coords[2] - * coords[2] = switch # <<<<<<<<<<<<<< - * if coords[1] > coords[3]: - * switch = coords[1] - */ - (__pyx_v_coords[2]) = __pyx_v_switch; - - /* "tinyr.pyx":76 - * cdef inline void make_order(Dfloat *coords): - * cdef Dfloat switch - * if coords[0] > coords[2]: # <<<<<<<<<<<<<< - * switch = coords[0] - * coords[0] = coords[2] - */ - } - - /* "tinyr.pyx":80 - * coords[0] = coords[2] - * coords[2] = switch - * if coords[1] > coords[3]: # <<<<<<<<<<<<<< - * switch = coords[1] - * coords[1] = coords[3] - */ - __pyx_t_1 = ((__pyx_v_coords[1]) > (__pyx_v_coords[3])); - if (__pyx_t_1) { - - /* "tinyr.pyx":81 - * coords[2] = switch - * if coords[1] > coords[3]: - * switch = coords[1] # <<<<<<<<<<<<<< - * coords[1] = coords[3] - * coords[3] = switch - */ - __pyx_v_switch = (__pyx_v_coords[1]); - - /* "tinyr.pyx":82 - * if coords[1] > coords[3]: - * switch = coords[1] - * coords[1] = coords[3] # <<<<<<<<<<<<<< - * coords[3] = switch - * - */ - (__pyx_v_coords[1]) = (__pyx_v_coords[3]); - - /* "tinyr.pyx":83 - * switch = coords[1] - * coords[1] = coords[3] - * coords[3] = switch # <<<<<<<<<<<<<< - * - * cdef void tuple_to_array_interleaved(object t, Dfloat *coords): - */ - (__pyx_v_coords[3]) = __pyx_v_switch; - - /* "tinyr.pyx":80 - * coords[0] = coords[2] - * coords[2] = switch - * if coords[1] > coords[3]: # <<<<<<<<<<<<<< - * switch = coords[1] - * coords[1] = coords[3] - */ - } - - /* "tinyr.pyx":74 - * f[3] = 0 - * - * cdef inline void make_order(Dfloat *coords): # <<<<<<<<<<<<<< - * cdef Dfloat switch - * if coords[0] > coords[2]: - */ - - /* function exit code */ -} - -/* "tinyr.pyx":85 - * coords[3] = switch - * - * cdef void tuple_to_array_interleaved(object t, Dfloat *coords): # <<<<<<<<<<<<<< - * for i in range(4): - * coords[i] = t[i] - */ - -static void __pyx_f_5tinyr_tuple_to_array_interleaved(PyObject *__pyx_v_t, __pyx_t_5tinyr_Dfloat *__pyx_v_coords) { - long __pyx_v_i; - __Pyx_RefNannyDeclarations - long __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - __pyx_t_5tinyr_Dfloat __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("tuple_to_array_interleaved", 1); - - /* "tinyr.pyx":86 - * - * cdef void tuple_to_array_interleaved(object t, Dfloat *coords): - * for i in range(4): # <<<<<<<<<<<<<< - * coords[i] = t[i] - * make_order(coords) - */ - for (__pyx_t_1 = 0; __pyx_t_1 < 4; __pyx_t_1+=1) { - __pyx_v_i = __pyx_t_1; - - /* "tinyr.pyx":87 - * cdef void tuple_to_array_interleaved(object t, Dfloat *coords): - * for i in range(4): - * coords[i] = t[i] # <<<<<<<<<<<<<< - * make_order(coords) - * - */ - __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_t, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 87, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - (__pyx_v_coords[__pyx_v_i]) = ((__pyx_t_5tinyr_Dfloat)__pyx_t_3); - } - - /* "tinyr.pyx":88 - * for i in range(4): - * coords[i] = t[i] - * make_order(coords) # <<<<<<<<<<<<<< - * - * cdef void tuple_to_array_normal(object t, Dfloat *coords): - */ - __pyx_f_5tinyr_make_order(__pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 88, __pyx_L1_error) - - /* "tinyr.pyx":85 - * coords[3] = switch - * - * cdef void tuple_to_array_interleaved(object t, Dfloat *coords): # <<<<<<<<<<<<<< - * for i in range(4): - * coords[i] = t[i] - */ - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("tinyr.tuple_to_array_interleaved", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_RefNannyFinishContext(); -} - -/* "tinyr.pyx":90 - * make_order(coords) - * - * cdef void tuple_to_array_normal(object t, Dfloat *coords): # <<<<<<<<<<<<<< - * coords[0] = t[0] - * coords[2] = t[1] - */ - -static void __pyx_f_5tinyr_tuple_to_array_normal(PyObject *__pyx_v_t, __pyx_t_5tinyr_Dfloat *__pyx_v_coords) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __pyx_t_5tinyr_Dfloat __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("tuple_to_array_normal", 1); - - /* "tinyr.pyx":91 - * - * cdef void tuple_to_array_normal(object t, Dfloat *coords): - * coords[0] = t[0] # <<<<<<<<<<<<<< - * coords[2] = t[1] - * coords[1] = t[2] - */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_t, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 91, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - (__pyx_v_coords[0]) = ((__pyx_t_5tinyr_Dfloat)__pyx_t_2); - - /* "tinyr.pyx":92 - * cdef void tuple_to_array_normal(object t, Dfloat *coords): - * coords[0] = t[0] - * coords[2] = t[1] # <<<<<<<<<<<<<< - * coords[1] = t[2] - * coords[3] = t[3] - */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_t, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 92, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - (__pyx_v_coords[2]) = ((__pyx_t_5tinyr_Dfloat)__pyx_t_2); - - /* "tinyr.pyx":93 - * coords[0] = t[0] - * coords[2] = t[1] - * coords[1] = t[2] # <<<<<<<<<<<<<< - * coords[3] = t[3] - * make_order(coords) - */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_t, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 93, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 93, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - (__pyx_v_coords[1]) = ((__pyx_t_5tinyr_Dfloat)__pyx_t_2); - - /* "tinyr.pyx":94 - * coords[2] = t[1] - * coords[1] = t[2] - * coords[3] = t[3] # <<<<<<<<<<<<<< - * make_order(coords) - * - */ - __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_t, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 94, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 94, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - (__pyx_v_coords[3]) = ((__pyx_t_5tinyr_Dfloat)__pyx_t_2); - - /* "tinyr.pyx":95 - * coords[1] = t[2] - * coords[3] = t[3] - * make_order(coords) # <<<<<<<<<<<<<< - * - * - */ - __pyx_f_5tinyr_make_order(__pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 95, __pyx_L1_error) - - /* "tinyr.pyx":90 - * make_order(coords) - * - * cdef void tuple_to_array_normal(object t, Dfloat *coords): # <<<<<<<<<<<<<< - * coords[0] = t[0] - * coords[2] = t[1] - */ - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.tuple_to_array_normal", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_RefNannyFinishContext(); -} - -/* "tinyr.pyx":98 - * - * - * cdef tuple array_to_tuple_interleaved(Dfloat *coords): # <<<<<<<<<<<<<< - * return tuple([ coords[i] for i in range(4)]) - * - */ - -static PyObject *__pyx_f_5tinyr_array_to_tuple_interleaved(__pyx_t_5tinyr_Dfloat *__pyx_v_coords) { - long __pyx_7genexpr__pyx_v_i; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - long __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("array_to_tuple_interleaved", 1); - - /* "tinyr.pyx":99 - * - * cdef tuple array_to_tuple_interleaved(Dfloat *coords): - * return tuple([ coords[i] for i in range(4)]) # <<<<<<<<<<<<<< - * - * cdef tuple array_to_tuple_normal(Dfloat *coords): - */ - __Pyx_XDECREF(__pyx_r); - { /* enter inner scope */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 99, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - for (__pyx_t_2 = 0; __pyx_t_2 < 4; __pyx_t_2+=1) { - __pyx_7genexpr__pyx_v_i = __pyx_t_2; - __pyx_t_3 = PyFloat_FromDouble((__pyx_v_coords[__pyx_7genexpr__pyx_v_i])); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 99, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 99, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - } /* exit inner scope */ - __pyx_t_3 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 99, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_r = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":98 - * - * - * cdef tuple array_to_tuple_interleaved(Dfloat *coords): # <<<<<<<<<<<<<< - * return tuple([ coords[i] for i in range(4)]) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr.array_to_tuple_interleaved", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":101 - * return tuple([ coords[i] for i in range(4)]) - * - * cdef tuple array_to_tuple_normal(Dfloat *coords): # <<<<<<<<<<<<<< - * return tuple([ coords[0], coords[2], coords[1], coords[3] ]) - * - */ - -static PyObject *__pyx_f_5tinyr_array_to_tuple_normal(__pyx_t_5tinyr_Dfloat *__pyx_v_coords) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("array_to_tuple_normal", 1); - - /* "tinyr.pyx":102 - * - * cdef tuple array_to_tuple_normal(Dfloat *coords): - * return tuple([ coords[0], coords[2], coords[1], coords[3] ]) # <<<<<<<<<<<<<< - * - * cdef inline _InnerRecord parent_record(_Node node): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble((__pyx_v_coords[0])); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyFloat_FromDouble((__pyx_v_coords[2])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble((__pyx_v_coords[1])); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyFloat_FromDouble((__pyx_v_coords[3])); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyList_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(0, 102, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_4 = 0; - __pyx_t_4 = PyList_AsTuple(((PyObject*)__pyx_t_5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_r = ((PyObject*)__pyx_t_4); - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":101 - * return tuple([ coords[i] for i in range(4)]) - * - * cdef tuple array_to_tuple_normal(Dfloat *coords): # <<<<<<<<<<<<<< - * return tuple([ coords[0], coords[2], coords[1], coords[3] ]) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("tinyr.array_to_tuple_normal", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":104 - * return tuple([ coords[0], coords[2], coords[1], coords[3] ]) - * - * cdef inline _InnerRecord parent_record(_Node node): # <<<<<<<<<<<<<< - * cdef: - * _InnerRecord e - */ - -static CYTHON_INLINE struct __pyx_obj_5tinyr__InnerRecord *__pyx_f_5tinyr_parent_record(struct __pyx_obj_5tinyr__Node *__pyx_v_node) { - struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_e = 0; - struct __pyx_obj_5tinyr__InnerRecord *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("parent_record", 1); - - /* "tinyr.pyx":108 - * _InnerRecord e - * - * for e in node.parent.records: # <<<<<<<<<<<<<< - * if e.child == node: - * return e - */ - if (unlikely(__pyx_v_node->parent->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 108, __pyx_L1_error) - } - __pyx_t_1 = __pyx_v_node->parent->records; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 108, __pyx_L1_error) - #endif - if (__pyx_t_2 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 108, __pyx_L1_error) - #else - __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5tinyr__InnerRecord))))) __PYX_ERR(0, 108, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_e, ((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "tinyr.pyx":109 - * - * for e in node.parent.records: - * if e.child == node: # <<<<<<<<<<<<<< - * return e - * - */ - __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_e->child), ((PyObject *)__pyx_v_node), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 109, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__pyx_t_4) { - - /* "tinyr.pyx":110 - * for e in node.parent.records: - * if e.child == node: - * return e # <<<<<<<<<<<<<< - * - * cdef inline void common_boundaries(list records, Dfloat *target): - */ - __Pyx_XDECREF((PyObject *)__pyx_r); - __Pyx_INCREF((PyObject *)__pyx_v_e); - __pyx_r = __pyx_v_e; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":109 - * - * for e in node.parent.records: - * if e.child == node: # <<<<<<<<<<<<<< - * return e - * - */ - } - - /* "tinyr.pyx":108 - * _InnerRecord e - * - * for e in node.parent.records: # <<<<<<<<<<<<<< - * if e.child == node: - * return e - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":104 - * return tuple([ coords[0], coords[2], coords[1], coords[3] ]) - * - * cdef inline _InnerRecord parent_record(_Node node): # <<<<<<<<<<<<<< - * cdef: - * _InnerRecord e - */ - - /* function exit code */ - __pyx_r = ((struct __pyx_obj_5tinyr__InnerRecord *)Py_None); __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr.parent_record", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_e); - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":112 - * return e - * - * cdef inline void common_boundaries(list records, Dfloat *target): # <<<<<<<<<<<<<< - * cdef: - * Dfloat *coords - */ - -static CYTHON_INLINE void __pyx_f_5tinyr_common_boundaries(PyObject *__pyx_v_records, __pyx_t_5tinyr_Dfloat *__pyx_v_target) { - __pyx_t_5tinyr_Dfloat *__pyx_v_coords; - struct __pyx_obj_5tinyr__Record *__pyx_v_r = 0; - __Pyx_RefNannyDeclarations - double __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - __pyx_t_5tinyr_Dfloat *__pyx_t_5; - __pyx_t_5tinyr_Dfloat __pyx_t_6; - __pyx_t_5tinyr_Dfloat __pyx_t_7; - __pyx_t_5tinyr_Dfloat __pyx_t_8; - int __pyx_t_9; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("common_boundaries", 1); - - /* "tinyr.pyx":117 - * _Record r - * - * target[0] = target[1] = Dfloat_max # <<<<<<<<<<<<<< - * target[2] = target[3] = -Dfloat_min - * for r in records: - */ - (__pyx_v_target[0]) = DBL_MAX; - (__pyx_v_target[1]) = DBL_MAX; - - /* "tinyr.pyx":118 - * - * target[0] = target[1] = Dfloat_max - * target[2] = target[3] = -Dfloat_min # <<<<<<<<<<<<<< - * for r in records: - * coords = r.coords - */ - __pyx_t_1 = (-DBL_MIN); - (__pyx_v_target[2]) = __pyx_t_1; - (__pyx_v_target[3]) = __pyx_t_1; - - /* "tinyr.pyx":119 - * target[0] = target[1] = Dfloat_max - * target[2] = target[3] = -Dfloat_min - * for r in records: # <<<<<<<<<<<<<< - * coords = r.coords - * target[0] = min(target[0], coords[0]) - */ - if (unlikely(__pyx_v_records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 119, __pyx_L1_error) - } - __pyx_t_2 = __pyx_v_records; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 119, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 119, __pyx_L1_error) - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5tinyr__Record))))) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_r, ((struct __pyx_obj_5tinyr__Record *)__pyx_t_4)); - __pyx_t_4 = 0; - - /* "tinyr.pyx":120 - * target[2] = target[3] = -Dfloat_min - * for r in records: - * coords = r.coords # <<<<<<<<<<<<<< - * target[0] = min(target[0], coords[0]) - * target[1] = min(target[1], coords[1]) - */ - __pyx_t_5 = __pyx_v_r->coords; - __pyx_v_coords = __pyx_t_5; - - /* "tinyr.pyx":121 - * for r in records: - * coords = r.coords - * target[0] = min(target[0], coords[0]) # <<<<<<<<<<<<<< - * target[1] = min(target[1], coords[1]) - * target[2] = max(target[2], coords[2]) - */ - __pyx_t_6 = (__pyx_v_coords[0]); - __pyx_t_7 = (__pyx_v_target[0]); - __pyx_t_9 = (__pyx_t_6 < __pyx_t_7); - if (__pyx_t_9) { - __pyx_t_8 = __pyx_t_6; - } else { - __pyx_t_8 = __pyx_t_7; - } - (__pyx_v_target[0]) = __pyx_t_8; - - /* "tinyr.pyx":122 - * coords = r.coords - * target[0] = min(target[0], coords[0]) - * target[1] = min(target[1], coords[1]) # <<<<<<<<<<<<<< - * target[2] = max(target[2], coords[2]) - * target[3] = max(target[3], coords[3]) - */ - __pyx_t_8 = (__pyx_v_coords[1]); - __pyx_t_6 = (__pyx_v_target[1]); - __pyx_t_9 = (__pyx_t_8 < __pyx_t_6); - if (__pyx_t_9) { - __pyx_t_7 = __pyx_t_8; - } else { - __pyx_t_7 = __pyx_t_6; - } - (__pyx_v_target[1]) = __pyx_t_7; - - /* "tinyr.pyx":123 - * target[0] = min(target[0], coords[0]) - * target[1] = min(target[1], coords[1]) - * target[2] = max(target[2], coords[2]) # <<<<<<<<<<<<<< - * target[3] = max(target[3], coords[3]) - * - */ - __pyx_t_7 = (__pyx_v_coords[2]); - __pyx_t_8 = (__pyx_v_target[2]); - __pyx_t_9 = (__pyx_t_7 > __pyx_t_8); - if (__pyx_t_9) { - __pyx_t_6 = __pyx_t_7; - } else { - __pyx_t_6 = __pyx_t_8; - } - (__pyx_v_target[2]) = __pyx_t_6; - - /* "tinyr.pyx":124 - * target[1] = min(target[1], coords[1]) - * target[2] = max(target[2], coords[2]) - * target[3] = max(target[3], coords[3]) # <<<<<<<<<<<<<< - * - * cdef inline Dfloat area(Dfloat *coords): - */ - __pyx_t_6 = (__pyx_v_coords[3]); - __pyx_t_7 = (__pyx_v_target[3]); - __pyx_t_9 = (__pyx_t_6 > __pyx_t_7); - if (__pyx_t_9) { - __pyx_t_8 = __pyx_t_6; - } else { - __pyx_t_8 = __pyx_t_7; - } - (__pyx_v_target[3]) = __pyx_t_8; - - /* "tinyr.pyx":119 - * target[0] = target[1] = Dfloat_max - * target[2] = target[3] = -Dfloat_min - * for r in records: # <<<<<<<<<<<<<< - * coords = r.coords - * target[0] = min(target[0], coords[0]) - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":112 - * return e - * - * cdef inline void common_boundaries(list records, Dfloat *target): # <<<<<<<<<<<<<< - * cdef: - * Dfloat *coords - */ - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr.common_boundaries", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_r); - __Pyx_RefNannyFinishContext(); -} - -/* "tinyr.pyx":126 - * target[3] = max(target[3], coords[3]) - * - * cdef inline Dfloat area(Dfloat *coords): # <<<<<<<<<<<<<< - * return (coords[2] - coords[0]) * (coords[3] - coords[1]) - * - */ - -static CYTHON_INLINE __pyx_t_5tinyr_Dfloat __pyx_f_5tinyr_area(__pyx_t_5tinyr_Dfloat *__pyx_v_coords) { - __pyx_t_5tinyr_Dfloat __pyx_r; - - /* "tinyr.pyx":127 - * - * cdef inline Dfloat area(Dfloat *coords): - * return (coords[2] - coords[0]) * (coords[3] - coords[1]) # <<<<<<<<<<<<<< - * - * cdef class _Record: - */ - __pyx_r = (((__pyx_v_coords[2]) - (__pyx_v_coords[0])) * ((__pyx_v_coords[3]) - (__pyx_v_coords[1]))); - goto __pyx_L0; - - /* "tinyr.pyx":126 - * target[3] = max(target[3], coords[3]) - * - * cdef inline Dfloat area(Dfloat *coords): # <<<<<<<<<<<<<< - * return (coords[2] - coords[0]) * (coords[3] - coords[1]) - * - */ - - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} - -/* "tinyr.pyx":133 - * Dfloat coords[4] - * - * cdef inline bint overlaps(self, Dfloat *rect): # <<<<<<<<<<<<<< - * return self.coords[0] < rect[2] and self.coords[2] > rect[0] and self.coords[1] < rect[3] and self.coords[3] > rect[1] - * - */ - -static CYTHON_INLINE int __pyx_f_5tinyr_7_Record_overlaps(struct __pyx_obj_5tinyr__Record *__pyx_v_self, __pyx_t_5tinyr_Dfloat *__pyx_v_rect) { - int __pyx_r; - int __pyx_t_1; - int __pyx_t_2; - - /* "tinyr.pyx":134 - * - * cdef inline bint overlaps(self, Dfloat *rect): - * return self.coords[0] < rect[2] and self.coords[2] > rect[0] and self.coords[1] < rect[3] and self.coords[3] > rect[1] # <<<<<<<<<<<<<< - * - * cdef inline void copy_coords_to(self, Dfloat *coords): - */ - __pyx_t_2 = ((__pyx_v_self->coords[0]) < (__pyx_v_rect[2])); - if (__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L3_bool_binop_done; - } - __pyx_t_2 = ((__pyx_v_self->coords[2]) > (__pyx_v_rect[0])); - if (__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L3_bool_binop_done; - } - __pyx_t_2 = ((__pyx_v_self->coords[1]) < (__pyx_v_rect[3])); - if (__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L3_bool_binop_done; - } - __pyx_t_2 = ((__pyx_v_self->coords[3]) > (__pyx_v_rect[1])); - __pyx_t_1 = __pyx_t_2; - __pyx_L3_bool_binop_done:; - __pyx_r = __pyx_t_1; - goto __pyx_L0; - - /* "tinyr.pyx":133 - * Dfloat coords[4] - * - * cdef inline bint overlaps(self, Dfloat *rect): # <<<<<<<<<<<<<< - * return self.coords[0] < rect[2] and self.coords[2] > rect[0] and self.coords[1] < rect[3] and self.coords[3] > rect[1] - * - */ - - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} - -/* "tinyr.pyx":136 - * return self.coords[0] < rect[2] and self.coords[2] > rect[0] and self.coords[1] < rect[3] and self.coords[3] > rect[1] - * - * cdef inline void copy_coords_to(self, Dfloat *coords): # <<<<<<<<<<<<<< - * for i in range(4): - * coords[i] = self.coords[i] - */ - -static CYTHON_INLINE void __pyx_f_5tinyr_7_Record_copy_coords_to(struct __pyx_obj_5tinyr__Record *__pyx_v_self, __pyx_t_5tinyr_Dfloat *__pyx_v_coords) { - long __pyx_v_i; - long __pyx_t_1; - - /* "tinyr.pyx":137 - * - * cdef inline void copy_coords_to(self, Dfloat *coords): - * for i in range(4): # <<<<<<<<<<<<<< - * coords[i] = self.coords[i] - * - */ - for (__pyx_t_1 = 0; __pyx_t_1 < 4; __pyx_t_1+=1) { - __pyx_v_i = __pyx_t_1; - - /* "tinyr.pyx":138 - * cdef inline void copy_coords_to(self, Dfloat *coords): - * for i in range(4): - * coords[i] = self.coords[i] # <<<<<<<<<<<<<< - * - * cdef _Record copy(self, _Node newparent): - */ - (__pyx_v_coords[__pyx_v_i]) = (__pyx_v_self->coords[__pyx_v_i]); - } - - /* "tinyr.pyx":136 - * return self.coords[0] < rect[2] and self.coords[2] > rect[0] and self.coords[1] < rect[3] and self.coords[3] > rect[1] - * - * cdef inline void copy_coords_to(self, Dfloat *coords): # <<<<<<<<<<<<<< - * for i in range(4): - * coords[i] = self.coords[i] - */ - - /* function exit code */ -} - -/* "tinyr.pyx":140 - * coords[i] = self.coords[i] - * - * cdef _Record copy(self, _Node newparent): # <<<<<<<<<<<<<< - * raise NotImplemented - * - */ - -static struct __pyx_obj_5tinyr__Record *__pyx_f_5tinyr_7_Record_copy(CYTHON_UNUSED struct __pyx_obj_5tinyr__Record *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_5tinyr__Node *__pyx_v_newparent) { - struct __pyx_obj_5tinyr__Record *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("copy", 1); - - /* "tinyr.pyx":141 - * - * cdef _Record copy(self, _Node newparent): - * raise NotImplemented # <<<<<<<<<<<<<< - * - * cdef class _ChildRecord(_Record): - */ - __Pyx_Raise(__pyx_builtin_NotImplemented, 0, 0, 0); - __PYX_ERR(0, 141, __pyx_L1_error) - - /* "tinyr.pyx":140 - * coords[i] = self.coords[i] - * - * cdef _Record copy(self, _Node newparent): # <<<<<<<<<<<<<< - * raise NotImplemented - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._Record.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_7_Record_1__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_7_Record_1__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_7_Record_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_7_Record_1__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_7_Record___reduce_cython__(((struct __pyx_obj_5tinyr__Record *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_7_Record___reduce_cython__(struct __pyx_obj_5tinyr__Record *__pyx_v_self) { - PyObject *__pyx_v_state = 0; - PyObject *__pyx_v__dict = 0; - int __pyx_v_use_setstate; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":5 - * cdef object _dict - * cdef bint use_setstate - * state = (self.coords,) # <<<<<<<<<<<<<< - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: - */ - __pyx_t_1 = __Pyx_carray_to_py___pyx_t_5tinyr_Dfloat(__pyx_v_self->coords, 4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_v_state = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "(tree fragment)":6 - * cdef bint use_setstate - * state = (self.coords,) - * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< - * if _dict is not None: - * state += (_dict,) - */ - __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v__dict = __pyx_t_2; - __pyx_t_2 = 0; - - /* "(tree fragment)":7 - * state = (self.coords,) - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: # <<<<<<<<<<<<<< - * state += (_dict,) - * use_setstate = True - */ - __pyx_t_3 = (__pyx_v__dict != Py_None); - if (__pyx_t_3) { - - /* "(tree fragment)":8 - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: - * state += (_dict,) # <<<<<<<<<<<<<< - * use_setstate = True - * else: - */ - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v__dict); - __Pyx_GIVEREF(__pyx_v__dict); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error); - __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "(tree fragment)":9 - * if _dict is not None: - * state += (_dict,) - * use_setstate = True # <<<<<<<<<<<<<< - * else: - * use_setstate = False - */ - __pyx_v_use_setstate = 1; - - /* "(tree fragment)":7 - * state = (self.coords,) - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: # <<<<<<<<<<<<<< - * state += (_dict,) - * use_setstate = True - */ - goto __pyx_L3; - } - - /* "(tree fragment)":11 - * use_setstate = True - * else: - * use_setstate = False # <<<<<<<<<<<<<< - * if use_setstate: - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, None), state - */ - /*else*/ { - __pyx_v_use_setstate = 0; - } - __pyx_L3:; - - /* "(tree fragment)":12 - * else: - * use_setstate = False - * if use_setstate: # <<<<<<<<<<<<<< - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, None), state - * else: - */ - if (__pyx_v_use_setstate) { - - /* "(tree fragment)":13 - * use_setstate = False - * if use_setstate: - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, None), state # <<<<<<<<<<<<<< - * else: - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, state) - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle__Record); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_INCREF(__pyx_int_225422942); - __Pyx_GIVEREF(__pyx_int_225422942); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_225422942)) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_state); - __Pyx_GIVEREF(__pyx_v_state); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "(tree fragment)":12 - * else: - * use_setstate = False - * if use_setstate: # <<<<<<<<<<<<<< - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, None), state - * else: - */ - } - - /* "(tree fragment)":15 - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, None), state - * else: - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, state) # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * __pyx_unpickle__Record__set_state(self, __pyx_state) - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle__Record); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error); - __Pyx_INCREF(__pyx_int_225422942); - __Pyx_GIVEREF(__pyx_int_225422942); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_225422942)) __PYX_ERR(1, 15, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_state); - __Pyx_GIVEREF(__pyx_v_state); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_2 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - } - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr._Record.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_state); - __Pyx_XDECREF(__pyx_v__dict); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":16 - * else: - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle__Record__set_state(self, __pyx_state) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_7_Record_3__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_7_Record_3__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_7_Record_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_7_Record_3__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._Record.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_7_Record_2__setstate_cython__(((struct __pyx_obj_5tinyr__Record *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_7_Record_2__setstate_cython__(struct __pyx_obj_5tinyr__Record *__pyx_v_self, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":17 - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, state) - * def __setstate_cython__(self, __pyx_state): - * __pyx_unpickle__Record__set_state(self, __pyx_state) # <<<<<<<<<<<<<< - */ - if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error) - __pyx_t_1 = __pyx_f_5tinyr___pyx_unpickle__Record__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "(tree fragment)":16 - * else: - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle__Record__set_state(self, __pyx_state) - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr._Record.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":147 - * object identifier - * - * def __init__(self, object identifier): # <<<<<<<<<<<<<< - * self.identifier = identifier - * - */ - -/* Python wrapper */ -static int __pyx_pw_5tinyr_12_ChildRecord_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_5tinyr_12_ChildRecord_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_identifier = 0; - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; - #endif - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_identifier,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_identifier)) != 0)) { - (void)__Pyx_Arg_NewRef_VARARGS(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 147, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 147, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - } - __pyx_v_identifier = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 147, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._ChildRecord.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_12_ChildRecord___init__(((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_v_self), __pyx_v_identifier); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5tinyr_12_ChildRecord___init__(struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_self, PyObject *__pyx_v_identifier) { - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__", 1); - - /* "tinyr.pyx":148 - * - * def __init__(self, object identifier): - * self.identifier = identifier # <<<<<<<<<<<<<< - * - * cdef _Record copy(self, _Node newparent): - */ - __Pyx_INCREF(__pyx_v_identifier); - __Pyx_GIVEREF(__pyx_v_identifier); - __Pyx_GOTREF(__pyx_v_self->identifier); - __Pyx_DECREF(__pyx_v_self->identifier); - __pyx_v_self->identifier = __pyx_v_identifier; - - /* "tinyr.pyx":147 - * object identifier - * - * def __init__(self, object identifier): # <<<<<<<<<<<<<< - * self.identifier = identifier - * - */ - - /* function exit code */ - __pyx_r = 0; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":150 - * self.identifier = identifier - * - * cdef _Record copy(self, _Node newparent): # <<<<<<<<<<<<<< - * cdef: - * _ChildRecord ret - */ - -static struct __pyx_obj_5tinyr__Record *__pyx_f_5tinyr_12_ChildRecord_copy(struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_self, CYTHON_UNUSED struct __pyx_obj_5tinyr__Node *__pyx_v_newparent) { - struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_ret = 0; - struct __pyx_obj_5tinyr__Record *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("copy", 1); - - /* "tinyr.pyx":154 - * _ChildRecord ret - * - * ret = _ChildRecord(self.identifier) # <<<<<<<<<<<<<< - * self.copy_coords_to(ret.coords) - * return ret - */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__ChildRecord), __pyx_v_self->identifier); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 154, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_ret = ((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":155 - * - * ret = _ChildRecord(self.identifier) - * self.copy_coords_to(ret.coords) # <<<<<<<<<<<<<< - * return ret - * - */ - __pyx_f_5tinyr_7_Record_copy_coords_to(((struct __pyx_obj_5tinyr__Record *)__pyx_v_self), __pyx_v_ret->__pyx_base.coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 155, __pyx_L1_error) - - /* "tinyr.pyx":156 - * ret = _ChildRecord(self.identifier) - * self.copy_coords_to(ret.coords) - * return ret # <<<<<<<<<<<<<< - * - * cdef class _InnerRecord(_Record): - */ - __Pyx_XDECREF((PyObject *)__pyx_r); - __Pyx_INCREF((PyObject *)__pyx_v_ret); - __pyx_r = ((struct __pyx_obj_5tinyr__Record *)__pyx_v_ret); - goto __pyx_L0; - - /* "tinyr.pyx":150 - * self.identifier = identifier - * - * cdef _Record copy(self, _Node newparent): # <<<<<<<<<<<<<< - * cdef: - * _ChildRecord ret - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr._ChildRecord.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_ret); - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_12_ChildRecord_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_12_ChildRecord_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_12_ChildRecord_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_12_ChildRecord_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_12_ChildRecord_2__reduce_cython__(((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_12_ChildRecord_2__reduce_cython__(struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_self) { - PyObject *__pyx_v_state = 0; - PyObject *__pyx_v__dict = 0; - int __pyx_v_use_setstate; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":5 - * cdef object _dict - * cdef bint use_setstate - * state = (self.coords, self.identifier) # <<<<<<<<<<<<<< - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: - */ - __pyx_t_1 = __Pyx_carray_to_py___pyx_t_5tinyr_Dfloat(__pyx_v_self->__pyx_base.coords, 4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_self->identifier); - __Pyx_GIVEREF(__pyx_v_self->identifier); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self->identifier)) __PYX_ERR(1, 5, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_v_state = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "(tree fragment)":6 - * cdef bint use_setstate - * state = (self.coords, self.identifier) - * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< - * if _dict is not None: - * state += (_dict,) - */ - __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v__dict = __pyx_t_2; - __pyx_t_2 = 0; - - /* "(tree fragment)":7 - * state = (self.coords, self.identifier) - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: # <<<<<<<<<<<<<< - * state += (_dict,) - * use_setstate = True - */ - __pyx_t_3 = (__pyx_v__dict != Py_None); - if (__pyx_t_3) { - - /* "(tree fragment)":8 - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: - * state += (_dict,) # <<<<<<<<<<<<<< - * use_setstate = True - * else: - */ - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_v__dict); - __Pyx_GIVEREF(__pyx_v__dict); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error); - __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "(tree fragment)":9 - * if _dict is not None: - * state += (_dict,) - * use_setstate = True # <<<<<<<<<<<<<< - * else: - * use_setstate = self.identifier is not None - */ - __pyx_v_use_setstate = 1; - - /* "(tree fragment)":7 - * state = (self.coords, self.identifier) - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: # <<<<<<<<<<<<<< - * state += (_dict,) - * use_setstate = True - */ - goto __pyx_L3; - } - - /* "(tree fragment)":11 - * use_setstate = True - * else: - * use_setstate = self.identifier is not None # <<<<<<<<<<<<<< - * if use_setstate: - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, None), state - */ - /*else*/ { - __pyx_t_3 = (__pyx_v_self->identifier != Py_None); - __pyx_v_use_setstate = __pyx_t_3; - } - __pyx_L3:; - - /* "(tree fragment)":12 - * else: - * use_setstate = self.identifier is not None - * if use_setstate: # <<<<<<<<<<<<<< - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, None), state - * else: - */ - if (__pyx_v_use_setstate) { - - /* "(tree fragment)":13 - * use_setstate = self.identifier is not None - * if use_setstate: - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, None), state # <<<<<<<<<<<<<< - * else: - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, state) - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle__ChildRecord); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_INCREF(__pyx_int_165148252); - __Pyx_GIVEREF(__pyx_int_165148252); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_165148252)) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_state); - __Pyx_GIVEREF(__pyx_v_state); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_2 = 0; - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "(tree fragment)":12 - * else: - * use_setstate = self.identifier is not None - * if use_setstate: # <<<<<<<<<<<<<< - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, None), state - * else: - */ - } - - /* "(tree fragment)":15 - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, None), state - * else: - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, state) # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * __pyx_unpickle__ChildRecord__set_state(self, __pyx_state) - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle__ChildRecord); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error); - __Pyx_INCREF(__pyx_int_165148252); - __Pyx_GIVEREF(__pyx_int_165148252); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_165148252)) __PYX_ERR(1, 15, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_state); - __Pyx_GIVEREF(__pyx_v_state); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_2 = 0; - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - } - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr._ChildRecord.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_state); - __Pyx_XDECREF(__pyx_v__dict); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":16 - * else: - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle__ChildRecord__set_state(self, __pyx_state) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_12_ChildRecord_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_12_ChildRecord_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_12_ChildRecord_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_12_ChildRecord_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._ChildRecord.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_12_ChildRecord_4__setstate_cython__(((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_12_ChildRecord_4__setstate_cython__(struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_self, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":17 - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, state) - * def __setstate_cython__(self, __pyx_state): - * __pyx_unpickle__ChildRecord__set_state(self, __pyx_state) # <<<<<<<<<<<<<< - */ - if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error) - __pyx_t_1 = __pyx_f_5tinyr___pyx_unpickle__ChildRecord__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "(tree fragment)":16 - * else: - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle__ChildRecord__set_state(self, __pyx_state) - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr._ChildRecord.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":162 - * _Node child - * - * def __cinit__(self, _Node child): # <<<<<<<<<<<<<< - * self.child = child - * - */ - -/* Python wrapper */ -static int __pyx_pw_5tinyr_12_InnerRecord_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_5tinyr_12_InnerRecord_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - struct __pyx_obj_5tinyr__Node *__pyx_v_child = 0; - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; - #endif - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_child,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_child)) != 0)) { - (void)__Pyx_Arg_NewRef_VARARGS(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 162, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(0, 162, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - } - __pyx_v_child = ((struct __pyx_obj_5tinyr__Node *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 162, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._InnerRecord.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_child), __pyx_ptype_5tinyr__Node, 1, "child", 0))) __PYX_ERR(0, 162, __pyx_L1_error) - __pyx_r = __pyx_pf_5tinyr_12_InnerRecord___cinit__(((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_v_self), __pyx_v_child); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = -1; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5tinyr_12_InnerRecord___cinit__(struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_child) { - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__", 1); - - /* "tinyr.pyx":163 - * - * def __cinit__(self, _Node child): - * self.child = child # <<<<<<<<<<<<<< - * - * cdef _Record copy(self, _Node newparent): - */ - __Pyx_INCREF((PyObject *)__pyx_v_child); - __Pyx_GIVEREF((PyObject *)__pyx_v_child); - __Pyx_GOTREF((PyObject *)__pyx_v_self->child); - __Pyx_DECREF((PyObject *)__pyx_v_self->child); - __pyx_v_self->child = __pyx_v_child; - - /* "tinyr.pyx":162 - * _Node child - * - * def __cinit__(self, _Node child): # <<<<<<<<<<<<<< - * self.child = child - * - */ - - /* function exit code */ - __pyx_r = 0; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":165 - * self.child = child - * - * cdef _Record copy(self, _Node newparent): # <<<<<<<<<<<<<< - * cdef: - * _InnerRecord ret - */ - -static struct __pyx_obj_5tinyr__Record *__pyx_f_5tinyr_12_InnerRecord_copy(struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_newparent) { - struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_ret = 0; - struct __pyx_obj_5tinyr__Record *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("copy", 1); - - /* "tinyr.pyx":169 - * _InnerRecord ret - * - * ret = _InnerRecord(self.child.copy(newparent)) # <<<<<<<<<<<<<< - * self.copy_coords_to(ret.coords) - * return ret - */ - __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_5tinyr__Node *)__pyx_v_self->child->__pyx_vtab)->copy(__pyx_v_self->child, __pyx_v_newparent)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__InnerRecord), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 169, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_ret = ((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "tinyr.pyx":170 - * - * ret = _InnerRecord(self.child.copy(newparent)) - * self.copy_coords_to(ret.coords) # <<<<<<<<<<<<<< - * return ret - * - */ - __pyx_f_5tinyr_7_Record_copy_coords_to(((struct __pyx_obj_5tinyr__Record *)__pyx_v_self), __pyx_v_ret->__pyx_base.coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L1_error) - - /* "tinyr.pyx":171 - * ret = _InnerRecord(self.child.copy(newparent)) - * self.copy_coords_to(ret.coords) - * return ret # <<<<<<<<<<<<<< - * - * cdef class _Node(object): - */ - __Pyx_XDECREF((PyObject *)__pyx_r); - __Pyx_INCREF((PyObject *)__pyx_v_ret); - __pyx_r = ((struct __pyx_obj_5tinyr__Record *)__pyx_v_ret); - goto __pyx_L0; - - /* "tinyr.pyx":165 - * self.child = child - * - * cdef _Record copy(self, _Node newparent): # <<<<<<<<<<<<<< - * cdef: - * _InnerRecord ret - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("tinyr._InnerRecord.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_ret); - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_12_InnerRecord_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_12_InnerRecord_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_12_InnerRecord_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_12_InnerRecord_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_12_InnerRecord_2__reduce_cython__(((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_12_InnerRecord_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._InnerRecord.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_12_InnerRecord_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_12_InnerRecord_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_12_InnerRecord_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_12_InnerRecord_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._InnerRecord.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_12_InnerRecord_4__setstate_cython__(((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_12_InnerRecord_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":4 - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._InnerRecord.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":179 - * bint is_leaf - * - * def __cinit__(self, _Node parent): # <<<<<<<<<<<<<< - * self.parent = parent - * self.records = list() - */ - -/* Python wrapper */ -static int __pyx_pw_5tinyr_5_Node_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_5tinyr_5_Node_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - struct __pyx_obj_5tinyr__Node *__pyx_v_parent = 0; - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; - #endif - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_parent,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_parent)) != 0)) { - (void)__Pyx_Arg_NewRef_VARARGS(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 179, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(0, 179, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - } - __pyx_v_parent = ((struct __pyx_obj_5tinyr__Node *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 179, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._Node.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parent), __pyx_ptype_5tinyr__Node, 1, "parent", 0))) __PYX_ERR(0, 179, __pyx_L1_error) - __pyx_r = __pyx_pf_5tinyr_5_Node___cinit__(((struct __pyx_obj_5tinyr__Node *)__pyx_v_self), __pyx_v_parent); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = -1; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5tinyr_5_Node___cinit__(struct __pyx_obj_5tinyr__Node *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_parent) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 1); - - /* "tinyr.pyx":180 - * - * def __cinit__(self, _Node parent): - * self.parent = parent # <<<<<<<<<<<<<< - * self.records = list() - * - */ - __Pyx_INCREF((PyObject *)__pyx_v_parent); - __Pyx_GIVEREF((PyObject *)__pyx_v_parent); - __Pyx_GOTREF((PyObject *)__pyx_v_self->parent); - __Pyx_DECREF((PyObject *)__pyx_v_self->parent); - __pyx_v_self->parent = __pyx_v_parent; - - /* "tinyr.pyx":181 - * def __cinit__(self, _Node parent): - * self.parent = parent - * self.records = list() # <<<<<<<<<<<<<< - * - * cdef _Node copy(self, _Node parent): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_v_self->records); - __Pyx_DECREF(__pyx_v_self->records); - __pyx_v_self->records = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":179 - * bint is_leaf - * - * def __cinit__(self, _Node parent): # <<<<<<<<<<<<<< - * self.parent = parent - * self.records = list() - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr._Node.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":183 - * self.records = list() - * - * cdef _Node copy(self, _Node parent): # <<<<<<<<<<<<<< - * cdef: - * _Node ret - */ - -static struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5_Node_copy(struct __pyx_obj_5tinyr__Node *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_parent) { - struct __pyx_obj_5tinyr__Node *__pyx_v_ret = 0; - PyObject *__pyx_8genexpr1__pyx_v_rec = NULL; - struct __pyx_obj_5tinyr__Node *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("copy", 1); - - /* "tinyr.pyx":186 - * cdef: - * _Node ret - * ret = _Node(parent) # <<<<<<<<<<<<<< - * ret.records = [ (<_Record>rec).copy(ret) for rec in self.records ] - * ret.is_leaf = self.is_leaf - */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__Node), ((PyObject *)__pyx_v_parent)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_ret = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":187 - * _Node ret - * ret = _Node(parent) - * ret.records = [ (<_Record>rec).copy(ret) for rec in self.records ] # <<<<<<<<<<<<<< - * ret.is_leaf = self.is_leaf - * return ret - */ - { /* enter inner scope */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 187, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely(__pyx_v_self->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 187, __pyx_L5_error) - } - __pyx_t_2 = __pyx_v_self->records; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 187, __pyx_L5_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 187, __pyx_L5_error) - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 187, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_rec, __pyx_t_4); - __pyx_t_4 = 0; - __pyx_t_4 = ((PyObject *)((struct __pyx_vtabstruct_5tinyr__Record *)((struct __pyx_obj_5tinyr__Record *)__pyx_8genexpr1__pyx_v_rec)->__pyx_vtab)->copy(((struct __pyx_obj_5tinyr__Record *)__pyx_8genexpr1__pyx_v_rec), __pyx_v_ret)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 187, __pyx_L5_error) - __Pyx_GOTREF(__pyx_t_4); - if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 187, __pyx_L5_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_rec); __pyx_8genexpr1__pyx_v_rec = 0; - goto __pyx_L9_exit_scope; - __pyx_L5_error:; - __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_rec); __pyx_8genexpr1__pyx_v_rec = 0; - goto __pyx_L1_error; - __pyx_L9_exit_scope:; - } /* exit inner scope */ - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_v_ret->records); - __Pyx_DECREF(__pyx_v_ret->records); - __pyx_v_ret->records = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":188 - * ret = _Node(parent) - * ret.records = [ (<_Record>rec).copy(ret) for rec in self.records ] - * ret.is_leaf = self.is_leaf # <<<<<<<<<<<<<< - * return ret - * - */ - __pyx_t_5 = __pyx_v_self->is_leaf; - __pyx_v_ret->is_leaf = __pyx_t_5; - - /* "tinyr.pyx":189 - * ret.records = [ (<_Record>rec).copy(ret) for rec in self.records ] - * ret.is_leaf = self.is_leaf - * return ret # <<<<<<<<<<<<<< - * - * cdef inline void common_boundaries(self, Dfloat *target): - */ - __Pyx_XDECREF((PyObject *)__pyx_r); - __Pyx_INCREF((PyObject *)__pyx_v_ret); - __pyx_r = __pyx_v_ret; - goto __pyx_L0; - - /* "tinyr.pyx":183 - * self.records = list() - * - * cdef _Node copy(self, _Node parent): # <<<<<<<<<<<<<< - * cdef: - * _Node ret - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr._Node.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_ret); - __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_rec); - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":191 - * return ret - * - * cdef inline void common_boundaries(self, Dfloat *target): # <<<<<<<<<<<<<< - * common_boundaries(self.records, target) - * - */ - -static CYTHON_INLINE void __pyx_f_5tinyr_5_Node_common_boundaries(struct __pyx_obj_5tinyr__Node *__pyx_v_self, __pyx_t_5tinyr_Dfloat *__pyx_v_target) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("common_boundaries", 1); - - /* "tinyr.pyx":192 - * - * cdef inline void common_boundaries(self, Dfloat *target): - * common_boundaries(self.records, target) # <<<<<<<<<<<<<< - * - * cdef inline _Record choose_subtree_least_enlargement(self, _Record ir): - */ - __pyx_t_1 = __pyx_v_self->records; - __Pyx_INCREF(__pyx_t_1); - __pyx_f_5tinyr_common_boundaries(((PyObject*)__pyx_t_1), __pyx_v_target); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 192, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":191 - * return ret - * - * cdef inline void common_boundaries(self, Dfloat *target): # <<<<<<<<<<<<<< - * common_boundaries(self.records, target) - * - */ - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr._Node.common_boundaries", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_RefNannyFinishContext(); -} - -/* "tinyr.pyx":194 - * common_boundaries(self.records, target) - * - * cdef inline _Record choose_subtree_least_enlargement(self, _Record ir): # <<<<<<<<<<<<<< - * cdef: - * Dfloat least_enlargement, enlagrgement, current_area, target_area - */ - -static CYTHON_INLINE struct __pyx_obj_5tinyr__Record *__pyx_f_5tinyr_5_Node_choose_subtree_least_enlargement(struct __pyx_obj_5tinyr__Node *__pyx_v_self, struct __pyx_obj_5tinyr__Record *__pyx_v_ir) { - __pyx_t_5tinyr_Dfloat __pyx_v_least_enlargement; - __pyx_t_5tinyr_Dfloat __pyx_v_enlagrgement; - __pyx_t_5tinyr_Dfloat __pyx_v_current_area; - __pyx_t_5tinyr_Dfloat __pyx_v_target_area; - __pyx_t_5tinyr_Dfloat __pyx_v_combined_rectangle[4]; - struct __pyx_obj_5tinyr__Record *__pyx_v_current_record = 0; - struct __pyx_obj_5tinyr__Record *__pyx_v_target = 0; - PyObject *__pyx_v_records = 0; - struct __pyx_obj_5tinyr__Record *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - __pyx_t_5tinyr_Dfloat __pyx_t_4; - int __pyx_t_5; - int __pyx_t_6; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("choose_subtree_least_enlargement", 1); - - /* "tinyr.pyx":201 - * list records - * - * init_Dfloat4(combined_rectangle) # <<<<<<<<<<<<<< - * - * target_area = least_enlargement = Dfloat_max - */ - __pyx_f_5tinyr_init_Dfloat4(__pyx_v_combined_rectangle); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L1_error) - - /* "tinyr.pyx":203 - * init_Dfloat4(combined_rectangle) - * - * target_area = least_enlargement = Dfloat_max # <<<<<<<<<<<<<< - * records = [ir, None] - * - */ - __pyx_v_target_area = DBL_MAX; - __pyx_v_least_enlargement = DBL_MAX; - - /* "tinyr.pyx":204 - * - * target_area = least_enlargement = Dfloat_max - * records = [ir, None] # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_ir); - __Pyx_GIVEREF((PyObject *)__pyx_v_ir); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_ir))) __PYX_ERR(0, 204, __pyx_L1_error); - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 1, Py_None)) __PYX_ERR(0, 204, __pyx_L1_error); - __pyx_v_records = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":207 - * - * - * for current_record in self.records: # <<<<<<<<<<<<<< - * current_area = area(current_record.coords) - * - */ - if (unlikely(__pyx_v_self->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 207, __pyx_L1_error) - } - __pyx_t_1 = __pyx_v_self->records; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 207, __pyx_L1_error) - #endif - if (__pyx_t_2 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 207, __pyx_L1_error) - #else - __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5tinyr__Record))))) __PYX_ERR(0, 207, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_current_record, ((struct __pyx_obj_5tinyr__Record *)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "tinyr.pyx":208 - * - * for current_record in self.records: - * current_area = area(current_record.coords) # <<<<<<<<<<<<<< - * - * records[1] = current_record - */ - __pyx_t_4 = __pyx_f_5tinyr_area(__pyx_v_current_record->coords); if (unlikely(__pyx_t_4 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 208, __pyx_L1_error) - __pyx_v_current_area = __pyx_t_4; - - /* "tinyr.pyx":210 - * current_area = area(current_record.coords) - * - * records[1] = current_record # <<<<<<<<<<<<<< - * - * common_boundaries(records, combined_rectangle) - */ - if (unlikely((__Pyx_SetItemInt(__pyx_v_records, 1, ((PyObject *)__pyx_v_current_record), long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 210, __pyx_L1_error) - - /* "tinyr.pyx":212 - * records[1] = current_record - * - * common_boundaries(records, combined_rectangle) # <<<<<<<<<<<<<< - * enlagrgement = area(combined_rectangle) - current_area - * - */ - __pyx_f_5tinyr_common_boundaries(__pyx_v_records, __pyx_v_combined_rectangle); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 212, __pyx_L1_error) - - /* "tinyr.pyx":213 - * - * common_boundaries(records, combined_rectangle) - * enlagrgement = area(combined_rectangle) - current_area # <<<<<<<<<<<<<< - * - * if enlagrgement < least_enlargement: - */ - __pyx_t_4 = __pyx_f_5tinyr_area(__pyx_v_combined_rectangle); if (unlikely(__pyx_t_4 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 213, __pyx_L1_error) - __pyx_v_enlagrgement = (__pyx_t_4 - __pyx_v_current_area); - - /* "tinyr.pyx":215 - * enlagrgement = area(combined_rectangle) - current_area - * - * if enlagrgement < least_enlargement: # <<<<<<<<<<<<<< - * target = current_record - * target_area = area(current_record.coords) - */ - __pyx_t_5 = (__pyx_v_enlagrgement < __pyx_v_least_enlargement); - if (__pyx_t_5) { - - /* "tinyr.pyx":216 - * - * if enlagrgement < least_enlargement: - * target = current_record # <<<<<<<<<<<<<< - * target_area = area(current_record.coords) - * least_enlargement = enlagrgement - */ - __Pyx_INCREF((PyObject *)__pyx_v_current_record); - __Pyx_XDECREF_SET(__pyx_v_target, __pyx_v_current_record); - - /* "tinyr.pyx":217 - * if enlagrgement < least_enlargement: - * target = current_record - * target_area = area(current_record.coords) # <<<<<<<<<<<<<< - * least_enlargement = enlagrgement - * elif enlagrgement == least_enlargement and current_area < target_area: - */ - __pyx_t_4 = __pyx_f_5tinyr_area(__pyx_v_current_record->coords); if (unlikely(__pyx_t_4 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 217, __pyx_L1_error) - __pyx_v_target_area = __pyx_t_4; - - /* "tinyr.pyx":218 - * target = current_record - * target_area = area(current_record.coords) - * least_enlargement = enlagrgement # <<<<<<<<<<<<<< - * elif enlagrgement == least_enlargement and current_area < target_area: - * target = current_record - */ - __pyx_v_least_enlargement = __pyx_v_enlagrgement; - - /* "tinyr.pyx":215 - * enlagrgement = area(combined_rectangle) - current_area - * - * if enlagrgement < least_enlargement: # <<<<<<<<<<<<<< - * target = current_record - * target_area = area(current_record.coords) - */ - goto __pyx_L5; - } - - /* "tinyr.pyx":219 - * target_area = area(current_record.coords) - * least_enlargement = enlagrgement - * elif enlagrgement == least_enlargement and current_area < target_area: # <<<<<<<<<<<<<< - * target = current_record - * least_enlargement = target_area = current_area - */ - __pyx_t_6 = (__pyx_v_enlagrgement == __pyx_v_least_enlargement); - if (__pyx_t_6) { - } else { - __pyx_t_5 = __pyx_t_6; - goto __pyx_L6_bool_binop_done; - } - __pyx_t_6 = (__pyx_v_current_area < __pyx_v_target_area); - __pyx_t_5 = __pyx_t_6; - __pyx_L6_bool_binop_done:; - if (__pyx_t_5) { - - /* "tinyr.pyx":220 - * least_enlargement = enlagrgement - * elif enlagrgement == least_enlargement and current_area < target_area: - * target = current_record # <<<<<<<<<<<<<< - * least_enlargement = target_area = current_area - * - */ - __Pyx_INCREF((PyObject *)__pyx_v_current_record); - __Pyx_XDECREF_SET(__pyx_v_target, __pyx_v_current_record); - - /* "tinyr.pyx":221 - * elif enlagrgement == least_enlargement and current_area < target_area: - * target = current_record - * least_enlargement = target_area = current_area # <<<<<<<<<<<<<< - * - * return target - */ - __pyx_v_least_enlargement = __pyx_v_current_area; - __pyx_v_target_area = __pyx_v_current_area; - - /* "tinyr.pyx":219 - * target_area = area(current_record.coords) - * least_enlargement = enlagrgement - * elif enlagrgement == least_enlargement and current_area < target_area: # <<<<<<<<<<<<<< - * target = current_record - * least_enlargement = target_area = current_area - */ - } - __pyx_L5:; - - /* "tinyr.pyx":207 - * - * - * for current_record in self.records: # <<<<<<<<<<<<<< - * current_area = area(current_record.coords) - * - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":223 - * least_enlargement = target_area = current_area - * - * return target # <<<<<<<<<<<<<< - * - * cdef void find_overlapping_leafs_recursive(self, list result, Dfloat *coords): - */ - __Pyx_XDECREF((PyObject *)__pyx_r); - if (unlikely(!__pyx_v_target)) { __Pyx_RaiseUnboundLocalError("target"); __PYX_ERR(0, 223, __pyx_L1_error) } - __Pyx_INCREF((PyObject *)__pyx_v_target); - __pyx_r = __pyx_v_target; - goto __pyx_L0; - - /* "tinyr.pyx":194 - * common_boundaries(self.records, target) - * - * cdef inline _Record choose_subtree_least_enlargement(self, _Record ir): # <<<<<<<<<<<<<< - * cdef: - * Dfloat least_enlargement, enlagrgement, current_area, target_area - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr._Node.choose_subtree_least_enlargement", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_current_record); - __Pyx_XDECREF((PyObject *)__pyx_v_target); - __Pyx_XDECREF(__pyx_v_records); - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":225 - * return target - * - * cdef void find_overlapping_leafs_recursive(self, list result, Dfloat *coords): # <<<<<<<<<<<<<< - * cdef: - * _InnerRecord record - */ - -static void __pyx_f_5tinyr_5_Node_find_overlapping_leafs_recursive(struct __pyx_obj_5tinyr__Node *__pyx_v_self, PyObject *__pyx_v_result, __pyx_t_5tinyr_Dfloat *__pyx_v_coords) { - struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_record = 0; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("find_overlapping_leafs_recursive", 1); - - /* "tinyr.pyx":229 - * _InnerRecord record - * - * if self.is_leaf: # <<<<<<<<<<<<<< - * result.append(self) - * else: - */ - if (__pyx_v_self->is_leaf) { - - /* "tinyr.pyx":230 - * - * if self.is_leaf: - * result.append(self) # <<<<<<<<<<<<<< - * else: - * for record in self.records: - */ - if (unlikely(__pyx_v_result == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 230, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_result, ((PyObject *)__pyx_v_self)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 230, __pyx_L1_error) - - /* "tinyr.pyx":229 - * _InnerRecord record - * - * if self.is_leaf: # <<<<<<<<<<<<<< - * result.append(self) - * else: - */ - goto __pyx_L3; - } - - /* "tinyr.pyx":232 - * result.append(self) - * else: - * for record in self.records: # <<<<<<<<<<<<<< - * if record.overlaps(coords): - * record.child.find_overlapping_leafs_recursive(result, coords) - */ - /*else*/ { - if (unlikely(__pyx_v_self->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 232, __pyx_L1_error) - } - __pyx_t_2 = __pyx_v_self->records; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 232, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 232, __pyx_L1_error) - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5tinyr__InnerRecord))))) __PYX_ERR(0, 232, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_record, ((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_4)); - __pyx_t_4 = 0; - - /* "tinyr.pyx":233 - * else: - * for record in self.records: - * if record.overlaps(coords): # <<<<<<<<<<<<<< - * record.child.find_overlapping_leafs_recursive(result, coords) - * - */ - __pyx_t_5 = __pyx_f_5tinyr_7_Record_overlaps(((struct __pyx_obj_5tinyr__Record *)__pyx_v_record), __pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 233, __pyx_L1_error) - if (__pyx_t_5) { - - /* "tinyr.pyx":234 - * for record in self.records: - * if record.overlaps(coords): - * record.child.find_overlapping_leafs_recursive(result, coords) # <<<<<<<<<<<<<< - * - * cdef void addChild(self, _Node node): - */ - ((struct __pyx_vtabstruct_5tinyr__Node *)__pyx_v_record->child->__pyx_vtab)->find_overlapping_leafs_recursive(__pyx_v_record->child, __pyx_v_result, __pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 234, __pyx_L1_error) - - /* "tinyr.pyx":233 - * else: - * for record in self.records: - * if record.overlaps(coords): # <<<<<<<<<<<<<< - * record.child.find_overlapping_leafs_recursive(result, coords) - * - */ - } - - /* "tinyr.pyx":232 - * result.append(self) - * else: - * for record in self.records: # <<<<<<<<<<<<<< - * if record.overlaps(coords): - * record.child.find_overlapping_leafs_recursive(result, coords) - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - __pyx_L3:; - - /* "tinyr.pyx":225 - * return target - * - * cdef void find_overlapping_leafs_recursive(self, list result, Dfloat *coords): # <<<<<<<<<<<<<< - * cdef: - * _InnerRecord record - */ - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr._Node.find_overlapping_leafs_recursive", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_record); - __Pyx_RefNannyFinishContext(); -} - -/* "tinyr.pyx":236 - * record.child.find_overlapping_leafs_recursive(result, coords) - * - * cdef void addChild(self, _Node node): # <<<<<<<<<<<<<< - * cdef: - * _InnerRecord ir - */ - -static void __pyx_f_5tinyr_5_Node_addChild(struct __pyx_obj_5tinyr__Node *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node) { - struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_ir = 0; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("addChild", 1); - - /* "tinyr.pyx":240 - * _InnerRecord ir - * - * node.parent = self # <<<<<<<<<<<<<< - * ir = _InnerRecord(node) - * node.common_boundaries(ir.coords) - */ - __Pyx_INCREF((PyObject *)__pyx_v_self); - __Pyx_GIVEREF((PyObject *)__pyx_v_self); - __Pyx_GOTREF((PyObject *)__pyx_v_node->parent); - __Pyx_DECREF((PyObject *)__pyx_v_node->parent); - __pyx_v_node->parent = __pyx_v_self; - - /* "tinyr.pyx":241 - * - * node.parent = self - * ir = _InnerRecord(node) # <<<<<<<<<<<<<< - * node.common_boundaries(ir.coords) - * self.records.append(ir) - */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__InnerRecord), ((PyObject *)__pyx_v_node)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_ir = ((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":242 - * node.parent = self - * ir = _InnerRecord(node) - * node.common_boundaries(ir.coords) # <<<<<<<<<<<<<< - * self.records.append(ir) - * - */ - __pyx_f_5tinyr_5_Node_common_boundaries(__pyx_v_node, __pyx_v_ir->__pyx_base.coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 242, __pyx_L1_error) - - /* "tinyr.pyx":243 - * ir = _InnerRecord(node) - * node.common_boundaries(ir.coords) - * self.records.append(ir) # <<<<<<<<<<<<<< - * - * cdef list find_overlapping_leafs_recursive(RTree rtree, Dfloat *coords): - */ - if (unlikely(__pyx_v_self->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 243, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_self->records, ((PyObject *)__pyx_v_ir)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 243, __pyx_L1_error) - - /* "tinyr.pyx":236 - * record.child.find_overlapping_leafs_recursive(result, coords) - * - * cdef void addChild(self, _Node node): # <<<<<<<<<<<<<< - * cdef: - * _InnerRecord ir - */ - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr._Node.addChild", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_ir); - __Pyx_RefNannyFinishContext(); -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5_Node_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_5_Node_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5_Node_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_5_Node_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_5_Node_2__reduce_cython__(((struct __pyx_obj_5tinyr__Node *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5_Node_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__Node *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._Node.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5_Node_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_5_Node_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5_Node_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_5_Node_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._Node.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_5_Node_4__setstate_cython__(((struct __pyx_obj_5tinyr__Node *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5_Node_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__Node *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":4 - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._Node.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":245 - * self.records.append(ir) - * - * cdef list find_overlapping_leafs_recursive(RTree rtree, Dfloat *coords): # <<<<<<<<<<<<<< - * cdef: - * _Record rec - */ - -static PyObject *__pyx_f_5tinyr_find_overlapping_leafs_recursive(struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree, __pyx_t_5tinyr_Dfloat *__pyx_v_coords) { - struct __pyx_obj_5tinyr__Record *__pyx_v_rec = 0; - PyObject *__pyx_v_result = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("find_overlapping_leafs_recursive", 1); - - /* "tinyr.pyx":251 - * - * # don't know the whole surrounding rectangle of root, ask records for overlapping - * for rec in rtree.root.records: # <<<<<<<<<<<<<< - * if rec.overlaps(coords): - * break - */ - if (unlikely(__pyx_v_rtree->root->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 251, __pyx_L1_error) - } - __pyx_t_1 = __pyx_v_rtree->root->records; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 251, __pyx_L1_error) - #endif - if (__pyx_t_2 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 251, __pyx_L1_error) - #else - __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 251, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5tinyr__Record))))) __PYX_ERR(0, 251, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_rec, ((struct __pyx_obj_5tinyr__Record *)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "tinyr.pyx":252 - * # don't know the whole surrounding rectangle of root, ask records for overlapping - * for rec in rtree.root.records: - * if rec.overlaps(coords): # <<<<<<<<<<<<<< - * break - * else: - */ - __pyx_t_4 = __pyx_f_5tinyr_7_Record_overlaps(__pyx_v_rec, __pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 252, __pyx_L1_error) - if (__pyx_t_4) { - - /* "tinyr.pyx":253 - * for rec in rtree.root.records: - * if rec.overlaps(coords): - * break # <<<<<<<<<<<<<< - * else: - * return [] - */ - goto __pyx_L4_break; - - /* "tinyr.pyx":252 - * # don't know the whole surrounding rectangle of root, ask records for overlapping - * for rec in rtree.root.records: - * if rec.overlaps(coords): # <<<<<<<<<<<<<< - * break - * else: - */ - } - - /* "tinyr.pyx":251 - * - * # don't know the whole surrounding rectangle of root, ask records for overlapping - * for rec in rtree.root.records: # <<<<<<<<<<<<<< - * if rec.overlaps(coords): - * break - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L6_for_else; - __pyx_L4_break:; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L7_for_end; - /*else*/ { - __pyx_L6_for_else:; - - /* "tinyr.pyx":255 - * break - * else: - * return [] # <<<<<<<<<<<<<< - * - * result = list() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - goto __pyx_L0; - } - __pyx_L7_for_end:; - - /* "tinyr.pyx":257 - * return [] - * - * result = list() # <<<<<<<<<<<<<< - * rtree.root.find_overlapping_leafs_recursive(result, coords) - * return result - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 257, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_result = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":258 - * - * result = list() - * rtree.root.find_overlapping_leafs_recursive(result, coords) # <<<<<<<<<<<<<< - * return result - * - */ - ((struct __pyx_vtabstruct_5tinyr__Node *)__pyx_v_rtree->root->__pyx_vtab)->find_overlapping_leafs_recursive(__pyx_v_rtree->root, __pyx_v_result, __pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 258, __pyx_L1_error) - - /* "tinyr.pyx":259 - * result = list() - * rtree.root.find_overlapping_leafs_recursive(result, coords) - * return result # <<<<<<<<<<<<<< - * - * # performs worse than the recursive one - so we skip it - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_result); - __pyx_r = __pyx_v_result; - goto __pyx_L0; - - /* "tinyr.pyx":245 - * self.records.append(ir) - * - * cdef list find_overlapping_leafs_recursive(RTree rtree, Dfloat *coords): # <<<<<<<<<<<<<< - * cdef: - * _Record rec - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr.find_overlapping_leafs_recursive", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_rec); - __Pyx_XDECREF(__pyx_v_result); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":286 - * # return nodes_to_check - * - * cdef int PickSeedsQuadratic(_Node node, list remaining, _Node newnode) except -1: # <<<<<<<<<<<<<< - * cdef: - * Dfloat d, d_max, E1_E2[4] - */ - -static int __pyx_f_5tinyr_PickSeedsQuadratic(struct __pyx_obj_5tinyr__Node *__pyx_v_node, PyObject *__pyx_v_remaining, struct __pyx_obj_5tinyr__Node *__pyx_v_newnode) { - __pyx_t_5tinyr_Dfloat __pyx_v_d; - __pyx_t_5tinyr_Dfloat __pyx_v_d_max; - __pyx_t_5tinyr_Dfloat __pyx_v_E1_E2[4]; - __pyx_t_5tinyr_Dfloat __pyx_v_J; - __pyx_t_5tinyr_Dfloat __pyx_v_a_E1; - __pyx_t_5tinyr_Dfloat __pyx_v_a_E2; - struct __pyx_obj_5tinyr__Record *__pyx_v_E1_ret = 0; - struct __pyx_obj_5tinyr__Record *__pyx_v_E2_ret = 0; - PyObject *__pyx_v_combi = 0; - PyObject *__pyx_v_E1 = NULL; - PyObject *__pyx_v_E2 = NULL; - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); - __pyx_t_5tinyr_Dfloat __pyx_t_10; - int __pyx_t_11; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PickSeedsQuadratic", 1); - - /* "tinyr.pyx":293 - * list combi - * - * init_Dfloat4(E1_E2) # <<<<<<<<<<<<<< - * - * combi = [None, None] - */ - __pyx_f_5tinyr_init_Dfloat4(__pyx_v_E1_E2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 293, __pyx_L1_error) - - /* "tinyr.pyx":295 - * init_Dfloat4(E1_E2) - * - * combi = [None, None] # <<<<<<<<<<<<<< - * d_max = -Dfloat_max - * - */ - __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, Py_None)) __PYX_ERR(0, 295, __pyx_L1_error); - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 1, Py_None)) __PYX_ERR(0, 295, __pyx_L1_error); - __pyx_v_combi = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":296 - * - * combi = [None, None] - * d_max = -Dfloat_max # <<<<<<<<<<<<<< - * - * for E1, E2 in itertools.combinations(remaining, 2): - */ - __pyx_v_d_max = (-DBL_MAX); - - /* "tinyr.pyx":298 - * d_max = -Dfloat_max - * - * for E1, E2 in itertools.combinations(remaining, 2): # <<<<<<<<<<<<<< - * - * combi[0] = E1 - */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_itertools); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_combinations); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_remaining, __pyx_int_2}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 298, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 298, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 298, __pyx_L1_error) - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 298, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 298, __pyx_L1_error) - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_3); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 298, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_1); - } - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 298, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - } else { - __pyx_t_2 = PyList_GET_ITEM(sequence, 0); - __pyx_t_7 = PyList_GET_ITEM(sequence, 1); - } - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(__pyx_t_7); - #else - __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); - index = 0; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 298, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L6_unpacking_done; - __pyx_L5_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 298, __pyx_L1_error) - __pyx_L6_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_E1, __pyx_t_2); - __pyx_t_2 = 0; - __Pyx_XDECREF_SET(__pyx_v_E2, __pyx_t_7); - __pyx_t_7 = 0; - - /* "tinyr.pyx":300 - * for E1, E2 in itertools.combinations(remaining, 2): - * - * combi[0] = E1 # <<<<<<<<<<<<<< - * combi[1] = E2 - * - */ - if (unlikely((__Pyx_SetItemInt(__pyx_v_combi, 0, __pyx_v_E1, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 300, __pyx_L1_error) - - /* "tinyr.pyx":301 - * - * combi[0] = E1 - * combi[1] = E2 # <<<<<<<<<<<<<< - * - * common_boundaries(combi, E1_E2) - */ - if (unlikely((__Pyx_SetItemInt(__pyx_v_combi, 1, __pyx_v_E2, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 301, __pyx_L1_error) - - /* "tinyr.pyx":303 - * combi[1] = E2 - * - * common_boundaries(combi, E1_E2) # <<<<<<<<<<<<<< - * J = area(E1_E2) - * a_E1 = area((<_Record>E1).coords) - */ - __pyx_f_5tinyr_common_boundaries(__pyx_v_combi, __pyx_v_E1_E2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 303, __pyx_L1_error) - - /* "tinyr.pyx":304 - * - * common_boundaries(combi, E1_E2) - * J = area(E1_E2) # <<<<<<<<<<<<<< - * a_E1 = area((<_Record>E1).coords) - * a_E2 = area((<_Record>E2).coords) - */ - __pyx_t_10 = __pyx_f_5tinyr_area(__pyx_v_E1_E2); if (unlikely(__pyx_t_10 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 304, __pyx_L1_error) - __pyx_v_J = __pyx_t_10; - - /* "tinyr.pyx":305 - * common_boundaries(combi, E1_E2) - * J = area(E1_E2) - * a_E1 = area((<_Record>E1).coords) # <<<<<<<<<<<<<< - * a_E2 = area((<_Record>E2).coords) - * d = J - a_E1 - a_E2 - */ - __pyx_t_10 = __pyx_f_5tinyr_area(((struct __pyx_obj_5tinyr__Record *)__pyx_v_E1)->coords); if (unlikely(__pyx_t_10 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 305, __pyx_L1_error) - __pyx_v_a_E1 = __pyx_t_10; - - /* "tinyr.pyx":306 - * J = area(E1_E2) - * a_E1 = area((<_Record>E1).coords) - * a_E2 = area((<_Record>E2).coords) # <<<<<<<<<<<<<< - * d = J - a_E1 - a_E2 - * - */ - __pyx_t_10 = __pyx_f_5tinyr_area(((struct __pyx_obj_5tinyr__Record *)__pyx_v_E2)->coords); if (unlikely(__pyx_t_10 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 306, __pyx_L1_error) - __pyx_v_a_E2 = __pyx_t_10; - - /* "tinyr.pyx":307 - * a_E1 = area((<_Record>E1).coords) - * a_E2 = area((<_Record>E2).coords) - * d = J - a_E1 - a_E2 # <<<<<<<<<<<<<< - * - * if d > d_max: - */ - __pyx_v_d = ((__pyx_v_J - __pyx_v_a_E1) - __pyx_v_a_E2); - - /* "tinyr.pyx":309 - * d = J - a_E1 - a_E2 - * - * if d > d_max: # <<<<<<<<<<<<<< - * E1_ret = E1 - * E2_ret = E2 - */ - __pyx_t_11 = (__pyx_v_d > __pyx_v_d_max); - if (__pyx_t_11) { - - /* "tinyr.pyx":310 - * - * if d > d_max: - * E1_ret = E1 # <<<<<<<<<<<<<< - * E2_ret = E2 - * - */ - if (!(likely(((__pyx_v_E1) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_E1, __pyx_ptype_5tinyr__Record))))) __PYX_ERR(0, 310, __pyx_L1_error) - __pyx_t_1 = __pyx_v_E1; - __Pyx_INCREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_E1_ret, ((struct __pyx_obj_5tinyr__Record *)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "tinyr.pyx":311 - * if d > d_max: - * E1_ret = E1 - * E2_ret = E2 # <<<<<<<<<<<<<< - * - * remaining.remove(E1_ret) - */ - if (!(likely(((__pyx_v_E2) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_E2, __pyx_ptype_5tinyr__Record))))) __PYX_ERR(0, 311, __pyx_L1_error) - __pyx_t_1 = __pyx_v_E2; - __Pyx_INCREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_E2_ret, ((struct __pyx_obj_5tinyr__Record *)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "tinyr.pyx":309 - * d = J - a_E1 - a_E2 - * - * if d > d_max: # <<<<<<<<<<<<<< - * E1_ret = E1 - * E2_ret = E2 - */ - } - - /* "tinyr.pyx":298 - * d_max = -Dfloat_max - * - * for E1, E2 in itertools.combinations(remaining, 2): # <<<<<<<<<<<<<< - * - * combi[0] = E1 - */ - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":313 - * E2_ret = E2 - * - * remaining.remove(E1_ret) # <<<<<<<<<<<<<< - * remaining.remove(E2_ret) - * - */ - if (unlikely(!__pyx_v_E1_ret)) { __Pyx_RaiseUnboundLocalError("E1_ret"); __PYX_ERR(0, 313, __pyx_L1_error) } - __pyx_t_3 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_remove, __pyx_v_remaining, ((PyObject *)__pyx_v_E1_ret)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":314 - * - * remaining.remove(E1_ret) - * remaining.remove(E2_ret) # <<<<<<<<<<<<<< - * - * node.records = [E1_ret] - */ - if (unlikely(!__pyx_v_E2_ret)) { __Pyx_RaiseUnboundLocalError("E2_ret"); __PYX_ERR(0, 314, __pyx_L1_error) } - __pyx_t_3 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_remove, __pyx_v_remaining, ((PyObject *)__pyx_v_E2_ret)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":316 - * remaining.remove(E2_ret) - * - * node.records = [E1_ret] # <<<<<<<<<<<<<< - * newnode.records = [E2_ret] - * - */ - if (unlikely(!__pyx_v_E1_ret)) { __Pyx_RaiseUnboundLocalError("E1_ret"); __PYX_ERR(0, 316, __pyx_L1_error) } - __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF((PyObject *)__pyx_v_E1_ret); - __Pyx_GIVEREF((PyObject *)__pyx_v_E1_ret); - if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_E1_ret))) __PYX_ERR(0, 316, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_v_node->records); - __Pyx_DECREF(__pyx_v_node->records); - __pyx_v_node->records = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":317 - * - * node.records = [E1_ret] - * newnode.records = [E2_ret] # <<<<<<<<<<<<<< - * - * return 0 - */ - if (unlikely(!__pyx_v_E2_ret)) { __Pyx_RaiseUnboundLocalError("E2_ret"); __PYX_ERR(0, 317, __pyx_L1_error) } - __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF((PyObject *)__pyx_v_E2_ret); - __Pyx_GIVEREF((PyObject *)__pyx_v_E2_ret); - if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_E2_ret))) __PYX_ERR(0, 317, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_v_newnode->records); - __Pyx_DECREF(__pyx_v_newnode->records); - __pyx_v_newnode->records = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":319 - * newnode.records = [E2_ret] - * - * return 0 # <<<<<<<<<<<<<< - * - * #cdef int PickSeedsLinear(_Node node, list remaining, _Node newnode) except -1: - */ - __pyx_r = 0; - goto __pyx_L0; - - /* "tinyr.pyx":286 - * # return nodes_to_check - * - * cdef int PickSeedsQuadratic(_Node node, list remaining, _Node newnode) except -1: # <<<<<<<<<<<<<< - * cdef: - * Dfloat d, d_max, E1_E2[4] - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("tinyr.PickSeedsQuadratic", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_E1_ret); - __Pyx_XDECREF((PyObject *)__pyx_v_E2_ret); - __Pyx_XDECREF(__pyx_v_combi); - __Pyx_XDECREF(__pyx_v_E1); - __Pyx_XDECREF(__pyx_v_E2); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":350 - * - * property min_cap: - * def __get__(self): # <<<<<<<<<<<<<< - * return self.m_cap - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_7min_cap_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_5RTree_7min_cap_1__get__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_5RTree_7min_cap___get__(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_7min_cap___get__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 1); - - /* "tinyr.pyx":351 - * property min_cap: - * def __get__(self): - * return self.m_cap # <<<<<<<<<<<<<< - * - * property max_cap: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->m_cap); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":350 - * - * property min_cap: - * def __get__(self): # <<<<<<<<<<<<<< - * return self.m_cap - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTree.min_cap.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":354 - * - * property max_cap: - * def __get__(self): # <<<<<<<<<<<<<< - * return self.M_cap - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_7max_cap_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_5RTree_7max_cap_1__get__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_5RTree_7max_cap___get__(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_7max_cap___get__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 1); - - /* "tinyr.pyx":355 - * property max_cap: - * def __get__(self): - * return self.M_cap # <<<<<<<<<<<<<< - * - * def __cinit__(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->M_cap); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 355, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":354 - * - * property max_cap: - * def __get__(self): # <<<<<<<<<<<<<< - * return self.M_cap - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTree.max_cap.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":357 - * return self.M_cap - * - * def __cinit__(self): # <<<<<<<<<<<<<< - * self.root = _Node(None) - * self.root.is_leaf = True - */ - -/* Python wrapper */ -static int __pyx_pw_5tinyr_5RTree_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_5tinyr_5RTree_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; - #endif - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, __pyx_nargs); return -1;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_VARARGS(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; - __pyx_r = __pyx_pf_5tinyr_5RTree___cinit__(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5tinyr_5RTree___cinit__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 1); - - /* "tinyr.pyx":358 - * - * def __cinit__(self): - * self.root = _Node(None) # <<<<<<<<<<<<<< - * self.root.is_leaf = True - * self._leaf_level = 0 - */ - __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5tinyr__Node), __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 358, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF((PyObject *)__pyx_v_self->root); - __Pyx_DECREF((PyObject *)__pyx_v_self->root); - __pyx_v_self->root = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":359 - * def __cinit__(self): - * self.root = _Node(None) - * self.root.is_leaf = True # <<<<<<<<<<<<<< - * self._leaf_level = 0 - * self._node_cnt = 0 - */ - __pyx_v_self->root->is_leaf = 1; - - /* "tinyr.pyx":360 - * self.root = _Node(None) - * self.root.is_leaf = True - * self._leaf_level = 0 # <<<<<<<<<<<<<< - * self._node_cnt = 0 - * - */ - __pyx_v_self->_leaf_level = 0; - - /* "tinyr.pyx":361 - * self.root.is_leaf = True - * self._leaf_level = 0 - * self._node_cnt = 0 # <<<<<<<<<<<<<< - * - * def __init__(self, interleaved=True, max_cap=5, min_cap=2): - */ - __pyx_v_self->_node_cnt = 0; - - /* "tinyr.pyx":357 - * return self.M_cap - * - * def __cinit__(self): # <<<<<<<<<<<<<< - * self.root = _Node(None) - * self.root.is_leaf = True - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTree.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":363 - * self._node_cnt = 0 - * - * def __init__(self, interleaved=True, max_cap=5, min_cap=2): # <<<<<<<<<<<<<< - * if min_cap > max_cap/2.: - * raise ValueError('for min/max capacities, it\'s required that min_cap <= max_cap/2.0') - */ - -/* Python wrapper */ -static int __pyx_pw_5tinyr_5RTree_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_5tinyr_5RTree_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_interleaved = 0; - PyObject *__pyx_v_max_cap = 0; - PyObject *__pyx_v_min_cap = 0; - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; - #endif - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_interleaved,&__pyx_n_s_max_cap,&__pyx_n_s_min_cap,0}; - values[0] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)Py_True)); - values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_5)); - values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_2)); - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_interleaved); - if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 363, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_max_cap); - if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 363, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_min_cap); - if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 363, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 363, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_interleaved = values[0]; - __pyx_v_max_cap = values[1]; - __pyx_v_min_cap = values[2]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 363, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.RTree.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_5RTree_2__init__(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self), __pyx_v_interleaved, __pyx_v_max_cap, __pyx_v_min_cap); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5tinyr_5RTree_2__init__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_interleaved, PyObject *__pyx_v_max_cap, PyObject *__pyx_v_min_cap) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - int __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 1); - - /* "tinyr.pyx":364 - * - * def __init__(self, interleaved=True, max_cap=5, min_cap=2): - * if min_cap > max_cap/2.: # <<<<<<<<<<<<<< - * raise ValueError('for min/max capacities, it\'s required that min_cap <= max_cap/2.0') - * - */ - __pyx_t_1 = __Pyx_PyFloat_TrueDivideObjC(__pyx_v_max_cap, __pyx_float_2_, 2., 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 364, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyObject_RichCompare(__pyx_v_min_cap, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 364, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 364, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(__pyx_t_3)) { - - /* "tinyr.pyx":365 - * def __init__(self, interleaved=True, max_cap=5, min_cap=2): - * if min_cap > max_cap/2.: - * raise ValueError('for min/max capacities, it\'s required that min_cap <= max_cap/2.0') # <<<<<<<<<<<<<< - * - * if interleaved: - */ - __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 365, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 365, __pyx_L1_error) - - /* "tinyr.pyx":364 - * - * def __init__(self, interleaved=True, max_cap=5, min_cap=2): - * if min_cap > max_cap/2.: # <<<<<<<<<<<<<< - * raise ValueError('for min/max capacities, it\'s required that min_cap <= max_cap/2.0') - * - */ - } - - /* "tinyr.pyx":367 - * raise ValueError('for min/max capacities, it\'s required that min_cap <= max_cap/2.0') - * - * if interleaved: # <<<<<<<<<<<<<< - * self.tuple_to_array = tuple_to_array_interleaved - * self.array_to_tuple = array_to_tuple_interleaved - */ - __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_interleaved); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 367, __pyx_L1_error) - if (__pyx_t_3) { - - /* "tinyr.pyx":368 - * - * if interleaved: - * self.tuple_to_array = tuple_to_array_interleaved # <<<<<<<<<<<<<< - * self.array_to_tuple = array_to_tuple_interleaved - * else: - */ - __pyx_v_self->tuple_to_array = __pyx_f_5tinyr_tuple_to_array_interleaved; - - /* "tinyr.pyx":369 - * if interleaved: - * self.tuple_to_array = tuple_to_array_interleaved - * self.array_to_tuple = array_to_tuple_interleaved # <<<<<<<<<<<<<< - * else: - * self.tuple_to_array = tuple_to_array_normal - */ - __pyx_v_self->array_to_tuple = __pyx_f_5tinyr_array_to_tuple_interleaved; - - /* "tinyr.pyx":367 - * raise ValueError('for min/max capacities, it\'s required that min_cap <= max_cap/2.0') - * - * if interleaved: # <<<<<<<<<<<<<< - * self.tuple_to_array = tuple_to_array_interleaved - * self.array_to_tuple = array_to_tuple_interleaved - */ - goto __pyx_L4; - } - - /* "tinyr.pyx":371 - * self.array_to_tuple = array_to_tuple_interleaved - * else: - * self.tuple_to_array = tuple_to_array_normal # <<<<<<<<<<<<<< - * self.array_to_tuple = array_to_tuple_normal - * - */ - /*else*/ { - __pyx_v_self->tuple_to_array = __pyx_f_5tinyr_tuple_to_array_normal; - - /* "tinyr.pyx":372 - * else: - * self.tuple_to_array = tuple_to_array_normal - * self.array_to_tuple = array_to_tuple_normal # <<<<<<<<<<<<<< - * - * # the iterative method performed worse - */ - __pyx_v_self->array_to_tuple = __pyx_f_5tinyr_array_to_tuple_normal; - } - __pyx_L4:; - - /* "tinyr.pyx":375 - * - * # the iterative method performed worse - * self.find_overlapping_leafs = find_overlapping_leafs_recursive # <<<<<<<<<<<<<< - * - * self.PickSeeds = PickSeedsQuadratic - */ - __pyx_v_self->find_overlapping_leafs = __pyx_f_5tinyr_find_overlapping_leafs_recursive; - - /* "tinyr.pyx":377 - * self.find_overlapping_leafs = find_overlapping_leafs_recursive - * - * self.PickSeeds = PickSeedsQuadratic # <<<<<<<<<<<<<< - * - * self.M_cap = max_cap - */ - __pyx_v_self->PickSeeds = __pyx_f_5tinyr_PickSeedsQuadratic; - - /* "tinyr.pyx":379 - * self.PickSeeds = PickSeedsQuadratic - * - * self.M_cap = max_cap # <<<<<<<<<<<<<< - * self.m_cap = min_cap - * - */ - __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_max_cap); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 379, __pyx_L1_error) - __pyx_v_self->M_cap = __pyx_t_4; - - /* "tinyr.pyx":380 - * - * self.M_cap = max_cap - * self.m_cap = min_cap # <<<<<<<<<<<<<< - * - * def __len__(self): - */ - __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_v_min_cap); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 380, __pyx_L1_error) - __pyx_v_self->m_cap = __pyx_t_4; - - /* "tinyr.pyx":363 - * self._node_cnt = 0 - * - * def __init__(self, interleaved=True, max_cap=5, min_cap=2): # <<<<<<<<<<<<<< - * if min_cap > max_cap/2.: - * raise ValueError('for min/max capacities, it\'s required that min_cap <= max_cap/2.0') - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("tinyr.RTree.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":382 - * self.m_cap = min_cap - * - * def __len__(self): # <<<<<<<<<<<<<< - * return self._node_cnt - * - */ - -/* Python wrapper */ -static Py_ssize_t __pyx_pw_5tinyr_5RTree_5__len__(PyObject *__pyx_v_self); /*proto*/ -static Py_ssize_t __pyx_pw_5tinyr_5RTree_5__len__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - Py_ssize_t __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_5RTree_4__len__(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static Py_ssize_t __pyx_pf_5tinyr_5RTree_4__len__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self) { - Py_ssize_t __pyx_r; - - /* "tinyr.pyx":383 - * - * def __len__(self): - * return self._node_cnt # <<<<<<<<<<<<<< - * - * def __getitem__(self, item): - */ - __pyx_r = __pyx_v_self->_node_cnt; - goto __pyx_L0; - - /* "tinyr.pyx":382 - * self.m_cap = min_cap - * - * def __len__(self): # <<<<<<<<<<<<<< - * return self._node_cnt - * - */ - - /* function exit code */ - __pyx_L0:; - return __pyx_r; -} - -/* "tinyr.pyx":385 - * return self._node_cnt - * - * def __getitem__(self, item): # <<<<<<<<<<<<<< - * if isinstance(item, (list, tuple)): - * if len(item) == 2: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ -static PyObject *__pyx_pw_5tinyr_5RTree_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_5RTree_6__getitem__(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self), ((PyObject *)__pyx_v_item)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_6__getitem__(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_item) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - Py_ssize_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - int __pyx_t_7; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__getitem__", 1); - - /* "tinyr.pyx":386 - * - * def __getitem__(self, item): - * if isinstance(item, (list, tuple)): # <<<<<<<<<<<<<< - * if len(item) == 2: - * return self.search_surrounding(item) - */ - __pyx_t_2 = PyList_Check(__pyx_v_item); - if (!__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_2 = PyTuple_Check(__pyx_v_item); - __pyx_t_1 = __pyx_t_2; - __pyx_L4_bool_binop_done:; - if (__pyx_t_1) { - - /* "tinyr.pyx":387 - * def __getitem__(self, item): - * if isinstance(item, (list, tuple)): - * if len(item) == 2: # <<<<<<<<<<<<<< - * return self.search_surrounding(item) - * elif len(item) == 4: - */ - __pyx_t_3 = PyObject_Length(__pyx_v_item); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 387, __pyx_L1_error) - __pyx_t_1 = (__pyx_t_3 == 2); - if (__pyx_t_1) { - - /* "tinyr.pyx":388 - * if isinstance(item, (list, tuple)): - * if len(item) == 2: - * return self.search_surrounding(item) # <<<<<<<<<<<<<< - * elif len(item) == 4: - * return self.search(item) - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_search_surrounding); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - __pyx_t_7 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - __pyx_t_7 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_item}; - __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":387 - * def __getitem__(self, item): - * if isinstance(item, (list, tuple)): - * if len(item) == 2: # <<<<<<<<<<<<<< - * return self.search_surrounding(item) - * elif len(item) == 4: - */ - } - - /* "tinyr.pyx":389 - * if len(item) == 2: - * return self.search_surrounding(item) - * elif len(item) == 4: # <<<<<<<<<<<<<< - * return self.search(item) - * raise AttributeError('indexing RTree only possible with rectangle or point (x, y)') - */ - __pyx_t_3 = PyObject_Length(__pyx_v_item); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 389, __pyx_L1_error) - __pyx_t_1 = (__pyx_t_3 == 4); - if (__pyx_t_1) { - - /* "tinyr.pyx":390 - * return self.search_surrounding(item) - * elif len(item) == 4: - * return self.search(item) # <<<<<<<<<<<<<< - * raise AttributeError('indexing RTree only possible with rectangle or point (x, y)') - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_search); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = NULL; - __pyx_t_7 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - __pyx_t_7 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_v_item}; - __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":389 - * if len(item) == 2: - * return self.search_surrounding(item) - * elif len(item) == 4: # <<<<<<<<<<<<<< - * return self.search(item) - * raise AttributeError('indexing RTree only possible with rectangle or point (x, y)') - */ - } - - /* "tinyr.pyx":386 - * - * def __getitem__(self, item): - * if isinstance(item, (list, tuple)): # <<<<<<<<<<<<<< - * if len(item) == 2: - * return self.search_surrounding(item) - */ - } - - /* "tinyr.pyx":391 - * elif len(item) == 4: - * return self.search(item) - * raise AttributeError('indexing RTree only possible with rectangle or point (x, y)') # <<<<<<<<<<<<<< - * - * def iterkeys(self): - */ - __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_AttributeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_Raise(__pyx_t_4, 0, 0, 0); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __PYX_ERR(0, 391, __pyx_L1_error) - - /* "tinyr.pyx":385 - * return self._node_cnt - * - * def __getitem__(self, item): # <<<<<<<<<<<<<< - * if isinstance(item, (list, tuple)): - * if len(item) == 2: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("tinyr.RTree.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":393 - * raise AttributeError('indexing RTree only possible with rectangle or point (x, y)') - * - * def iterkeys(self): # <<<<<<<<<<<<<< - * return _KeysIter(self) - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_9iterkeys(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_5RTree_9iterkeys = {"iterkeys", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_9iterkeys, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_5RTree_9iterkeys(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("iterkeys (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("iterkeys", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "iterkeys", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_5RTree_8iterkeys(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_8iterkeys(struct __pyx_obj_5tinyr_RTree *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("iterkeys", 1); - - /* "tinyr.pyx":394 - * - * def iterkeys(self): - * return _KeysIter(self) # <<<<<<<<<<<<<< - * - * def itervalues(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__KeysIter), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":393 - * raise AttributeError('indexing RTree only possible with rectangle or point (x, y)') - * - * def iterkeys(self): # <<<<<<<<<<<<<< - * return _KeysIter(self) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTree.iterkeys", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":396 - * return _KeysIter(self) - * - * def itervalues(self): # <<<<<<<<<<<<<< - * return _ValuesIter(self) - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_11itervalues(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_5RTree_11itervalues = {"itervalues", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_11itervalues, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_5RTree_11itervalues(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("itervalues (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("itervalues", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "itervalues", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_5RTree_10itervalues(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_10itervalues(struct __pyx_obj_5tinyr_RTree *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("itervalues", 1); - - /* "tinyr.pyx":397 - * - * def itervalues(self): - * return _ValuesIter(self) # <<<<<<<<<<<<<< - * - * def iteritems(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__ValuesIter), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 397, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":396 - * return _KeysIter(self) - * - * def itervalues(self): # <<<<<<<<<<<<<< - * return _ValuesIter(self) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTree.itervalues", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":399 - * return _ValuesIter(self) - * - * def iteritems(self): # <<<<<<<<<<<<<< - * return _ItemsIter(self) - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_13iteritems(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_5RTree_13iteritems = {"iteritems", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_13iteritems, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_5RTree_13iteritems(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("iteritems (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("iteritems", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "iteritems", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_5RTree_12iteritems(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_12iteritems(struct __pyx_obj_5tinyr_RTree *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("iteritems", 1); - - /* "tinyr.pyx":400 - * - * def iteritems(self): - * return _ItemsIter(self) # <<<<<<<<<<<<<< - * - * def get_info(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__ItemsIter), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 400, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":399 - * return _ValuesIter(self) - * - * def iteritems(self): # <<<<<<<<<<<<<< - * return _ItemsIter(self) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTree.iteritems", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":402 - * return _ItemsIter(self) - * - * def get_info(self): # <<<<<<<<<<<<<< - * return RTreeInfo(self) - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_15get_info(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_5RTree_15get_info = {"get_info", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_15get_info, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_5RTree_15get_info(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_info (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("get_info", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get_info", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_5RTree_14get_info(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_14get_info(struct __pyx_obj_5tinyr_RTree *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_info", 1); - - /* "tinyr.pyx":403 - * - * def get_info(self): - * return RTreeInfo(self) # <<<<<<<<<<<<<< - * - * def insert(self, object key, object coords): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr_RTreeInfo), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 403, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":402 - * return _ItemsIter(self) - * - * def get_info(self): # <<<<<<<<<<<<<< - * return RTreeInfo(self) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTree.get_info", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":405 - * return RTreeInfo(self) - * - * def insert(self, object key, object coords): # <<<<<<<<<<<<<< - * '''Insert an item. - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_17insert(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5tinyr_5RTree_16insert, "Insert an item.\n \n @param key: an object to insert, where all keys should be unique (regarding !=)\n @param coords: 2D coordinates\n "); -static PyMethodDef __pyx_mdef_5tinyr_5RTree_17insert = {"insert", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_17insert, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_5RTree_16insert}; -static PyObject *__pyx_pw_5tinyr_5RTree_17insert(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v_key = 0; - PyObject *__pyx_v_coords = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("insert (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_coords,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_key)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 405, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_coords)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 405, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, 1); __PYX_ERR(0, 405, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "insert") < 0)) __PYX_ERR(0, 405, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - } - __pyx_v_key = values[0]; - __pyx_v_coords = values[1]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 405, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.RTree.insert", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_5RTree_16insert(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self), __pyx_v_key, __pyx_v_coords); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_16insert(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_coords) { - struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_cr = 0; - struct __pyx_obj_5tinyr__Node *__pyx_v_L = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - Py_ssize_t __pyx_t_5; - int __pyx_t_6; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("insert", 1); - - /* "tinyr.pyx":416 - * _Node L - * - * if not isinstance(coords, (list, tuple)): # <<<<<<<<<<<<<< - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * if not len(coords) == 4: - */ - __pyx_t_2 = PyList_Check(__pyx_v_coords); - if (!__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_2 = PyTuple_Check(__pyx_v_coords); - __pyx_t_1 = __pyx_t_2; - __pyx_L4_bool_binop_done:; - __pyx_t_2 = (!__pyx_t_1); - if (unlikely(__pyx_t_2)) { - - /* "tinyr.pyx":417 - * - * if not isinstance(coords, (list, tuple)): - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) # <<<<<<<<<<<<<< - * if not len(coords) == 4: - * raise TypeError('len(coords) must be 4, length is %d' % len(coords)) - */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_coords, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 417, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyString_FormatSafe(__pyx_kp_s_coordinates_as_list_or_tuple_exp, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 417, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 417, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 417, __pyx_L1_error) - - /* "tinyr.pyx":416 - * _Node L - * - * if not isinstance(coords, (list, tuple)): # <<<<<<<<<<<<<< - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * if not len(coords) == 4: - */ - } - - /* "tinyr.pyx":418 - * if not isinstance(coords, (list, tuple)): - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * if not len(coords) == 4: # <<<<<<<<<<<<<< - * raise TypeError('len(coords) must be 4, length is %d' % len(coords)) - * - */ - __pyx_t_5 = PyObject_Length(__pyx_v_coords); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 418, __pyx_L1_error) - __pyx_t_2 = (!(__pyx_t_5 == 4)); - if (unlikely(__pyx_t_2)) { - - /* "tinyr.pyx":419 - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * if not len(coords) == 4: - * raise TypeError('len(coords) must be 4, length is %d' % len(coords)) # <<<<<<<<<<<<<< - * - * cr = _ChildRecord(key) - */ - __pyx_t_5 = PyObject_Length(__pyx_v_coords); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 419, __pyx_L1_error) - __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_len_coords_must_be_4_length_is_d, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 419, __pyx_L1_error) - - /* "tinyr.pyx":418 - * if not isinstance(coords, (list, tuple)): - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * if not len(coords) == 4: # <<<<<<<<<<<<<< - * raise TypeError('len(coords) must be 4, length is %d' % len(coords)) - * - */ - } - - /* "tinyr.pyx":421 - * raise TypeError('len(coords) must be 4, length is %d' % len(coords)) - * - * cr = _ChildRecord(key) # <<<<<<<<<<<<<< - * self.tuple_to_array(coords, cr.coords) - * - */ - __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__ChildRecord), __pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_cr = ((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":422 - * - * cr = _ChildRecord(key) - * self.tuple_to_array(coords, cr.coords) # <<<<<<<<<<<<<< - * - * L = self._ChooseLeaf(cr) - */ - __pyx_v_self->tuple_to_array(__pyx_v_coords, __pyx_v_cr->__pyx_base.coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 422, __pyx_L1_error) - - /* "tinyr.pyx":424 - * self.tuple_to_array(coords, cr.coords) - * - * L = self._ChooseLeaf(cr) # <<<<<<<<<<<<<< - * - * self.insert_at_node(cr, L) - */ - __pyx_t_3 = ((PyObject *)__pyx_f_5tinyr_5RTree__ChooseLeaf(__pyx_v_self, ((struct __pyx_obj_5tinyr__Record *)__pyx_v_cr))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_L = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":426 - * L = self._ChooseLeaf(cr) - * - * self.insert_at_node(cr, L) # <<<<<<<<<<<<<< - * - * self._node_cnt += 1 - */ - __pyx_t_6 = __pyx_f_5tinyr_5RTree_insert_at_node(__pyx_v_self, ((struct __pyx_obj_5tinyr__Record *)__pyx_v_cr), __pyx_v_L); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 426, __pyx_L1_error) - - /* "tinyr.pyx":428 - * self.insert_at_node(cr, L) - * - * self._node_cnt += 1 # <<<<<<<<<<<<<< - * - * - */ - __pyx_v_self->_node_cnt = (__pyx_v_self->_node_cnt + 1); - - /* "tinyr.pyx":405 - * return RTreeInfo(self) - * - * def insert(self, object key, object coords): # <<<<<<<<<<<<<< - * '''Insert an item. - * - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr.RTree.insert", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_cr); - __Pyx_XDECREF((PyObject *)__pyx_v_L); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":431 - * - * - * def search(self, object coords): # <<<<<<<<<<<<<< - * '''Search overlapping items. - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_19search(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5tinyr_5RTree_18search, "Search overlapping items.\n \n @param coords: list or tuple of four values that make a rectangle\n @return: a list of identifiers whose coordinates overlap with coords\n "); -static PyMethodDef __pyx_mdef_5tinyr_5RTree_19search = {"search", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_19search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_5RTree_18search}; -static PyObject *__pyx_pw_5tinyr_5RTree_19search(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v_coords = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("search (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coords,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_coords)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 431, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "search") < 0)) __PYX_ERR(0, 431, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_coords = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("search", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 431, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.RTree.search", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_5RTree_18search(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self), __pyx_v_coords); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_18search(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_coords) { - struct __pyx_obj_5tinyr__Node *__pyx_v_node = 0; - struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_cr = 0; - __pyx_t_5tinyr_Dfloat __pyx_v_coords_a[4]; - PyObject *__pyx_v_leafnodes = 0; - PyObject *__pyx_v_result = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - Py_ssize_t __pyx_t_5; - Py_ssize_t __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - int __pyx_t_8; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("search", 1); - - /* "tinyr.pyx":443 - * list leafnodes, result - * - * if not isinstance(coords, (list, tuple)): # <<<<<<<<<<<<<< - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * - */ - __pyx_t_2 = PyList_Check(__pyx_v_coords); - if (!__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_2 = PyTuple_Check(__pyx_v_coords); - __pyx_t_1 = __pyx_t_2; - __pyx_L4_bool_binop_done:; - __pyx_t_2 = (!__pyx_t_1); - if (unlikely(__pyx_t_2)) { - - /* "tinyr.pyx":444 - * - * if not isinstance(coords, (list, tuple)): - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) # <<<<<<<<<<<<<< - * - * if len(coords) != 4: - */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_coords, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyString_FormatSafe(__pyx_kp_s_coordinates_as_list_or_tuple_exp, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 444, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 444, __pyx_L1_error) - - /* "tinyr.pyx":443 - * list leafnodes, result - * - * if not isinstance(coords, (list, tuple)): # <<<<<<<<<<<<<< - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * - */ - } - - /* "tinyr.pyx":446 - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * - * if len(coords) != 4: # <<<<<<<<<<<<<< - * raise TypeError('len(coords) must be 4, len is %d' % len(coords)) - * - */ - __pyx_t_5 = PyObject_Length(__pyx_v_coords); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 446, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_5 != 4); - if (unlikely(__pyx_t_2)) { - - /* "tinyr.pyx":447 - * - * if len(coords) != 4: - * raise TypeError('len(coords) must be 4, len is %d' % len(coords)) # <<<<<<<<<<<<<< - * - * self.tuple_to_array(coords, coords_a) - */ - __pyx_t_5 = PyObject_Length(__pyx_v_coords); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 447, __pyx_L1_error) - __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_len_coords_must_be_4_len_is_d, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 447, __pyx_L1_error) - - /* "tinyr.pyx":446 - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * - * if len(coords) != 4: # <<<<<<<<<<<<<< - * raise TypeError('len(coords) must be 4, len is %d' % len(coords)) - * - */ - } - - /* "tinyr.pyx":449 - * raise TypeError('len(coords) must be 4, len is %d' % len(coords)) - * - * self.tuple_to_array(coords, coords_a) # <<<<<<<<<<<<<< - * - * leafnodes = self.find_overlapping_leafs(self, coords_a) - */ - __pyx_v_self->tuple_to_array(__pyx_v_coords, __pyx_v_coords_a); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 449, __pyx_L1_error) - - /* "tinyr.pyx":451 - * self.tuple_to_array(coords, coords_a) - * - * leafnodes = self.find_overlapping_leafs(self, coords_a) # <<<<<<<<<<<<<< - * - * result = [] - */ - __pyx_t_3 = __pyx_v_self->find_overlapping_leafs(__pyx_v_self, __pyx_v_coords_a); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 451, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_leafnodes = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":453 - * leafnodes = self.find_overlapping_leafs(self, coords_a) - * - * result = [] # <<<<<<<<<<<<<< - * for node in leafnodes: - * assert node.is_leaf - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 453, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_result = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":454 - * - * result = [] - * for node in leafnodes: # <<<<<<<<<<<<<< - * assert node.is_leaf - * for cr in node.records: - */ - if (unlikely(__pyx_v_leafnodes == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 454, __pyx_L1_error) - } - __pyx_t_3 = __pyx_v_leafnodes; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 454, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 454, __pyx_L1_error) - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 454, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5tinyr__Node))))) __PYX_ERR(0, 454, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_node, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_4)); - __pyx_t_4 = 0; - - /* "tinyr.pyx":455 - * result = [] - * for node in leafnodes: - * assert node.is_leaf # <<<<<<<<<<<<<< - * for cr in node.records: - * if cr.overlaps(coords_a): - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(__pyx_assertions_enabled())) { - if (unlikely(!__pyx_v_node->is_leaf)) { - __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0); - __PYX_ERR(0, 455, __pyx_L1_error) - } - } - #else - if ((1)); else __PYX_ERR(0, 455, __pyx_L1_error) - #endif - - /* "tinyr.pyx":456 - * for node in leafnodes: - * assert node.is_leaf - * for cr in node.records: # <<<<<<<<<<<<<< - * if cr.overlaps(coords_a): - * result.append(cr.identifier) - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 456, __pyx_L1_error) - } - __pyx_t_4 = __pyx_v_node->records; __Pyx_INCREF(__pyx_t_4); - __pyx_t_6 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 456, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 456, __pyx_L1_error) - #else - __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 456, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5tinyr__ChildRecord))))) __PYX_ERR(0, 456, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_cr, ((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_t_7)); - __pyx_t_7 = 0; - - /* "tinyr.pyx":457 - * assert node.is_leaf - * for cr in node.records: - * if cr.overlaps(coords_a): # <<<<<<<<<<<<<< - * result.append(cr.identifier) - * - */ - __pyx_t_2 = __pyx_f_5tinyr_7_Record_overlaps(((struct __pyx_obj_5tinyr__Record *)__pyx_v_cr), __pyx_v_coords_a); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 457, __pyx_L1_error) - if (__pyx_t_2) { - - /* "tinyr.pyx":458 - * for cr in node.records: - * if cr.overlaps(coords_a): - * result.append(cr.identifier) # <<<<<<<<<<<<<< - * - * return result - */ - __pyx_t_7 = __pyx_v_cr->identifier; - __Pyx_INCREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 458, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "tinyr.pyx":457 - * assert node.is_leaf - * for cr in node.records: - * if cr.overlaps(coords_a): # <<<<<<<<<<<<<< - * result.append(cr.identifier) - * - */ - } - - /* "tinyr.pyx":456 - * for node in leafnodes: - * assert node.is_leaf - * for cr in node.records: # <<<<<<<<<<<<<< - * if cr.overlaps(coords_a): - * result.append(cr.identifier) - */ - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "tinyr.pyx":454 - * - * result = [] - * for node in leafnodes: # <<<<<<<<<<<<<< - * assert node.is_leaf - * for cr in node.records: - */ - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":460 - * result.append(cr.identifier) - * - * return result # <<<<<<<<<<<<<< - * - * def copy(self): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_result); - __pyx_r = __pyx_v_result; - goto __pyx_L0; - - /* "tinyr.pyx":431 - * - * - * def search(self, object coords): # <<<<<<<<<<<<<< - * '''Search overlapping items. - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("tinyr.RTree.search", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_node); - __Pyx_XDECREF((PyObject *)__pyx_v_cr); - __Pyx_XDECREF(__pyx_v_leafnodes); - __Pyx_XDECREF(__pyx_v_result); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":462 - * return result - * - * def copy(self): # <<<<<<<<<<<<<< - * cdef: - * RTree ret - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_21copy(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_5RTree_21copy = {"copy", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_21copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_5RTree_21copy(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("copy (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "copy", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_5RTree_20copy(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_20copy(struct __pyx_obj_5tinyr_RTree *__pyx_v_self) { - struct __pyx_obj_5tinyr_RTree *__pyx_v_ret = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - __pyx_t_5tinyr_Duint __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("copy", 1); - - /* "tinyr.pyx":466 - * RTree ret - * - * ret = RTree(max_cap=self.M_cap, min_cap=self.m_cap) # <<<<<<<<<<<<<< - * ret._leaf_level = self._leaf_level - * ret._node_cnt = self._node_cnt - */ - __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->M_cap); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_max_cap, __pyx_t_2) < 0) __PYX_ERR(0, 466, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->m_cap); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_min_cap, __pyx_t_2) < 0) __PYX_ERR(0, 466, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5tinyr_RTree), __pyx_empty_tuple, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_v_ret = ((struct __pyx_obj_5tinyr_RTree *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "tinyr.pyx":467 - * - * ret = RTree(max_cap=self.M_cap, min_cap=self.m_cap) - * ret._leaf_level = self._leaf_level # <<<<<<<<<<<<<< - * ret._node_cnt = self._node_cnt - * ret.root = self.root.copy(None) - */ - __pyx_t_3 = __pyx_v_self->_leaf_level; - __pyx_v_ret->_leaf_level = __pyx_t_3; - - /* "tinyr.pyx":468 - * ret = RTree(max_cap=self.M_cap, min_cap=self.m_cap) - * ret._leaf_level = self._leaf_level - * ret._node_cnt = self._node_cnt # <<<<<<<<<<<<<< - * ret.root = self.root.copy(None) - * return ret - */ - __pyx_t_3 = __pyx_v_self->_node_cnt; - __pyx_v_ret->_node_cnt = __pyx_t_3; - - /* "tinyr.pyx":469 - * ret._leaf_level = self._leaf_level - * ret._node_cnt = self._node_cnt - * ret.root = self.root.copy(None) # <<<<<<<<<<<<<< - * return ret - * - */ - __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_5tinyr__Node *)__pyx_v_self->root->__pyx_vtab)->copy(__pyx_v_self->root, ((struct __pyx_obj_5tinyr__Node *)Py_None))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 469, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_GOTREF((PyObject *)__pyx_v_ret->root); - __Pyx_DECREF((PyObject *)__pyx_v_ret->root); - __pyx_v_ret->root = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "tinyr.pyx":470 - * ret._node_cnt = self._node_cnt - * ret.root = self.root.copy(None) - * return ret # <<<<<<<<<<<<<< - * - * def search_surrounding(self, point): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF((PyObject *)__pyx_v_ret); - __pyx_r = ((PyObject *)__pyx_v_ret); - goto __pyx_L0; - - /* "tinyr.pyx":462 - * return result - * - * def copy(self): # <<<<<<<<<<<<<< - * cdef: - * RTree ret - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("tinyr.RTree.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_ret); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":472 - * return ret - * - * def search_surrounding(self, point): # <<<<<<<<<<<<<< - * '''Search items that surround a point. - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_23search_surrounding(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5tinyr_5RTree_22search_surrounding, "Search items that surround a point.\n \n @param item: a point in form (x, y)\n @return: a list of identifiers whose coordinates surround with point\n "); -static PyMethodDef __pyx_mdef_5tinyr_5RTree_23search_surrounding = {"search_surrounding", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_23search_surrounding, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_5RTree_22search_surrounding}; -static PyObject *__pyx_pw_5tinyr_5RTree_23search_surrounding(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v_point = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("search_surrounding (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_point)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 472, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "search_surrounding") < 0)) __PYX_ERR(0, 472, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_point = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("search_surrounding", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 472, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.RTree.search_surrounding", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_5RTree_22search_surrounding(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self), __pyx_v_point); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_22search_surrounding(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_point) { - struct __pyx_obj_5tinyr__Node *__pyx_v_node = 0; - struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_cr = 0; - __pyx_t_5tinyr_Dfloat __pyx_v_coords_a[4]; - PyObject *__pyx_v_leafnodes = 0; - PyObject *__pyx_v_result = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - Py_ssize_t __pyx_t_5; - Py_ssize_t __pyx_t_6; - PyObject *__pyx_t_7 = NULL; - int __pyx_t_8; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("search_surrounding", 0); - __Pyx_INCREF(__pyx_v_point); - - /* "tinyr.pyx":484 - * list leafnodes, result - * - * if not isinstance(point, (list, tuple)): # <<<<<<<<<<<<<< - * raise TypeError('coordinates as list or tuple expected, got %s' % point.__class__) - * - */ - __pyx_t_2 = PyList_Check(__pyx_v_point); - if (!__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_2 = PyTuple_Check(__pyx_v_point); - __pyx_t_1 = __pyx_t_2; - __pyx_L4_bool_binop_done:; - __pyx_t_2 = (!__pyx_t_1); - if (unlikely(__pyx_t_2)) { - - /* "tinyr.pyx":485 - * - * if not isinstance(point, (list, tuple)): - * raise TypeError('coordinates as list or tuple expected, got %s' % point.__class__) # <<<<<<<<<<<<<< - * - * if len(point) == 2: - */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_point, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 485, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyString_FormatSafe(__pyx_kp_s_coordinates_as_list_or_tuple_exp, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 485, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 485, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 485, __pyx_L1_error) - - /* "tinyr.pyx":484 - * list leafnodes, result - * - * if not isinstance(point, (list, tuple)): # <<<<<<<<<<<<<< - * raise TypeError('coordinates as list or tuple expected, got %s' % point.__class__) - * - */ - } - - /* "tinyr.pyx":487 - * raise TypeError('coordinates as list or tuple expected, got %s' % point.__class__) - * - * if len(point) == 2: # <<<<<<<<<<<<<< - * point = 2 * point - * else: - */ - __pyx_t_5 = PyObject_Length(__pyx_v_point); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 487, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_5 == 2); - if (likely(__pyx_t_2)) { - - /* "tinyr.pyx":488 - * - * if len(point) == 2: - * point = 2 * point # <<<<<<<<<<<<<< - * else: - * raise TypeError('len(point) must be 2, len is %d' % len(point)) - */ - __pyx_t_3 = __Pyx_PyInt_MultiplyCObj(__pyx_int_2, __pyx_v_point, 2, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 488, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF_SET(__pyx_v_point, __pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":487 - * raise TypeError('coordinates as list or tuple expected, got %s' % point.__class__) - * - * if len(point) == 2: # <<<<<<<<<<<<<< - * point = 2 * point - * else: - */ - goto __pyx_L6; - } - - /* "tinyr.pyx":490 - * point = 2 * point - * else: - * raise TypeError('len(point) must be 2, len is %d' % len(point)) # <<<<<<<<<<<<<< - * - * self.tuple_to_array(point, coords_a) - */ - /*else*/ { - __pyx_t_5 = PyObject_Length(__pyx_v_point); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 490, __pyx_L1_error) - __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_len_point_must_be_2_len_is_d, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 490, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 490, __pyx_L1_error) - } - __pyx_L6:; - - /* "tinyr.pyx":492 - * raise TypeError('len(point) must be 2, len is %d' % len(point)) - * - * self.tuple_to_array(point, coords_a) # <<<<<<<<<<<<<< - * - * leafnodes = self.find_overlapping_leafs(self, coords_a) - */ - __pyx_v_self->tuple_to_array(__pyx_v_point, __pyx_v_coords_a); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 492, __pyx_L1_error) - - /* "tinyr.pyx":494 - * self.tuple_to_array(point, coords_a) - * - * leafnodes = self.find_overlapping_leafs(self, coords_a) # <<<<<<<<<<<<<< - * - * result = [] - */ - __pyx_t_3 = __pyx_v_self->find_overlapping_leafs(__pyx_v_self, __pyx_v_coords_a); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 494, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_leafnodes = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":496 - * leafnodes = self.find_overlapping_leafs(self, coords_a) - * - * result = [] # <<<<<<<<<<<<<< - * for node in leafnodes: - * assert node.is_leaf - */ - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_result = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":497 - * - * result = [] - * for node in leafnodes: # <<<<<<<<<<<<<< - * assert node.is_leaf - * for cr in node.records: - */ - if (unlikely(__pyx_v_leafnodes == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 497, __pyx_L1_error) - } - __pyx_t_3 = __pyx_v_leafnodes; __Pyx_INCREF(__pyx_t_3); - __pyx_t_5 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 497, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 497, __pyx_L1_error) - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 497, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5tinyr__Node))))) __PYX_ERR(0, 497, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_node, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_4)); - __pyx_t_4 = 0; - - /* "tinyr.pyx":498 - * result = [] - * for node in leafnodes: - * assert node.is_leaf # <<<<<<<<<<<<<< - * for cr in node.records: - * if cr.overlaps(coords_a): - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(__pyx_assertions_enabled())) { - if (unlikely(!__pyx_v_node->is_leaf)) { - __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0); - __PYX_ERR(0, 498, __pyx_L1_error) - } - } - #else - if ((1)); else __PYX_ERR(0, 498, __pyx_L1_error) - #endif - - /* "tinyr.pyx":499 - * for node in leafnodes: - * assert node.is_leaf - * for cr in node.records: # <<<<<<<<<<<<<< - * if cr.overlaps(coords_a): - * result.append(cr.identifier) - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 499, __pyx_L1_error) - } - __pyx_t_4 = __pyx_v_node->records; __Pyx_INCREF(__pyx_t_4); - __pyx_t_6 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 499, __pyx_L1_error) - #endif - if (__pyx_t_6 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_7); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 499, __pyx_L1_error) - #else - __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5tinyr__ChildRecord))))) __PYX_ERR(0, 499, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_cr, ((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_t_7)); - __pyx_t_7 = 0; - - /* "tinyr.pyx":500 - * assert node.is_leaf - * for cr in node.records: - * if cr.overlaps(coords_a): # <<<<<<<<<<<<<< - * result.append(cr.identifier) - * - */ - __pyx_t_2 = __pyx_f_5tinyr_7_Record_overlaps(((struct __pyx_obj_5tinyr__Record *)__pyx_v_cr), __pyx_v_coords_a); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 500, __pyx_L1_error) - if (__pyx_t_2) { - - /* "tinyr.pyx":501 - * for cr in node.records: - * if cr.overlaps(coords_a): - * result.append(cr.identifier) # <<<<<<<<<<<<<< - * - * return result - */ - __pyx_t_7 = __pyx_v_cr->identifier; - __Pyx_INCREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 501, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "tinyr.pyx":500 - * assert node.is_leaf - * for cr in node.records: - * if cr.overlaps(coords_a): # <<<<<<<<<<<<<< - * result.append(cr.identifier) - * - */ - } - - /* "tinyr.pyx":499 - * for node in leafnodes: - * assert node.is_leaf - * for cr in node.records: # <<<<<<<<<<<<<< - * if cr.overlaps(coords_a): - * result.append(cr.identifier) - */ - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "tinyr.pyx":497 - * - * result = [] - * for node in leafnodes: # <<<<<<<<<<<<<< - * assert node.is_leaf - * for cr in node.records: - */ - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":503 - * result.append(cr.identifier) - * - * return result # <<<<<<<<<<<<<< - * - * cdef inline int insert_at_node(self, _Record r, _Node L) except -1: - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v_result); - __pyx_r = __pyx_v_result; - goto __pyx_L0; - - /* "tinyr.pyx":472 - * return ret - * - * def search_surrounding(self, point): # <<<<<<<<<<<<<< - * '''Search items that surround a point. - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("tinyr.RTree.search_surrounding", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_node); - __Pyx_XDECREF((PyObject *)__pyx_v_cr); - __Pyx_XDECREF(__pyx_v_leafnodes); - __Pyx_XDECREF(__pyx_v_result); - __Pyx_XDECREF(__pyx_v_point); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":505 - * return result - * - * cdef inline int insert_at_node(self, _Record r, _Node L) except -1: # <<<<<<<<<<<<<< - * cdef: - * _Node LL = None - */ - -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_insert_at_node(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Record *__pyx_v_r, struct __pyx_obj_5tinyr__Node *__pyx_v_L) { - struct __pyx_obj_5tinyr__Node *__pyx_v_LL = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("insert_at_node", 0); - __Pyx_INCREF((PyObject *)__pyx_v_L); - - /* "tinyr.pyx":507 - * cdef inline int insert_at_node(self, _Record r, _Node L) except -1: - * cdef: - * _Node LL = None # <<<<<<<<<<<<<< - * - * if self.is_full(L): - */ - __Pyx_INCREF(Py_None); - __pyx_v_LL = ((struct __pyx_obj_5tinyr__Node *)Py_None); - - /* "tinyr.pyx":509 - * _Node LL = None - * - * if self.is_full(L): # <<<<<<<<<<<<<< - * LL = self.SplitNode(L, r) - * else: - */ - __pyx_t_1 = __pyx_f_5tinyr_5RTree_is_full(__pyx_v_self, __pyx_v_L); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 509, __pyx_L1_error) - if (__pyx_t_1) { - - /* "tinyr.pyx":510 - * - * if self.is_full(L): - * LL = self.SplitNode(L, r) # <<<<<<<<<<<<<< - * else: - * L.records.append(r) - */ - __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_5tinyr_RTree *)__pyx_v_self->__pyx_vtab)->SplitNode(__pyx_v_self, __pyx_v_L, __pyx_v_r)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_LL, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_2)); - __pyx_t_2 = 0; - - /* "tinyr.pyx":509 - * _Node LL = None - * - * if self.is_full(L): # <<<<<<<<<<<<<< - * LL = self.SplitNode(L, r) - * else: - */ - goto __pyx_L3; - } - - /* "tinyr.pyx":512 - * LL = self.SplitNode(L, r) - * else: - * L.records.append(r) # <<<<<<<<<<<<<< - * - * L, LL = self._AdjustTree(L, LL) - */ - /*else*/ { - if (unlikely(__pyx_v_L->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 512, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_L->records, ((PyObject *)__pyx_v_r)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 512, __pyx_L1_error) - } - __pyx_L3:; - - /* "tinyr.pyx":514 - * L.records.append(r) - * - * L, LL = self._AdjustTree(L, LL) # <<<<<<<<<<<<<< - * - * if LL != None: - */ - __pyx_t_2 = __pyx_f_5tinyr_5RTree__AdjustTree(__pyx_v_self, __pyx_v_L, __pyx_v_LL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 514, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (likely(__pyx_t_2 != Py_None)) { - PyObject* sequence = __pyx_t_2; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 514, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - #else - __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 514, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 514, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #endif - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } else { - __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 514, __pyx_L1_error) - } - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5tinyr__Node))))) __PYX_ERR(0, 514, __pyx_L1_error) - if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5tinyr__Node))))) __PYX_ERR(0, 514, __pyx_L1_error) - __Pyx_DECREF_SET(__pyx_v_L, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_4)); - __pyx_t_4 = 0; - __Pyx_DECREF_SET(__pyx_v_LL, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_5)); - __pyx_t_5 = 0; - - /* "tinyr.pyx":516 - * L, LL = self._AdjustTree(L, LL) - * - * if LL != None: # <<<<<<<<<<<<<< - * self.root = _Node(None) - * self.root.addChild(L) - */ - __pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_v_LL), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 516, __pyx_L1_error) - __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 516, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_1) { - - /* "tinyr.pyx":517 - * - * if LL != None: - * self.root = _Node(None) # <<<<<<<<<<<<<< - * self.root.addChild(L) - * self.root.addChild(LL) - */ - __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_5tinyr__Node), __pyx_tuple_, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 517, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_GOTREF((PyObject *)__pyx_v_self->root); - __Pyx_DECREF((PyObject *)__pyx_v_self->root); - __pyx_v_self->root = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "tinyr.pyx":518 - * if LL != None: - * self.root = _Node(None) - * self.root.addChild(L) # <<<<<<<<<<<<<< - * self.root.addChild(LL) - * self._leaf_level += 1 - */ - ((struct __pyx_vtabstruct_5tinyr__Node *)__pyx_v_self->root->__pyx_vtab)->addChild(__pyx_v_self->root, __pyx_v_L); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 518, __pyx_L1_error) - - /* "tinyr.pyx":519 - * self.root = _Node(None) - * self.root.addChild(L) - * self.root.addChild(LL) # <<<<<<<<<<<<<< - * self._leaf_level += 1 - * - */ - ((struct __pyx_vtabstruct_5tinyr__Node *)__pyx_v_self->root->__pyx_vtab)->addChild(__pyx_v_self->root, __pyx_v_LL); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 519, __pyx_L1_error) - - /* "tinyr.pyx":520 - * self.root.addChild(L) - * self.root.addChild(LL) - * self._leaf_level += 1 # <<<<<<<<<<<<<< - * - * return 0 - */ - __pyx_v_self->_leaf_level = (__pyx_v_self->_leaf_level + 1); - - /* "tinyr.pyx":516 - * L, LL = self._AdjustTree(L, LL) - * - * if LL != None: # <<<<<<<<<<<<<< - * self.root = _Node(None) - * self.root.addChild(L) - */ - } - - /* "tinyr.pyx":522 - * self._leaf_level += 1 - * - * return 0 # <<<<<<<<<<<<<< - * - * def remove(self, identifier, coords): - */ - __pyx_r = 0; - goto __pyx_L0; - - /* "tinyr.pyx":505 - * return result - * - * cdef inline int insert_at_node(self, _Record r, _Node L) except -1: # <<<<<<<<<<<<<< - * cdef: - * _Node LL = None - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("tinyr.RTree.insert_at_node", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_LL); - __Pyx_XDECREF((PyObject *)__pyx_v_L); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":524 - * return 0 - * - * def remove(self, identifier, coords): # <<<<<<<<<<<<<< - * '''Delete an item - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_25remove(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5tinyr_5RTree_24remove, "Delete an item\n \n @param identifier: the item that should be removed\n @param coords: the coordinates of item\n "); -static PyMethodDef __pyx_mdef_5tinyr_5RTree_25remove = {"remove", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_25remove, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_5RTree_24remove}; -static PyObject *__pyx_pw_5tinyr_5RTree_25remove(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v_identifier = 0; - PyObject *__pyx_v_coords = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[2] = {0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("remove (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_identifier,&__pyx_n_s_coords,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_identifier)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 524, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_coords)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 524, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("remove", 1, 2, 2, 1); __PYX_ERR(0, 524, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "remove") < 0)) __PYX_ERR(0, 524, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - } - __pyx_v_identifier = values[0]; - __pyx_v_coords = values[1]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("remove", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 524, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.RTree.remove", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_5RTree_24remove(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self), __pyx_v_identifier, __pyx_v_coords); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_24remove(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_identifier, PyObject *__pyx_v_coords) { - struct __pyx_obj_5tinyr__Node *__pyx_v_leaf = 0; - __pyx_t_5tinyr_Dfloat __pyx_v_coords_a[4]; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - Py_ssize_t __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("remove", 1); - - /* "tinyr.pyx":534 - * Dfloat coords_a[4] - * - * if not isinstance(coords, (list, tuple)): # <<<<<<<<<<<<<< - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * if not len(coords) == 4: - */ - __pyx_t_2 = PyList_Check(__pyx_v_coords); - if (!__pyx_t_2) { - } else { - __pyx_t_1 = __pyx_t_2; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_2 = PyTuple_Check(__pyx_v_coords); - __pyx_t_1 = __pyx_t_2; - __pyx_L4_bool_binop_done:; - __pyx_t_2 = (!__pyx_t_1); - if (unlikely(__pyx_t_2)) { - - /* "tinyr.pyx":535 - * - * if not isinstance(coords, (list, tuple)): - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) # <<<<<<<<<<<<<< - * if not len(coords) == 4: - * raise TypeError('len(coords) must be 4, len is %d' % len(coords)) - */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_coords, __pyx_n_s_class); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyString_FormatSafe(__pyx_kp_s_coordinates_as_list_or_tuple_exp, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 535, __pyx_L1_error) - - /* "tinyr.pyx":534 - * Dfloat coords_a[4] - * - * if not isinstance(coords, (list, tuple)): # <<<<<<<<<<<<<< - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * if not len(coords) == 4: - */ - } - - /* "tinyr.pyx":536 - * if not isinstance(coords, (list, tuple)): - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * if not len(coords) == 4: # <<<<<<<<<<<<<< - * raise TypeError('len(coords) must be 4, len is %d' % len(coords)) - * - */ - __pyx_t_5 = PyObject_Length(__pyx_v_coords); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error) - __pyx_t_2 = (!(__pyx_t_5 == 4)); - if (unlikely(__pyx_t_2)) { - - /* "tinyr.pyx":537 - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * if not len(coords) == 4: - * raise TypeError('len(coords) must be 4, len is %d' % len(coords)) # <<<<<<<<<<<<<< - * - * self.tuple_to_array(coords, coords_a) - */ - __pyx_t_5 = PyObject_Length(__pyx_v_coords); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 537, __pyx_L1_error) - __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_len_coords_must_be_4_len_is_d, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 537, __pyx_L1_error) - - /* "tinyr.pyx":536 - * if not isinstance(coords, (list, tuple)): - * raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - * if not len(coords) == 4: # <<<<<<<<<<<<<< - * raise TypeError('len(coords) must be 4, len is %d' % len(coords)) - * - */ - } - - /* "tinyr.pyx":539 - * raise TypeError('len(coords) must be 4, len is %d' % len(coords)) - * - * self.tuple_to_array(coords, coords_a) # <<<<<<<<<<<<<< - * - * leaf = self.FindLeaf_and_remove(identifier, coords_a) - */ - __pyx_v_self->tuple_to_array(__pyx_v_coords, __pyx_v_coords_a); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 539, __pyx_L1_error) - - /* "tinyr.pyx":541 - * self.tuple_to_array(coords, coords_a) - * - * leaf = self.FindLeaf_and_remove(identifier, coords_a) # <<<<<<<<<<<<<< - * - * if leaf is None: - */ - __pyx_t_3 = ((PyObject *)__pyx_f_5tinyr_5RTree_FindLeaf_and_remove(__pyx_v_self, __pyx_v_identifier, __pyx_v_coords_a)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 541, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_v_leaf = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":543 - * leaf = self.FindLeaf_and_remove(identifier, coords_a) - * - * if leaf is None: # <<<<<<<<<<<<<< - * raise KeyError() - * - */ - __pyx_t_2 = (((PyObject *)__pyx_v_leaf) == Py_None); - if (unlikely(__pyx_t_2)) { - - /* "tinyr.pyx":544 - * - * if leaf is None: - * raise KeyError() # <<<<<<<<<<<<<< - * - * self.after_remove(leaf) - */ - __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_builtin_KeyError); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 544, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(0, 544, __pyx_L1_error) - - /* "tinyr.pyx":543 - * leaf = self.FindLeaf_and_remove(identifier, coords_a) - * - * if leaf is None: # <<<<<<<<<<<<<< - * raise KeyError() - * - */ - } - - /* "tinyr.pyx":546 - * raise KeyError() - * - * self.after_remove(leaf) # <<<<<<<<<<<<<< - * - * self._node_cnt -= 1 - */ - __pyx_f_5tinyr_5RTree_after_remove(__pyx_v_self, __pyx_v_leaf); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 546, __pyx_L1_error) - - /* "tinyr.pyx":548 - * self.after_remove(leaf) - * - * self._node_cnt -= 1 # <<<<<<<<<<<<<< - * - * cdef inline void after_remove(self, _Node node): - */ - __pyx_v_self->_node_cnt = (__pyx_v_self->_node_cnt - 1); - - /* "tinyr.pyx":524 - * return 0 - * - * def remove(self, identifier, coords): # <<<<<<<<<<<<<< - * '''Delete an item - * - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr.RTree.remove", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_leaf); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":550 - * self._node_cnt -= 1 - * - * cdef inline void after_remove(self, _Node node): # <<<<<<<<<<<<<< - * self.CondenseTree(node) - * if not self.root.is_leaf and len(self.root.records) == 1: - */ - -static CYTHON_INLINE void __pyx_f_5tinyr_5RTree_after_remove(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node) { - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - int __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - Py_ssize_t __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("after_remove", 1); - - /* "tinyr.pyx":551 - * - * cdef inline void after_remove(self, _Node node): - * self.CondenseTree(node) # <<<<<<<<<<<<<< - * if not self.root.is_leaf and len(self.root.records) == 1: - * self.root = (<_InnerRecord>self.root.records.pop()).child - */ - __pyx_t_1 = __pyx_f_5tinyr_5RTree_CondenseTree(__pyx_v_self, __pyx_v_node); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 551, __pyx_L1_error) - - /* "tinyr.pyx":552 - * cdef inline void after_remove(self, _Node node): - * self.CondenseTree(node) - * if not self.root.is_leaf and len(self.root.records) == 1: # <<<<<<<<<<<<<< - * self.root = (<_InnerRecord>self.root.records.pop()).child - * self._leaf_level -= 1 - */ - __pyx_t_3 = (!__pyx_v_self->root->is_leaf); - if (__pyx_t_3) { - } else { - __pyx_t_2 = __pyx_t_3; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_4 = __pyx_v_self->root->records; - __Pyx_INCREF(__pyx_t_4); - if (unlikely(__pyx_t_4 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 552, __pyx_L1_error) - } - __pyx_t_5 = __Pyx_PyList_GET_SIZE(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 552, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = (__pyx_t_5 == 1); - __pyx_t_2 = __pyx_t_3; - __pyx_L4_bool_binop_done:; - if (__pyx_t_2) { - - /* "tinyr.pyx":553 - * self.CondenseTree(node) - * if not self.root.is_leaf and len(self.root.records) == 1: - * self.root = (<_InnerRecord>self.root.records.pop()).child # <<<<<<<<<<<<<< - * self._leaf_level -= 1 - * - */ - if (unlikely(__pyx_v_self->root->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop"); - __PYX_ERR(0, 553, __pyx_L1_error) - } - __pyx_t_4 = __Pyx_PyList_Pop(__pyx_v_self->root->records); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 553, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = ((PyObject *)((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_4)->child); - __Pyx_INCREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GIVEREF(__pyx_t_6); - __Pyx_GOTREF((PyObject *)__pyx_v_self->root); - __Pyx_DECREF((PyObject *)__pyx_v_self->root); - __pyx_v_self->root = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_6); - __pyx_t_6 = 0; - - /* "tinyr.pyx":554 - * if not self.root.is_leaf and len(self.root.records) == 1: - * self.root = (<_InnerRecord>self.root.records.pop()).child - * self._leaf_level -= 1 # <<<<<<<<<<<<<< - * - * cdef inline _Node FindLeaf_and_remove(self, object identifier, Dfloat *coords): - */ - __pyx_v_self->_leaf_level = (__pyx_v_self->_leaf_level - 1); - - /* "tinyr.pyx":552 - * cdef inline void after_remove(self, _Node node): - * self.CondenseTree(node) - * if not self.root.is_leaf and len(self.root.records) == 1: # <<<<<<<<<<<<<< - * self.root = (<_InnerRecord>self.root.records.pop()).child - * self._leaf_level -= 1 - */ - } - - /* "tinyr.pyx":550 - * self._node_cnt -= 1 - * - * cdef inline void after_remove(self, _Node node): # <<<<<<<<<<<<<< - * self.CondenseTree(node) - * if not self.root.is_leaf and len(self.root.records) == 1: - */ - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("tinyr.RTree.after_remove", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_L0:; - __Pyx_RefNannyFinishContext(); -} - -/* "tinyr.pyx":556 - * self._leaf_level -= 1 - * - * cdef inline _Node FindLeaf_and_remove(self, object identifier, Dfloat *coords): # <<<<<<<<<<<<<< - * # A bit different that in spec: we find overlapping leaf nodes with the - * # method the user wants to find it (recursive or iterative). Spec only - */ - -static CYTHON_INLINE struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5RTree_FindLeaf_and_remove(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, PyObject *__pyx_v_identifier, __pyx_t_5tinyr_Dfloat *__pyx_v_coords) { - PyObject *__pyx_v_leafs = 0; - struct __pyx_obj_5tinyr__Node *__pyx_v_node = 0; - struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_rec = 0; - struct __pyx_obj_5tinyr__Node *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - Py_ssize_t __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - int __pyx_t_10; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("FindLeaf_and_remove", 1); - - /* "tinyr.pyx":566 - * _ChildRecord rec - * - * leafs = self.find_overlapping_leafs(self, coords) # <<<<<<<<<<<<<< - * for node in leafs: - * assert node.is_leaf - */ - __pyx_t_1 = __pyx_v_self->find_overlapping_leafs(__pyx_v_self, __pyx_v_coords); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_leafs = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":567 - * - * leafs = self.find_overlapping_leafs(self, coords) - * for node in leafs: # <<<<<<<<<<<<<< - * assert node.is_leaf - * for rec in node.records: - */ - if (unlikely(__pyx_v_leafs == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 567, __pyx_L1_error) - } - __pyx_t_1 = __pyx_v_leafs; __Pyx_INCREF(__pyx_t_1); - __pyx_t_2 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 567, __pyx_L1_error) - #endif - if (__pyx_t_2 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely((0 < 0))) __PYX_ERR(0, 567, __pyx_L1_error) - #else - __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 567, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5tinyr__Node))))) __PYX_ERR(0, 567, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_node, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "tinyr.pyx":568 - * leafs = self.find_overlapping_leafs(self, coords) - * for node in leafs: - * assert node.is_leaf # <<<<<<<<<<<<<< - * for rec in node.records: - * if rec.identifier == identifier and rec.overlaps(coords): - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(__pyx_assertions_enabled())) { - if (unlikely(!__pyx_v_node->is_leaf)) { - __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0); - __PYX_ERR(0, 568, __pyx_L1_error) - } - } - #else - if ((1)); else __PYX_ERR(0, 568, __pyx_L1_error) - #endif - - /* "tinyr.pyx":569 - * for node in leafs: - * assert node.is_leaf - * for rec in node.records: # <<<<<<<<<<<<<< - * if rec.identifier == identifier and rec.overlaps(coords): - * node.records.remove(rec) # D2 - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 569, __pyx_L1_error) - } - __pyx_t_3 = __pyx_v_node->records; __Pyx_INCREF(__pyx_t_3); - __pyx_t_4 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 569, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 569, __pyx_L1_error) - #else - __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 569, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #endif - if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5tinyr__ChildRecord))))) __PYX_ERR(0, 569, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_rec, ((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_t_5)); - __pyx_t_5 = 0; - - /* "tinyr.pyx":570 - * assert node.is_leaf - * for rec in node.records: - * if rec.identifier == identifier and rec.overlaps(coords): # <<<<<<<<<<<<<< - * node.records.remove(rec) # D2 - * return node - */ - __pyx_t_5 = PyObject_RichCompare(__pyx_v_rec->identifier, __pyx_v_identifier, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 570, __pyx_L1_error) - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 570, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__pyx_t_7) { - } else { - __pyx_t_6 = __pyx_t_7; - goto __pyx_L8_bool_binop_done; - } - __pyx_t_7 = __pyx_f_5tinyr_7_Record_overlaps(((struct __pyx_obj_5tinyr__Record *)__pyx_v_rec), __pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 570, __pyx_L1_error) - __pyx_t_6 = __pyx_t_7; - __pyx_L8_bool_binop_done:; - if (__pyx_t_6) { - - /* "tinyr.pyx":571 - * for rec in node.records: - * if rec.identifier == identifier and rec.overlaps(coords): - * node.records.remove(rec) # D2 # <<<<<<<<<<<<<< - * return node - * - */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_node->records, __pyx_n_s_remove); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 571, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_9 = NULL; - __pyx_t_10 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_9)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - __pyx_t_10 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_9, ((PyObject *)__pyx_v_rec)}; - __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10); - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 571, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - /* "tinyr.pyx":572 - * if rec.identifier == identifier and rec.overlaps(coords): - * node.records.remove(rec) # D2 - * return node # <<<<<<<<<<<<<< - * - * return None - */ - __Pyx_XDECREF((PyObject *)__pyx_r); - __Pyx_INCREF((PyObject *)__pyx_v_node); - __pyx_r = __pyx_v_node; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":570 - * assert node.is_leaf - * for rec in node.records: - * if rec.identifier == identifier and rec.overlaps(coords): # <<<<<<<<<<<<<< - * node.records.remove(rec) # D2 - * return node - */ - } - - /* "tinyr.pyx":569 - * for node in leafs: - * assert node.is_leaf - * for rec in node.records: # <<<<<<<<<<<<<< - * if rec.identifier == identifier and rec.overlaps(coords): - * node.records.remove(rec) # D2 - */ - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":567 - * - * leafs = self.find_overlapping_leafs(self, coords) - * for node in leafs: # <<<<<<<<<<<<<< - * assert node.is_leaf - * for rec in node.records: - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":574 - * return node - * - * return None # <<<<<<<<<<<<<< - * - * cdef inline int CondenseTree(self, _Node node) except -1: - */ - __Pyx_XDECREF((PyObject *)__pyx_r); - __pyx_r = ((struct __pyx_obj_5tinyr__Node *)Py_None); __Pyx_INCREF(Py_None); - goto __pyx_L0; - - /* "tinyr.pyx":556 - * self._leaf_level -= 1 - * - * cdef inline _Node FindLeaf_and_remove(self, object identifier, Dfloat *coords): # <<<<<<<<<<<<<< - * # A bit different that in spec: we find overlapping leaf nodes with the - * # method the user wants to find it (recursive or iterative). Spec only - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("tinyr.RTree.FindLeaf_and_remove", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_leafs); - __Pyx_XDECREF((PyObject *)__pyx_v_node); - __Pyx_XDECREF((PyObject *)__pyx_v_rec); - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":576 - * return None - * - * cdef inline int CondenseTree(self, _Node node) except -1: # <<<<<<<<<<<<<< - * cdef: - * _Node P, N - */ - -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_CondenseTree(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node) { - struct __pyx_obj_5tinyr__Node *__pyx_v_P = 0; - struct __pyx_obj_5tinyr__Node *__pyx_v_N = 0; - struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_EN = 0; - struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_ir = 0; - struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_crec = 0; - PyObject *__pyx_v_removed_childrecords = 0; - PyObject *__pyx_v_removed_innerrecords = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - Py_ssize_t __pyx_t_3; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_t_6; - int __pyx_t_7; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("CondenseTree", 0); - __Pyx_INCREF((PyObject *)__pyx_v_node); - - /* "tinyr.pyx":585 - * list removed_childrecords, removed_innerrecords, reclist - * - * removed_innerrecords = list() # <<<<<<<<<<<<<< - * - * N = node - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_removed_innerrecords = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":587 - * removed_innerrecords = list() - * - * N = node # <<<<<<<<<<<<<< - * while not N is self.root: - * - */ - __Pyx_INCREF((PyObject *)__pyx_v_node); - __pyx_v_N = __pyx_v_node; - - /* "tinyr.pyx":588 - * - * N = node - * while not N is self.root: # <<<<<<<<<<<<<< - * - * P = N.parent - */ - while (1) { - __pyx_t_2 = (__pyx_v_N != __pyx_v_self->root); - if (!__pyx_t_2) break; - - /* "tinyr.pyx":590 - * while not N is self.root: - * - * P = N.parent # <<<<<<<<<<<<<< - * EN = parent_record(N) - * - */ - __pyx_t_1 = ((PyObject *)__pyx_v_N->parent); - __Pyx_INCREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_P, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "tinyr.pyx":591 - * - * P = N.parent - * EN = parent_record(N) # <<<<<<<<<<<<<< - * - * if len(N.records) < self.m_cap: - */ - __pyx_t_1 = ((PyObject *)__pyx_f_5tinyr_parent_record(__pyx_v_N)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_EN, ((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "tinyr.pyx":593 - * EN = parent_record(N) - * - * if len(N.records) < self.m_cap: # <<<<<<<<<<<<<< - * assert EN is not None, str(N.is_leaf) - * - */ - __pyx_t_1 = __pyx_v_N->records; - __Pyx_INCREF(__pyx_t_1); - if (unlikely(__pyx_t_1 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 593, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 593, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = (__pyx_t_3 < __pyx_v_self->m_cap); - if (__pyx_t_2) { - - /* "tinyr.pyx":594 - * - * if len(N.records) < self.m_cap: - * assert EN is not None, str(N.is_leaf) # <<<<<<<<<<<<<< - * - * P.records.remove(EN) - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(__pyx_assertions_enabled())) { - __pyx_t_2 = (((PyObject *)__pyx_v_EN) != Py_None); - if (unlikely(!__pyx_t_2)) { - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_N->is_leaf); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyObject_Str(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_t_1, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 594, __pyx_L1_error) - } - } - #else - if ((1)); else __PYX_ERR(0, 594, __pyx_L1_error) - #endif - - /* "tinyr.pyx":596 - * assert EN is not None, str(N.is_leaf) - * - * P.records.remove(EN) # <<<<<<<<<<<<<< - * if N.is_leaf: - * assert removed_childrecords is None - */ - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_P->records, __pyx_n_s_remove); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = NULL; - __pyx_t_6 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_4))) { - __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); - if (likely(__pyx_t_5)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_4, function); - __pyx_t_6 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_5, ((PyObject *)__pyx_v_EN)}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6); - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 596, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":597 - * - * P.records.remove(EN) - * if N.is_leaf: # <<<<<<<<<<<<<< - * assert removed_childrecords is None - * removed_childrecords = N.records - */ - if (__pyx_v_N->is_leaf) { - - /* "tinyr.pyx":598 - * P.records.remove(EN) - * if N.is_leaf: - * assert removed_childrecords is None # <<<<<<<<<<<<<< - * removed_childrecords = N.records - * else: - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(__pyx_assertions_enabled())) { - if (unlikely(!__pyx_v_removed_childrecords)) { __Pyx_RaiseUnboundLocalError("removed_childrecords"); __PYX_ERR(0, 598, __pyx_L1_error) } - __pyx_t_2 = (__pyx_v_removed_childrecords == ((PyObject*)Py_None)); - if (unlikely(!__pyx_t_2)) { - __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0); - __PYX_ERR(0, 598, __pyx_L1_error) - } - } - #else - if ((1)); else __PYX_ERR(0, 598, __pyx_L1_error) - #endif - - /* "tinyr.pyx":599 - * if N.is_leaf: - * assert removed_childrecords is None - * removed_childrecords = N.records # <<<<<<<<<<<<<< - * else: - * removed_innerrecords.extend(N.records) - */ - __pyx_t_1 = __pyx_v_N->records; - __Pyx_INCREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_removed_childrecords, ((PyObject*)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "tinyr.pyx":597 - * - * P.records.remove(EN) - * if N.is_leaf: # <<<<<<<<<<<<<< - * assert removed_childrecords is None - * removed_childrecords = N.records - */ - goto __pyx_L6; - } - - /* "tinyr.pyx":601 - * removed_childrecords = N.records - * else: - * removed_innerrecords.extend(N.records) # <<<<<<<<<<<<<< - * - * else: - */ - /*else*/ { - __pyx_t_1 = __pyx_v_N->records; - __Pyx_INCREF(__pyx_t_1); - __pyx_t_7 = __Pyx_PyList_Extend(__pyx_v_removed_innerrecords, __pyx_t_1); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(0, 601, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __pyx_L6:; - - /* "tinyr.pyx":593 - * EN = parent_record(N) - * - * if len(N.records) < self.m_cap: # <<<<<<<<<<<<<< - * assert EN is not None, str(N.is_leaf) - * - */ - goto __pyx_L5; - } - - /* "tinyr.pyx":604 - * - * else: - * common_boundaries(N.records, EN.coords) # <<<<<<<<<<<<<< - * - * N = P - */ - /*else*/ { - __pyx_t_1 = __pyx_v_N->records; - __Pyx_INCREF(__pyx_t_1); - __pyx_f_5tinyr_common_boundaries(((PyObject*)__pyx_t_1), __pyx_v_EN->__pyx_base.coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 604, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __pyx_L5:; - - /* "tinyr.pyx":606 - * common_boundaries(N.records, EN.coords) - * - * N = P # <<<<<<<<<<<<<< - * - * - */ - __Pyx_INCREF((PyObject *)__pyx_v_P); - __Pyx_DECREF_SET(__pyx_v_N, __pyx_v_P); - } - - /* "tinyr.pyx":609 - * - * - * for ir in removed_innerrecords: # <<<<<<<<<<<<<< - * node = self.find_inner_node(ir) - * ir.child.parent = node - */ - __pyx_t_1 = __pyx_v_removed_innerrecords; __Pyx_INCREF(__pyx_t_1); - __pyx_t_3 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 609, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 609, __pyx_L1_error) - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5tinyr__InnerRecord))))) __PYX_ERR(0, 609, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_ir, ((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_4)); - __pyx_t_4 = 0; - - /* "tinyr.pyx":610 - * - * for ir in removed_innerrecords: - * node = self.find_inner_node(ir) # <<<<<<<<<<<<<< - * ir.child.parent = node - * self.insert_at_node(ir, node) - */ - __pyx_t_4 = ((PyObject *)((struct __pyx_vtabstruct_5tinyr_RTree *)__pyx_v_self->__pyx_vtab)->find_inner_node(__pyx_v_self, __pyx_v_ir)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF_SET(__pyx_v_node, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_4)); - __pyx_t_4 = 0; - - /* "tinyr.pyx":611 - * for ir in removed_innerrecords: - * node = self.find_inner_node(ir) - * ir.child.parent = node # <<<<<<<<<<<<<< - * self.insert_at_node(ir, node) - * - */ - __Pyx_INCREF((PyObject *)__pyx_v_node); - __Pyx_GIVEREF((PyObject *)__pyx_v_node); - __Pyx_GOTREF((PyObject *)__pyx_v_ir->child->parent); - __Pyx_DECREF((PyObject *)__pyx_v_ir->child->parent); - __pyx_v_ir->child->parent = __pyx_v_node; - - /* "tinyr.pyx":612 - * node = self.find_inner_node(ir) - * ir.child.parent = node - * self.insert_at_node(ir, node) # <<<<<<<<<<<<<< - * - * if removed_childrecords is not None: - */ - __pyx_t_6 = __pyx_f_5tinyr_5RTree_insert_at_node(__pyx_v_self, ((struct __pyx_obj_5tinyr__Record *)__pyx_v_ir), __pyx_v_node); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 612, __pyx_L1_error) - - /* "tinyr.pyx":609 - * - * - * for ir in removed_innerrecords: # <<<<<<<<<<<<<< - * node = self.find_inner_node(ir) - * ir.child.parent = node - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":614 - * self.insert_at_node(ir, node) - * - * if removed_childrecords is not None: # <<<<<<<<<<<<<< - * for crec in removed_childrecords: - * node = self._ChooseLeaf(crec) - */ - if (unlikely(!__pyx_v_removed_childrecords)) { __Pyx_RaiseUnboundLocalError("removed_childrecords"); __PYX_ERR(0, 614, __pyx_L1_error) } - __pyx_t_2 = (__pyx_v_removed_childrecords != ((PyObject*)Py_None)); - if (__pyx_t_2) { - - /* "tinyr.pyx":615 - * - * if removed_childrecords is not None: - * for crec in removed_childrecords: # <<<<<<<<<<<<<< - * node = self._ChooseLeaf(crec) - * self.insert_at_node(crec, node) - */ - if (unlikely(!__pyx_v_removed_childrecords)) { __Pyx_RaiseUnboundLocalError("removed_childrecords"); __PYX_ERR(0, 615, __pyx_L1_error) } - if (unlikely(__pyx_v_removed_childrecords == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 615, __pyx_L1_error) - } - __pyx_t_1 = __pyx_v_removed_childrecords; __Pyx_INCREF(__pyx_t_1); - __pyx_t_3 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 615, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 615, __pyx_L1_error) - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5tinyr__ChildRecord))))) __PYX_ERR(0, 615, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_crec, ((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_t_4)); - __pyx_t_4 = 0; - - /* "tinyr.pyx":616 - * if removed_childrecords is not None: - * for crec in removed_childrecords: - * node = self._ChooseLeaf(crec) # <<<<<<<<<<<<<< - * self.insert_at_node(crec, node) - * - */ - __pyx_t_4 = ((PyObject *)__pyx_f_5tinyr_5RTree__ChooseLeaf(__pyx_v_self, ((struct __pyx_obj_5tinyr__Record *)__pyx_v_crec))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 616, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF_SET(__pyx_v_node, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_4)); - __pyx_t_4 = 0; - - /* "tinyr.pyx":617 - * for crec in removed_childrecords: - * node = self._ChooseLeaf(crec) - * self.insert_at_node(crec, node) # <<<<<<<<<<<<<< - * - * return 0 - */ - __pyx_t_6 = __pyx_f_5tinyr_5RTree_insert_at_node(__pyx_v_self, ((struct __pyx_obj_5tinyr__Record *)__pyx_v_crec), __pyx_v_node); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 617, __pyx_L1_error) - - /* "tinyr.pyx":615 - * - * if removed_childrecords is not None: - * for crec in removed_childrecords: # <<<<<<<<<<<<<< - * node = self._ChooseLeaf(crec) - * self.insert_at_node(crec, node) - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":614 - * self.insert_at_node(ir, node) - * - * if removed_childrecords is not None: # <<<<<<<<<<<<<< - * for crec in removed_childrecords: - * node = self._ChooseLeaf(crec) - */ - } - - /* "tinyr.pyx":619 - * self.insert_at_node(crec, node) - * - * return 0 # <<<<<<<<<<<<<< - * - * cdef _Node find_inner_node(self, _InnerRecord record): - */ - __pyx_r = 0; - goto __pyx_L0; - - /* "tinyr.pyx":576 - * return None - * - * cdef inline int CondenseTree(self, _Node node) except -1: # <<<<<<<<<<<<<< - * cdef: - * _Node P, N - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_AddTraceback("tinyr.RTree.CondenseTree", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_P); - __Pyx_XDECREF((PyObject *)__pyx_v_N); - __Pyx_XDECREF((PyObject *)__pyx_v_EN); - __Pyx_XDECREF((PyObject *)__pyx_v_ir); - __Pyx_XDECREF((PyObject *)__pyx_v_crec); - __Pyx_XDECREF(__pyx_v_removed_childrecords); - __Pyx_XDECREF(__pyx_v_removed_innerrecords); - __Pyx_XDECREF((PyObject *)__pyx_v_node); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":621 - * return 0 - * - * cdef _Node find_inner_node(self, _InnerRecord record): # <<<<<<<<<<<<<< - * cdef: - * _Node node - */ - -static struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5RTree_find_inner_node(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_record) { - struct __pyx_obj_5tinyr__Node *__pyx_v_node = 0; - struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_rec = 0; - __pyx_t_5tinyr_Duint __pyx_v_subtree_len; - __pyx_t_5tinyr_Duint __pyx_v_level_reverse; - struct __pyx_obj_5tinyr__Node *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __pyx_t_5tinyr_Duint __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("find_inner_node", 1); - - /* "tinyr.pyx":627 - * Duint subtree_len, level_reverse - * - * subtree_len = self.subtree_len(record) # <<<<<<<<<<<<<< - * level_reverse = self._leaf_level - * - */ - __pyx_t_1 = ((struct __pyx_vtabstruct_5tinyr_RTree *)__pyx_v_self->__pyx_vtab)->subtree_len(__pyx_v_self, __pyx_v_record); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 627, __pyx_L1_error) - __pyx_v_subtree_len = __pyx_t_1; - - /* "tinyr.pyx":628 - * - * subtree_len = self.subtree_len(record) - * level_reverse = self._leaf_level # <<<<<<<<<<<<<< - * - * node = self.root - */ - __pyx_t_1 = __pyx_v_self->_leaf_level; - __pyx_v_level_reverse = __pyx_t_1; - - /* "tinyr.pyx":630 - * level_reverse = self._leaf_level - * - * node = self.root # <<<<<<<<<<<<<< - * - * while level_reverse != subtree_len: - */ - __pyx_t_2 = ((PyObject *)__pyx_v_self->root); - __Pyx_INCREF(__pyx_t_2); - __pyx_v_node = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "tinyr.pyx":632 - * node = self.root - * - * while level_reverse != subtree_len: # <<<<<<<<<<<<<< - * rec = node.choose_subtree_least_enlargement(record) - * node = rec.child - */ - while (1) { - __pyx_t_3 = (__pyx_v_level_reverse != __pyx_v_subtree_len); - if (!__pyx_t_3) break; - - /* "tinyr.pyx":633 - * - * while level_reverse != subtree_len: - * rec = node.choose_subtree_least_enlargement(record) # <<<<<<<<<<<<<< - * node = rec.child - * level_reverse -= 1 - */ - __pyx_t_2 = ((PyObject *)__pyx_f_5tinyr_5_Node_choose_subtree_least_enlargement(__pyx_v_node, ((struct __pyx_obj_5tinyr__Record *)__pyx_v_record))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 633, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5tinyr__InnerRecord))))) __PYX_ERR(0, 633, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_rec, ((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_2)); - __pyx_t_2 = 0; - - /* "tinyr.pyx":634 - * while level_reverse != subtree_len: - * rec = node.choose_subtree_least_enlargement(record) - * node = rec.child # <<<<<<<<<<<<<< - * level_reverse -= 1 - * - */ - __pyx_t_2 = ((PyObject *)__pyx_v_rec->child); - __Pyx_INCREF(__pyx_t_2); - __Pyx_DECREF_SET(__pyx_v_node, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_2)); - __pyx_t_2 = 0; - - /* "tinyr.pyx":635 - * rec = node.choose_subtree_least_enlargement(record) - * node = rec.child - * level_reverse -= 1 # <<<<<<<<<<<<<< - * - * return node - */ - __pyx_v_level_reverse = (__pyx_v_level_reverse - 1); - } - - /* "tinyr.pyx":637 - * level_reverse -= 1 - * - * return node # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF((PyObject *)__pyx_r); - __Pyx_INCREF((PyObject *)__pyx_v_node); - __pyx_r = __pyx_v_node; - goto __pyx_L0; - - /* "tinyr.pyx":621 - * return 0 - * - * cdef _Node find_inner_node(self, _InnerRecord record): # <<<<<<<<<<<<<< - * cdef: - * _Node node - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("tinyr.RTree.find_inner_node", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_node); - __Pyx_XDECREF((PyObject *)__pyx_v_rec); - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":640 - * - * - * cdef Duint subtree_len(self, _InnerRecord rec): # <<<<<<<<<<<<<< - * cdef: - * _Node node - */ - -static __pyx_t_5tinyr_Duint __pyx_f_5tinyr_5RTree_subtree_len(CYTHON_UNUSED struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_rec) { - struct __pyx_obj_5tinyr__Node *__pyx_v_node = 0; - __pyx_t_5tinyr_Duint __pyx_v_slen; - __pyx_t_5tinyr_Duint __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("subtree_len", 1); - - /* "tinyr.pyx":645 - * Duint slen - * - * slen = 1 # <<<<<<<<<<<<<< - * - * node = rec.child - */ - __pyx_v_slen = 1; - - /* "tinyr.pyx":647 - * slen = 1 - * - * node = rec.child # <<<<<<<<<<<<<< - * while not node.is_leaf: - * assert node.records - */ - __pyx_t_1 = ((PyObject *)__pyx_v_rec->child); - __Pyx_INCREF(__pyx_t_1); - __pyx_v_node = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":648 - * - * node = rec.child - * while not node.is_leaf: # <<<<<<<<<<<<<< - * assert node.records - * node = (<_InnerRecord>node.records[0]).child - */ - while (1) { - __pyx_t_2 = (!__pyx_v_node->is_leaf); - if (!__pyx_t_2) break; - - /* "tinyr.pyx":649 - * node = rec.child - * while not node.is_leaf: - * assert node.records # <<<<<<<<<<<<<< - * node = (<_InnerRecord>node.records[0]).child - * slen += 1 - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(__pyx_assertions_enabled())) { - __pyx_t_2 = (__pyx_v_node->records != Py_None)&&(PyList_GET_SIZE(__pyx_v_node->records) != 0); - if (unlikely(!__pyx_t_2)) { - __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0); - __PYX_ERR(0, 649, __pyx_L1_error) - } - } - #else - if ((1)); else __PYX_ERR(0, 649, __pyx_L1_error) - #endif - - /* "tinyr.pyx":650 - * while not node.is_leaf: - * assert node.records - * node = (<_InnerRecord>node.records[0]).child # <<<<<<<<<<<<<< - * slen += 1 - * - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 650, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_node->records, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 650, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = ((PyObject *)((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_1)->child); - __Pyx_INCREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF_SET(__pyx_v_node, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "tinyr.pyx":651 - * assert node.records - * node = (<_InnerRecord>node.records[0]).child - * slen += 1 # <<<<<<<<<<<<<< - * - * return slen - */ - __pyx_v_slen = (__pyx_v_slen + 1); - } - - /* "tinyr.pyx":653 - * slen += 1 - * - * return slen # <<<<<<<<<<<<<< - * - * - */ - __pyx_r = __pyx_v_slen; - goto __pyx_L0; - - /* "tinyr.pyx":640 - * - * - * cdef Duint subtree_len(self, _InnerRecord rec): # <<<<<<<<<<<<<< - * cdef: - * _Node node - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr.RTree.subtree_len", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_node); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":656 - * - * - * cdef inline bint is_full(self, _Node node): # <<<<<<<<<<<<<< - * return len(node.records) == self.M_cap - * - */ - -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_is_full(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - Py_ssize_t __pyx_t_2; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("is_full", 1); - - /* "tinyr.pyx":657 - * - * cdef inline bint is_full(self, _Node node): - * return len(node.records) == self.M_cap # <<<<<<<<<<<<<< - * - * cdef inline _Node _ChooseLeaf(self, _Record ir): - */ - __pyx_t_1 = __pyx_v_node->records; - __Pyx_INCREF(__pyx_t_1); - if (unlikely(__pyx_t_1 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 657, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(0, 657, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_r = (__pyx_t_2 == __pyx_v_self->M_cap); - goto __pyx_L0; - - /* "tinyr.pyx":656 - * - * - * cdef inline bint is_full(self, _Node node): # <<<<<<<<<<<<<< - * return len(node.records) == self.M_cap - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTree.is_full", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":659 - * return len(node.records) == self.M_cap - * - * cdef inline _Node _ChooseLeaf(self, _Record ir): # <<<<<<<<<<<<<< - * cdef: - * _Node N - */ - -static CYTHON_INLINE struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5RTree__ChooseLeaf(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Record *__pyx_v_ir) { - struct __pyx_obj_5tinyr__Node *__pyx_v_N = 0; - struct __pyx_obj_5tinyr__Record *__pyx_v_r = NULL; - struct __pyx_obj_5tinyr__Node *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_ChooseLeaf", 1); - - /* "tinyr.pyx":664 - * _InnerRecord F - * - * N = self.root # <<<<<<<<<<<<<< - * while True: - * if N.is_leaf: - */ - __pyx_t_1 = ((PyObject *)__pyx_v_self->root); - __Pyx_INCREF(__pyx_t_1); - __pyx_v_N = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":665 - * - * N = self.root - * while True: # <<<<<<<<<<<<<< - * if N.is_leaf: - * break - */ - while (1) { - - /* "tinyr.pyx":666 - * N = self.root - * while True: - * if N.is_leaf: # <<<<<<<<<<<<<< - * break - * r = N.choose_subtree_least_enlargement(ir) - */ - if (__pyx_v_N->is_leaf) { - - /* "tinyr.pyx":667 - * while True: - * if N.is_leaf: - * break # <<<<<<<<<<<<<< - * r = N.choose_subtree_least_enlargement(ir) - * N = (<_InnerRecord>r).child - */ - goto __pyx_L4_break; - - /* "tinyr.pyx":666 - * N = self.root - * while True: - * if N.is_leaf: # <<<<<<<<<<<<<< - * break - * r = N.choose_subtree_least_enlargement(ir) - */ - } - - /* "tinyr.pyx":668 - * if N.is_leaf: - * break - * r = N.choose_subtree_least_enlargement(ir) # <<<<<<<<<<<<<< - * N = (<_InnerRecord>r).child - * return N - */ - __pyx_t_1 = ((PyObject *)__pyx_f_5tinyr_5_Node_choose_subtree_least_enlargement(__pyx_v_N, __pyx_v_ir)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 668, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_r, ((struct __pyx_obj_5tinyr__Record *)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "tinyr.pyx":669 - * break - * r = N.choose_subtree_least_enlargement(ir) - * N = (<_InnerRecord>r).child # <<<<<<<<<<<<<< - * return N - * - */ - __pyx_t_1 = ((PyObject *)((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_v_r)->child); - __Pyx_INCREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_N, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_1)); - __pyx_t_1 = 0; - } - __pyx_L4_break:; - - /* "tinyr.pyx":670 - * r = N.choose_subtree_least_enlargement(ir) - * N = (<_InnerRecord>r).child - * return N # <<<<<<<<<<<<<< - * - * cdef inline tuple _AdjustTree(self, _Node L, _Node LL): - */ - __Pyx_XDECREF((PyObject *)__pyx_r); - __Pyx_INCREF((PyObject *)__pyx_v_N); - __pyx_r = __pyx_v_N; - goto __pyx_L0; - - /* "tinyr.pyx":659 - * return len(node.records) == self.M_cap - * - * cdef inline _Node _ChooseLeaf(self, _Record ir): # <<<<<<<<<<<<<< - * cdef: - * _Node N - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTree._ChooseLeaf", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_N); - __Pyx_XDECREF((PyObject *)__pyx_v_r); - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":672 - * return N - * - * cdef inline tuple _AdjustTree(self, _Node L, _Node LL): # <<<<<<<<<<<<<< - * cdef: - * _Node N, NN, P - */ - -static CYTHON_INLINE PyObject *__pyx_f_5tinyr_5RTree__AdjustTree(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_L, struct __pyx_obj_5tinyr__Node *__pyx_v_LL) { - struct __pyx_obj_5tinyr__Node *__pyx_v_N = 0; - struct __pyx_obj_5tinyr__Node *__pyx_v_NN = 0; - struct __pyx_obj_5tinyr__Node *__pyx_v_P = 0; - struct __pyx_obj_5tinyr__Record *__pyx_v_EN = 0; - struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_ENN = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - int __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("_AdjustTree", 1); - - /* "tinyr.pyx":677 - * _Record EN, e - * - * N = L # <<<<<<<<<<<<<< - * NN = LL - * - */ - __Pyx_INCREF((PyObject *)__pyx_v_L); - __pyx_v_N = __pyx_v_L; - - /* "tinyr.pyx":678 - * - * N = L - * NN = LL # <<<<<<<<<<<<<< - * - * while N != self.root: - */ - __Pyx_INCREF((PyObject *)__pyx_v_LL); - __pyx_v_NN = __pyx_v_LL; - - /* "tinyr.pyx":680 - * NN = LL - * - * while N != self.root: # <<<<<<<<<<<<<< - * P = N.parent - * - */ - while (1) { - __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_N), ((PyObject *)__pyx_v_self->root), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 680, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 680, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!__pyx_t_2) break; - - /* "tinyr.pyx":681 - * - * while N != self.root: - * P = N.parent # <<<<<<<<<<<<<< - * - * # search for the entry in parent of N that holds N - */ - __pyx_t_1 = ((PyObject *)__pyx_v_N->parent); - __Pyx_INCREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_P, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "tinyr.pyx":684 - * - * # search for the entry in parent of N that holds N - * EN = parent_record(N) # <<<<<<<<<<<<<< - * - * assert EN != None, 'no parent entry holds the child' - */ - __pyx_t_1 = ((PyObject *)__pyx_f_5tinyr_parent_record(__pyx_v_N)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_EN, ((struct __pyx_obj_5tinyr__Record *)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "tinyr.pyx":686 - * EN = parent_record(N) - * - * assert EN != None, 'no parent entry holds the child' # <<<<<<<<<<<<<< - * - * N.common_boundaries(EN.coords) - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(__pyx_assertions_enabled())) { - __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_EN), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 686, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 686, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_t_2)) { - __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_kp_s_no_parent_entry_holds_the_child, 0, 0); - __PYX_ERR(0, 686, __pyx_L1_error) - } - } - #else - if ((1)); else __PYX_ERR(0, 686, __pyx_L1_error) - #endif - - /* "tinyr.pyx":688 - * assert EN != None, 'no parent entry holds the child' - * - * N.common_boundaries(EN.coords) # <<<<<<<<<<<<<< - * - * if NN != None: - */ - __pyx_f_5tinyr_5_Node_common_boundaries(__pyx_v_N, __pyx_v_EN->coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 688, __pyx_L1_error) - - /* "tinyr.pyx":690 - * N.common_boundaries(EN.coords) - * - * if NN != None: # <<<<<<<<<<<<<< - * ENN = _InnerRecord(NN) - * NN.common_boundaries(ENN.coords) - */ - __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_NN), Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 690, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 690, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - - /* "tinyr.pyx":691 - * - * if NN != None: - * ENN = _InnerRecord(NN) # <<<<<<<<<<<<<< - * NN.common_boundaries(ENN.coords) - * if not self.is_full(P): - */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__InnerRecord), ((PyObject *)__pyx_v_NN)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 691, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_XDECREF_SET(__pyx_v_ENN, ((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_1)); - __pyx_t_1 = 0; - - /* "tinyr.pyx":692 - * if NN != None: - * ENN = _InnerRecord(NN) - * NN.common_boundaries(ENN.coords) # <<<<<<<<<<<<<< - * if not self.is_full(P): - * P.records.append(ENN) - */ - __pyx_f_5tinyr_5_Node_common_boundaries(__pyx_v_NN, __pyx_v_ENN->__pyx_base.coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 692, __pyx_L1_error) - - /* "tinyr.pyx":693 - * ENN = _InnerRecord(NN) - * NN.common_boundaries(ENN.coords) - * if not self.is_full(P): # <<<<<<<<<<<<<< - * P.records.append(ENN) - * NN = None - */ - __pyx_t_2 = __pyx_f_5tinyr_5RTree_is_full(__pyx_v_self, __pyx_v_P); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 693, __pyx_L1_error) - __pyx_t_3 = (!__pyx_t_2); - if (__pyx_t_3) { - - /* "tinyr.pyx":694 - * NN.common_boundaries(ENN.coords) - * if not self.is_full(P): - * P.records.append(ENN) # <<<<<<<<<<<<<< - * NN = None - * else: - */ - if (unlikely(__pyx_v_P->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 694, __pyx_L1_error) - } - __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_P->records, ((PyObject *)__pyx_v_ENN)); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 694, __pyx_L1_error) - - /* "tinyr.pyx":695 - * if not self.is_full(P): - * P.records.append(ENN) - * NN = None # <<<<<<<<<<<<<< - * else: - * NN = self.SplitNode(P, ENN) - */ - __Pyx_INCREF(Py_None); - __Pyx_DECREF_SET(__pyx_v_NN, ((struct __pyx_obj_5tinyr__Node *)Py_None)); - - /* "tinyr.pyx":693 - * ENN = _InnerRecord(NN) - * NN.common_boundaries(ENN.coords) - * if not self.is_full(P): # <<<<<<<<<<<<<< - * P.records.append(ENN) - * NN = None - */ - goto __pyx_L6; - } - - /* "tinyr.pyx":697 - * NN = None - * else: - * NN = self.SplitNode(P, ENN) # <<<<<<<<<<<<<< - * - * N = P - */ - /*else*/ { - __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_5tinyr_RTree *)__pyx_v_self->__pyx_vtab)->SplitNode(__pyx_v_self, __pyx_v_P, ((struct __pyx_obj_5tinyr__Record *)__pyx_v_ENN))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 697, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_NN, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_1)); - __pyx_t_1 = 0; - } - __pyx_L6:; - - /* "tinyr.pyx":690 - * N.common_boundaries(EN.coords) - * - * if NN != None: # <<<<<<<<<<<<<< - * ENN = _InnerRecord(NN) - * NN.common_boundaries(ENN.coords) - */ - } - - /* "tinyr.pyx":699 - * NN = self.SplitNode(P, ENN) - * - * N = P # <<<<<<<<<<<<<< - * - * return (N, NN) - */ - __Pyx_INCREF((PyObject *)__pyx_v_P); - __Pyx_DECREF_SET(__pyx_v_N, __pyx_v_P); - } - - /* "tinyr.pyx":701 - * N = P - * - * return (N, NN) # <<<<<<<<<<<<<< - * - * cdef _Node SplitNode(self, _Node node, _Record ir): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 701, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_N); - __Pyx_GIVEREF((PyObject *)__pyx_v_N); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_N))) __PYX_ERR(0, 701, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_NN); - __Pyx_GIVEREF((PyObject *)__pyx_v_NN); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_NN))) __PYX_ERR(0, 701, __pyx_L1_error); - __pyx_r = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":672 - * return N - * - * cdef inline tuple _AdjustTree(self, _Node L, _Node LL): # <<<<<<<<<<<<<< - * cdef: - * _Node N, NN, P - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTree._AdjustTree", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_N); - __Pyx_XDECREF((PyObject *)__pyx_v_NN); - __Pyx_XDECREF((PyObject *)__pyx_v_P); - __Pyx_XDECREF((PyObject *)__pyx_v_EN); - __Pyx_XDECREF((PyObject *)__pyx_v_ENN); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":703 - * return (N, NN) - * - * cdef _Node SplitNode(self, _Node node, _Record ir): # <<<<<<<<<<<<<< - * cdef: - * list remaining - */ - -static struct __pyx_obj_5tinyr__Node *__pyx_f_5tinyr_5RTree_SplitNode(struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node, struct __pyx_obj_5tinyr__Record *__pyx_v_ir) { - PyObject *__pyx_v_remaining = 0; - struct __pyx_obj_5tinyr__Node *__pyx_v_newnode = 0; - unsigned int __pyx_v_remaining_count; - struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_r = 0; - struct __pyx_obj_5tinyr__Node *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - int __pyx_t_3; - Py_ssize_t __pyx_t_4; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("SplitNode", 1); - - /* "tinyr.pyx":710 - * _InnerRecord r - * - * remaining = node.records # <<<<<<<<<<<<<< - * remaining.append(ir) - * node.records = list() - */ - __pyx_t_1 = __pyx_v_node->records; - __Pyx_INCREF(__pyx_t_1); - __pyx_v_remaining = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":711 - * - * remaining = node.records - * remaining.append(ir) # <<<<<<<<<<<<<< - * node.records = list() - * - */ - if (unlikely(__pyx_v_remaining == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 711, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyList_Append(__pyx_v_remaining, ((PyObject *)__pyx_v_ir)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 711, __pyx_L1_error) - - /* "tinyr.pyx":712 - * remaining = node.records - * remaining.append(ir) - * node.records = list() # <<<<<<<<<<<<<< - * - * newnode = _Node(node.parent) - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_v_node->records); - __Pyx_DECREF(__pyx_v_node->records); - __pyx_v_node->records = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":714 - * node.records = list() - * - * newnode = _Node(node.parent) # <<<<<<<<<<<<<< - * - * self.PickSeeds(node, remaining, newnode) - */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__Node), ((PyObject *)__pyx_v_node->parent)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_newnode = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":716 - * newnode = _Node(node.parent) - * - * self.PickSeeds(node, remaining, newnode) # <<<<<<<<<<<<<< - * - * remaining_count = len(remaining) - */ - __pyx_t_3 = __pyx_v_self->PickSeeds(__pyx_v_node, __pyx_v_remaining, __pyx_v_newnode); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 716, __pyx_L1_error) - - /* "tinyr.pyx":718 - * self.PickSeeds(node, remaining, newnode) - * - * remaining_count = len(remaining) # <<<<<<<<<<<<<< - * while remaining_count > 0: - * if len(node.records) + remaining_count - 1 < self.m_cap: - */ - if (unlikely(__pyx_v_remaining == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 718, __pyx_L1_error) - } - __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_v_remaining); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 718, __pyx_L1_error) - __pyx_v_remaining_count = __pyx_t_4; - - /* "tinyr.pyx":719 - * - * remaining_count = len(remaining) - * while remaining_count > 0: # <<<<<<<<<<<<<< - * if len(node.records) + remaining_count - 1 < self.m_cap: - * node.records.extend(remaining) - */ - while (1) { - __pyx_t_5 = (__pyx_v_remaining_count > 0); - if (!__pyx_t_5) break; - - /* "tinyr.pyx":720 - * remaining_count = len(remaining) - * while remaining_count > 0: - * if len(node.records) + remaining_count - 1 < self.m_cap: # <<<<<<<<<<<<<< - * node.records.extend(remaining) - * break - */ - __pyx_t_1 = __pyx_v_node->records; - __Pyx_INCREF(__pyx_t_1); - if (unlikely(__pyx_t_1 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 720, __pyx_L1_error) - } - __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 720, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = (((__pyx_t_4 + __pyx_v_remaining_count) - 1) < __pyx_v_self->m_cap); - if (__pyx_t_5) { - - /* "tinyr.pyx":721 - * while remaining_count > 0: - * if len(node.records) + remaining_count - 1 < self.m_cap: - * node.records.extend(remaining) # <<<<<<<<<<<<<< - * break - * if len(newnode.records) + remaining_count - 1 < self.m_cap: - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 721, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyList_Extend(__pyx_v_node->records, __pyx_v_remaining); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 721, __pyx_L1_error) - - /* "tinyr.pyx":722 - * if len(node.records) + remaining_count - 1 < self.m_cap: - * node.records.extend(remaining) - * break # <<<<<<<<<<<<<< - * if len(newnode.records) + remaining_count - 1 < self.m_cap: - * newnode.records.extend(remaining) - */ - goto __pyx_L4_break; - - /* "tinyr.pyx":720 - * remaining_count = len(remaining) - * while remaining_count > 0: - * if len(node.records) + remaining_count - 1 < self.m_cap: # <<<<<<<<<<<<<< - * node.records.extend(remaining) - * break - */ - } - - /* "tinyr.pyx":723 - * node.records.extend(remaining) - * break - * if len(newnode.records) + remaining_count - 1 < self.m_cap: # <<<<<<<<<<<<<< - * newnode.records.extend(remaining) - * break - */ - __pyx_t_1 = __pyx_v_newnode->records; - __Pyx_INCREF(__pyx_t_1); - if (unlikely(__pyx_t_1 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 723, __pyx_L1_error) - } - __pyx_t_4 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 723, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = (((__pyx_t_4 + __pyx_v_remaining_count) - 1) < __pyx_v_self->m_cap); - if (__pyx_t_5) { - - /* "tinyr.pyx":724 - * break - * if len(newnode.records) + remaining_count - 1 < self.m_cap: - * newnode.records.extend(remaining) # <<<<<<<<<<<<<< - * break - * - */ - if (unlikely(__pyx_v_newnode->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 724, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyList_Extend(__pyx_v_newnode->records, __pyx_v_remaining); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 724, __pyx_L1_error) - - /* "tinyr.pyx":725 - * if len(newnode.records) + remaining_count - 1 < self.m_cap: - * newnode.records.extend(remaining) - * break # <<<<<<<<<<<<<< - * - * self.PickNext(node, remaining, newnode) - */ - goto __pyx_L4_break; - - /* "tinyr.pyx":723 - * node.records.extend(remaining) - * break - * if len(newnode.records) + remaining_count - 1 < self.m_cap: # <<<<<<<<<<<<<< - * newnode.records.extend(remaining) - * break - */ - } - - /* "tinyr.pyx":727 - * break - * - * self.PickNext(node, remaining, newnode) # <<<<<<<<<<<<<< - * remaining_count -= 1 - * - */ - __pyx_t_3 = __pyx_f_5tinyr_5RTree_PickNext(__pyx_v_self, __pyx_v_node, __pyx_v_remaining, __pyx_v_newnode); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 727, __pyx_L1_error) - - /* "tinyr.pyx":728 - * - * self.PickNext(node, remaining, newnode) - * remaining_count -= 1 # <<<<<<<<<<<<<< - * - * if node.is_leaf: - */ - __pyx_v_remaining_count = (__pyx_v_remaining_count - 1); - } - __pyx_L4_break:; - - /* "tinyr.pyx":730 - * remaining_count -= 1 - * - * if node.is_leaf: # <<<<<<<<<<<<<< - * newnode.is_leaf = True - * else: - */ - if (__pyx_v_node->is_leaf) { - - /* "tinyr.pyx":731 - * - * if node.is_leaf: - * newnode.is_leaf = True # <<<<<<<<<<<<<< - * else: - * # child records are inner records - re-set parent of them to newnode - */ - __pyx_v_newnode->is_leaf = 1; - - /* "tinyr.pyx":730 - * remaining_count -= 1 - * - * if node.is_leaf: # <<<<<<<<<<<<<< - * newnode.is_leaf = True - * else: - */ - goto __pyx_L7; - } - - /* "tinyr.pyx":734 - * else: - * # child records are inner records - re-set parent of them to newnode - * for r in newnode.records: # <<<<<<<<<<<<<< - * r.child.parent = newnode - * - */ - /*else*/ { - if (unlikely(__pyx_v_newnode->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 734, __pyx_L1_error) - } - __pyx_t_1 = __pyx_v_newnode->records; __Pyx_INCREF(__pyx_t_1); - __pyx_t_4 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 734, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(0, 734, __pyx_L1_error) - #else - __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 734, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - #endif - if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5tinyr__InnerRecord))))) __PYX_ERR(0, 734, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_r, ((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_6)); - __pyx_t_6 = 0; - - /* "tinyr.pyx":735 - * # child records are inner records - re-set parent of them to newnode - * for r in newnode.records: - * r.child.parent = newnode # <<<<<<<<<<<<<< - * - * return newnode - */ - __Pyx_INCREF((PyObject *)__pyx_v_newnode); - __Pyx_GIVEREF((PyObject *)__pyx_v_newnode); - __Pyx_GOTREF((PyObject *)__pyx_v_r->child->parent); - __Pyx_DECREF((PyObject *)__pyx_v_r->child->parent); - __pyx_v_r->child->parent = __pyx_v_newnode; - - /* "tinyr.pyx":734 - * else: - * # child records are inner records - re-set parent of them to newnode - * for r in newnode.records: # <<<<<<<<<<<<<< - * r.child.parent = newnode - * - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __pyx_L7:; - - /* "tinyr.pyx":737 - * r.child.parent = newnode - * - * return newnode # <<<<<<<<<<<<<< - * - * cdef inline int PickNext(self, _Node node, list remaining, _Node newnode) except -1: - */ - __Pyx_XDECREF((PyObject *)__pyx_r); - __Pyx_INCREF((PyObject *)__pyx_v_newnode); - __pyx_r = __pyx_v_newnode; - goto __pyx_L0; - - /* "tinyr.pyx":703 - * return (N, NN) - * - * cdef _Node SplitNode(self, _Node node, _Record ir): # <<<<<<<<<<<<<< - * cdef: - * list remaining - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("tinyr.RTree.SplitNode", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_remaining); - __Pyx_XDECREF((PyObject *)__pyx_v_newnode); - __Pyx_XDECREF((PyObject *)__pyx_v_r); - __Pyx_XGIVEREF((PyObject *)__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":739 - * return newnode - * - * cdef inline int PickNext(self, _Node node, list remaining, _Node newnode) except -1: # <<<<<<<<<<<<<< - * cdef: - * Dfloat area_group_L, area_group_LL - */ - -static CYTHON_INLINE int __pyx_f_5tinyr_5RTree_PickNext(CYTHON_UNUSED struct __pyx_obj_5tinyr_RTree *__pyx_v_self, struct __pyx_obj_5tinyr__Node *__pyx_v_node, PyObject *__pyx_v_remaining, struct __pyx_obj_5tinyr__Node *__pyx_v_newnode) { - __pyx_t_5tinyr_Dfloat __pyx_v_area_group_L; - __pyx_t_5tinyr_Dfloat __pyx_v_area_group_LL; - __pyx_t_5tinyr_Dfloat __pyx_v_d1_next; - __pyx_t_5tinyr_Dfloat __pyx_v_d2_next; - __pyx_t_5tinyr_Dfloat __pyx_v_d1; - __pyx_t_5tinyr_Dfloat __pyx_v_d2; - __pyx_t_5tinyr_Dfloat __pyx_v_d_diff; - __pyx_t_5tinyr_Dfloat __pyx_v_d_diff_max; - __pyx_t_5tinyr_Dfloat __pyx_v_coords[4]; - struct __pyx_obj_5tinyr__Record *__pyx_v_E_next = 0; - struct __pyx_obj_5tinyr__Record *__pyx_v_E = 0; - struct __pyx_obj_5tinyr__Record *__pyx_v_r = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - Py_ssize_t __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - __pyx_t_5tinyr_Dfloat __pyx_t_5; - int __pyx_t_6; - Py_ssize_t __pyx_t_7; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PickNext", 1); - - /* "tinyr.pyx":747 - * _Record E_next, E, r - * - * area_group_L = 0 # <<<<<<<<<<<<<< - * area_group_LL = 0 - * d1_next = 0 - */ - __pyx_v_area_group_L = 0.0; - - /* "tinyr.pyx":748 - * - * area_group_L = 0 - * area_group_LL = 0 # <<<<<<<<<<<<<< - * d1_next = 0 - * d2_next = 0 - */ - __pyx_v_area_group_LL = 0.0; - - /* "tinyr.pyx":749 - * area_group_L = 0 - * area_group_LL = 0 - * d1_next = 0 # <<<<<<<<<<<<<< - * d2_next = 0 - * init_Dfloat4(coords) - */ - __pyx_v_d1_next = 0.0; - - /* "tinyr.pyx":750 - * area_group_LL = 0 - * d1_next = 0 - * d2_next = 0 # <<<<<<<<<<<<<< - * init_Dfloat4(coords) - * - */ - __pyx_v_d2_next = 0.0; - - /* "tinyr.pyx":751 - * d1_next = 0 - * d2_next = 0 - * init_Dfloat4(coords) # <<<<<<<<<<<<<< - * - * if len(remaining) == 1: - */ - __pyx_f_5tinyr_init_Dfloat4(__pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 751, __pyx_L1_error) - - /* "tinyr.pyx":753 - * init_Dfloat4(coords) - * - * if len(remaining) == 1: # <<<<<<<<<<<<<< - * E_next = remaining.pop() - * else: - */ - if (unlikely(__pyx_v_remaining == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 753, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_PyList_GET_SIZE(__pyx_v_remaining); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 753, __pyx_L1_error) - __pyx_t_2 = (__pyx_t_1 == 1); - if (__pyx_t_2) { - - /* "tinyr.pyx":754 - * - * if len(remaining) == 1: - * E_next = remaining.pop() # <<<<<<<<<<<<<< - * else: - * for r in node.records: - */ - if (unlikely(__pyx_v_remaining == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop"); - __PYX_ERR(0, 754, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyList_Pop(__pyx_v_remaining); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5tinyr__Record))))) __PYX_ERR(0, 754, __pyx_L1_error) - __pyx_v_E_next = ((struct __pyx_obj_5tinyr__Record *)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":753 - * init_Dfloat4(coords) - * - * if len(remaining) == 1: # <<<<<<<<<<<<<< - * E_next = remaining.pop() - * else: - */ - goto __pyx_L3; - } - - /* "tinyr.pyx":756 - * E_next = remaining.pop() - * else: - * for r in node.records: # <<<<<<<<<<<<<< - * area_group_L += area(r.coords) - * - */ - /*else*/ { - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 756, __pyx_L1_error) - } - __pyx_t_3 = __pyx_v_node->records; __Pyx_INCREF(__pyx_t_3); - __pyx_t_1 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 756, __pyx_L1_error) - #endif - if (__pyx_t_1 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_4); __pyx_t_1++; if (unlikely((0 < 0))) __PYX_ERR(0, 756, __pyx_L1_error) - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 756, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5tinyr__Record))))) __PYX_ERR(0, 756, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_r, ((struct __pyx_obj_5tinyr__Record *)__pyx_t_4)); - __pyx_t_4 = 0; - - /* "tinyr.pyx":757 - * else: - * for r in node.records: - * area_group_L += area(r.coords) # <<<<<<<<<<<<<< - * - * for r in newnode.records: - */ - __pyx_t_5 = __pyx_f_5tinyr_area(__pyx_v_r->coords); if (unlikely(__pyx_t_5 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 757, __pyx_L1_error) - __pyx_v_area_group_L = (__pyx_v_area_group_L + __pyx_t_5); - - /* "tinyr.pyx":756 - * E_next = remaining.pop() - * else: - * for r in node.records: # <<<<<<<<<<<<<< - * area_group_L += area(r.coords) - * - */ - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":759 - * area_group_L += area(r.coords) - * - * for r in newnode.records: # <<<<<<<<<<<<<< - * area_group_LL += area(r.coords) - * - */ - if (unlikely(__pyx_v_newnode->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 759, __pyx_L1_error) - } - __pyx_t_3 = __pyx_v_newnode->records; __Pyx_INCREF(__pyx_t_3); - __pyx_t_1 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 759, __pyx_L1_error) - #endif - if (__pyx_t_1 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_4); __pyx_t_1++; if (unlikely((0 < 0))) __PYX_ERR(0, 759, __pyx_L1_error) - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 759, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5tinyr__Record))))) __PYX_ERR(0, 759, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_r, ((struct __pyx_obj_5tinyr__Record *)__pyx_t_4)); - __pyx_t_4 = 0; - - /* "tinyr.pyx":760 - * - * for r in newnode.records: - * area_group_LL += area(r.coords) # <<<<<<<<<<<<<< - * - * d_diff_max = -Dfloat_min - */ - __pyx_t_5 = __pyx_f_5tinyr_area(__pyx_v_r->coords); if (unlikely(__pyx_t_5 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 760, __pyx_L1_error) - __pyx_v_area_group_LL = (__pyx_v_area_group_LL + __pyx_t_5); - - /* "tinyr.pyx":759 - * area_group_L += area(r.coords) - * - * for r in newnode.records: # <<<<<<<<<<<<<< - * area_group_LL += area(r.coords) - * - */ - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":762 - * area_group_LL += area(r.coords) - * - * d_diff_max = -Dfloat_min # <<<<<<<<<<<<<< - * - * node.records.append(None) - */ - __pyx_v_d_diff_max = (-DBL_MIN); - - /* "tinyr.pyx":764 - * d_diff_max = -Dfloat_min - * - * node.records.append(None) # <<<<<<<<<<<<<< - * newnode.records.append(None) - * - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 764, __pyx_L1_error) - } - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_node->records, Py_None); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 764, __pyx_L1_error) - - /* "tinyr.pyx":765 - * - * node.records.append(None) - * newnode.records.append(None) # <<<<<<<<<<<<<< - * - * for E in remaining: - */ - if (unlikely(__pyx_v_newnode->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 765, __pyx_L1_error) - } - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_newnode->records, Py_None); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 765, __pyx_L1_error) - - /* "tinyr.pyx":767 - * newnode.records.append(None) - * - * for E in remaining: # <<<<<<<<<<<<<< - * - * # temporary add E to self.records / newnode.records as parameter for common_boundires() - */ - if (unlikely(__pyx_v_remaining == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 767, __pyx_L1_error) - } - __pyx_t_3 = __pyx_v_remaining; __Pyx_INCREF(__pyx_t_3); - __pyx_t_1 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 767, __pyx_L1_error) - #endif - if (__pyx_t_1 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_4); __pyx_t_1++; if (unlikely((0 < 0))) __PYX_ERR(0, 767, __pyx_L1_error) - #else - __pyx_t_4 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 767, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5tinyr__Record))))) __PYX_ERR(0, 767, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_E, ((struct __pyx_obj_5tinyr__Record *)__pyx_t_4)); - __pyx_t_4 = 0; - - /* "tinyr.pyx":771 - * # temporary add E to self.records / newnode.records as parameter for common_boundires() - * # -> don't init a new list of records - * node.records[-1] = E # <<<<<<<<<<<<<< - * newnode.records[-1] = E - * - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 771, __pyx_L1_error) - } - if (unlikely((__Pyx_SetItemInt(__pyx_v_node->records, -1L, ((PyObject *)__pyx_v_E), long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0))) __PYX_ERR(0, 771, __pyx_L1_error) - - /* "tinyr.pyx":772 - * # -> don't init a new list of records - * node.records[-1] = E - * newnode.records[-1] = E # <<<<<<<<<<<<<< - * - * common_boundaries(node.records, coords) - */ - if (unlikely(__pyx_v_newnode->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(0, 772, __pyx_L1_error) - } - if (unlikely((__Pyx_SetItemInt(__pyx_v_newnode->records, -1L, ((PyObject *)__pyx_v_E), long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0))) __PYX_ERR(0, 772, __pyx_L1_error) - - /* "tinyr.pyx":774 - * newnode.records[-1] = E - * - * common_boundaries(node.records, coords) # <<<<<<<<<<<<<< - * d1 = area(coords) - area_group_L - * - */ - __pyx_t_4 = __pyx_v_node->records; - __Pyx_INCREF(__pyx_t_4); - __pyx_f_5tinyr_common_boundaries(((PyObject*)__pyx_t_4), __pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 774, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "tinyr.pyx":775 - * - * common_boundaries(node.records, coords) - * d1 = area(coords) - area_group_L # <<<<<<<<<<<<<< - * - * common_boundaries(newnode.records, coords) - */ - __pyx_t_5 = __pyx_f_5tinyr_area(__pyx_v_coords); if (unlikely(__pyx_t_5 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 775, __pyx_L1_error) - __pyx_v_d1 = (__pyx_t_5 - __pyx_v_area_group_L); - - /* "tinyr.pyx":777 - * d1 = area(coords) - area_group_L - * - * common_boundaries(newnode.records, coords) # <<<<<<<<<<<<<< - * d2 = area(coords) - area_group_LL - * - */ - __pyx_t_4 = __pyx_v_newnode->records; - __Pyx_INCREF(__pyx_t_4); - __pyx_f_5tinyr_common_boundaries(((PyObject*)__pyx_t_4), __pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 777, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "tinyr.pyx":778 - * - * common_boundaries(newnode.records, coords) - * d2 = area(coords) - area_group_LL # <<<<<<<<<<<<<< - * - * d_diff = d1 - d2 - */ - __pyx_t_5 = __pyx_f_5tinyr_area(__pyx_v_coords); if (unlikely(__pyx_t_5 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 778, __pyx_L1_error) - __pyx_v_d2 = (__pyx_t_5 - __pyx_v_area_group_LL); - - /* "tinyr.pyx":780 - * d2 = area(coords) - area_group_LL - * - * d_diff = d1 - d2 # <<<<<<<<<<<<<< - * d_diff = d_diff if d_diff >= 0 else -d_diff # abs diff - * - */ - __pyx_v_d_diff = (__pyx_v_d1 - __pyx_v_d2); - - /* "tinyr.pyx":781 - * - * d_diff = d1 - d2 - * d_diff = d_diff if d_diff >= 0 else -d_diff # abs diff # <<<<<<<<<<<<<< - * - * if d_diff > d_diff_max: - */ - __pyx_t_2 = (__pyx_v_d_diff >= 0.0); - if (__pyx_t_2) { - __pyx_t_5 = __pyx_v_d_diff; - } else { - __pyx_t_5 = (-__pyx_v_d_diff); - } - __pyx_v_d_diff = __pyx_t_5; - - /* "tinyr.pyx":783 - * d_diff = d_diff if d_diff >= 0 else -d_diff # abs diff - * - * if d_diff > d_diff_max: # <<<<<<<<<<<<<< - * d_diff_max = d_diff - * E_next = E - */ - __pyx_t_2 = (__pyx_v_d_diff > __pyx_v_d_diff_max); - if (__pyx_t_2) { - - /* "tinyr.pyx":784 - * - * if d_diff > d_diff_max: - * d_diff_max = d_diff # <<<<<<<<<<<<<< - * E_next = E - * - */ - __pyx_v_d_diff_max = __pyx_v_d_diff; - - /* "tinyr.pyx":785 - * if d_diff > d_diff_max: - * d_diff_max = d_diff - * E_next = E # <<<<<<<<<<<<<< - * - * d1_next = d1 - */ - __Pyx_INCREF((PyObject *)__pyx_v_E); - __Pyx_XDECREF_SET(__pyx_v_E_next, __pyx_v_E); - - /* "tinyr.pyx":787 - * E_next = E - * - * d1_next = d1 # <<<<<<<<<<<<<< - * d2_next = d2 - * - */ - __pyx_v_d1_next = __pyx_v_d1; - - /* "tinyr.pyx":788 - * - * d1_next = d1 - * d2_next = d2 # <<<<<<<<<<<<<< - * - * node.records.pop() - */ - __pyx_v_d2_next = __pyx_v_d2; - - /* "tinyr.pyx":783 - * d_diff = d_diff if d_diff >= 0 else -d_diff # abs diff - * - * if d_diff > d_diff_max: # <<<<<<<<<<<<<< - * d_diff_max = d_diff - * E_next = E - */ - } - - /* "tinyr.pyx":767 - * newnode.records.append(None) - * - * for E in remaining: # <<<<<<<<<<<<<< - * - * # temporary add E to self.records / newnode.records as parameter for common_boundires() - */ - } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":790 - * d2_next = d2 - * - * node.records.pop() # <<<<<<<<<<<<<< - * newnode.records.pop() - * - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop"); - __PYX_ERR(0, 790, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyList_Pop(__pyx_v_node->records); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":791 - * - * node.records.pop() - * newnode.records.pop() # <<<<<<<<<<<<<< - * - * remaining.remove(E_next) - */ - if (unlikely(__pyx_v_newnode->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop"); - __PYX_ERR(0, 791, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyList_Pop(__pyx_v_newnode->records); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 791, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":793 - * newnode.records.pop() - * - * remaining.remove(E_next) # <<<<<<<<<<<<<< - * - * # QS3 - */ - if (unlikely(!__pyx_v_E_next)) { __Pyx_RaiseUnboundLocalError("E_next"); __PYX_ERR(0, 793, __pyx_L1_error) } - __pyx_t_3 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_remove, __pyx_v_remaining, ((PyObject *)__pyx_v_E_next)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 793, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - __pyx_L3:; - - /* "tinyr.pyx":796 - * - * # QS3 - * if d1_next < d2_next: # <<<<<<<<<<<<<< - * node.records.append(E_next) - * elif d1_next > d2_next: - */ - __pyx_t_2 = (__pyx_v_d1_next < __pyx_v_d2_next); - if (__pyx_t_2) { - - /* "tinyr.pyx":797 - * # QS3 - * if d1_next < d2_next: - * node.records.append(E_next) # <<<<<<<<<<<<<< - * elif d1_next > d2_next: - * newnode.records.append(E_next) - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 797, __pyx_L1_error) - } - if (unlikely(!__pyx_v_E_next)) { __Pyx_RaiseUnboundLocalError("E_next"); __PYX_ERR(0, 797, __pyx_L1_error) } - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_node->records, ((PyObject *)__pyx_v_E_next)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 797, __pyx_L1_error) - - /* "tinyr.pyx":796 - * - * # QS3 - * if d1_next < d2_next: # <<<<<<<<<<<<<< - * node.records.append(E_next) - * elif d1_next > d2_next: - */ - goto __pyx_L14; - } - - /* "tinyr.pyx":798 - * if d1_next < d2_next: - * node.records.append(E_next) - * elif d1_next > d2_next: # <<<<<<<<<<<<<< - * newnode.records.append(E_next) - * elif len(node.records) > len(newnode.records): - */ - __pyx_t_2 = (__pyx_v_d1_next > __pyx_v_d2_next); - if (__pyx_t_2) { - - /* "tinyr.pyx":799 - * node.records.append(E_next) - * elif d1_next > d2_next: - * newnode.records.append(E_next) # <<<<<<<<<<<<<< - * elif len(node.records) > len(newnode.records): - * newnode.records.append(E_next) - */ - if (unlikely(__pyx_v_newnode->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 799, __pyx_L1_error) - } - if (unlikely(!__pyx_v_E_next)) { __Pyx_RaiseUnboundLocalError("E_next"); __PYX_ERR(0, 799, __pyx_L1_error) } - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_newnode->records, ((PyObject *)__pyx_v_E_next)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 799, __pyx_L1_error) - - /* "tinyr.pyx":798 - * if d1_next < d2_next: - * node.records.append(E_next) - * elif d1_next > d2_next: # <<<<<<<<<<<<<< - * newnode.records.append(E_next) - * elif len(node.records) > len(newnode.records): - */ - goto __pyx_L14; - } - - /* "tinyr.pyx":800 - * elif d1_next > d2_next: - * newnode.records.append(E_next) - * elif len(node.records) > len(newnode.records): # <<<<<<<<<<<<<< - * newnode.records.append(E_next) - * else: - */ - __pyx_t_3 = __pyx_v_node->records; - __Pyx_INCREF(__pyx_t_3); - if (unlikely(__pyx_t_3 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 800, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_PyList_GET_SIZE(__pyx_t_3); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 800, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __pyx_v_newnode->records; - __Pyx_INCREF(__pyx_t_3); - if (unlikely(__pyx_t_3 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 800, __pyx_L1_error) - } - __pyx_t_7 = __Pyx_PyList_GET_SIZE(__pyx_t_3); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 800, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = (__pyx_t_1 > __pyx_t_7); - if (__pyx_t_2) { - - /* "tinyr.pyx":801 - * newnode.records.append(E_next) - * elif len(node.records) > len(newnode.records): - * newnode.records.append(E_next) # <<<<<<<<<<<<<< - * else: - * node.records.append(E_next) - */ - if (unlikely(__pyx_v_newnode->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 801, __pyx_L1_error) - } - if (unlikely(!__pyx_v_E_next)) { __Pyx_RaiseUnboundLocalError("E_next"); __PYX_ERR(0, 801, __pyx_L1_error) } - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_newnode->records, ((PyObject *)__pyx_v_E_next)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 801, __pyx_L1_error) - - /* "tinyr.pyx":800 - * elif d1_next > d2_next: - * newnode.records.append(E_next) - * elif len(node.records) > len(newnode.records): # <<<<<<<<<<<<<< - * newnode.records.append(E_next) - * else: - */ - goto __pyx_L14; - } - - /* "tinyr.pyx":803 - * newnode.records.append(E_next) - * else: - * node.records.append(E_next) # <<<<<<<<<<<<<< - * - * - */ - /*else*/ { - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "append"); - __PYX_ERR(0, 803, __pyx_L1_error) - } - if (unlikely(!__pyx_v_E_next)) { __Pyx_RaiseUnboundLocalError("E_next"); __PYX_ERR(0, 803, __pyx_L1_error) } - __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_node->records, ((PyObject *)__pyx_v_E_next)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(0, 803, __pyx_L1_error) - } - __pyx_L14:; - - /* "tinyr.pyx":739 - * return newnode - * - * cdef inline int PickNext(self, _Node node, list remaining, _Node newnode) except -1: # <<<<<<<<<<<<<< - * cdef: - * Dfloat area_group_L, area_group_LL - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr.RTree.PickNext", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_E_next); - __Pyx_XDECREF((PyObject *)__pyx_v_E); - __Pyx_XDECREF((PyObject *)__pyx_v_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":806 - * - * - * def valid(self): # <<<<<<<<<<<<<< - * # numbers in comments refer to invariant properties of an RTree - taken from [Gut84] - * cdef: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_27valid(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_5RTree_27valid = {"valid", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_27valid, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_5RTree_27valid(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("valid (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("valid", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "valid", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_5RTree_26valid(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_26valid(struct __pyx_obj_5tinyr_RTree *__pyx_v_self) { - __pyx_t_5tinyr_Dfloat __pyx_v_tmp_coords[4]; - struct __pyx_obj_5tinyr__Node *__pyx_v_node = 0; - __pyx_t_5tinyr_Duint __pyx_v_depth; - __pyx_t_5tinyr_Duint __pyx_v_item_count; - PyObject *__pyx_v_nodedepht = NULL; - PyObject *__pyx_v_leafnodes_and_depth = NULL; - PyObject *__pyx_v_rec = NULL; - PyObject *__pyx_v_ir = NULL; - PyObject *__pyx_v_d = NULL; - CYTHON_UNUSED PyObject *__pyx_v_leaf = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - Py_ssize_t __pyx_t_3; - PyObject *(*__pyx_t_4)(PyObject *); - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *(*__pyx_t_8)(PyObject *); - __pyx_t_5tinyr_Duint __pyx_t_9; - Py_ssize_t __pyx_t_10; - int __pyx_t_11; - int __pyx_t_12; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = NULL; - int __pyx_t_15; - int __pyx_t_16; - int __pyx_t_17; - __pyx_t_5tinyr_Dfloat __pyx_t_18; - __pyx_t_5tinyr_Dfloat __pyx_t_19; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("valid", 1); - - /* "tinyr.pyx":813 - * Duint depth, item_count - * - * nodedepht = None # <<<<<<<<<<<<<< - * item_count = 0 - * leafnodes_and_depth = [] - */ - __Pyx_INCREF(Py_None); - __pyx_v_nodedepht = Py_None; - - /* "tinyr.pyx":814 - * - * nodedepht = None - * item_count = 0 # <<<<<<<<<<<<<< - * leafnodes_and_depth = [] - * - */ - __pyx_v_item_count = 0; - - /* "tinyr.pyx":815 - * nodedepht = None - * item_count = 0 - * leafnodes_and_depth = [] # <<<<<<<<<<<<<< - * - * for depth, node in _NodeIter(self): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_leafnodes_and_depth = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":817 - * leafnodes_and_depth = [] - * - * for depth, node in _NodeIter(self): # <<<<<<<<<<<<<< - * if node.is_leaf: - * for rec in node.records: - */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__NodeIter), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - __pyx_t_4 = NULL; - } else { - __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_4)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 817, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 817, __pyx_L1_error) - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 817, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 817, __pyx_L1_error) - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } - } else { - __pyx_t_1 = __pyx_t_4(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 817, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_1); - } - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 817, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); - } else { - __pyx_t_5 = PyList_GET_ITEM(sequence, 0); - __pyx_t_6 = PyList_GET_ITEM(sequence, 1); - } - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - #else - __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); - index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_5); - index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 817, __pyx_L1_error) - __pyx_t_8 = NULL; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L6_unpacking_done; - __pyx_L5_unpacking_failed:; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_8 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 817, __pyx_L1_error) - __pyx_L6_unpacking_done:; - } - __pyx_t_9 = __Pyx_PyInt_As_unsigned_int(__pyx_t_5); if (unlikely((__pyx_t_9 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 817, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5tinyr__Node))))) __PYX_ERR(0, 817, __pyx_L1_error) - __pyx_v_depth = __pyx_t_9; - __Pyx_XDECREF_SET(__pyx_v_node, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_6)); - __pyx_t_6 = 0; - - /* "tinyr.pyx":818 - * - * for depth, node in _NodeIter(self): - * if node.is_leaf: # <<<<<<<<<<<<<< - * for rec in node.records: - * assert isinstance(rec, _ChildRecord), depth - */ - if (__pyx_v_node->is_leaf) { - - /* "tinyr.pyx":819 - * for depth, node in _NodeIter(self): - * if node.is_leaf: - * for rec in node.records: # <<<<<<<<<<<<<< - * assert isinstance(rec, _ChildRecord), depth - * - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 819, __pyx_L1_error) - } - __pyx_t_1 = __pyx_v_node->records; __Pyx_INCREF(__pyx_t_1); - __pyx_t_10 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 819, __pyx_L1_error) - #endif - if (__pyx_t_10 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 819, __pyx_L1_error) - #else - __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 819, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - #endif - __Pyx_XDECREF_SET(__pyx_v_rec, __pyx_t_6); - __pyx_t_6 = 0; - - /* "tinyr.pyx":820 - * if node.is_leaf: - * for rec in node.records: - * assert isinstance(rec, _ChildRecord), depth # <<<<<<<<<<<<<< - * - * # (1) - */ - #ifndef CYTHON_WITHOUT_ASSERTIONS - if (unlikely(__pyx_assertions_enabled())) { - __pyx_t_11 = __Pyx_TypeCheck(__pyx_v_rec, __pyx_ptype_5tinyr__ChildRecord); - if (unlikely(!__pyx_t_11)) { - __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_depth); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_5 = PyTuple_Pack(1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 820, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_t_5, 0, 0); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __PYX_ERR(0, 820, __pyx_L1_error) - } - } - #else - if ((1)); else __PYX_ERR(0, 820, __pyx_L1_error) - #endif - - /* "tinyr.pyx":819 - * for depth, node in _NodeIter(self): - * if node.is_leaf: - * for rec in node.records: # <<<<<<<<<<<<<< - * assert isinstance(rec, _ChildRecord), depth - * - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":823 - * - * # (1) - * if not (node is self.root or len(node.records) <= self.M_cap and len(node.records) >= self.m_cap): # <<<<<<<<<<<<<< - * raise RTreeInvalid('non-leaf node has invalid number of entries: %d <= len(%s) <= %d == False' % (self.m_cap, str(node), self.m_cap)) - * - */ - __pyx_t_12 = (__pyx_v_node == __pyx_v_self->root); - if (!__pyx_t_12) { - } else { - __pyx_t_11 = __pyx_t_12; - goto __pyx_L12_bool_binop_done; - } - __pyx_t_1 = __pyx_v_node->records; - __Pyx_INCREF(__pyx_t_1); - if (unlikely(__pyx_t_1 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 823, __pyx_L1_error) - } - __pyx_t_10 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 823, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = (__pyx_t_10 <= __pyx_v_self->M_cap); - if (__pyx_t_12) { - } else { - __pyx_t_11 = __pyx_t_12; - goto __pyx_L12_bool_binop_done; - } - __pyx_t_1 = __pyx_v_node->records; - __Pyx_INCREF(__pyx_t_1); - if (unlikely(__pyx_t_1 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 823, __pyx_L1_error) - } - __pyx_t_10 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 823, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = (__pyx_t_10 >= __pyx_v_self->m_cap); - __pyx_t_11 = __pyx_t_12; - __pyx_L12_bool_binop_done:; - __pyx_t_12 = (!__pyx_t_11); - if (unlikely(__pyx_t_12)) { - - /* "tinyr.pyx":824 - * # (1) - * if not (node is self.root or len(node.records) <= self.M_cap and len(node.records) >= self.m_cap): - * raise RTreeInvalid('non-leaf node has invalid number of entries: %d <= len(%s) <= %d == False' % (self.m_cap, str(node), self.m_cap)) # <<<<<<<<<<<<<< - * - * # (2) - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_RTreeInvalid); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->m_cap); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_Str(((PyObject *)__pyx_v_node)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_self->m_cap); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(0, 824, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_7)) __PYX_ERR(0, 824, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_13)) __PYX_ERR(0, 824, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_7 = 0; - __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyString_Format(__pyx_kp_s_non_leaf_node_has_invalid_number, __pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_14 = NULL; - __pyx_t_15 = 0; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_14)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_14); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - __pyx_t_15 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_14, __pyx_t_13}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15); - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 824, __pyx_L1_error) - - /* "tinyr.pyx":823 - * - * # (1) - * if not (node is self.root or len(node.records) <= self.M_cap and len(node.records) >= self.m_cap): # <<<<<<<<<<<<<< - * raise RTreeInvalid('non-leaf node has invalid number of entries: %d <= len(%s) <= %d == False' % (self.m_cap, str(node), self.m_cap)) - * - */ - } - - /* "tinyr.pyx":830 - * - * # prepare (6) - * if nodedepht is None: # <<<<<<<<<<<<<< - * nodedepht = depth - * leafnodes_and_depth.append((depth, node)) - */ - __pyx_t_12 = (__pyx_v_nodedepht == Py_None); - if (__pyx_t_12) { - - /* "tinyr.pyx":831 - * # prepare (6) - * if nodedepht is None: - * nodedepht = depth # <<<<<<<<<<<<<< - * leafnodes_and_depth.append((depth, node)) - * - */ - __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_depth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 831, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_nodedepht, __pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":830 - * - * # prepare (6) - * if nodedepht is None: # <<<<<<<<<<<<<< - * nodedepht = depth - * leafnodes_and_depth.append((depth, node)) - */ - } - - /* "tinyr.pyx":832 - * if nodedepht is None: - * nodedepht = depth - * leafnodes_and_depth.append((depth, node)) # <<<<<<<<<<<<<< - * - * item_count += len(node.records) - */ - __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_depth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(0, 832, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_node); - __Pyx_GIVEREF((PyObject *)__pyx_v_node); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_node))) __PYX_ERR(0, 832, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_16 = __Pyx_PyList_Append(__pyx_v_leafnodes_and_depth, __pyx_t_5); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 832, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - /* "tinyr.pyx":834 - * leafnodes_and_depth.append((depth, node)) - * - * item_count += len(node.records) # <<<<<<<<<<<<<< - * - * # height is right - */ - __pyx_t_5 = __pyx_v_node->records; - __Pyx_INCREF(__pyx_t_5); - if (unlikely(__pyx_t_5 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 834, __pyx_L1_error) - } - __pyx_t_10 = __Pyx_PyList_GET_SIZE(__pyx_t_5); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 834, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_v_item_count = (__pyx_v_item_count + __pyx_t_10); - - /* "tinyr.pyx":837 - * - * # height is right - * if self._leaf_level != depth: # <<<<<<<<<<<<<< - * raise RTreeInvalid('inconsistent node depth: %d != %d' % (self._leaf_level, depth)) - * - */ - __pyx_t_12 = (__pyx_v_self->_leaf_level != __pyx_v_depth); - if (unlikely(__pyx_t_12)) { - - /* "tinyr.pyx":838 - * # height is right - * if self._leaf_level != depth: - * raise RTreeInvalid('inconsistent node depth: %d != %d' % (self._leaf_level, depth)) # <<<<<<<<<<<<<< - * - * else: - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RTreeInvalid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_13 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->_leaf_level); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_14 = __Pyx_PyInt_From_unsigned_int(__pyx_v_depth); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13)) __PYX_ERR(0, 838, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_14)) __PYX_ERR(0, 838, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = __Pyx_PyString_Format(__pyx_kp_s_inconsistent_node_depth_d_d, __pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = NULL; - __pyx_t_15 = 0; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_15 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_14}; - __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_Raise(__pyx_t_5, 0, 0, 0); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __PYX_ERR(0, 838, __pyx_L1_error) - - /* "tinyr.pyx":837 - * - * # height is right - * if self._leaf_level != depth: # <<<<<<<<<<<<<< - * raise RTreeInvalid('inconsistent node depth: %d != %d' % (self._leaf_level, depth)) - * - */ - } - - /* "tinyr.pyx":818 - * - * for depth, node in _NodeIter(self): - * if node.is_leaf: # <<<<<<<<<<<<<< - * for rec in node.records: - * assert isinstance(rec, _ChildRecord), depth - */ - goto __pyx_L7; - } - - /* "tinyr.pyx":842 - * else: - * # (3) - * if not node is self.root: # <<<<<<<<<<<<<< - * if not (len(node.records) <= self.M_cap and len(node.records) >= self.m_cap): - * raise RTreeInvalid('non-leaf node has invalid number of entries: %d <= len(%s) <= %d == False' % (self.m_cap, str(node), self.m_cap)) - */ - /*else*/ { - __pyx_t_12 = (__pyx_v_node != __pyx_v_self->root); - if (__pyx_t_12) { - - /* "tinyr.pyx":843 - * # (3) - * if not node is self.root: - * if not (len(node.records) <= self.M_cap and len(node.records) >= self.m_cap): # <<<<<<<<<<<<<< - * raise RTreeInvalid('non-leaf node has invalid number of entries: %d <= len(%s) <= %d == False' % (self.m_cap, str(node), self.m_cap)) - * - */ - __pyx_t_5 = __pyx_v_node->records; - __Pyx_INCREF(__pyx_t_5); - if (unlikely(__pyx_t_5 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 843, __pyx_L1_error) - } - __pyx_t_10 = __Pyx_PyList_GET_SIZE(__pyx_t_5); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 843, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_11 = (__pyx_t_10 <= __pyx_v_self->M_cap); - if (__pyx_t_11) { - } else { - __pyx_t_12 = __pyx_t_11; - goto __pyx_L19_bool_binop_done; - } - __pyx_t_5 = __pyx_v_node->records; - __Pyx_INCREF(__pyx_t_5); - if (unlikely(__pyx_t_5 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 843, __pyx_L1_error) - } - __pyx_t_10 = __Pyx_PyList_GET_SIZE(__pyx_t_5); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 843, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_11 = (__pyx_t_10 >= __pyx_v_self->m_cap); - __pyx_t_12 = __pyx_t_11; - __pyx_L19_bool_binop_done:; - __pyx_t_11 = (!__pyx_t_12); - if (unlikely(__pyx_t_11)) { - - /* "tinyr.pyx":844 - * if not node is self.root: - * if not (len(node.records) <= self.M_cap and len(node.records) >= self.m_cap): - * raise RTreeInvalid('non-leaf node has invalid number of entries: %d <= len(%s) <= %d == False' % (self.m_cap, str(node), self.m_cap)) # <<<<<<<<<<<<<< - * - * # (4) - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RTreeInvalid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_self->m_cap); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_7 = __Pyx_PyObject_Str(((PyObject *)__pyx_v_node)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_self->m_cap); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_14)) __PYX_ERR(0, 844, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(0, 844, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error); - __pyx_t_14 = 0; - __pyx_t_7 = 0; - __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyString_Format(__pyx_kp_s_non_leaf_node_has_invalid_number, __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = NULL; - __pyx_t_15 = 0; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_15 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_13}; - __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_Raise(__pyx_t_5, 0, 0, 0); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __PYX_ERR(0, 844, __pyx_L1_error) - - /* "tinyr.pyx":843 - * # (3) - * if not node is self.root: - * if not (len(node.records) <= self.M_cap and len(node.records) >= self.m_cap): # <<<<<<<<<<<<<< - * raise RTreeInvalid('non-leaf node has invalid number of entries: %d <= len(%s) <= %d == False' % (self.m_cap, str(node), self.m_cap)) - * - */ - } - - /* "tinyr.pyx":842 - * else: - * # (3) - * if not node is self.root: # <<<<<<<<<<<<<< - * if not (len(node.records) <= self.M_cap and len(node.records) >= self.m_cap): - * raise RTreeInvalid('non-leaf node has invalid number of entries: %d <= len(%s) <= %d == False' % (self.m_cap, str(node), self.m_cap)) - */ - } - - /* "tinyr.pyx":847 - * - * # (4) - * for rec in node.records: # <<<<<<<<<<<<<< - * if not isinstance(rec, _InnerRecord) or \ - * not isinstance((<_InnerRecord>rec).child, _Node): - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 847, __pyx_L1_error) - } - __pyx_t_5 = __pyx_v_node->records; __Pyx_INCREF(__pyx_t_5); - __pyx_t_10 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 847, __pyx_L1_error) - #endif - if (__pyx_t_10 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 847, __pyx_L1_error) - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 847, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - __Pyx_XDECREF_SET(__pyx_v_rec, __pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":848 - * # (4) - * for rec in node.records: - * if not isinstance(rec, _InnerRecord) or \ # <<<<<<<<<<<<<< - * not isinstance((<_InnerRecord>rec).child, _Node): - * raise RTreeInvalid('misspositioned inner node') - */ - __pyx_t_12 = __Pyx_TypeCheck(__pyx_v_rec, __pyx_ptype_5tinyr__InnerRecord); - __pyx_t_17 = (!__pyx_t_12); - if (!__pyx_t_17) { - } else { - __pyx_t_11 = __pyx_t_17; - goto __pyx_L24_bool_binop_done; - } - - /* "tinyr.pyx":849 - * for rec in node.records: - * if not isinstance(rec, _InnerRecord) or \ - * not isinstance((<_InnerRecord>rec).child, _Node): # <<<<<<<<<<<<<< - * raise RTreeInvalid('misspositioned inner node') - * - */ - __pyx_t_1 = ((PyObject *)((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_v_rec)->child); - __Pyx_INCREF(__pyx_t_1); - __pyx_t_17 = __Pyx_TypeCheck(__pyx_t_1, __pyx_ptype_5tinyr__Node); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_12 = (!__pyx_t_17); - __pyx_t_11 = __pyx_t_12; - __pyx_L24_bool_binop_done:; - - /* "tinyr.pyx":848 - * # (4) - * for rec in node.records: - * if not isinstance(rec, _InnerRecord) or \ # <<<<<<<<<<<<<< - * not isinstance((<_InnerRecord>rec).child, _Node): - * raise RTreeInvalid('misspositioned inner node') - */ - if (unlikely(__pyx_t_11)) { - - /* "tinyr.pyx":850 - * if not isinstance(rec, _InnerRecord) or \ - * not isinstance((<_InnerRecord>rec).child, _Node): - * raise RTreeInvalid('misspositioned inner node') # <<<<<<<<<<<<<< - * - * common_boundaries((<_InnerRecord>rec).child.records, tmp_coords) - */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_RTreeInvalid); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 850, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_6 = NULL; - __pyx_t_15 = 0; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_13))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_13); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_13, function); - __pyx_t_15 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_s_misspositioned_inner_node}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 850, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - } - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 850, __pyx_L1_error) - - /* "tinyr.pyx":848 - * # (4) - * for rec in node.records: - * if not isinstance(rec, _InnerRecord) or \ # <<<<<<<<<<<<<< - * not isinstance((<_InnerRecord>rec).child, _Node): - * raise RTreeInvalid('misspositioned inner node') - */ - } - - /* "tinyr.pyx":852 - * raise RTreeInvalid('misspositioned inner node') - * - * common_boundaries((<_InnerRecord>rec).child.records, tmp_coords) # <<<<<<<<<<<<<< - * - * if area((<_Record>rec).coords) != area(tmp_coords): - */ - __pyx_t_1 = ((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_v_rec)->child->records; - __Pyx_INCREF(__pyx_t_1); - __pyx_f_5tinyr_common_boundaries(((PyObject*)__pyx_t_1), __pyx_v_tmp_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 852, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":854 - * common_boundaries((<_InnerRecord>rec).child.records, tmp_coords) - * - * if area((<_Record>rec).coords) != area(tmp_coords): # <<<<<<<<<<<<<< - * raise RTreeInvalid('wrong combined area of records of a node') - * - */ - __pyx_t_18 = __pyx_f_5tinyr_area(((struct __pyx_obj_5tinyr__Record *)__pyx_v_rec)->coords); if (unlikely(__pyx_t_18 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error) - __pyx_t_19 = __pyx_f_5tinyr_area(__pyx_v_tmp_coords); if (unlikely(__pyx_t_19 == ((__pyx_t_5tinyr_Dfloat)-1) && PyErr_Occurred())) __PYX_ERR(0, 854, __pyx_L1_error) - __pyx_t_11 = (__pyx_t_18 != __pyx_t_19); - if (unlikely(__pyx_t_11)) { - - /* "tinyr.pyx":855 - * - * if area((<_Record>rec).coords) != area(tmp_coords): - * raise RTreeInvalid('wrong combined area of records of a node') # <<<<<<<<<<<<<< - * - * # double-links cover each other - */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_RTreeInvalid); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 855, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_6 = NULL; - __pyx_t_15 = 0; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_13))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_13); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_13, function); - __pyx_t_15 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_s_wrong_combined_area_of_records_o}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 855, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - } - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 855, __pyx_L1_error) - - /* "tinyr.pyx":854 - * common_boundaries((<_InnerRecord>rec).child.records, tmp_coords) - * - * if area((<_Record>rec).coords) != area(tmp_coords): # <<<<<<<<<<<<<< - * raise RTreeInvalid('wrong combined area of records of a node') - * - */ - } - - /* "tinyr.pyx":847 - * - * # (4) - * for rec in node.records: # <<<<<<<<<<<<<< - * if not isinstance(rec, _InnerRecord) or \ - * not isinstance((<_InnerRecord>rec).child, _Node): - */ - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - - /* "tinyr.pyx":858 - * - * # double-links cover each other - * for ir in node.records: # <<<<<<<<<<<<<< - * if not (<_InnerRecord>ir).child.parent is node: - * raise RTreeInvalid('double-link doesn\'t cover itself') - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 858, __pyx_L1_error) - } - __pyx_t_5 = __pyx_v_node->records; __Pyx_INCREF(__pyx_t_5); - __pyx_t_10 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_5); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 858, __pyx_L1_error) - #endif - if (__pyx_t_10 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 858, __pyx_L1_error) - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 858, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - __Pyx_XDECREF_SET(__pyx_v_ir, __pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":859 - * # double-links cover each other - * for ir in node.records: - * if not (<_InnerRecord>ir).child.parent is node: # <<<<<<<<<<<<<< - * raise RTreeInvalid('double-link doesn\'t cover itself') - * - */ - __pyx_t_11 = (((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_v_ir)->child->parent != __pyx_v_node); - if (unlikely(__pyx_t_11)) { - - /* "tinyr.pyx":860 - * for ir in node.records: - * if not (<_InnerRecord>ir).child.parent is node: - * raise RTreeInvalid('double-link doesn\'t cover itself') # <<<<<<<<<<<<<< - * - * # (5) - */ - __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_RTreeInvalid); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 860, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_6 = NULL; - __pyx_t_15 = 0; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_13))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_13); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_13, function); - __pyx_t_15 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_s_double_link_doesn_t_cover_itself}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_13, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 860, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - } - __Pyx_Raise(__pyx_t_1, 0, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(0, 860, __pyx_L1_error) - - /* "tinyr.pyx":859 - * # double-links cover each other - * for ir in node.records: - * if not (<_InnerRecord>ir).child.parent is node: # <<<<<<<<<<<<<< - * raise RTreeInvalid('double-link doesn\'t cover itself') - * - */ - } - - /* "tinyr.pyx":858 - * - * # double-links cover each other - * for ir in node.records: # <<<<<<<<<<<<<< - * if not (<_InnerRecord>ir).child.parent is node: - * raise RTreeInvalid('double-link doesn\'t cover itself') - */ - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __pyx_L7:; - - /* "tinyr.pyx":817 - * leafnodes_and_depth = [] - * - * for depth, node in _NodeIter(self): # <<<<<<<<<<<<<< - * if node.is_leaf: - * for rec in node.records: - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":863 - * - * # (5) - * if not self.root.is_leaf: # <<<<<<<<<<<<<< - * - * if len(self.root.records) < 2: - */ - __pyx_t_11 = (!__pyx_v_self->root->is_leaf); - if (__pyx_t_11) { - - /* "tinyr.pyx":865 - * if not self.root.is_leaf: - * - * if len(self.root.records) < 2: # <<<<<<<<<<<<<< - * raise RTreeInvalid('root must have at least 2 records, not %d.' % len(self.root.records)) - * - */ - __pyx_t_2 = __pyx_v_self->root->records; - __Pyx_INCREF(__pyx_t_2); - if (unlikely(__pyx_t_2 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 865, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_t_2); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 865, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_11 = (__pyx_t_3 < 2); - if (unlikely(__pyx_t_11)) { - - /* "tinyr.pyx":866 - * - * if len(self.root.records) < 2: - * raise RTreeInvalid('root must have at least 2 records, not %d.' % len(self.root.records)) # <<<<<<<<<<<<<< - * - * # (6) - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_RTreeInvalid); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 866, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_1 = __pyx_v_self->root->records; - __Pyx_INCREF(__pyx_t_1); - if (unlikely(__pyx_t_1 == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(0, 866, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyList_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 866, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 866, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_13 = __Pyx_PyString_Format(__pyx_kp_s_root_must_have_at_least_2_record, __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 866, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = NULL; - __pyx_t_15 = 0; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_1)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_1); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - __pyx_t_15 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_13}; - __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 866, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 866, __pyx_L1_error) - - /* "tinyr.pyx":865 - * if not self.root.is_leaf: - * - * if len(self.root.records) < 2: # <<<<<<<<<<<<<< - * raise RTreeInvalid('root must have at least 2 records, not %d.' % len(self.root.records)) - * - */ - } - - /* "tinyr.pyx":863 - * - * # (5) - * if not self.root.is_leaf: # <<<<<<<<<<<<<< - * - * if len(self.root.records) < 2: - */ - } - - /* "tinyr.pyx":869 - * - * # (6) - * for d, leaf in leafnodes_and_depth: # <<<<<<<<<<<<<< - * if d != nodedepht: - * raise RTreeInvalid('leaf level is not equal for all leafs') - */ - __pyx_t_2 = __pyx_v_leafnodes_and_depth; __Pyx_INCREF(__pyx_t_2); - __pyx_t_3 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 869, __pyx_L1_error) - #endif - if (__pyx_t_3 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(0, 869, __pyx_L1_error) - #else - __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - #endif - if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { - PyObject* sequence = __pyx_t_5; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 869, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); - } else { - __pyx_t_13 = PyList_GET_ITEM(sequence, 0); - __pyx_t_1 = PyList_GET_ITEM(sequence, 1); - } - __Pyx_INCREF(__pyx_t_13); - __Pyx_INCREF(__pyx_t_1); - #else - __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); - index = 0; __pyx_t_13 = __pyx_t_8(__pyx_t_6); if (unlikely(!__pyx_t_13)) goto __pyx_L37_unpacking_failed; - __Pyx_GOTREF(__pyx_t_13); - index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L37_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_6), 2) < 0) __PYX_ERR(0, 869, __pyx_L1_error) - __pyx_t_8 = NULL; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L38_unpacking_done; - __pyx_L37_unpacking_failed:; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_8 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 869, __pyx_L1_error) - __pyx_L38_unpacking_done:; - } - __Pyx_XDECREF_SET(__pyx_v_d, __pyx_t_13); - __pyx_t_13 = 0; - __Pyx_XDECREF_SET(__pyx_v_leaf, __pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":870 - * # (6) - * for d, leaf in leafnodes_and_depth: - * if d != nodedepht: # <<<<<<<<<<<<<< - * raise RTreeInvalid('leaf level is not equal for all leafs') - * - */ - __pyx_t_5 = PyObject_RichCompare(__pyx_v_d, __pyx_v_nodedepht, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 870, __pyx_L1_error) - __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 870, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(__pyx_t_11)) { - - /* "tinyr.pyx":871 - * for d, leaf in leafnodes_and_depth: - * if d != nodedepht: - * raise RTreeInvalid('leaf level is not equal for all leafs') # <<<<<<<<<<<<<< - * - * # count of items is right - */ - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RTreeInvalid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 871, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_13 = NULL; - __pyx_t_15 = 0; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_13)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_13); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_15 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_kp_s_leaf_level_is_not_equal_for_all}; - __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15); - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 871, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_Raise(__pyx_t_5, 0, 0, 0); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __PYX_ERR(0, 871, __pyx_L1_error) - - /* "tinyr.pyx":870 - * # (6) - * for d, leaf in leafnodes_and_depth: - * if d != nodedepht: # <<<<<<<<<<<<<< - * raise RTreeInvalid('leaf level is not equal for all leafs') - * - */ - } - - /* "tinyr.pyx":869 - * - * # (6) - * for d, leaf in leafnodes_and_depth: # <<<<<<<<<<<<<< - * if d != nodedepht: - * raise RTreeInvalid('leaf level is not equal for all leafs') - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":874 - * - * # count of items is right - * if item_count != self._node_cnt: # <<<<<<<<<<<<<< - * raise RTreeInvalid('inconsistent item count %d != %d' % (item_count, self._node_cnt)) - * - */ - __pyx_t_11 = (__pyx_v_item_count != __pyx_v_self->_node_cnt); - if (unlikely(__pyx_t_11)) { - - /* "tinyr.pyx":875 - * # count of items is right - * if item_count != self._node_cnt: - * raise RTreeInvalid('inconsistent item count %d != %d' % (item_count, self._node_cnt)) # <<<<<<<<<<<<<< - * - * return True - */ - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_RTreeInvalid); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_1 = __Pyx_PyInt_From_unsigned_int(__pyx_v_item_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_13 = __Pyx_PyInt_From_unsigned_int(__pyx_v_self->_node_cnt); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1)) __PYX_ERR(0, 875, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_13)) __PYX_ERR(0, 875, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyString_Format(__pyx_kp_s_inconsistent_item_count_d_d, __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = NULL; - __pyx_t_15 = 0; - #if CYTHON_UNPACK_METHODS - if (unlikely(PyMethod_Check(__pyx_t_5))) { - __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); - if (likely(__pyx_t_6)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_5, function); - __pyx_t_15 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_13}; - __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_15, 1+__pyx_t_15); - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } - __Pyx_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(0, 875, __pyx_L1_error) - - /* "tinyr.pyx":874 - * - * # count of items is right - * if item_count != self._node_cnt: # <<<<<<<<<<<<<< - * raise RTreeInvalid('inconsistent item count %d != %d' % (item_count, self._node_cnt)) - * - */ - } - - /* "tinyr.pyx":877 - * raise RTreeInvalid('inconsistent item count %d != %d' % (item_count, self._node_cnt)) - * - * return True # <<<<<<<<<<<<<< - * - * ############################################################################### - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(Py_True); - __pyx_r = Py_True; - goto __pyx_L0; - - /* "tinyr.pyx":806 - * - * - * def valid(self): # <<<<<<<<<<<<<< - * # numbers in comments refer to invariant properties of an RTree - taken from [Gut84] - * cdef: - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_XDECREF(__pyx_t_14); - __Pyx_AddTraceback("tinyr.RTree.valid", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_node); - __Pyx_XDECREF(__pyx_v_nodedepht); - __Pyx_XDECREF(__pyx_v_leafnodes_and_depth); - __Pyx_XDECREF(__pyx_v_rec); - __Pyx_XDECREF(__pyx_v_ir); - __Pyx_XDECREF(__pyx_v_d); - __Pyx_XDECREF(__pyx_v_leaf); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_29__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_5RTree_29__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_29__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_5RTree_29__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_5RTree_28__reduce_cython__(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_28__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr_RTree *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr.RTree.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5RTree_31__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_5RTree_31__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_31__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_5RTree_31__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.RTree.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_5RTree_30__setstate_cython__(((struct __pyx_obj_5tinyr_RTree *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_5RTree_30__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr_RTree *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":4 - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr.RTree.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":886 - * cdef RTree rtree - * - * def __cinit__(self, RTree rtree): # <<<<<<<<<<<<<< - * self.rtree = rtree - * - */ - -/* Python wrapper */ -static int __pyx_pw_5tinyr_9_Iterator_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_5tinyr_9_Iterator_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree = 0; - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; - #endif - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rtree,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rtree)) != 0)) { - (void)__Pyx_Arg_NewRef_VARARGS(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 886, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(0, 886, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - } - __pyx_v_rtree = ((struct __pyx_obj_5tinyr_RTree *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 886, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._Iterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rtree), __pyx_ptype_5tinyr_RTree, 1, "rtree", 0))) __PYX_ERR(0, 886, __pyx_L1_error) - __pyx_r = __pyx_pf_5tinyr_9_Iterator___cinit__(((struct __pyx_obj_5tinyr__Iterator *)__pyx_v_self), __pyx_v_rtree); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = -1; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5tinyr_9_Iterator___cinit__(struct __pyx_obj_5tinyr__Iterator *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree) { - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__", 1); - - /* "tinyr.pyx":887 - * - * def __cinit__(self, RTree rtree): - * self.rtree = rtree # <<<<<<<<<<<<<< - * - * def __iter__(self): - */ - __Pyx_INCREF((PyObject *)__pyx_v_rtree); - __Pyx_GIVEREF((PyObject *)__pyx_v_rtree); - __Pyx_GOTREF((PyObject *)__pyx_v_self->rtree); - __Pyx_DECREF((PyObject *)__pyx_v_self->rtree); - __pyx_v_self->rtree = __pyx_v_rtree; - - /* "tinyr.pyx":886 - * cdef RTree rtree - * - * def __cinit__(self, RTree rtree): # <<<<<<<<<<<<<< - * self.rtree = rtree - * - */ - - /* function exit code */ - __pyx_r = 0; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":889 - * self.rtree = rtree - * - * def __iter__(self): # <<<<<<<<<<<<<< - * return self - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9_Iterator_3__iter__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_9_Iterator_3__iter__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_9_Iterator_2__iter__(((struct __pyx_obj_5tinyr__Iterator *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9_Iterator_2__iter__(struct __pyx_obj_5tinyr__Iterator *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__iter__", 1); - - /* "tinyr.pyx":890 - * - * def __iter__(self): - * return self # <<<<<<<<<<<<<< - * - * cdef class _NodeIter(_Iterator): - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF((PyObject *)__pyx_v_self); - __pyx_r = ((PyObject *)__pyx_v_self); - goto __pyx_L0; - - /* "tinyr.pyx":889 - * self.rtree = rtree - * - * def __iter__(self): # <<<<<<<<<<<<<< - * return self - * - */ - - /* function exit code */ - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9_Iterator_5__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_9_Iterator_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_Iterator_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_9_Iterator_5__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_9_Iterator_4__reduce_cython__(((struct __pyx_obj_5tinyr__Iterator *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9_Iterator_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__Iterator *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._Iterator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9_Iterator_7__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_9_Iterator_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_Iterator_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_9_Iterator_7__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._Iterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_9_Iterator_6__setstate_cython__(((struct __pyx_obj_5tinyr__Iterator *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9_Iterator_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__Iterator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":4 - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._Iterator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":896 - * list nodeset - * - * def __cinit__(self, RTree rtree): # <<<<<<<<<<<<<< - * if rtree.root: - * self.nodeset = [(0, rtree.root)] - */ - -/* Python wrapper */ -static int __pyx_pw_5tinyr_9_NodeIter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_5tinyr_9_NodeIter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree = 0; - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; - #endif - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rtree,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rtree)) != 0)) { - (void)__Pyx_Arg_NewRef_VARARGS(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 896, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(0, 896, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - } - __pyx_v_rtree = ((struct __pyx_obj_5tinyr_RTree *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 896, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._NodeIter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rtree), __pyx_ptype_5tinyr_RTree, 1, "rtree", 0))) __PYX_ERR(0, 896, __pyx_L1_error) - __pyx_r = __pyx_pf_5tinyr_9_NodeIter___cinit__(((struct __pyx_obj_5tinyr__NodeIter *)__pyx_v_self), __pyx_v_rtree); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = -1; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5tinyr_9_NodeIter___cinit__(struct __pyx_obj_5tinyr__NodeIter *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree) { - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 1); - - /* "tinyr.pyx":897 - * - * def __cinit__(self, RTree rtree): - * if rtree.root: # <<<<<<<<<<<<<< - * self.nodeset = [(0, rtree.root)] - * else: - */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_rtree->root)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 897, __pyx_L1_error) - if (__pyx_t_1) { - - /* "tinyr.pyx":898 - * def __cinit__(self, RTree rtree): - * if rtree.root: - * self.nodeset = [(0, rtree.root)] # <<<<<<<<<<<<<< - * else: - * self.nodeset = [] - */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 898, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_int_0); - __Pyx_GIVEREF(__pyx_int_0); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0)) __PYX_ERR(0, 898, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_rtree->root); - __Pyx_GIVEREF((PyObject *)__pyx_v_rtree->root); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_rtree->root))) __PYX_ERR(0, 898, __pyx_L1_error); - __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 898, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(0, 898, __pyx_L1_error); - __pyx_t_2 = 0; - __Pyx_GIVEREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_v_self->nodeset); - __Pyx_DECREF(__pyx_v_self->nodeset); - __pyx_v_self->nodeset = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - - /* "tinyr.pyx":897 - * - * def __cinit__(self, RTree rtree): - * if rtree.root: # <<<<<<<<<<<<<< - * self.nodeset = [(0, rtree.root)] - * else: - */ - goto __pyx_L3; - } - - /* "tinyr.pyx":900 - * self.nodeset = [(0, rtree.root)] - * else: - * self.nodeset = [] # <<<<<<<<<<<<<< - * - * def __next__(self): - */ - /*else*/ { - __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_3); - __Pyx_GOTREF(__pyx_v_self->nodeset); - __Pyx_DECREF(__pyx_v_self->nodeset); - __pyx_v_self->nodeset = ((PyObject*)__pyx_t_3); - __pyx_t_3 = 0; - } - __pyx_L3:; - - /* "tinyr.pyx":896 - * list nodeset - * - * def __cinit__(self, RTree rtree): # <<<<<<<<<<<<<< - * if rtree.root: - * self.nodeset = [(0, rtree.root)] - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr._NodeIter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":902 - * self.nodeset = [] - * - * def __next__(self): # <<<<<<<<<<<<<< - * cdef: - * _Node next - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9_NodeIter_3__next__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_9_NodeIter_3__next__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__next__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_9_NodeIter_2__next__(((struct __pyx_obj_5tinyr__NodeIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9_NodeIter_2__next__(struct __pyx_obj_5tinyr__NodeIter *__pyx_v_self) { - struct __pyx_obj_5tinyr__Node *__pyx_v_next = 0; - __pyx_t_5tinyr_Duint __pyx_v_level; - PyObject *__pyx_8genexpr2__pyx_v_r = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_error_without_exception = 0; /* StopIteration */ - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *(*__pyx_t_8)(PyObject *); - __pyx_t_5tinyr_Duint __pyx_t_9; - int __pyx_t_10; - int __pyx_t_11; - Py_ssize_t __pyx_t_12; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__next__", 1); - - /* "tinyr.pyx":907 - * Duint level - * - * try: # <<<<<<<<<<<<<< - * level, next = <_Node>self.nodeset.pop(0) - * except IndexError: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_2); - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - - /* "tinyr.pyx":908 - * - * try: - * level, next = <_Node>self.nodeset.pop(0) # <<<<<<<<<<<<<< - * except IndexError: - * raise StopIteration - */ - if (unlikely(__pyx_v_self->nodeset == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop"); - __PYX_ERR(0, 908, __pyx_L3_error) - } - __pyx_t_4 = __Pyx_PyList_PopIndex(__pyx_v_self->nodeset, __pyx_int_0, 0, 1, Py_ssize_t, PyInt_FromSsize_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 908, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __pyx_t_4; - __Pyx_INCREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { - PyObject* sequence = __pyx_t_5; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 908, __pyx_L3_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); - } else { - __pyx_t_4 = PyList_GET_ITEM(sequence, 0); - __pyx_t_6 = PyList_GET_ITEM(sequence, 1); - } - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(__pyx_t_6); - #else - __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 908, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 908, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_6); - #endif - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 908, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_8 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_7); - index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(__pyx_t_4); - index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(__pyx_t_6); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(0, 908, __pyx_L3_error) - __pyx_t_8 = NULL; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - goto __pyx_L10_unpacking_done; - __pyx_L9_unpacking_failed:; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_8 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 908, __pyx_L3_error) - __pyx_L10_unpacking_done:; - } - __pyx_t_9 = __Pyx_PyInt_As_unsigned_int(__pyx_t_4); if (unlikely((__pyx_t_9 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 908, __pyx_L3_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5tinyr__Node))))) __PYX_ERR(0, 908, __pyx_L3_error) - __pyx_v_level = __pyx_t_9; - __pyx_v_next = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_6); - __pyx_t_6 = 0; - - /* "tinyr.pyx":907 - * Duint level - * - * try: # <<<<<<<<<<<<<< - * level, next = <_Node>self.nodeset.pop(0) - * except IndexError: - */ - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L8_try_end; - __pyx_L3_error:; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "tinyr.pyx":909 - * try: - * level, next = <_Node>self.nodeset.pop(0) - * except IndexError: # <<<<<<<<<<<<<< - * raise StopIteration - * - */ - __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError); - if (__pyx_t_10) { - __Pyx_AddTraceback("tinyr._NodeIter.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_4) < 0) __PYX_ERR(0, 909, __pyx_L5_except_error) - __Pyx_XGOTREF(__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_4); - - /* "tinyr.pyx":910 - * level, next = <_Node>self.nodeset.pop(0) - * except IndexError: - * raise StopIteration # <<<<<<<<<<<<<< - * - * if not next.is_leaf: - */ - __pyx_error_without_exception = 1; - goto __pyx_L5_except_error;; - } - goto __pyx_L5_except_error; - - /* "tinyr.pyx":907 - * Duint level - * - * try: # <<<<<<<<<<<<<< - * level, next = <_Node>self.nodeset.pop(0) - * except IndexError: - */ - __pyx_L5_except_error:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_2); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); - goto __pyx_L1_error; - __pyx_L8_try_end:; - } - - /* "tinyr.pyx":912 - * raise StopIteration - * - * if not next.is_leaf: # <<<<<<<<<<<<<< - * self.nodeset = [ (level+1, (<_InnerRecord>r).child) for r in next.records ] + self.nodeset - * - */ - __pyx_t_11 = (!__pyx_v_next->is_leaf); - if (__pyx_t_11) { - - /* "tinyr.pyx":913 - * - * if not next.is_leaf: - * self.nodeset = [ (level+1, (<_InnerRecord>r).child) for r in next.records ] + self.nodeset # <<<<<<<<<<<<<< - * - * return level, next - */ - { /* enter inner scope */ - __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 913, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_4); - if (unlikely(__pyx_v_next->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 913, __pyx_L16_error) - } - __pyx_t_6 = __pyx_v_next->records; __Pyx_INCREF(__pyx_t_6); - __pyx_t_12 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 913, __pyx_L16_error) - #endif - if (__pyx_t_12 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++; if (unlikely((0 < 0))) __PYX_ERR(0, 913, __pyx_L16_error) - #else - __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 913, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_5); - #endif - __Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v_r, __pyx_t_5); - __pyx_t_5 = 0; - __pyx_t_5 = __Pyx_PyInt_From_long((__pyx_v_level + 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 913, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 913, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5)) __PYX_ERR(0, 913, __pyx_L16_error); - __Pyx_INCREF((PyObject *)((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_8genexpr2__pyx_v_r)->child); - __Pyx_GIVEREF((PyObject *)((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_8genexpr2__pyx_v_r)->child); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_8genexpr2__pyx_v_r)->child))) __PYX_ERR(0, 913, __pyx_L16_error); - __pyx_t_5 = 0; - if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_7))) __PYX_ERR(0, 913, __pyx_L16_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_r); __pyx_8genexpr2__pyx_v_r = 0; - goto __pyx_L20_exit_scope; - __pyx_L16_error:; - __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_r); __pyx_8genexpr2__pyx_v_r = 0; - goto __pyx_L1_error; - __pyx_L20_exit_scope:; - } /* exit inner scope */ - __pyx_t_6 = PyNumber_Add(__pyx_t_4, __pyx_v_self->nodeset); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 913, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_GIVEREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_v_self->nodeset); - __Pyx_DECREF(__pyx_v_self->nodeset); - __pyx_v_self->nodeset = ((PyObject*)__pyx_t_6); - __pyx_t_6 = 0; - - /* "tinyr.pyx":912 - * raise StopIteration - * - * if not next.is_leaf: # <<<<<<<<<<<<<< - * self.nodeset = [ (level+1, (<_InnerRecord>r).child) for r in next.records ] + self.nodeset - * - */ - } - - /* "tinyr.pyx":915 - * self.nodeset = [ (level+1, (<_InnerRecord>r).child) for r in next.records ] + self.nodeset - * - * return level, next # <<<<<<<<<<<<<< - * - * cdef class _RectangleIter(_Iterator): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_level); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6)) __PYX_ERR(0, 915, __pyx_L1_error); - __Pyx_INCREF((PyObject *)__pyx_v_next); - __Pyx_GIVEREF((PyObject *)__pyx_v_next); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_next))) __PYX_ERR(0, 915, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":902 - * self.nodeset = [] - * - * def __next__(self): # <<<<<<<<<<<<<< - * cdef: - * _Node next - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - if (!__pyx_error_without_exception) { - __Pyx_AddTraceback("tinyr._NodeIter.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename); - } - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_next); - __Pyx_XDECREF(__pyx_8genexpr2__pyx_v_r); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9_NodeIter_5__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_9_NodeIter_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_NodeIter_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_9_NodeIter_5__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_9_NodeIter_4__reduce_cython__(((struct __pyx_obj_5tinyr__NodeIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9_NodeIter_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__NodeIter *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._NodeIter.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9_NodeIter_7__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_9_NodeIter_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_NodeIter_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_9_NodeIter_7__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._NodeIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_9_NodeIter_6__setstate_cython__(((struct __pyx_obj_5tinyr__NodeIter *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9_NodeIter_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__NodeIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":4 - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._NodeIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":923 - * int l_level - * - * def __cinit__(self, RTree rtree): # <<<<<<<<<<<<<< - * self.ni = _NodeIter(rtree) - * - */ - -/* Python wrapper */ -static int __pyx_pw_5tinyr_14_RectangleIter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_5tinyr_14_RectangleIter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree = 0; - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; - #endif - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rtree,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rtree)) != 0)) { - (void)__Pyx_Arg_NewRef_VARARGS(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 923, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(0, 923, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - } - __pyx_v_rtree = ((struct __pyx_obj_5tinyr_RTree *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 923, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._RectangleIter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rtree), __pyx_ptype_5tinyr_RTree, 1, "rtree", 0))) __PYX_ERR(0, 923, __pyx_L1_error) - __pyx_r = __pyx_pf_5tinyr_14_RectangleIter___cinit__(((struct __pyx_obj_5tinyr__RectangleIter *)__pyx_v_self), __pyx_v_rtree); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = -1; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5tinyr_14_RectangleIter___cinit__(struct __pyx_obj_5tinyr__RectangleIter *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 1); - - /* "tinyr.pyx":924 - * - * def __cinit__(self, RTree rtree): - * self.ni = _NodeIter(rtree) # <<<<<<<<<<<<<< - * - * def __next__(self): - */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__NodeIter), ((PyObject *)__pyx_v_rtree)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 924, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF((PyObject *)__pyx_v_self->ni); - __Pyx_DECREF((PyObject *)__pyx_v_self->ni); - __pyx_v_self->ni = ((struct __pyx_obj_5tinyr__NodeIter *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":923 - * int l_level - * - * def __cinit__(self, RTree rtree): # <<<<<<<<<<<<<< - * self.ni = _NodeIter(rtree) - * - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr._RectangleIter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":926 - * self.ni = _NodeIter(rtree) - * - * def __next__(self): # <<<<<<<<<<<<<< - * cdef: - * _Node nextnode - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_14_RectangleIter_3__next__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_14_RectangleIter_3__next__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__next__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_14_RectangleIter_2__next__(((struct __pyx_obj_5tinyr__RectangleIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_14_RectangleIter_2__next__(struct __pyx_obj_5tinyr__RectangleIter *__pyx_v_self) { - struct __pyx_obj_5tinyr__Node *__pyx_v_nextnode = 0; - __pyx_t_5tinyr_Dfloat __pyx_v_coords[4]; - int __pyx_v_level; - PyObject *__pyx_v_rec = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *(*__pyx_t_7)(PyObject *); - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__next__", 1); - - /* "tinyr.pyx":932 - * int level - * - * if self.leafrecords: # <<<<<<<<<<<<<< - * rec = self.leafrecords.pop() - * return (self.l_level, self.rtree.array_to_tuple((<_ChildRecord>rec).coords) ) - */ - __pyx_t_1 = (__pyx_v_self->leafrecords != Py_None)&&(PyList_GET_SIZE(__pyx_v_self->leafrecords) != 0); - if (__pyx_t_1) { - - /* "tinyr.pyx":933 - * - * if self.leafrecords: - * rec = self.leafrecords.pop() # <<<<<<<<<<<<<< - * return (self.l_level, self.rtree.array_to_tuple((<_ChildRecord>rec).coords) ) - * - */ - if (unlikely(__pyx_v_self->leafrecords == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop"); - __PYX_ERR(0, 933, __pyx_L1_error) - } - __pyx_t_2 = __Pyx_PyList_Pop(__pyx_v_self->leafrecords); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 933, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_rec = __pyx_t_2; - __pyx_t_2 = 0; - - /* "tinyr.pyx":934 - * if self.leafrecords: - * rec = self.leafrecords.pop() - * return (self.l_level, self.rtree.array_to_tuple((<_ChildRecord>rec).coords) ) # <<<<<<<<<<<<<< - * - * level, nextnode = self.ni.next() - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->l_level); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __pyx_v_self->__pyx_base.rtree->array_to_tuple(((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_v_rec)->__pyx_base.coords); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 934, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(0, 934, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3)) __PYX_ERR(0, 934, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":932 - * int level - * - * if self.leafrecords: # <<<<<<<<<<<<<< - * rec = self.leafrecords.pop() - * return (self.l_level, self.rtree.array_to_tuple((<_ChildRecord>rec).coords) ) - */ - } - - /* "tinyr.pyx":936 - * return (self.l_level, self.rtree.array_to_tuple((<_ChildRecord>rec).coords) ) - * - * level, nextnode = self.ni.next() # <<<<<<<<<<<<<< - * - * if nextnode.is_leaf: - */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->ni), __pyx_n_s_next); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = NULL; - __pyx_t_5 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_2)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_5 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_2, NULL}; - __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) { - PyObject* sequence = __pyx_t_4; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 936, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); - } else { - __pyx_t_3 = PyList_GET_ITEM(sequence, 0); - __pyx_t_2 = PyList_GET_ITEM(sequence, 1); - } - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_2); - #else - __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #endif - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); - index = 0; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L4_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 1; __pyx_t_2 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_2)) goto __pyx_L4_unpacking_failed; - __Pyx_GOTREF(__pyx_t_2); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(0, 936, __pyx_L1_error) - __pyx_t_7 = NULL; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L5_unpacking_done; - __pyx_L4_unpacking_failed:; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_7 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 936, __pyx_L1_error) - __pyx_L5_unpacking_done:; - } - __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5tinyr__Node))))) __PYX_ERR(0, 936, __pyx_L1_error) - __pyx_v_level = __pyx_t_5; - __pyx_v_nextnode = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_2); - __pyx_t_2 = 0; - - /* "tinyr.pyx":938 - * level, nextnode = self.ni.next() - * - * if nextnode.is_leaf: # <<<<<<<<<<<<<< - * self.leafrecords = list(nextnode.records) - * self.l_level = level+1 - */ - if (__pyx_v_nextnode->is_leaf) { - - /* "tinyr.pyx":939 - * - * if nextnode.is_leaf: - * self.leafrecords = list(nextnode.records) # <<<<<<<<<<<<<< - * self.l_level = level+1 - * - */ - __pyx_t_4 = PySequence_List(__pyx_v_nextnode->records); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_4); - __Pyx_GOTREF(__pyx_v_self->leafrecords); - __Pyx_DECREF(__pyx_v_self->leafrecords); - __pyx_v_self->leafrecords = ((PyObject*)__pyx_t_4); - __pyx_t_4 = 0; - - /* "tinyr.pyx":940 - * if nextnode.is_leaf: - * self.leafrecords = list(nextnode.records) - * self.l_level = level+1 # <<<<<<<<<<<<<< - * - * common_boundaries(nextnode.records, coords) - */ - __pyx_v_self->l_level = (__pyx_v_level + 1); - - /* "tinyr.pyx":938 - * level, nextnode = self.ni.next() - * - * if nextnode.is_leaf: # <<<<<<<<<<<<<< - * self.leafrecords = list(nextnode.records) - * self.l_level = level+1 - */ - } - - /* "tinyr.pyx":942 - * self.l_level = level+1 - * - * common_boundaries(nextnode.records, coords) # <<<<<<<<<<<<<< - * return (level, self.rtree.array_to_tuple(coords)) - * - */ - __pyx_t_4 = __pyx_v_nextnode->records; - __Pyx_INCREF(__pyx_t_4); - __pyx_f_5tinyr_common_boundaries(((PyObject*)__pyx_t_4), __pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 942, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "tinyr.pyx":943 - * - * common_boundaries(nextnode.records, coords) - * return (level, self.rtree.array_to_tuple(coords)) # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_level); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 943, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __pyx_v_self->__pyx_base.rtree->array_to_tuple(__pyx_v_coords); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 943, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 943, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(0, 943, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(0, 943, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_2 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":926 - * self.ni = _NodeIter(rtree) - * - * def __next__(self): # <<<<<<<<<<<<<< - * cdef: - * _Node nextnode - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("tinyr._RectangleIter.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_nextnode); - __Pyx_XDECREF(__pyx_v_rec); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_14_RectangleIter_5__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_14_RectangleIter_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_14_RectangleIter_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_14_RectangleIter_5__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_14_RectangleIter_4__reduce_cython__(((struct __pyx_obj_5tinyr__RectangleIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_14_RectangleIter_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__RectangleIter *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._RectangleIter.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_14_RectangleIter_7__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_14_RectangleIter_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_14_RectangleIter_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_14_RectangleIter_7__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._RectangleIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_14_RectangleIter_6__setstate_cython__(((struct __pyx_obj_5tinyr__RectangleIter *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_14_RectangleIter_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__RectangleIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":4 - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._RectangleIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":951 - * object (*returner)(_ChildRecordIter this, _ChildRecord cr) - * - * def __cinit__(self, RTree rtree): # <<<<<<<<<<<<<< - * if rtree.root: - * self.nodeset = [rtree.root] - */ - -/* Python wrapper */ -static int __pyx_pw_5tinyr_16_ChildRecordIter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_5tinyr_16_ChildRecordIter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree = 0; - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; - #endif - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rtree,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rtree)) != 0)) { - (void)__Pyx_Arg_NewRef_VARARGS(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 951, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(0, 951, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - } - __pyx_v_rtree = ((struct __pyx_obj_5tinyr_RTree *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 951, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._ChildRecordIter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rtree), __pyx_ptype_5tinyr_RTree, 1, "rtree", 0))) __PYX_ERR(0, 951, __pyx_L1_error) - __pyx_r = __pyx_pf_5tinyr_16_ChildRecordIter___cinit__(((struct __pyx_obj_5tinyr__ChildRecordIter *)__pyx_v_self), __pyx_v_rtree); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = -1; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5tinyr_16_ChildRecordIter___cinit__(struct __pyx_obj_5tinyr__ChildRecordIter *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree) { - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 1); - - /* "tinyr.pyx":952 - * - * def __cinit__(self, RTree rtree): - * if rtree.root: # <<<<<<<<<<<<<< - * self.nodeset = [rtree.root] - * else: - */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_rtree->root)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 952, __pyx_L1_error) - if (__pyx_t_1) { - - /* "tinyr.pyx":953 - * def __cinit__(self, RTree rtree): - * if rtree.root: - * self.nodeset = [rtree.root] # <<<<<<<<<<<<<< - * else: - * self.nodeset = [] - */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 953, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF((PyObject *)__pyx_v_rtree->root); - __Pyx_GIVEREF((PyObject *)__pyx_v_rtree->root); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_rtree->root))) __PYX_ERR(0, 953, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_GOTREF(__pyx_v_self->nodeset); - __Pyx_DECREF(__pyx_v_self->nodeset); - __pyx_v_self->nodeset = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "tinyr.pyx":952 - * - * def __cinit__(self, RTree rtree): - * if rtree.root: # <<<<<<<<<<<<<< - * self.nodeset = [rtree.root] - * else: - */ - goto __pyx_L3; - } - - /* "tinyr.pyx":955 - * self.nodeset = [rtree.root] - * else: - * self.nodeset = [] # <<<<<<<<<<<<<< - * self.current_crs = [] - * - */ - /*else*/ { - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 955, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_GOTREF(__pyx_v_self->nodeset); - __Pyx_DECREF(__pyx_v_self->nodeset); - __pyx_v_self->nodeset = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - } - __pyx_L3:; - - /* "tinyr.pyx":956 - * else: - * self.nodeset = [] - * self.current_crs = [] # <<<<<<<<<<<<<< - * - * def __next__(self): - */ - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 956, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_2); - __Pyx_GOTREF(__pyx_v_self->current_crs); - __Pyx_DECREF(__pyx_v_self->current_crs); - __pyx_v_self->current_crs = ((PyObject*)__pyx_t_2); - __pyx_t_2 = 0; - - /* "tinyr.pyx":951 - * object (*returner)(_ChildRecordIter this, _ChildRecord cr) - * - * def __cinit__(self, RTree rtree): # <<<<<<<<<<<<<< - * if rtree.root: - * self.nodeset = [rtree.root] - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_AddTraceback("tinyr._ChildRecordIter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":958 - * self.current_crs = [] - * - * def __next__(self): # <<<<<<<<<<<<<< - * cdef: - * _Node node - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_16_ChildRecordIter_3__next__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_16_ChildRecordIter_3__next__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__next__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_16_ChildRecordIter_2__next__(((struct __pyx_obj_5tinyr__ChildRecordIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_16_ChildRecordIter_2__next__(struct __pyx_obj_5tinyr__ChildRecordIter *__pyx_v_self) { - struct __pyx_obj_5tinyr__Node *__pyx_v_node = 0; - PyObject *__pyx_8genexpr3__pyx_v_r = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_error_without_exception = 0; /* StopIteration */ - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - int __pyx_t_7; - PyObject *__pyx_t_8 = NULL; - PyObject *__pyx_t_9 = NULL; - Py_ssize_t __pyx_t_10; - int __pyx_t_11; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__next__", 1); - - /* "tinyr.pyx":963 - * _ChildRecord cr - * - * if not self.current_crs: # <<<<<<<<<<<<<< - * try: - * node = self.nodeset.pop(0) - */ - __pyx_t_1 = (__pyx_v_self->current_crs != Py_None)&&(PyList_GET_SIZE(__pyx_v_self->current_crs) != 0); - __pyx_t_2 = (!__pyx_t_1); - if (__pyx_t_2) { - - /* "tinyr.pyx":964 - * - * if not self.current_crs: - * try: # <<<<<<<<<<<<<< - * node = self.nodeset.pop(0) - * except IndexError: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_5); - /*try:*/ { - - /* "tinyr.pyx":965 - * if not self.current_crs: - * try: - * node = self.nodeset.pop(0) # <<<<<<<<<<<<<< - * except IndexError: - * raise StopIteration - */ - if (unlikely(__pyx_v_self->nodeset == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop"); - __PYX_ERR(0, 965, __pyx_L4_error) - } - __pyx_t_6 = __Pyx_PyList_PopIndex(__pyx_v_self->nodeset, __pyx_int_0, 0, 1, Py_ssize_t, PyInt_FromSsize_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 965, __pyx_L4_error) - __Pyx_GOTREF(__pyx_t_6); - if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5tinyr__Node))))) __PYX_ERR(0, 965, __pyx_L4_error) - __pyx_v_node = ((struct __pyx_obj_5tinyr__Node *)__pyx_t_6); - __pyx_t_6 = 0; - - /* "tinyr.pyx":964 - * - * if not self.current_crs: - * try: # <<<<<<<<<<<<<< - * node = self.nodeset.pop(0) - * except IndexError: - */ - } - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - goto __pyx_L9_try_end; - __pyx_L4_error:; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - - /* "tinyr.pyx":966 - * try: - * node = self.nodeset.pop(0) - * except IndexError: # <<<<<<<<<<<<<< - * raise StopIteration - * - */ - __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError); - if (__pyx_t_7) { - __Pyx_AddTraceback("tinyr._ChildRecordIter.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(0, 966, __pyx_L6_except_error) - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_9); - - /* "tinyr.pyx":967 - * node = self.nodeset.pop(0) - * except IndexError: - * raise StopIteration # <<<<<<<<<<<<<< - * - * while not node.is_leaf: - */ - __pyx_error_without_exception = 1; - goto __pyx_L6_except_error;; - } - goto __pyx_L6_except_error; - - /* "tinyr.pyx":964 - * - * if not self.current_crs: - * try: # <<<<<<<<<<<<<< - * node = self.nodeset.pop(0) - * except IndexError: - */ - __pyx_L6_except_error:; - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_XGIVEREF(__pyx_t_4); - __Pyx_XGIVEREF(__pyx_t_5); - __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); - goto __pyx_L1_error; - __pyx_L9_try_end:; - } - - /* "tinyr.pyx":969 - * raise StopIteration - * - * while not node.is_leaf: # <<<<<<<<<<<<<< - * self.nodeset = [ (<_InnerRecord>r).child for r in node.records ] + self.nodeset - * try: - */ - while (1) { - __pyx_t_2 = (!__pyx_v_node->is_leaf); - if (!__pyx_t_2) break; - - /* "tinyr.pyx":970 - * - * while not node.is_leaf: - * self.nodeset = [ (<_InnerRecord>r).child for r in node.records ] + self.nodeset # <<<<<<<<<<<<<< - * try: - * node = self.nodeset.pop(0) - */ - { /* enter inner scope */ - __pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 970, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_9); - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 970, __pyx_L16_error) - } - __pyx_t_8 = __pyx_v_node->records; __Pyx_INCREF(__pyx_t_8); - __pyx_t_10 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_8); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 970, __pyx_L16_error) - #endif - if (__pyx_t_10 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_6 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_6); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 970, __pyx_L16_error) - #else - __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 970, __pyx_L16_error) - __Pyx_GOTREF(__pyx_t_6); - #endif - __Pyx_XDECREF_SET(__pyx_8genexpr3__pyx_v_r, __pyx_t_6); - __pyx_t_6 = 0; - if (unlikely(__Pyx_ListComp_Append(__pyx_t_9, (PyObject*)((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_8genexpr3__pyx_v_r)->child))) __PYX_ERR(0, 970, __pyx_L16_error) - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_r); __pyx_8genexpr3__pyx_v_r = 0; - goto __pyx_L20_exit_scope; - __pyx_L16_error:; - __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_r); __pyx_8genexpr3__pyx_v_r = 0; - goto __pyx_L1_error; - __pyx_L20_exit_scope:; - } /* exit inner scope */ - __pyx_t_8 = PyNumber_Add(__pyx_t_9, __pyx_v_self->nodeset); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 970, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __Pyx_GIVEREF(__pyx_t_8); - __Pyx_GOTREF(__pyx_v_self->nodeset); - __Pyx_DECREF(__pyx_v_self->nodeset); - __pyx_v_self->nodeset = ((PyObject*)__pyx_t_8); - __pyx_t_8 = 0; - - /* "tinyr.pyx":971 - * while not node.is_leaf: - * self.nodeset = [ (<_InnerRecord>r).child for r in node.records ] + self.nodeset - * try: # <<<<<<<<<<<<<< - * node = self.nodeset.pop(0) - * except IndexError: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_4, &__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - - /* "tinyr.pyx":972 - * self.nodeset = [ (<_InnerRecord>r).child for r in node.records ] + self.nodeset - * try: - * node = self.nodeset.pop(0) # <<<<<<<<<<<<<< - * except IndexError: - * raise StopIteration - */ - if (unlikely(__pyx_v_self->nodeset == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop"); - __PYX_ERR(0, 972, __pyx_L21_error) - } - __pyx_t_8 = __Pyx_PyList_PopIndex(__pyx_v_self->nodeset, __pyx_int_0, 0, 1, Py_ssize_t, PyInt_FromSsize_t); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 972, __pyx_L21_error) - __Pyx_GOTREF(__pyx_t_8); - if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5tinyr__Node))))) __PYX_ERR(0, 972, __pyx_L21_error) - __Pyx_DECREF_SET(__pyx_v_node, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_8)); - __pyx_t_8 = 0; - - /* "tinyr.pyx":971 - * while not node.is_leaf: - * self.nodeset = [ (<_InnerRecord>r).child for r in node.records ] + self.nodeset - * try: # <<<<<<<<<<<<<< - * node = self.nodeset.pop(0) - * except IndexError: - */ - } - __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L28_try_end; - __pyx_L21_error:; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "tinyr.pyx":973 - * try: - * node = self.nodeset.pop(0) - * except IndexError: # <<<<<<<<<<<<<< - * raise StopIteration - * - */ - __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError); - if (__pyx_t_7) { - __Pyx_AddTraceback("tinyr._ChildRecordIter.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_6) < 0) __PYX_ERR(0, 973, __pyx_L23_except_error) - __Pyx_XGOTREF(__pyx_t_8); - __Pyx_XGOTREF(__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_6); - - /* "tinyr.pyx":974 - * node = self.nodeset.pop(0) - * except IndexError: - * raise StopIteration # <<<<<<<<<<<<<< - * - * self.current_crs.extend(node.records) - */ - __pyx_error_without_exception = 1; - goto __pyx_L23_except_error;; - } - goto __pyx_L23_except_error; - - /* "tinyr.pyx":971 - * while not node.is_leaf: - * self.nodeset = [ (<_InnerRecord>r).child for r in node.records ] + self.nodeset - * try: # <<<<<<<<<<<<<< - * node = self.nodeset.pop(0) - * except IndexError: - */ - __pyx_L23_except_error:; - __Pyx_XGIVEREF(__pyx_t_5); - __Pyx_XGIVEREF(__pyx_t_4); - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_4, __pyx_t_3); - goto __pyx_L1_error; - __pyx_L28_try_end:; - } - } - - /* "tinyr.pyx":976 - * raise StopIteration - * - * self.current_crs.extend(node.records) # <<<<<<<<<<<<<< - * - * try: - */ - if (unlikely(__pyx_v_self->current_crs == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "extend"); - __PYX_ERR(0, 976, __pyx_L1_error) - } - __pyx_t_6 = __pyx_v_node->records; - __Pyx_INCREF(__pyx_t_6); - __pyx_t_11 = __Pyx_PyList_Extend(__pyx_v_self->current_crs, __pyx_t_6); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(0, 976, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - /* "tinyr.pyx":963 - * _ChildRecord cr - * - * if not self.current_crs: # <<<<<<<<<<<<<< - * try: - * node = self.nodeset.pop(0) - */ - } - - /* "tinyr.pyx":978 - * self.current_crs.extend(node.records) - * - * try: # <<<<<<<<<<<<<< - * return self.current_crs.pop(0) - * except IndexError: - */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); - __Pyx_XGOTREF(__pyx_t_3); - __Pyx_XGOTREF(__pyx_t_4); - __Pyx_XGOTREF(__pyx_t_5); - /*try:*/ { - - /* "tinyr.pyx":979 - * - * try: - * return self.current_crs.pop(0) # <<<<<<<<<<<<<< - * except IndexError: - * # should not happen - */ - __Pyx_XDECREF(__pyx_r); - if (unlikely(__pyx_v_self->current_crs == Py_None)) { - PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "pop"); - __PYX_ERR(0, 979, __pyx_L31_error) - } - __pyx_t_6 = __Pyx_PyList_PopIndex(__pyx_v_self->current_crs, __pyx_int_0, 0, 1, Py_ssize_t, PyInt_FromSsize_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 979, __pyx_L31_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_r = __pyx_t_6; - __pyx_t_6 = 0; - goto __pyx_L35_try_return; - - /* "tinyr.pyx":978 - * self.current_crs.extend(node.records) - * - * try: # <<<<<<<<<<<<<< - * return self.current_crs.pop(0) - * except IndexError: - */ - } - __pyx_L31_error:; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - - /* "tinyr.pyx":980 - * try: - * return self.current_crs.pop(0) - * except IndexError: # <<<<<<<<<<<<<< - * # should not happen - * raise StopIteration - */ - __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError); - if (__pyx_t_7) { - __Pyx_AddTraceback("tinyr._ChildRecordIter.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_9, &__pyx_t_8) < 0) __PYX_ERR(0, 980, __pyx_L33_except_error) - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_9); - __Pyx_XGOTREF(__pyx_t_8); - - /* "tinyr.pyx":982 - * except IndexError: - * # should not happen - * raise StopIteration # <<<<<<<<<<<<<< - * - * - */ - __pyx_error_without_exception = 1; - goto __pyx_L33_except_error;; - } - goto __pyx_L33_except_error; - - /* "tinyr.pyx":978 - * self.current_crs.extend(node.records) - * - * try: # <<<<<<<<<<<<<< - * return self.current_crs.pop(0) - * except IndexError: - */ - __pyx_L33_except_error:; - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_XGIVEREF(__pyx_t_4); - __Pyx_XGIVEREF(__pyx_t_5); - __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); - goto __pyx_L1_error; - __pyx_L35_try_return:; - __Pyx_XGIVEREF(__pyx_t_3); - __Pyx_XGIVEREF(__pyx_t_4); - __Pyx_XGIVEREF(__pyx_t_5); - __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); - goto __pyx_L0; - } - - /* "tinyr.pyx":958 - * self.current_crs = [] - * - * def __next__(self): # <<<<<<<<<<<<<< - * cdef: - * _Node node - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - if (!__pyx_error_without_exception) { - __Pyx_AddTraceback("tinyr._ChildRecordIter.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename); - } - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_node); - __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_r); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_16_ChildRecordIter_5__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_16_ChildRecordIter_5__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_16_ChildRecordIter_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_16_ChildRecordIter_5__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_16_ChildRecordIter_4__reduce_cython__(((struct __pyx_obj_5tinyr__ChildRecordIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_16_ChildRecordIter_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ChildRecordIter *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._ChildRecordIter.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_16_ChildRecordIter_7__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_16_ChildRecordIter_7__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_16_ChildRecordIter_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_16_ChildRecordIter_7__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._ChildRecordIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_16_ChildRecordIter_6__setstate_cython__(((struct __pyx_obj_5tinyr__ChildRecordIter *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_16_ChildRecordIter_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ChildRecordIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":4 - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._ChildRecordIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":989 - * _ChildRecordIter cri - * - * def __cinit__(self, RTree rtree): # <<<<<<<<<<<<<< - * self.cri = _ChildRecordIter(rtree) - * - */ - -/* Python wrapper */ -static int __pyx_pw_5tinyr_8_KVIIter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_5tinyr_8_KVIIter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree = 0; - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; - #endif - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rtree,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rtree)) != 0)) { - (void)__Pyx_Arg_NewRef_VARARGS(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 989, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(0, 989, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - } - __pyx_v_rtree = ((struct __pyx_obj_5tinyr_RTree *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 989, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._KVIIter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rtree), __pyx_ptype_5tinyr_RTree, 1, "rtree", 0))) __PYX_ERR(0, 989, __pyx_L1_error) - __pyx_r = __pyx_pf_5tinyr_8_KVIIter___cinit__(((struct __pyx_obj_5tinyr__KVIIter *)__pyx_v_self), __pyx_v_rtree); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = -1; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5tinyr_8_KVIIter___cinit__(struct __pyx_obj_5tinyr__KVIIter *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree) { - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 1); - - /* "tinyr.pyx":990 - * - * def __cinit__(self, RTree rtree): - * self.cri = _ChildRecordIter(rtree) # <<<<<<<<<<<<<< - * - * cdef class _KeysIter(_KVIIter): - */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__ChildRecordIter), ((PyObject *)__pyx_v_rtree)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF((PyObject *)__pyx_v_self->cri); - __Pyx_DECREF((PyObject *)__pyx_v_self->cri); - __pyx_v_self->cri = ((struct __pyx_obj_5tinyr__ChildRecordIter *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":989 - * _ChildRecordIter cri - * - * def __cinit__(self, RTree rtree): # <<<<<<<<<<<<<< - * self.cri = _ChildRecordIter(rtree) - * - */ - - /* function exit code */ - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr._KVIIter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_8_KVIIter_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_8_KVIIter_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_8_KVIIter_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_8_KVIIter_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_8_KVIIter_2__reduce_cython__(((struct __pyx_obj_5tinyr__KVIIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_8_KVIIter_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__KVIIter *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._KVIIter.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_8_KVIIter_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_8_KVIIter_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_8_KVIIter_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_8_KVIIter_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._KVIIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_8_KVIIter_4__setstate_cython__(((struct __pyx_obj_5tinyr__KVIIter *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_8_KVIIter_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__KVIIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":4 - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._KVIIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":993 - * - * cdef class _KeysIter(_KVIIter): - * def __next__(self): # <<<<<<<<<<<<<< - * return self.rtree.array_to_tuple((<_ChildRecord>self.cri.next()).coords) - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9_KeysIter_1__next__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_9_KeysIter_1__next__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__next__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_9_KeysIter___next__(((struct __pyx_obj_5tinyr__KeysIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9_KeysIter___next__(struct __pyx_obj_5tinyr__KeysIter *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__next__", 1); - - /* "tinyr.pyx":994 - * cdef class _KeysIter(_KVIIter): - * def __next__(self): - * return self.rtree.array_to_tuple((<_ChildRecord>self.cri.next()).coords) # <<<<<<<<<<<<<< - * - * cdef class _ValuesIter(_KVIIter): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.cri), __pyx_n_s_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - __pyx_t_2 = __pyx_v_self->__pyx_base.__pyx_base.rtree->array_to_tuple(((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_t_1)->__pyx_base.coords); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":993 - * - * cdef class _KeysIter(_KVIIter): - * def __next__(self): # <<<<<<<<<<<<<< - * return self.rtree.array_to_tuple((<_ChildRecord>self.cri.next()).coords) - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr._KeysIter.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9_KeysIter_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_9_KeysIter_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_KeysIter_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_9_KeysIter_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_9_KeysIter_2__reduce_cython__(((struct __pyx_obj_5tinyr__KeysIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9_KeysIter_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__KeysIter *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._KeysIter.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9_KeysIter_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_9_KeysIter_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_KeysIter_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_9_KeysIter_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._KeysIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_9_KeysIter_4__setstate_cython__(((struct __pyx_obj_5tinyr__KeysIter *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9_KeysIter_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__KeysIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":4 - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._KeysIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":997 - * - * cdef class _ValuesIter(_KVIIter): - * def __next__(self): # <<<<<<<<<<<<<< - * return (<_ChildRecord>self.cri.next()).identifier - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_11_ValuesIter_1__next__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_11_ValuesIter_1__next__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__next__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_11_ValuesIter___next__(((struct __pyx_obj_5tinyr__ValuesIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_11_ValuesIter___next__(struct __pyx_obj_5tinyr__ValuesIter *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__next__", 1); - - /* "tinyr.pyx":998 - * cdef class _ValuesIter(_KVIIter): - * def __next__(self): - * return (<_ChildRecord>self.cri.next()).identifier # <<<<<<<<<<<<<< - * - * cdef class _ItemsIter(_KVIIter): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.cri), __pyx_n_s_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 998, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 998, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - __Pyx_INCREF(((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_t_1)->identifier); - __pyx_r = ((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_t_1)->identifier; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":997 - * - * cdef class _ValuesIter(_KVIIter): - * def __next__(self): # <<<<<<<<<<<<<< - * return (<_ChildRecord>self.cri.next()).identifier - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr._ValuesIter.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_11_ValuesIter_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_11_ValuesIter_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_11_ValuesIter_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_11_ValuesIter_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_11_ValuesIter_2__reduce_cython__(((struct __pyx_obj_5tinyr__ValuesIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_11_ValuesIter_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ValuesIter *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._ValuesIter.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_11_ValuesIter_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_11_ValuesIter_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_11_ValuesIter_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_11_ValuesIter_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._ValuesIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_11_ValuesIter_4__setstate_cython__(((struct __pyx_obj_5tinyr__ValuesIter *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_11_ValuesIter_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ValuesIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":4 - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._ValuesIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":1001 - * - * cdef class _ItemsIter(_KVIIter): - * def __next__(self): # <<<<<<<<<<<<<< - * cdef _ChildRecord cr - * cr = self.cri.next() - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_10_ItemsIter_1__next__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_10_ItemsIter_1__next__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__next__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_10_ItemsIter___next__(((struct __pyx_obj_5tinyr__ItemsIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_10_ItemsIter___next__(struct __pyx_obj_5tinyr__ItemsIter *__pyx_v_self) { - struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_cr = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__next__", 1); - - /* "tinyr.pyx":1003 - * def __next__(self): - * cdef _ChildRecord cr - * cr = self.cri.next() # <<<<<<<<<<<<<< - * return ( self.rtree.array_to_tuple(cr.coords), cr.identifier ) - * - */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.cri), __pyx_n_s_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1003, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, NULL}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 0+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1003, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5tinyr__ChildRecord))))) __PYX_ERR(0, 1003, __pyx_L1_error) - __pyx_v_cr = ((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":1004 - * cdef _ChildRecord cr - * cr = self.cri.next() - * return ( self.rtree.array_to_tuple(cr.coords), cr.identifier ) # <<<<<<<<<<<<<< - * - * - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_v_self->__pyx_base.__pyx_base.rtree->array_to_tuple(__pyx_v_cr->__pyx_base.coords); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1004, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1004, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(0, 1004, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_cr->identifier); - __Pyx_GIVEREF(__pyx_v_cr->identifier); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_cr->identifier)) __PYX_ERR(0, 1004, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_r = __pyx_t_2; - __pyx_t_2 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":1001 - * - * cdef class _ItemsIter(_KVIIter): - * def __next__(self): # <<<<<<<<<<<<<< - * cdef _ChildRecord cr - * cr = self.cri.next() - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr._ItemsIter.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_cr); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_10_ItemsIter_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_10_ItemsIter_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_10_ItemsIter_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_10_ItemsIter_3__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_10_ItemsIter_2__reduce_cython__(((struct __pyx_obj_5tinyr__ItemsIter *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_10_ItemsIter_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ItemsIter *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":2 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 2, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._ItemsIter.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_10_ItemsIter_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_10_ItemsIter_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_10_ItemsIter_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_10_ItemsIter_5__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr._ItemsIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_10_ItemsIter_4__setstate_cython__(((struct __pyx_obj_5tinyr__ItemsIter *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_10_ItemsIter_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_5tinyr__ItemsIter *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":4 - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<< - */ - __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0); - __PYX_ERR(1, 4, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_AddTraceback("tinyr._ItemsIter.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":1016 - * - * property levels: - * def __get__(self): # <<<<<<<<<<<<<< - * return self.rtree._leaf_level + 1 # count leaf rectangles, too - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_6levels_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_6levels_1__get__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_9RTreeInfo_6levels___get__(((struct __pyx_obj_5tinyr_RTreeInfo *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_6levels___get__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 1); - - /* "tinyr.pyx":1017 - * property levels: - * def __get__(self): - * return self.rtree._leaf_level + 1 # count leaf rectangles, too # <<<<<<<<<<<<<< - * - * def __init__(self, RTree rtree): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_long((__pyx_v_self->rtree->_leaf_level + 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1017, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":1016 - * - * property levels: - * def __get__(self): # <<<<<<<<<<<<<< - * return self.rtree._leaf_level + 1 # count leaf rectangles, too - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTreeInfo.levels.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":1019 - * return self.rtree._leaf_level + 1 # count leaf rectangles, too - * - * def __init__(self, RTree rtree): # <<<<<<<<<<<<<< - * self.rtree = rtree - * - */ - -/* Python wrapper */ -static int __pyx_pw_5tinyr_9RTreeInfo_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_pw_5tinyr_9RTreeInfo_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree = 0; - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1; - #endif - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rtree,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_rtree)) != 0)) { - (void)__Pyx_Arg_NewRef_VARARGS(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1019, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1019, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0); - } - __pyx_v_rtree = ((struct __pyx_obj_5tinyr_RTree *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1019, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.RTreeInfo.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return -1; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rtree), __pyx_ptype_5tinyr_RTree, 1, "rtree", 0))) __PYX_ERR(0, 1019, __pyx_L1_error) - __pyx_r = __pyx_pf_5tinyr_9RTreeInfo___init__(((struct __pyx_obj_5tinyr_RTreeInfo *)__pyx_v_self), __pyx_v_rtree); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = -1; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static int __pyx_pf_5tinyr_9RTreeInfo___init__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self, struct __pyx_obj_5tinyr_RTree *__pyx_v_rtree) { - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__", 1); - - /* "tinyr.pyx":1020 - * - * def __init__(self, RTree rtree): - * self.rtree = rtree # <<<<<<<<<<<<<< - * - * def iter_rectangles(self): - */ - __Pyx_INCREF((PyObject *)__pyx_v_rtree); - __Pyx_GIVEREF((PyObject *)__pyx_v_rtree); - __Pyx_GOTREF((PyObject *)__pyx_v_self->rtree); - __Pyx_DECREF((PyObject *)__pyx_v_self->rtree); - __pyx_v_self->rtree = __pyx_v_rtree; - - /* "tinyr.pyx":1019 - * return self.rtree._leaf_level + 1 # count leaf rectangles, too - * - * def __init__(self, RTree rtree): # <<<<<<<<<<<<<< - * self.rtree = rtree - * - */ - - /* function exit code */ - __pyx_r = 0; - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":1022 - * self.rtree = rtree - * - * def iter_rectangles(self): # <<<<<<<<<<<<<< - * '''Iterate over key coordinates and combined frames. - * - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_3iter_rectangles(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5tinyr_9RTreeInfo_2iter_rectangles, "Iterate over key coordinates and combined frames.\n \n Combined frames are 2D-indexes under which rectangle entries are stored.\n The iterator returns a tuple (level, coordinates) where level is the\n level of the index node or entry in the tree structure.\n "); -static PyMethodDef __pyx_mdef_5tinyr_9RTreeInfo_3iter_rectangles = {"iter_rectangles", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9RTreeInfo_3iter_rectangles, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_9RTreeInfo_2iter_rectangles}; -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_3iter_rectangles(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("iter_rectangles (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("iter_rectangles", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "iter_rectangles", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_9RTreeInfo_2iter_rectangles(((struct __pyx_obj_5tinyr_RTreeInfo *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_2iter_rectangles(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("iter_rectangles", 1); - - /* "tinyr.pyx":1029 - * level of the index node or entry in the tree structure. - * ''' - * return _RectangleIter(self.rtree) # <<<<<<<<<<<<<< - * - * property common_boundary: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__RectangleIter), ((PyObject *)__pyx_v_self->rtree)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1029, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":1022 - * self.rtree = rtree - * - * def iter_rectangles(self): # <<<<<<<<<<<<<< - * '''Iterate over key coordinates and combined frames. - * - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTreeInfo.iter_rectangles", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":1032 - * - * property common_boundary: - * def __get__(self): # <<<<<<<<<<<<<< - * cdef: - * Dfloat coords[4] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_15common_boundary_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_15common_boundary_1__get__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_9RTreeInfo_15common_boundary___get__(((struct __pyx_obj_5tinyr_RTreeInfo *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_15common_boundary___get__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self) { - __pyx_t_5tinyr_Dfloat __pyx_v_coords[4]; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 1); - - /* "tinyr.pyx":1035 - * cdef: - * Dfloat coords[4] - * if not self.rtree.root: # <<<<<<<<<<<<<< - * return 0 - * common_boundaries(self.rtree.root.records, coords) - */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->rtree->root)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1035, __pyx_L1_error) - __pyx_t_2 = (!__pyx_t_1); - if (__pyx_t_2) { - - /* "tinyr.pyx":1036 - * Dfloat coords[4] - * if not self.rtree.root: - * return 0 # <<<<<<<<<<<<<< - * common_boundaries(self.rtree.root.records, coords) - * return self.rtree.array_to_tuple(coords) - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_int_0); - __pyx_r = __pyx_int_0; - goto __pyx_L0; - - /* "tinyr.pyx":1035 - * cdef: - * Dfloat coords[4] - * if not self.rtree.root: # <<<<<<<<<<<<<< - * return 0 - * common_boundaries(self.rtree.root.records, coords) - */ - } - - /* "tinyr.pyx":1037 - * if not self.rtree.root: - * return 0 - * common_boundaries(self.rtree.root.records, coords) # <<<<<<<<<<<<<< - * return self.rtree.array_to_tuple(coords) - * - */ - __pyx_t_3 = __pyx_v_self->rtree->root->records; - __Pyx_INCREF(__pyx_t_3); - __pyx_f_5tinyr_common_boundaries(((PyObject*)__pyx_t_3), __pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1037, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":1038 - * return 0 - * common_boundaries(self.rtree.root.records, coords) - * return self.rtree.array_to_tuple(coords) # <<<<<<<<<<<<<< - * - * property width: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = __pyx_v_self->rtree->array_to_tuple(__pyx_v_coords); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1038, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":1032 - * - * property common_boundary: - * def __get__(self): # <<<<<<<<<<<<<< - * cdef: - * Dfloat coords[4] - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr.RTreeInfo.common_boundary.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":1041 - * - * property width: - * def __get__(self): # <<<<<<<<<<<<<< - * cdef: - * Dfloat coords[4] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_5width_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_5width_1__get__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_9RTreeInfo_5width___get__(((struct __pyx_obj_5tinyr_RTreeInfo *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_5width___get__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self) { - __pyx_t_5tinyr_Dfloat __pyx_v_coords[4]; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 1); - - /* "tinyr.pyx":1044 - * cdef: - * Dfloat coords[4] - * if not self.rtree.root: # <<<<<<<<<<<<<< - * return 0 - * common_boundaries(self.rtree.root.records, coords) - */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->rtree->root)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1044, __pyx_L1_error) - __pyx_t_2 = (!__pyx_t_1); - if (__pyx_t_2) { - - /* "tinyr.pyx":1045 - * Dfloat coords[4] - * if not self.rtree.root: - * return 0 # <<<<<<<<<<<<<< - * common_boundaries(self.rtree.root.records, coords) - * return coords[2]-coords[0] - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_int_0); - __pyx_r = __pyx_int_0; - goto __pyx_L0; - - /* "tinyr.pyx":1044 - * cdef: - * Dfloat coords[4] - * if not self.rtree.root: # <<<<<<<<<<<<<< - * return 0 - * common_boundaries(self.rtree.root.records, coords) - */ - } - - /* "tinyr.pyx":1046 - * if not self.rtree.root: - * return 0 - * common_boundaries(self.rtree.root.records, coords) # <<<<<<<<<<<<<< - * return coords[2]-coords[0] - * - */ - __pyx_t_3 = __pyx_v_self->rtree->root->records; - __Pyx_INCREF(__pyx_t_3); - __pyx_f_5tinyr_common_boundaries(((PyObject*)__pyx_t_3), __pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1046, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":1047 - * return 0 - * common_boundaries(self.rtree.root.records, coords) - * return coords[2]-coords[0] # <<<<<<<<<<<<<< - * - * property height: - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_coords[2]) - (__pyx_v_coords[0]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1047, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":1041 - * - * property width: - * def __get__(self): # <<<<<<<<<<<<<< - * cdef: - * Dfloat coords[4] - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr.RTreeInfo.width.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":1050 - * - * property height: - * def __get__(self): # <<<<<<<<<<<<<< - * cdef: - * Dfloat coords[4] - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_6height_1__get__(PyObject *__pyx_v_self); /*proto*/ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_6height_1__get__(PyObject *__pyx_v_self) { - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); - __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs); - __pyx_r = __pyx_pf_5tinyr_9RTreeInfo_6height___get__(((struct __pyx_obj_5tinyr_RTreeInfo *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_6height___get__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self) { - __pyx_t_5tinyr_Dfloat __pyx_v_coords[4]; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - int __pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 1); - - /* "tinyr.pyx":1053 - * cdef: - * Dfloat coords[4] - * if not self.rtree.root: # <<<<<<<<<<<<<< - * return 0 - * common_boundaries(self.rtree.root.records, coords) - */ - __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->rtree->root)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(0, 1053, __pyx_L1_error) - __pyx_t_2 = (!__pyx_t_1); - if (__pyx_t_2) { - - /* "tinyr.pyx":1054 - * Dfloat coords[4] - * if not self.rtree.root: - * return 0 # <<<<<<<<<<<<<< - * common_boundaries(self.rtree.root.records, coords) - * return coords[3]-coords[1] - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_int_0); - __pyx_r = __pyx_int_0; - goto __pyx_L0; - - /* "tinyr.pyx":1053 - * cdef: - * Dfloat coords[4] - * if not self.rtree.root: # <<<<<<<<<<<<<< - * return 0 - * common_boundaries(self.rtree.root.records, coords) - */ - } - - /* "tinyr.pyx":1055 - * if not self.rtree.root: - * return 0 - * common_boundaries(self.rtree.root.records, coords) # <<<<<<<<<<<<<< - * return coords[3]-coords[1] - * - */ - __pyx_t_3 = __pyx_v_self->rtree->root->records; - __Pyx_INCREF(__pyx_t_3); - __pyx_f_5tinyr_common_boundaries(((PyObject*)__pyx_t_3), __pyx_v_coords); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1055, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":1056 - * return 0 - * common_boundaries(self.rtree.root.records, coords) - * return coords[3]-coords[1] # <<<<<<<<<<<<<< - * - * def to_dot(self, filelike): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_coords[3]) - (__pyx_v_coords[1]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1056, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - - /* "tinyr.pyx":1050 - * - * property height: - * def __get__(self): # <<<<<<<<<<<<<< - * cdef: - * Dfloat coords[4] - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("tinyr.RTreeInfo.height.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "tinyr.pyx":1058 - * return coords[3]-coords[1] - * - * def to_dot(self, filelike): # <<<<<<<<<<<<<< - * '''Writes simple dot-code into filelike that represents the tree structure.''' - * cdef: - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_5to_dot(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5tinyr_9RTreeInfo_4to_dot, "Writes simple dot-code into filelike that represents the tree structure."); -static PyMethodDef __pyx_mdef_5tinyr_9RTreeInfo_5to_dot = {"to_dot", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9RTreeInfo_5to_dot, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_9RTreeInfo_4to_dot}; -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_5to_dot(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v_filelike = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("to_dot (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filelike,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_filelike)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1058, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "to_dot") < 0)) __PYX_ERR(0, 1058, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_filelike = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("to_dot", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1058, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.RTreeInfo.to_dot", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_9RTreeInfo_4to_dot(((struct __pyx_obj_5tinyr_RTreeInfo *)__pyx_v_self), __pyx_v_filelike); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_4to_dot(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self, PyObject *__pyx_v_filelike) { - struct __pyx_obj_5tinyr__Node *__pyx_v_node = 0; - struct __pyx_obj_5tinyr__InnerRecord *__pyx_v_ir = 0; - struct __pyx_obj_5tinyr__ChildRecord *__pyx_v_cr = 0; - CYTHON_UNUSED int __pyx_v_level; - unsigned int __pyx_v_nid; - unsigned int __pyx_v_rid; - unsigned int __pyx_v_chid; - unsigned int __pyx_v_lid; - PyObject *__pyx_v_node_record_leaf = 0; - PyObject *__pyx_v_node_record_child = 0; - PyObject *__pyx_v_record = NULL; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - Py_ssize_t __pyx_t_5; - PyObject *(*__pyx_t_6)(PyObject *); - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - PyObject *(*__pyx_t_9)(PyObject *); - Py_ssize_t __pyx_t_10; - PyObject *__pyx_t_11 = NULL; - int __pyx_t_12; - PyObject *__pyx_t_13 = NULL; - unsigned int __pyx_t_14; - unsigned int __pyx_t_15; - unsigned int __pyx_t_16; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("to_dot", 1); - - /* "tinyr.pyx":1068 - * list node_record_leaf, node_record_child - * - * filelike.write('digraph RTree {\n node [shape=\"none\"]; \n') # <<<<<<<<<<<<<< - * - * node_record_leaf = list() - */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s_write); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1068, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_2))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_2, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_s_digraph_RTree_node_shape_none}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1068, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":1070 - * filelike.write('digraph RTree {\n node [shape=\"none\"]; \n') - * - * node_record_leaf = list() # <<<<<<<<<<<<<< - * node_record_child = list() - * - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_node_record_leaf = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":1071 - * - * node_record_leaf = list() - * node_record_child = list() # <<<<<<<<<<<<<< - * - * for level, node in _NodeIter(self.rtree): - */ - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1071, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_node_record_child = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "tinyr.pyx":1073 - * node_record_child = list() - * - * for level, node in _NodeIter(self.rtree): # <<<<<<<<<<<<<< - * if node.is_leaf: - * for cr in node.records: - */ - __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_5tinyr__NodeIter), ((PyObject *)__pyx_v_self->rtree)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1073, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { - __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; - __pyx_t_6 = NULL; - } else { - __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1073, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1073, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - for (;;) { - if (likely(!__pyx_t_6)) { - if (likely(PyList_CheckExact(__pyx_t_2))) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1073, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 1073, __pyx_L1_error) - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1073, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } else { - { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1073, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 1073, __pyx_L1_error) - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1073, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - } - } else { - __pyx_t_1 = __pyx_t_6(__pyx_t_2); - if (unlikely(!__pyx_t_1)) { - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(0, 1073, __pyx_L1_error) - } - break; - } - __Pyx_GOTREF(__pyx_t_1); - } - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 2)) { - if (size > 2) __Pyx_RaiseTooManyValuesError(2); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1073, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - } else { - __pyx_t_3 = PyList_GET_ITEM(sequence, 0); - __pyx_t_7 = PyList_GET_ITEM(sequence, 1); - } - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(__pyx_t_7); - #else - __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1073, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1073, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1073, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_8); - index = 0; __pyx_t_3 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(0, 1073, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - goto __pyx_L6_unpacking_done; - __pyx_L5_unpacking_failed:; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1073, __pyx_L1_error) - __pyx_L6_unpacking_done:; - } - __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1073, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5tinyr__Node))))) __PYX_ERR(0, 1073, __pyx_L1_error) - __pyx_v_level = __pyx_t_4; - __Pyx_XDECREF_SET(__pyx_v_node, ((struct __pyx_obj_5tinyr__Node *)__pyx_t_7)); - __pyx_t_7 = 0; - - /* "tinyr.pyx":1074 - * - * for level, node in _NodeIter(self.rtree): - * if node.is_leaf: # <<<<<<<<<<<<<< - * for cr in node.records: - * node_record_leaf.append((id(node), id(cr), id(cr.identifier))) - */ - if (__pyx_v_node->is_leaf) { - - /* "tinyr.pyx":1075 - * for level, node in _NodeIter(self.rtree): - * if node.is_leaf: - * for cr in node.records: # <<<<<<<<<<<<<< - * node_record_leaf.append((id(node), id(cr), id(cr.identifier))) - * - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1075, __pyx_L1_error) - } - __pyx_t_1 = __pyx_v_node->records; __Pyx_INCREF(__pyx_t_1); - __pyx_t_10 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1075, __pyx_L1_error) - #endif - if (__pyx_t_10 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 1075, __pyx_L1_error) - #else - __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1075, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5tinyr__ChildRecord))))) __PYX_ERR(0, 1075, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_cr, ((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_t_7)); - __pyx_t_7 = 0; - - /* "tinyr.pyx":1076 - * if node.is_leaf: - * for cr in node.records: - * node_record_leaf.append((id(node), id(cr), id(cr.identifier))) # <<<<<<<<<<<<<< - * - * else: - */ - __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_node)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_cr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_cr->identifier); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1076, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_7)) __PYX_ERR(0, 1076, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_3)) __PYX_ERR(0, 1076, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_8)) __PYX_ERR(0, 1076, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_3 = 0; - __pyx_t_8 = 0; - __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_node_record_leaf, __pyx_t_11); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 1076, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - - /* "tinyr.pyx":1075 - * for level, node in _NodeIter(self.rtree): - * if node.is_leaf: - * for cr in node.records: # <<<<<<<<<<<<<< - * node_record_leaf.append((id(node), id(cr), id(cr.identifier))) - * - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":1074 - * - * for level, node in _NodeIter(self.rtree): - * if node.is_leaf: # <<<<<<<<<<<<<< - * for cr in node.records: - * node_record_leaf.append((id(node), id(cr), id(cr.identifier))) - */ - goto __pyx_L7; - } - - /* "tinyr.pyx":1079 - * - * else: - * for ir in node.records: # <<<<<<<<<<<<<< - * node_record_child.append((id(node), id(ir), id(ir.child))) - * - */ - /*else*/ { - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1079, __pyx_L1_error) - } - __pyx_t_1 = __pyx_v_node->records; __Pyx_INCREF(__pyx_t_1); - __pyx_t_10 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1079, __pyx_L1_error) - #endif - if (__pyx_t_10 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_11 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_11); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 1079, __pyx_L1_error) - #else - __pyx_t_11 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - #endif - if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_5tinyr__InnerRecord))))) __PYX_ERR(0, 1079, __pyx_L1_error) - __Pyx_XDECREF_SET(__pyx_v_ir, ((struct __pyx_obj_5tinyr__InnerRecord *)__pyx_t_11)); - __pyx_t_11 = 0; - - /* "tinyr.pyx":1080 - * else: - * for ir in node.records: - * node_record_child.append((id(node), id(ir), id(ir.child))) # <<<<<<<<<<<<<< - * - * filelike.write(' %d [label=<
' % (id(node))) - */ - __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_node)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1080, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_ir)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1080, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_ir->child)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1080, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1080, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_11); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_11)) __PYX_ERR(0, 1080, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8)) __PYX_ERR(0, 1080, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3)) __PYX_ERR(0, 1080, __pyx_L1_error); - __pyx_t_11 = 0; - __pyx_t_8 = 0; - __pyx_t_3 = 0; - __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_node_record_child, __pyx_t_7); if (unlikely(__pyx_t_12 == ((int)-1))) __PYX_ERR(0, 1080, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "tinyr.pyx":1079 - * - * else: - * for ir in node.records: # <<<<<<<<<<<<<< - * node_record_child.append((id(node), id(ir), id(ir.child))) - * - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __pyx_L7:; - - /* "tinyr.pyx":1082 - * node_record_child.append((id(node), id(ir), id(ir.child))) - * - * filelike.write(' %d [label=<
' % (id(node))) # <<<<<<<<<<<<<< - * for record in node.records: - * filelike.write('' % (id(record), id(record))) - */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s_write); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_node)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PyString_FormatSafe(__pyx_kp_s_d_label_TABLE_BORDER_0_CELLBORD, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_8}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":1083 - * - * filelike.write(' %d [label=<
%d
' % (id(node))) - * for record in node.records: # <<<<<<<<<<<<<< - * filelike.write('' % (id(record), id(record))) - * filelike.write('
%d
>];\n') - */ - if (unlikely(__pyx_v_node->records == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); - __PYX_ERR(0, 1083, __pyx_L1_error) - } - __pyx_t_1 = __pyx_v_node->records; __Pyx_INCREF(__pyx_t_1); - __pyx_t_10 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1083, __pyx_L1_error) - #endif - if (__pyx_t_10 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely((0 < 0))) __PYX_ERR(0, 1083, __pyx_L1_error) - #else - __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1083, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - #endif - __Pyx_XDECREF_SET(__pyx_v_record, __pyx_t_7); - __pyx_t_7 = 0; - - /* "tinyr.pyx":1084 - * filelike.write(' %d [label=<' % (id(node))) - * for record in node.records: - * filelike.write('' % (id(record), id(record))) # <<<<<<<<<<<<<< - * filelike.write('
%d
>];\n') - * - */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s_write); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_record); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, __pyx_v_record); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_3)) __PYX_ERR(0, 1084, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_11); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_11)) __PYX_ERR(0, 1084, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyString_Format(__pyx_kp_s_TD_PORT_d_CELLSPACING_0_d_TD, __pyx_t_13); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_13 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_13)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_13); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_11}; - __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - /* "tinyr.pyx":1083 - * - * filelike.write(' %d [label=<' % (id(node))) - * for record in node.records: # <<<<<<<<<<<<<< - * filelike.write('' % (id(record), id(record))) - * filelike.write('
%d
>];\n') - */ - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":1085 - * for record in node.records: - * filelike.write('%d' % (id(record), id(record))) - * filelike.write('>];\n') # <<<<<<<<<<<<<< - * - * filelike.write('\n node [shape=\"ellipse\"]; \n') - */ - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s_write); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1085, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_kp_s_TR_TABLE}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1085, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":1073 - * node_record_child = list() - * - * for level, node in _NodeIter(self.rtree): # <<<<<<<<<<<<<< - * if node.is_leaf: - * for cr in node.records: - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":1087 - * filelike.write('>];\n') - * - * filelike.write('\n node [shape=\"ellipse\"]; \n') # <<<<<<<<<<<<<< - * for nid, rid, lid in node_record_leaf: - * filelike.write(' %d;\n' % lid) - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s_write); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_7 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_kp_s_node_shape_ellipse}; - __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":1088 - * - * filelike.write('\n node [shape=\"ellipse\"]; \n') - * for nid, rid, lid in node_record_leaf: # <<<<<<<<<<<<<< - * filelike.write(' %d;\n' % lid) - * - */ - __pyx_t_2 = __pyx_v_node_record_leaf; __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1088, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 1088, __pyx_L1_error) - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1088, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_11 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_7 = PyList_GET_ITEM(sequence, 0); - __pyx_t_8 = PyList_GET_ITEM(sequence, 1); - __pyx_t_11 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx_t_11); - #else - __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_11 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_13); - index = 0; __pyx_t_7 = __pyx_t_9(__pyx_t_13); if (unlikely(!__pyx_t_7)) goto __pyx_L20_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - index = 1; __pyx_t_8 = __pyx_t_9(__pyx_t_13); if (unlikely(!__pyx_t_8)) goto __pyx_L20_unpacking_failed; - __Pyx_GOTREF(__pyx_t_8); - index = 2; __pyx_t_11 = __pyx_t_9(__pyx_t_13); if (unlikely(!__pyx_t_11)) goto __pyx_L20_unpacking_failed; - __Pyx_GOTREF(__pyx_t_11); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_13), 3) < 0) __PYX_ERR(0, 1088, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - goto __pyx_L21_unpacking_done; - __pyx_L20_unpacking_failed:; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1088, __pyx_L1_error) - __pyx_L21_unpacking_done:; - } - __pyx_t_14 = __Pyx_PyInt_As_unsigned_int(__pyx_t_7); if (unlikely((__pyx_t_14 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1088, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_15 = __Pyx_PyInt_As_unsigned_int(__pyx_t_8); if (unlikely((__pyx_t_15 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1088, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_16 = __Pyx_PyInt_As_unsigned_int(__pyx_t_11); if (unlikely((__pyx_t_16 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1088, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_v_nid = __pyx_t_14; - __pyx_v_rid = __pyx_t_15; - __pyx_v_lid = __pyx_t_16; - - /* "tinyr.pyx":1089 - * filelike.write('\n node [shape=\"ellipse\"]; \n') - * for nid, rid, lid in node_record_leaf: - * filelike.write(' %d;\n' % lid) # <<<<<<<<<<<<<< - * - * filelike.write('\n') - */ - __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s_write); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1089, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_8 = __Pyx_PyInt_From_unsigned_int(__pyx_v_lid); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1089, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_d, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1089, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_8 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_11))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_11); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_11, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_7}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1089, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":1088 - * - * filelike.write('\n node [shape=\"ellipse\"]; \n') - * for nid, rid, lid in node_record_leaf: # <<<<<<<<<<<<<< - * filelike.write(' %d;\n' % lid) - * - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":1091 - * filelike.write(' %d;\n' % lid) - * - * filelike.write('\n') # <<<<<<<<<<<<<< - * - * for nid, rid, chid in node_record_child: - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s_write); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_11 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_11)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_kp_s__4}; - __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1091, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":1093 - * filelike.write('\n') - * - * for nid, rid, chid in node_record_child: # <<<<<<<<<<<<<< - * filelike.write(' %d->%d [tailport=\"%d:s\"]\n' % ( nid, chid, rid )) - * - */ - __pyx_t_2 = __pyx_v_node_record_child; __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1093, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 1093, __pyx_L1_error) - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1093, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1093, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_11 = PyList_GET_ITEM(sequence, 0); - __pyx_t_7 = PyList_GET_ITEM(sequence, 1); - __pyx_t_8 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - #else - __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1093, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1093, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1093, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1093, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_13); - index = 0; __pyx_t_11 = __pyx_t_9(__pyx_t_13); if (unlikely(!__pyx_t_11)) goto __pyx_L25_unpacking_failed; - __Pyx_GOTREF(__pyx_t_11); - index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_13); if (unlikely(!__pyx_t_7)) goto __pyx_L25_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - index = 2; __pyx_t_8 = __pyx_t_9(__pyx_t_13); if (unlikely(!__pyx_t_8)) goto __pyx_L25_unpacking_failed; - __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_13), 3) < 0) __PYX_ERR(0, 1093, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - goto __pyx_L26_unpacking_done; - __pyx_L25_unpacking_failed:; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1093, __pyx_L1_error) - __pyx_L26_unpacking_done:; - } - __pyx_t_16 = __Pyx_PyInt_As_unsigned_int(__pyx_t_11); if (unlikely((__pyx_t_16 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1093, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_15 = __Pyx_PyInt_As_unsigned_int(__pyx_t_7); if (unlikely((__pyx_t_15 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1093, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_14 = __Pyx_PyInt_As_unsigned_int(__pyx_t_8); if (unlikely((__pyx_t_14 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1093, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_v_nid = __pyx_t_16; - __pyx_v_rid = __pyx_t_15; - __pyx_v_chid = __pyx_t_14; - - /* "tinyr.pyx":1094 - * - * for nid, rid, chid in node_record_child: - * filelike.write(' %d->%d [tailport=\"%d:s\"]\n' % ( nid, chid, rid )) # <<<<<<<<<<<<<< - * - * filelike.write('\n') - */ - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s_write); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_nid); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_11 = __Pyx_PyInt_From_unsigned_int(__pyx_v_chid); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_13 = __Pyx_PyInt_From_unsigned_int(__pyx_v_rid); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7)) __PYX_ERR(0, 1094, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_11); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_11)) __PYX_ERR(0, 1094, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_13)) __PYX_ERR(0, 1094, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_11 = 0; - __pyx_t_13 = 0; - __pyx_t_13 = __Pyx_PyString_Format(__pyx_kp_s_d_d_tailport_d_s, __pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_8))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_8, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_13}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1094, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":1093 - * filelike.write('\n') - * - * for nid, rid, chid in node_record_child: # <<<<<<<<<<<<<< - * filelike.write(' %d->%d [tailport=\"%d:s\"]\n' % ( nid, chid, rid )) - * - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":1096 - * filelike.write(' %d->%d [tailport=\"%d:s\"]\n' % ( nid, chid, rid )) - * - * filelike.write('\n') # <<<<<<<<<<<<<< - * - * for nid, rid, lid in node_record_leaf: - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s_write); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_kp_s__4}; - __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":1098 - * filelike.write('\n') - * - * for nid, rid, lid in node_record_leaf: # <<<<<<<<<<<<<< - * filelike.write(' %d->%d [tailport=\"%d:s\"]\n' % ( nid, lid, rid )) - * - */ - __pyx_t_2 = __pyx_v_node_record_leaf; __Pyx_INCREF(__pyx_t_2); - __pyx_t_5 = 0; - for (;;) { - { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2); - #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1098, __pyx_L1_error) - #endif - if (__pyx_t_5 >= __pyx_temp) break; - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 1098, __pyx_L1_error) - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - #endif - if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { - PyObject* sequence = __pyx_t_1; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 1098, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_8 = PyList_GET_ITEM(sequence, 0); - __pyx_t_13 = PyList_GET_ITEM(sequence, 1); - __pyx_t_3 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx_t_13); - __Pyx_INCREF(__pyx_t_3); - #else - __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_3 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_11 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1098, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_11); - index = 0; __pyx_t_8 = __pyx_t_9(__pyx_t_11); if (unlikely(!__pyx_t_8)) goto __pyx_L30_unpacking_failed; - __Pyx_GOTREF(__pyx_t_8); - index = 1; __pyx_t_13 = __pyx_t_9(__pyx_t_11); if (unlikely(!__pyx_t_13)) goto __pyx_L30_unpacking_failed; - __Pyx_GOTREF(__pyx_t_13); - index = 2; __pyx_t_3 = __pyx_t_9(__pyx_t_11); if (unlikely(!__pyx_t_3)) goto __pyx_L30_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_11), 3) < 0) __PYX_ERR(0, 1098, __pyx_L1_error) - __pyx_t_9 = NULL; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - goto __pyx_L31_unpacking_done; - __pyx_L30_unpacking_failed:; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - __pyx_t_9 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 1098, __pyx_L1_error) - __pyx_L31_unpacking_done:; - } - __pyx_t_14 = __Pyx_PyInt_As_unsigned_int(__pyx_t_8); if (unlikely((__pyx_t_14 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1098, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_t_15 = __Pyx_PyInt_As_unsigned_int(__pyx_t_13); if (unlikely((__pyx_t_15 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1098, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - __pyx_t_16 = __Pyx_PyInt_As_unsigned_int(__pyx_t_3); if (unlikely((__pyx_t_16 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1098, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_v_nid = __pyx_t_14; - __pyx_v_rid = __pyx_t_15; - __pyx_v_lid = __pyx_t_16; - - /* "tinyr.pyx":1099 - * - * for nid, rid, lid in node_record_leaf: - * filelike.write(' %d->%d [tailport=\"%d:s\"]\n' % ( nid, lid, rid )) # <<<<<<<<<<<<<< - * - * filelike.write('}') - */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s_write); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1099, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_13 = __Pyx_PyInt_From_unsigned_int(__pyx_v_nid); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1099, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_13); - __pyx_t_8 = __Pyx_PyInt_From_unsigned_int(__pyx_v_lid); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1099, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_11 = __Pyx_PyInt_From_unsigned_int(__pyx_v_rid); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1099, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1099, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_13); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13)) __PYX_ERR(0, 1099, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8)) __PYX_ERR(0, 1099, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_11); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_11)) __PYX_ERR(0, 1099, __pyx_L1_error); - __pyx_t_13 = 0; - __pyx_t_8 = 0; - __pyx_t_11 = 0; - __pyx_t_11 = __Pyx_PyString_Format(__pyx_kp_s_d_d_tailport_d_s, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1099, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_7 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_11}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1099, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "tinyr.pyx":1098 - * filelike.write('\n') - * - * for nid, rid, lid in node_record_leaf: # <<<<<<<<<<<<<< - * filelike.write(' %d->%d [tailport=\"%d:s\"]\n' % ( nid, lid, rid )) - * - */ - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":1101 - * filelike.write(' %d->%d [tailport=\"%d:s\"]\n' % ( nid, lid, rid )) - * - * filelike.write('}') # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s_write); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = NULL; - __pyx_t_4 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_1))) { - __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); - if (likely(__pyx_t_3)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); - __Pyx_INCREF(__pyx_t_3); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_1, function); - __pyx_t_4 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_kp_s__5}; - __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4); - __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; - if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":1058 - * return coords[3]-coords[1] - * - * def to_dot(self, filelike): # <<<<<<<<<<<<<< - * '''Writes simple dot-code into filelike that represents the tree structure.''' - * cdef: - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_11); - __Pyx_XDECREF(__pyx_t_13); - __Pyx_AddTraceback("tinyr.RTreeInfo.to_dot", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_node); - __Pyx_XDECREF((PyObject *)__pyx_v_ir); - __Pyx_XDECREF((PyObject *)__pyx_v_cr); - __Pyx_XDECREF(__pyx_v_node_record_leaf); - __Pyx_XDECREF(__pyx_v_node_record_child); - __Pyx_XDECREF(__pyx_v_record); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_7__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_9RTreeInfo_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9RTreeInfo_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_7__reduce_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - if (unlikely(__pyx_nargs > 0)) { - __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;} - if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL; - __pyx_r = __pyx_pf_5tinyr_9RTreeInfo_6__reduce_cython__(((struct __pyx_obj_5tinyr_RTreeInfo *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_6__reduce_cython__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self) { - PyObject *__pyx_v_state = 0; - PyObject *__pyx_v__dict = 0; - int __pyx_v_use_setstate; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 1); - - /* "(tree fragment)":5 - * cdef object _dict - * cdef bint use_setstate - * state = (self.rtree,) # <<<<<<<<<<<<<< - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: - */ - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF((PyObject *)__pyx_v_self->rtree); - __Pyx_GIVEREF((PyObject *)__pyx_v_self->rtree); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->rtree))) __PYX_ERR(1, 5, __pyx_L1_error); - __pyx_v_state = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; - - /* "(tree fragment)":6 - * cdef bint use_setstate - * state = (self.rtree,) - * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< - * if _dict is not None: - * state += (_dict,) - */ - __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v__dict = __pyx_t_1; - __pyx_t_1 = 0; - - /* "(tree fragment)":7 - * state = (self.rtree,) - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: # <<<<<<<<<<<<<< - * state += (_dict,) - * use_setstate = True - */ - __pyx_t_2 = (__pyx_v__dict != Py_None); - if (__pyx_t_2) { - - /* "(tree fragment)":8 - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: - * state += (_dict,) # <<<<<<<<<<<<<< - * use_setstate = True - * else: - */ - __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_v__dict); - __Pyx_GIVEREF(__pyx_v__dict); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error); - __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3)); - __pyx_t_3 = 0; - - /* "(tree fragment)":9 - * if _dict is not None: - * state += (_dict,) - * use_setstate = True # <<<<<<<<<<<<<< - * else: - * use_setstate = self.rtree is not None - */ - __pyx_v_use_setstate = 1; - - /* "(tree fragment)":7 - * state = (self.rtree,) - * _dict = getattr(self, '__dict__', None) - * if _dict is not None: # <<<<<<<<<<<<<< - * state += (_dict,) - * use_setstate = True - */ - goto __pyx_L3; - } - - /* "(tree fragment)":11 - * use_setstate = True - * else: - * use_setstate = self.rtree is not None # <<<<<<<<<<<<<< - * if use_setstate: - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, None), state - */ - /*else*/ { - __pyx_t_2 = (((PyObject *)__pyx_v_self->rtree) != Py_None); - __pyx_v_use_setstate = __pyx_t_2; - } - __pyx_L3:; - - /* "(tree fragment)":12 - * else: - * use_setstate = self.rtree is not None - * if use_setstate: # <<<<<<<<<<<<<< - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, None), state - * else: - */ - if (__pyx_v_use_setstate) { - - /* "(tree fragment)":13 - * use_setstate = self.rtree is not None - * if use_setstate: - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, None), state # <<<<<<<<<<<<<< - * else: - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, state) - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_RTreeInfo); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_INCREF(__pyx_int_229190861); - __Pyx_GIVEREF(__pyx_int_229190861); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_229190861)) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_INCREF(Py_None); - __Pyx_GIVEREF(Py_None); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error); - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_state); - __Pyx_GIVEREF(__pyx_v_state); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_1 = 0; - __pyx_r = __pyx_t_4; - __pyx_t_4 = 0; - goto __pyx_L0; - - /* "(tree fragment)":12 - * else: - * use_setstate = self.rtree is not None - * if use_setstate: # <<<<<<<<<<<<<< - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, None), state - * else: - */ - } - - /* "(tree fragment)":15 - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, None), state - * else: - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, state) # <<<<<<<<<<<<<< - * def __setstate_cython__(self, __pyx_state): - * __pyx_unpickle_RTreeInfo__set_state(self, __pyx_state) - */ - /*else*/ { - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_RTreeInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error); - __Pyx_INCREF(__pyx_int_229190861); - __Pyx_GIVEREF(__pyx_int_229190861); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_229190861)) __PYX_ERR(1, 15, __pyx_L1_error); - __Pyx_INCREF(__pyx_v_state); - __Pyx_GIVEREF(__pyx_v_state); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_1); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_1 = 0; - __pyx_r = __pyx_t_3; - __pyx_t_3 = 0; - goto __pyx_L0; - } - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr.RTreeInfo.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v_state); - __Pyx_XDECREF(__pyx_v__dict); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":16 - * else: - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle_RTreeInfo__set_state(self, __pyx_state) - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_9__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_9RTreeInfo_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9RTreeInfo_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_9RTreeInfo_9__setstate_cython__(PyObject *__pyx_v_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[1] = {0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v___pyx_state = values[0]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.RTreeInfo.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_9RTreeInfo_8__setstate_cython__(((struct __pyx_obj_5tinyr_RTreeInfo *)__pyx_v_self), __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_9RTreeInfo_8__setstate_cython__(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v_self, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 1); - - /* "(tree fragment)":17 - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, state) - * def __setstate_cython__(self, __pyx_state): - * __pyx_unpickle_RTreeInfo__set_state(self, __pyx_state) # <<<<<<<<<<<<<< - */ - if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error) - __pyx_t_1 = __pyx_f_5tinyr___pyx_unpickle_RTreeInfo__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "(tree fragment)":16 - * else: - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle_RTreeInfo__set_state(self, __pyx_state) - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("tinyr.RTreeInfo.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __pyx_unpickle__Record(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_1__pyx_unpickle__Record(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_1__pyx_unpickle__Record = {"__pyx_unpickle__Record", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_1__pyx_unpickle__Record, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_1__pyx_unpickle__Record(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v___pyx_type = 0; - long __pyx_v___pyx_checksum; - PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__pyx_unpickle__Record (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__Record", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__Record", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle__Record") < 0)) __PYX_ERR(1, 1, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - } - __pyx_v___pyx_type = values[0]; - __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - __pyx_v___pyx_state = values[2]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__Record", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.__pyx_unpickle__Record", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr___pyx_unpickle__Record(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr___pyx_unpickle__Record(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_v___pyx_PickleError = 0; - PyObject *__pyx_v___pyx_result = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__pyx_unpickle__Record", 1); - - /* "(tree fragment)":4 - * cdef object __pyx_PickleError - * cdef object __pyx_result - * if __pyx_checksum not in (0xd6fae5e, 0xd6626c4, 0xfb1b8c2): # <<<<<<<<<<<<<< - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xd6fae5e, 0xd6626c4, 0xfb1b8c2) = (coords))" % __pyx_checksum - */ - __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__6, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - - /* "(tree fragment)":5 - * cdef object __pyx_result - * if __pyx_checksum not in (0xd6fae5e, 0xd6626c4, 0xfb1b8c2): - * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xd6fae5e, 0xd6626c4, 0xfb1b8c2) = (coords))" % __pyx_checksum - * __pyx_result = _Record.__new__(__pyx_type) - */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_n_s_PickleError); - __Pyx_GIVEREF(__pyx_n_s_PickleError); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error); - __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_1); - __pyx_v___pyx_PickleError = __pyx_t_1; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":6 - * if __pyx_checksum not in (0xd6fae5e, 0xd6626c4, 0xfb1b8c2): - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xd6fae5e, 0xd6626c4, 0xfb1b8c2) = (coords))" % __pyx_checksum # <<<<<<<<<<<<<< - * __pyx_result = _Record.__new__(__pyx_type) - * if __pyx_state is not None: - */ - __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 6, __pyx_L1_error) - - /* "(tree fragment)":4 - * cdef object __pyx_PickleError - * cdef object __pyx_result - * if __pyx_checksum not in (0xd6fae5e, 0xd6626c4, 0xfb1b8c2): # <<<<<<<<<<<<<< - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xd6fae5e, 0xd6626c4, 0xfb1b8c2) = (coords))" % __pyx_checksum - */ - } - - /* "(tree fragment)":7 - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xd6fae5e, 0xd6626c4, 0xfb1b8c2) = (coords))" % __pyx_checksum - * __pyx_result = _Record.__new__(__pyx_type) # <<<<<<<<<<<<<< - * if __pyx_state is not None: - * __pyx_unpickle__Record__set_state(<_Record> __pyx_result, __pyx_state) - */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_5tinyr__Record), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = NULL; - __pyx_t_5 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_5 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - __pyx_v___pyx_result = __pyx_t_1; - __pyx_t_1 = 0; - - /* "(tree fragment)":8 - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xd6fae5e, 0xd6626c4, 0xfb1b8c2) = (coords))" % __pyx_checksum - * __pyx_result = _Record.__new__(__pyx_type) - * if __pyx_state is not None: # <<<<<<<<<<<<<< - * __pyx_unpickle__Record__set_state(<_Record> __pyx_result, __pyx_state) - * return __pyx_result - */ - __pyx_t_2 = (__pyx_v___pyx_state != Py_None); - if (__pyx_t_2) { - - /* "(tree fragment)":9 - * __pyx_result = _Record.__new__(__pyx_type) - * if __pyx_state is not None: - * __pyx_unpickle__Record__set_state(<_Record> __pyx_result, __pyx_state) # <<<<<<<<<<<<<< - * return __pyx_result - * cdef __pyx_unpickle__Record__set_state(_Record __pyx_result, tuple __pyx_state): - */ - if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error) - __pyx_t_1 = __pyx_f_5tinyr___pyx_unpickle__Record__set_state(((struct __pyx_obj_5tinyr__Record *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "(tree fragment)":8 - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xd6fae5e, 0xd6626c4, 0xfb1b8c2) = (coords))" % __pyx_checksum - * __pyx_result = _Record.__new__(__pyx_type) - * if __pyx_state is not None: # <<<<<<<<<<<<<< - * __pyx_unpickle__Record__set_state(<_Record> __pyx_result, __pyx_state) - * return __pyx_result - */ - } - - /* "(tree fragment)":10 - * if __pyx_state is not None: - * __pyx_unpickle__Record__set_state(<_Record> __pyx_result, __pyx_state) - * return __pyx_result # <<<<<<<<<<<<<< - * cdef __pyx_unpickle__Record__set_state(_Record __pyx_result, tuple __pyx_state): - * __pyx_result.coords = __pyx_state[0] - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v___pyx_result); - __pyx_r = __pyx_v___pyx_result; - goto __pyx_L0; - - /* "(tree fragment)":1 - * def __pyx_unpickle__Record(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr.__pyx_unpickle__Record", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v___pyx_PickleError); - __Pyx_XDECREF(__pyx_v___pyx_result); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":11 - * __pyx_unpickle__Record__set_state(<_Record> __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle__Record__set_state(_Record __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.coords = __pyx_state[0] - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): - */ - -static PyObject *__pyx_f_5tinyr___pyx_unpickle__Record__set_state(struct __pyx_obj_5tinyr__Record *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __pyx_t_5tinyr_Dfloat __pyx_t_2[4]; - int __pyx_t_3; - Py_ssize_t __pyx_t_4; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - int __pyx_t_9; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__pyx_unpickle__Record__set_state", 1); - - /* "(tree fragment)":12 - * return __pyx_result - * cdef __pyx_unpickle__Record__set_state(_Record __pyx_result, tuple __pyx_state): - * __pyx_result.coords = __pyx_state[0] # <<<<<<<<<<<<<< - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): - * __pyx_result.__dict__.update(__pyx_state[1]) - */ - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 12, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((__Pyx_carray_from_py___pyx_t_5tinyr_Dfloat(__pyx_t_1, __pyx_t_2, 4) < 0))) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - memcpy(&(__pyx_v___pyx_result->coords[0]), __pyx_t_2, sizeof(__pyx_v___pyx_result->coords[0]) * (4)); - - /* "(tree fragment)":13 - * cdef __pyx_unpickle__Record__set_state(_Record __pyx_result, tuple __pyx_state): - * __pyx_result.coords = __pyx_state[0] - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< - * __pyx_result.__dict__.update(__pyx_state[1]) - */ - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 13, __pyx_L1_error) - } - __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error) - __pyx_t_5 = (__pyx_t_4 > 1); - if (__pyx_t_5) { - } else { - __pyx_t_3 = __pyx_t_5; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error) - __pyx_t_3 = __pyx_t_5; - __pyx_L4_bool_binop_done:; - if (__pyx_t_3) { - - /* "(tree fragment)":14 - * __pyx_result.coords = __pyx_state[0] - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): - * __pyx_result.__dict__.update(__pyx_state[1]) # <<<<<<<<<<<<<< - */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 14, __pyx_L1_error) - } - __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = NULL; - __pyx_t_9 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - __pyx_t_9 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "(tree fragment)":13 - * cdef __pyx_unpickle__Record__set_state(_Record __pyx_result, tuple __pyx_state): - * __pyx_result.coords = __pyx_state[0] - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< - * __pyx_result.__dict__.update(__pyx_state[1]) - */ - } - - /* "(tree fragment)":11 - * __pyx_unpickle__Record__set_state(<_Record> __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle__Record__set_state(_Record __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.coords = __pyx_state[0] - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("tinyr.__pyx_unpickle__Record__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __pyx_unpickle__ChildRecord(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_3__pyx_unpickle__ChildRecord(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_3__pyx_unpickle__ChildRecord = {"__pyx_unpickle__ChildRecord", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_3__pyx_unpickle__ChildRecord, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_3__pyx_unpickle__ChildRecord(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v___pyx_type = 0; - long __pyx_v___pyx_checksum; - PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__pyx_unpickle__ChildRecord (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__ChildRecord", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__ChildRecord", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle__ChildRecord") < 0)) __PYX_ERR(1, 1, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - } - __pyx_v___pyx_type = values[0]; - __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - __pyx_v___pyx_state = values[2]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle__ChildRecord", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.__pyx_unpickle__ChildRecord", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_2__pyx_unpickle__ChildRecord(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_2__pyx_unpickle__ChildRecord(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_v___pyx_PickleError = 0; - PyObject *__pyx_v___pyx_result = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__pyx_unpickle__ChildRecord", 1); - - /* "(tree fragment)":4 - * cdef object __pyx_PickleError - * cdef object __pyx_result - * if __pyx_checksum not in (0x9d7f65c, 0xaab32ac, 0xcaebb2a): # <<<<<<<<<<<<<< - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9d7f65c, 0xaab32ac, 0xcaebb2a) = (coords, identifier))" % __pyx_checksum - */ - __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__8, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - - /* "(tree fragment)":5 - * cdef object __pyx_result - * if __pyx_checksum not in (0x9d7f65c, 0xaab32ac, 0xcaebb2a): - * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9d7f65c, 0xaab32ac, 0xcaebb2a) = (coords, identifier))" % __pyx_checksum - * __pyx_result = _ChildRecord.__new__(__pyx_type) - */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_n_s_PickleError); - __Pyx_GIVEREF(__pyx_n_s_PickleError); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error); - __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_1); - __pyx_v___pyx_PickleError = __pyx_t_1; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":6 - * if __pyx_checksum not in (0x9d7f65c, 0xaab32ac, 0xcaebb2a): - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9d7f65c, 0xaab32ac, 0xcaebb2a) = (coords, identifier))" % __pyx_checksum # <<<<<<<<<<<<<< - * __pyx_result = _ChildRecord.__new__(__pyx_type) - * if __pyx_state is not None: - */ - __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 6, __pyx_L1_error) - - /* "(tree fragment)":4 - * cdef object __pyx_PickleError - * cdef object __pyx_result - * if __pyx_checksum not in (0x9d7f65c, 0xaab32ac, 0xcaebb2a): # <<<<<<<<<<<<<< - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9d7f65c, 0xaab32ac, 0xcaebb2a) = (coords, identifier))" % __pyx_checksum - */ - } - - /* "(tree fragment)":7 - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9d7f65c, 0xaab32ac, 0xcaebb2a) = (coords, identifier))" % __pyx_checksum - * __pyx_result = _ChildRecord.__new__(__pyx_type) # <<<<<<<<<<<<<< - * if __pyx_state is not None: - * __pyx_unpickle__ChildRecord__set_state(<_ChildRecord> __pyx_result, __pyx_state) - */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_5tinyr__ChildRecord), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = NULL; - __pyx_t_5 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_5 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - __pyx_v___pyx_result = __pyx_t_1; - __pyx_t_1 = 0; - - /* "(tree fragment)":8 - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9d7f65c, 0xaab32ac, 0xcaebb2a) = (coords, identifier))" % __pyx_checksum - * __pyx_result = _ChildRecord.__new__(__pyx_type) - * if __pyx_state is not None: # <<<<<<<<<<<<<< - * __pyx_unpickle__ChildRecord__set_state(<_ChildRecord> __pyx_result, __pyx_state) - * return __pyx_result - */ - __pyx_t_2 = (__pyx_v___pyx_state != Py_None); - if (__pyx_t_2) { - - /* "(tree fragment)":9 - * __pyx_result = _ChildRecord.__new__(__pyx_type) - * if __pyx_state is not None: - * __pyx_unpickle__ChildRecord__set_state(<_ChildRecord> __pyx_result, __pyx_state) # <<<<<<<<<<<<<< - * return __pyx_result - * cdef __pyx_unpickle__ChildRecord__set_state(_ChildRecord __pyx_result, tuple __pyx_state): - */ - if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error) - __pyx_t_1 = __pyx_f_5tinyr___pyx_unpickle__ChildRecord__set_state(((struct __pyx_obj_5tinyr__ChildRecord *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "(tree fragment)":8 - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9d7f65c, 0xaab32ac, 0xcaebb2a) = (coords, identifier))" % __pyx_checksum - * __pyx_result = _ChildRecord.__new__(__pyx_type) - * if __pyx_state is not None: # <<<<<<<<<<<<<< - * __pyx_unpickle__ChildRecord__set_state(<_ChildRecord> __pyx_result, __pyx_state) - * return __pyx_result - */ - } - - /* "(tree fragment)":10 - * if __pyx_state is not None: - * __pyx_unpickle__ChildRecord__set_state(<_ChildRecord> __pyx_result, __pyx_state) - * return __pyx_result # <<<<<<<<<<<<<< - * cdef __pyx_unpickle__ChildRecord__set_state(_ChildRecord __pyx_result, tuple __pyx_state): - * __pyx_result.coords = __pyx_state[0]; __pyx_result.identifier = __pyx_state[1] - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v___pyx_result); - __pyx_r = __pyx_v___pyx_result; - goto __pyx_L0; - - /* "(tree fragment)":1 - * def __pyx_unpickle__ChildRecord(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr.__pyx_unpickle__ChildRecord", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v___pyx_PickleError); - __Pyx_XDECREF(__pyx_v___pyx_result); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":11 - * __pyx_unpickle__ChildRecord__set_state(<_ChildRecord> __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle__ChildRecord__set_state(_ChildRecord __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.coords = __pyx_state[0]; __pyx_result.identifier = __pyx_state[1] - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): - */ - -static PyObject *__pyx_f_5tinyr___pyx_unpickle__ChildRecord__set_state(struct __pyx_obj_5tinyr__ChildRecord *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - __pyx_t_5tinyr_Dfloat __pyx_t_2[4]; - int __pyx_t_3; - Py_ssize_t __pyx_t_4; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; - int __pyx_t_9; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__pyx_unpickle__ChildRecord__set_state", 1); - - /* "(tree fragment)":12 - * return __pyx_result - * cdef __pyx_unpickle__ChildRecord__set_state(_ChildRecord __pyx_result, tuple __pyx_state): - * __pyx_result.coords = __pyx_state[0]; __pyx_result.identifier = __pyx_state[1] # <<<<<<<<<<<<<< - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): - * __pyx_result.__dict__.update(__pyx_state[2]) - */ - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 12, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (unlikely((__Pyx_carray_from_py___pyx_t_5tinyr_Dfloat(__pyx_t_1, __pyx_t_2, 4) < 0))) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - memcpy(&(__pyx_v___pyx_result->__pyx_base.coords[0]), __pyx_t_2, sizeof(__pyx_v___pyx_result->__pyx_base.coords[0]) * (4)); - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 12, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF(__pyx_v___pyx_result->identifier); - __Pyx_DECREF(__pyx_v___pyx_result->identifier); - __pyx_v___pyx_result->identifier = __pyx_t_1; - __pyx_t_1 = 0; - - /* "(tree fragment)":13 - * cdef __pyx_unpickle__ChildRecord__set_state(_ChildRecord __pyx_result, tuple __pyx_state): - * __pyx_result.coords = __pyx_state[0]; __pyx_result.identifier = __pyx_state[1] - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< - * __pyx_result.__dict__.update(__pyx_state[2]) - */ - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 13, __pyx_L1_error) - } - __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error) - __pyx_t_5 = (__pyx_t_4 > 2); - if (__pyx_t_5) { - } else { - __pyx_t_3 = __pyx_t_5; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error) - __pyx_t_3 = __pyx_t_5; - __pyx_L4_bool_binop_done:; - if (__pyx_t_3) { - - /* "(tree fragment)":14 - * __pyx_result.coords = __pyx_state[0]; __pyx_result.identifier = __pyx_state[1] - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): - * __pyx_result.__dict__.update(__pyx_state[2]) # <<<<<<<<<<<<<< - */ - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 14, __pyx_L1_error) - } - __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_8 = NULL; - __pyx_t_9 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_7))) { - __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); - if (likely(__pyx_t_8)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_7, function); - __pyx_t_9 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "(tree fragment)":13 - * cdef __pyx_unpickle__ChildRecord__set_state(_ChildRecord __pyx_result, tuple __pyx_state): - * __pyx_result.coords = __pyx_state[0]; __pyx_result.identifier = __pyx_state[1] - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< - * __pyx_result.__dict__.update(__pyx_state[2]) - */ - } - - /* "(tree fragment)":11 - * __pyx_unpickle__ChildRecord__set_state(<_ChildRecord> __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle__ChildRecord__set_state(_ChildRecord __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.coords = __pyx_state[0]; __pyx_result.identifier = __pyx_state[1] - * if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_AddTraceback("tinyr.__pyx_unpickle__ChildRecord__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":1 - * def __pyx_unpickle_RTreeInfo(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - -/* Python wrapper */ -static PyObject *__pyx_pw_5tinyr_5__pyx_unpickle_RTreeInfo(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -static PyMethodDef __pyx_mdef_5tinyr_5__pyx_unpickle_RTreeInfo = {"__pyx_unpickle_RTreeInfo", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5__pyx_unpickle_RTreeInfo, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}; -static PyObject *__pyx_pw_5tinyr_5__pyx_unpickle_RTreeInfo(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyObject *__pyx_v___pyx_type = 0; - long __pyx_v___pyx_checksum; - PyObject *__pyx_v___pyx_state = 0; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - PyObject* values[3] = {0,0,0}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__pyx_unpickle_RTreeInfo (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RTreeInfo", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RTreeInfo", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_RTreeInfo") < 0)) __PYX_ERR(1, 1, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - } - __pyx_v___pyx_type = values[0]; - __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error) - __pyx_v___pyx_state = values[2]; - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RTreeInfo", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("tinyr.__pyx_unpickle_RTreeInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - __pyx_r = __pyx_pf_5tinyr_4__pyx_unpickle_RTreeInfo(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); - - /* function exit code */ - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5tinyr_4__pyx_unpickle_RTreeInfo(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_v___pyx_PickleError = 0; - PyObject *__pyx_v___pyx_result = 0; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__pyx_unpickle_RTreeInfo", 1); - - /* "(tree fragment)":4 - * cdef object __pyx_PickleError - * cdef object __pyx_result - * if __pyx_checksum not in (0xda92ccd, 0x4106bf8, 0x9a335a4): # <<<<<<<<<<<<<< - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xda92ccd, 0x4106bf8, 0x9a335a4) = (rtree))" % __pyx_checksum - */ - __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__9, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { - - /* "(tree fragment)":5 - * cdef object __pyx_result - * if __pyx_checksum not in (0xda92ccd, 0x4106bf8, 0x9a335a4): - * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xda92ccd, 0x4106bf8, 0x9a335a4) = (rtree))" % __pyx_checksum - * __pyx_result = RTreeInfo.__new__(__pyx_type) - */ - __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_n_s_PickleError); - __Pyx_GIVEREF(__pyx_n_s_PickleError); - if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error); - __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_INCREF(__pyx_t_1); - __pyx_v___pyx_PickleError = __pyx_t_1; - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":6 - * if __pyx_checksum not in (0xda92ccd, 0x4106bf8, 0x9a335a4): - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xda92ccd, 0x4106bf8, 0x9a335a4) = (rtree))" % __pyx_checksum # <<<<<<<<<<<<<< - * __pyx_result = RTreeInfo.__new__(__pyx_type) - * if __pyx_state is not None: - */ - __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __PYX_ERR(1, 6, __pyx_L1_error) - - /* "(tree fragment)":4 - * cdef object __pyx_PickleError - * cdef object __pyx_result - * if __pyx_checksum not in (0xda92ccd, 0x4106bf8, 0x9a335a4): # <<<<<<<<<<<<<< - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xda92ccd, 0x4106bf8, 0x9a335a4) = (rtree))" % __pyx_checksum - */ - } - - /* "(tree fragment)":7 - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xda92ccd, 0x4106bf8, 0x9a335a4) = (rtree))" % __pyx_checksum - * __pyx_result = RTreeInfo.__new__(__pyx_type) # <<<<<<<<<<<<<< - * if __pyx_state is not None: - * __pyx_unpickle_RTreeInfo__set_state( __pyx_result, __pyx_state) - */ - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_5tinyr_RTreeInfo), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = NULL; - __pyx_t_5 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_3))) { - __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); - if (likely(__pyx_t_4)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); - __Pyx_INCREF(__pyx_t_4); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_3, function); - __pyx_t_5 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - __pyx_v___pyx_result = __pyx_t_1; - __pyx_t_1 = 0; - - /* "(tree fragment)":8 - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xda92ccd, 0x4106bf8, 0x9a335a4) = (rtree))" % __pyx_checksum - * __pyx_result = RTreeInfo.__new__(__pyx_type) - * if __pyx_state is not None: # <<<<<<<<<<<<<< - * __pyx_unpickle_RTreeInfo__set_state( __pyx_result, __pyx_state) - * return __pyx_result - */ - __pyx_t_2 = (__pyx_v___pyx_state != Py_None); - if (__pyx_t_2) { - - /* "(tree fragment)":9 - * __pyx_result = RTreeInfo.__new__(__pyx_type) - * if __pyx_state is not None: - * __pyx_unpickle_RTreeInfo__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< - * return __pyx_result - * cdef __pyx_unpickle_RTreeInfo__set_state(RTreeInfo __pyx_result, tuple __pyx_state): - */ - if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error) - __pyx_t_1 = __pyx_f_5tinyr___pyx_unpickle_RTreeInfo__set_state(((struct __pyx_obj_5tinyr_RTreeInfo *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "(tree fragment)":8 - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xda92ccd, 0x4106bf8, 0x9a335a4) = (rtree))" % __pyx_checksum - * __pyx_result = RTreeInfo.__new__(__pyx_type) - * if __pyx_state is not None: # <<<<<<<<<<<<<< - * __pyx_unpickle_RTreeInfo__set_state( __pyx_result, __pyx_state) - * return __pyx_result - */ - } - - /* "(tree fragment)":10 - * if __pyx_state is not None: - * __pyx_unpickle_RTreeInfo__set_state( __pyx_result, __pyx_state) - * return __pyx_result # <<<<<<<<<<<<<< - * cdef __pyx_unpickle_RTreeInfo__set_state(RTreeInfo __pyx_result, tuple __pyx_state): - * __pyx_result.rtree = __pyx_state[0] - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(__pyx_v___pyx_result); - __pyx_r = __pyx_v___pyx_result; - goto __pyx_L0; - - /* "(tree fragment)":1 - * def __pyx_unpickle_RTreeInfo(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_AddTraceback("tinyr.__pyx_unpickle_RTreeInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF(__pyx_v___pyx_PickleError); - __Pyx_XDECREF(__pyx_v___pyx_result); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -/* "(tree fragment)":11 - * __pyx_unpickle_RTreeInfo__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_RTreeInfo__set_state(RTreeInfo __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.rtree = __pyx_state[0] - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): - */ - -static PyObject *__pyx_f_5tinyr___pyx_unpickle_RTreeInfo__set_state(struct __pyx_obj_5tinyr_RTreeInfo *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; - Py_ssize_t __pyx_t_3; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - int __pyx_t_8; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__pyx_unpickle_RTreeInfo__set_state", 1); - - /* "(tree fragment)":12 - * return __pyx_result - * cdef __pyx_unpickle_RTreeInfo__set_state(RTreeInfo __pyx_result, tuple __pyx_state): - * __pyx_result.rtree = __pyx_state[0] # <<<<<<<<<<<<<< - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): - * __pyx_result.__dict__.update(__pyx_state[1]) - */ - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 12, __pyx_L1_error) - } - __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5tinyr_RTree))))) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_GIVEREF(__pyx_t_1); - __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->rtree); - __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->rtree); - __pyx_v___pyx_result->rtree = ((struct __pyx_obj_5tinyr_RTree *)__pyx_t_1); - __pyx_t_1 = 0; - - /* "(tree fragment)":13 - * cdef __pyx_unpickle_RTreeInfo__set_state(RTreeInfo __pyx_result, tuple __pyx_state): - * __pyx_result.rtree = __pyx_state[0] - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< - * __pyx_result.__dict__.update(__pyx_state[1]) - */ - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); - __PYX_ERR(1, 13, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error) - __pyx_t_4 = (__pyx_t_3 > 1); - if (__pyx_t_4) { - } else { - __pyx_t_2 = __pyx_t_4; - goto __pyx_L4_bool_binop_done; - } - __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error) - __pyx_t_2 = __pyx_t_4; - __pyx_L4_bool_binop_done:; - if (__pyx_t_2) { - - /* "(tree fragment)":14 - * __pyx_result.rtree = __pyx_state[0] - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): - * __pyx_result.__dict__.update(__pyx_state[1]) # <<<<<<<<<<<<<< - */ - __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(__pyx_v___pyx_state == Py_None)) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); - __PYX_ERR(1, 14, __pyx_L1_error) - } - __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_7 = NULL; - __pyx_t_8 = 0; - #if CYTHON_UNPACK_METHODS - if (likely(PyMethod_Check(__pyx_t_6))) { - __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); - if (likely(__pyx_t_7)) { - PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(function); - __Pyx_DECREF_SET(__pyx_t_6, function); - __pyx_t_8 = 1; - } - } - #endif - { - PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5}; - __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8); - __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - /* "(tree fragment)":13 - * cdef __pyx_unpickle_RTreeInfo__set_state(RTreeInfo __pyx_result, tuple __pyx_state): - * __pyx_result.rtree = __pyx_state[0] - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< - * __pyx_result.__dict__.update(__pyx_state[1]) - */ - } - - /* "(tree fragment)":11 - * __pyx_unpickle_RTreeInfo__set_state( __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle_RTreeInfo__set_state(RTreeInfo __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.rtree = __pyx_state[0] - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): - */ - - /* function exit code */ - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_XDECREF(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_XDECREF(__pyx_t_7); - __Pyx_AddTraceback("tinyr.__pyx_unpickle_RTreeInfo__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = 0; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} -static struct __pyx_vtabstruct_5tinyr__Record __pyx_vtable_5tinyr__Record; - -static PyObject *__pyx_tp_new_5tinyr__Record(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - struct __pyx_obj_5tinyr__Record *p; - PyObject *o; - #if CYTHON_COMPILING_IN_LIMITED_API - allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); - o = alloc_func(t, 0); - #else - if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { - o = (*t->tp_alloc)(t, 0); - } else { - o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); - } - if (unlikely(!o)) return 0; - #endif - p = ((struct __pyx_obj_5tinyr__Record *)o); - p->__pyx_vtab = __pyx_vtabptr_5tinyr__Record; - return o; -} - -static void __pyx_tp_dealloc_5tinyr__Record(PyObject *o) { - #if CYTHON_USE_TP_FINALIZE - if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { - if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5tinyr__Record) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - } - #endif - #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY - (*Py_TYPE(o)->tp_free)(o); - #else - { - freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free); - if (tp_free) tp_free(o); - } - #endif -} - -static PyMethodDef __pyx_methods_5tinyr__Record[] = { - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_7_Record_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_7_Record_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__Record_slots[] = { - {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5tinyr__Record}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__Record}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__Record}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__Record_spec = { - "tinyr._Record", - sizeof(struct __pyx_obj_5tinyr__Record), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, - __pyx_type_5tinyr__Record_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__Record = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_Record", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__Record), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__Record, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ - 0, /*tp_doc*/ - 0, /*tp_traverse*/ - 0, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_5tinyr__Record, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__Record, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif -static struct __pyx_vtabstruct_5tinyr__ChildRecord __pyx_vtable_5tinyr__ChildRecord; - -static PyObject *__pyx_tp_new_5tinyr__ChildRecord(PyTypeObject *t, PyObject *a, PyObject *k) { - struct __pyx_obj_5tinyr__ChildRecord *p; - PyObject *o = __pyx_tp_new_5tinyr__Record(t, a, k); - if (unlikely(!o)) return 0; - p = ((struct __pyx_obj_5tinyr__ChildRecord *)o); - p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5tinyr__Record*)__pyx_vtabptr_5tinyr__ChildRecord; - p->identifier = Py_None; Py_INCREF(Py_None); - return o; -} - -static void __pyx_tp_dealloc_5tinyr__ChildRecord(PyObject *o) { - struct __pyx_obj_5tinyr__ChildRecord *p = (struct __pyx_obj_5tinyr__ChildRecord *)o; - #if CYTHON_USE_TP_FINALIZE - if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { - if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5tinyr__ChildRecord) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - } - #endif - PyObject_GC_UnTrack(o); - Py_CLEAR(p->identifier); - __pyx_tp_dealloc_5tinyr__Record(o); -} - -static int __pyx_tp_traverse_5tinyr__ChildRecord(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_5tinyr__ChildRecord *p = (struct __pyx_obj_5tinyr__ChildRecord *)o; - e = ((likely(__pyx_ptype_5tinyr__Record)) ? ((__pyx_ptype_5tinyr__Record->tp_traverse) ? __pyx_ptype_5tinyr__Record->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_5tinyr__ChildRecord)); if (e) return e; - if (p->identifier) { - e = (*v)(p->identifier, a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_5tinyr__ChildRecord(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_5tinyr__ChildRecord *p = (struct __pyx_obj_5tinyr__ChildRecord *)o; - if (likely(__pyx_ptype_5tinyr__Record)) { if (__pyx_ptype_5tinyr__Record->tp_clear) __pyx_ptype_5tinyr__Record->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_5tinyr__ChildRecord); - tmp = ((PyObject*)p->identifier); - p->identifier = Py_None; Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static PyMethodDef __pyx_methods_5tinyr__ChildRecord[] = { - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_12_ChildRecord_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_12_ChildRecord_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__ChildRecord_slots[] = { - {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5tinyr__ChildRecord}, - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr__ChildRecord}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr__ChildRecord}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__ChildRecord}, - {Py_tp_init, (void *)__pyx_pw_5tinyr_12_ChildRecord_1__init__}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__ChildRecord}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__ChildRecord_spec = { - "tinyr._ChildRecord", - sizeof(struct __pyx_obj_5tinyr__ChildRecord), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr__ChildRecord_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__ChildRecord = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_ChildRecord", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__ChildRecord), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__ChildRecord, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_5tinyr__ChildRecord, /*tp_traverse*/ - __pyx_tp_clear_5tinyr__ChildRecord, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_5tinyr__ChildRecord, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - __pyx_pw_5tinyr_12_ChildRecord_1__init__, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__ChildRecord, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif -static struct __pyx_vtabstruct_5tinyr__InnerRecord __pyx_vtable_5tinyr__InnerRecord; - -static PyObject *__pyx_tp_new_5tinyr__InnerRecord(PyTypeObject *t, PyObject *a, PyObject *k) { - struct __pyx_obj_5tinyr__InnerRecord *p; - PyObject *o = __pyx_tp_new_5tinyr__Record(t, a, k); - if (unlikely(!o)) return 0; - p = ((struct __pyx_obj_5tinyr__InnerRecord *)o); - p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_5tinyr__Record*)__pyx_vtabptr_5tinyr__InnerRecord; - p->child = ((struct __pyx_obj_5tinyr__Node *)Py_None); Py_INCREF(Py_None); - if (unlikely(__pyx_pw_5tinyr_12_InnerRecord_1__cinit__(o, a, k) < 0)) goto bad; - return o; - bad: - Py_DECREF(o); o = 0; - return NULL; -} - -static void __pyx_tp_dealloc_5tinyr__InnerRecord(PyObject *o) { - struct __pyx_obj_5tinyr__InnerRecord *p = (struct __pyx_obj_5tinyr__InnerRecord *)o; - #if CYTHON_USE_TP_FINALIZE - if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { - if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5tinyr__InnerRecord) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - } - #endif - PyObject_GC_UnTrack(o); - Py_CLEAR(p->child); - __pyx_tp_dealloc_5tinyr__Record(o); -} - -static int __pyx_tp_traverse_5tinyr__InnerRecord(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_5tinyr__InnerRecord *p = (struct __pyx_obj_5tinyr__InnerRecord *)o; - e = ((likely(__pyx_ptype_5tinyr__Record)) ? ((__pyx_ptype_5tinyr__Record->tp_traverse) ? __pyx_ptype_5tinyr__Record->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_5tinyr__InnerRecord)); if (e) return e; - if (p->child) { - e = (*v)(((PyObject *)p->child), a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_5tinyr__InnerRecord(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_5tinyr__InnerRecord *p = (struct __pyx_obj_5tinyr__InnerRecord *)o; - if (likely(__pyx_ptype_5tinyr__Record)) { if (__pyx_ptype_5tinyr__Record->tp_clear) __pyx_ptype_5tinyr__Record->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_5tinyr__InnerRecord); - tmp = ((PyObject*)p->child); - p->child = ((struct __pyx_obj_5tinyr__Node *)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static PyMethodDef __pyx_methods_5tinyr__InnerRecord[] = { - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_12_InnerRecord_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_12_InnerRecord_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__InnerRecord_slots[] = { - {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5tinyr__InnerRecord}, - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr__InnerRecord}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr__InnerRecord}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__InnerRecord}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__InnerRecord}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__InnerRecord_spec = { - "tinyr._InnerRecord", - sizeof(struct __pyx_obj_5tinyr__InnerRecord), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr__InnerRecord_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__InnerRecord = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_InnerRecord", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__InnerRecord), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__InnerRecord, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_5tinyr__InnerRecord, /*tp_traverse*/ - __pyx_tp_clear_5tinyr__InnerRecord, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_5tinyr__InnerRecord, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__InnerRecord, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif -static struct __pyx_vtabstruct_5tinyr__Node __pyx_vtable_5tinyr__Node; - -static PyObject *__pyx_tp_new_5tinyr__Node(PyTypeObject *t, PyObject *a, PyObject *k) { - struct __pyx_obj_5tinyr__Node *p; - PyObject *o; - #if CYTHON_COMPILING_IN_LIMITED_API - allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); - o = alloc_func(t, 0); - #else - if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { - o = (*t->tp_alloc)(t, 0); - } else { - o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); - } - if (unlikely(!o)) return 0; - #endif - p = ((struct __pyx_obj_5tinyr__Node *)o); - p->__pyx_vtab = __pyx_vtabptr_5tinyr__Node; - p->parent = ((struct __pyx_obj_5tinyr__Node *)Py_None); Py_INCREF(Py_None); - p->records = ((PyObject*)Py_None); Py_INCREF(Py_None); - if (unlikely(__pyx_pw_5tinyr_5_Node_1__cinit__(o, a, k) < 0)) goto bad; - return o; - bad: - Py_DECREF(o); o = 0; - return NULL; -} - -static void __pyx_tp_dealloc_5tinyr__Node(PyObject *o) { - struct __pyx_obj_5tinyr__Node *p = (struct __pyx_obj_5tinyr__Node *)o; - #if CYTHON_USE_TP_FINALIZE - if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { - if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5tinyr__Node) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - } - #endif - PyObject_GC_UnTrack(o); - Py_CLEAR(p->parent); - Py_CLEAR(p->records); - #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY - (*Py_TYPE(o)->tp_free)(o); - #else - { - freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free); - if (tp_free) tp_free(o); - } - #endif -} - -static int __pyx_tp_traverse_5tinyr__Node(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_5tinyr__Node *p = (struct __pyx_obj_5tinyr__Node *)o; - if (p->parent) { - e = (*v)(((PyObject *)p->parent), a); if (e) return e; - } - if (p->records) { - e = (*v)(p->records, a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_5tinyr__Node(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_5tinyr__Node *p = (struct __pyx_obj_5tinyr__Node *)o; - tmp = ((PyObject*)p->parent); - p->parent = ((struct __pyx_obj_5tinyr__Node *)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - tmp = ((PyObject*)p->records); - p->records = ((PyObject*)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static PyMethodDef __pyx_methods_5tinyr__Node[] = { - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5_Node_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5_Node_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__Node_slots[] = { - {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5tinyr__Node}, - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr__Node}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr__Node}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__Node}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__Node}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__Node_spec = { - "tinyr._Node", - sizeof(struct __pyx_obj_5tinyr__Node), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr__Node_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__Node = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_Node", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__Node), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__Node, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_5tinyr__Node, /*tp_traverse*/ - __pyx_tp_clear_5tinyr__Node, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_5tinyr__Node, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__Node, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif -static struct __pyx_vtabstruct_5tinyr_RTree __pyx_vtable_5tinyr_RTree; - -static PyObject *__pyx_tp_new_5tinyr_RTree(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - struct __pyx_obj_5tinyr_RTree *p; - PyObject *o; - #if CYTHON_COMPILING_IN_LIMITED_API - allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); - o = alloc_func(t, 0); - #else - if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { - o = (*t->tp_alloc)(t, 0); - } else { - o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); - } - if (unlikely(!o)) return 0; - #endif - p = ((struct __pyx_obj_5tinyr_RTree *)o); - p->__pyx_vtab = __pyx_vtabptr_5tinyr_RTree; - p->root = ((struct __pyx_obj_5tinyr__Node *)Py_None); Py_INCREF(Py_None); - if (unlikely(__pyx_pw_5tinyr_5RTree_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; - return o; - bad: - Py_DECREF(o); o = 0; - return NULL; -} - -static void __pyx_tp_dealloc_5tinyr_RTree(PyObject *o) { - struct __pyx_obj_5tinyr_RTree *p = (struct __pyx_obj_5tinyr_RTree *)o; - #if CYTHON_USE_TP_FINALIZE - if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { - if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5tinyr_RTree) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - } - #endif - PyObject_GC_UnTrack(o); - Py_CLEAR(p->root); - #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY - (*Py_TYPE(o)->tp_free)(o); - #else - { - freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free); - if (tp_free) tp_free(o); - } - #endif -} - -static int __pyx_tp_traverse_5tinyr_RTree(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_5tinyr_RTree *p = (struct __pyx_obj_5tinyr_RTree *)o; - if (p->root) { - e = (*v)(((PyObject *)p->root), a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_5tinyr_RTree(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_5tinyr_RTree *p = (struct __pyx_obj_5tinyr_RTree *)o; - tmp = ((PyObject*)p->root); - p->root = ((struct __pyx_obj_5tinyr__Node *)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} -static PyObject *__pyx_sq_item_5tinyr_RTree(PyObject *o, Py_ssize_t i) { - PyObject *r; - PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; - r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); - Py_DECREF(x); - return r; -} - -static PyObject *__pyx_getprop_5tinyr_5RTree_min_cap(PyObject *o, CYTHON_UNUSED void *x) { - return __pyx_pw_5tinyr_5RTree_7min_cap_1__get__(o); -} - -static PyObject *__pyx_getprop_5tinyr_5RTree_max_cap(PyObject *o, CYTHON_UNUSED void *x) { - return __pyx_pw_5tinyr_5RTree_7max_cap_1__get__(o); -} - -static PyMethodDef __pyx_methods_5tinyr_RTree[] = { - {"iterkeys", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_9iterkeys, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"itervalues", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_11itervalues, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"iteritems", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_13iteritems, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"get_info", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_15get_info, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"insert", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_17insert, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_5RTree_16insert}, - {"search", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_19search, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_5RTree_18search}, - {"copy", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_21copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"search_surrounding", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_23search_surrounding, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_5RTree_22search_surrounding}, - {"remove", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_25remove, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_5RTree_24remove}, - {"valid", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_27valid, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_29__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_5RTree_31__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; - -static struct PyGetSetDef __pyx_getsets_5tinyr_RTree[] = { - {(char *)"min_cap", __pyx_getprop_5tinyr_5RTree_min_cap, 0, (char *)0, 0}, - {(char *)"max_cap", __pyx_getprop_5tinyr_5RTree_max_cap, 0, (char *)0, 0}, - {0, 0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr_RTree_slots[] = { - {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5tinyr_RTree}, - {Py_sq_length, (void *)__pyx_pw_5tinyr_5RTree_5__len__}, - {Py_sq_item, (void *)__pyx_sq_item_5tinyr_RTree}, - {Py_mp_length, (void *)__pyx_pw_5tinyr_5RTree_5__len__}, - {Py_mp_subscript, (void *)__pyx_pw_5tinyr_5RTree_7__getitem__}, - {Py_tp_doc, (void *)PyDoc_STR("RTree - structure for 2D-indexed items.\n \n @param interleaved: It True, all methods that accept coordinates expect it to be in format (x1, y1, x2, y2). \n If False, coordinates are supposed to be (x1, x2, y1, y2)\n Default: True\n @param max_cap: Maximum of capacity of an index node. Default: 5\n @param min_cap: Minimum of entries an index node must hold. Default: 2\n ")}, - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr_RTree}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr_RTree}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr_RTree}, - {Py_tp_getset, (void *)__pyx_getsets_5tinyr_RTree}, - {Py_tp_init, (void *)__pyx_pw_5tinyr_5RTree_3__init__}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr_RTree}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr_RTree_spec = { - "tinyr.RTree", - sizeof(struct __pyx_obj_5tinyr_RTree), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr_RTree_slots, -}; -#else - -static PySequenceMethods __pyx_tp_as_sequence_RTree = { - __pyx_pw_5tinyr_5RTree_5__len__, /*sq_length*/ - 0, /*sq_concat*/ - 0, /*sq_repeat*/ - __pyx_sq_item_5tinyr_RTree, /*sq_item*/ - 0, /*sq_slice*/ - 0, /*sq_ass_item*/ - 0, /*sq_ass_slice*/ - 0, /*sq_contains*/ - 0, /*sq_inplace_concat*/ - 0, /*sq_inplace_repeat*/ -}; - -static PyMappingMethods __pyx_tp_as_mapping_RTree = { - __pyx_pw_5tinyr_5RTree_5__len__, /*mp_length*/ - __pyx_pw_5tinyr_5RTree_7__getitem__, /*mp_subscript*/ - 0, /*mp_ass_subscript*/ -}; - -static PyTypeObject __pyx_type_5tinyr_RTree = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""RTree", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr_RTree), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr_RTree, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - &__pyx_tp_as_sequence_RTree, /*tp_as_sequence*/ - &__pyx_tp_as_mapping_RTree, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - PyDoc_STR("RTree - structure for 2D-indexed items.\n \n @param interleaved: It True, all methods that accept coordinates expect it to be in format (x1, y1, x2, y2). \n If False, coordinates are supposed to be (x1, x2, y1, y2)\n Default: True\n @param max_cap: Maximum of capacity of an index node. Default: 5\n @param min_cap: Minimum of entries an index node must hold. Default: 2\n "), /*tp_doc*/ - __pyx_tp_traverse_5tinyr_RTree, /*tp_traverse*/ - __pyx_tp_clear_5tinyr_RTree, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_5tinyr_RTree, /*tp_methods*/ - 0, /*tp_members*/ - __pyx_getsets_5tinyr_RTree, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - __pyx_pw_5tinyr_5RTree_3__init__, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr_RTree, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif - -static PyObject *__pyx_tp_new_5tinyr__Iterator(PyTypeObject *t, PyObject *a, PyObject *k) { - struct __pyx_obj_5tinyr__Iterator *p; - PyObject *o; - #if CYTHON_COMPILING_IN_LIMITED_API - allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); - o = alloc_func(t, 0); - #else - if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { - o = (*t->tp_alloc)(t, 0); - } else { - o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); - } - if (unlikely(!o)) return 0; - #endif - p = ((struct __pyx_obj_5tinyr__Iterator *)o); - p->rtree = ((struct __pyx_obj_5tinyr_RTree *)Py_None); Py_INCREF(Py_None); - if (unlikely(__pyx_pw_5tinyr_9_Iterator_1__cinit__(o, a, k) < 0)) goto bad; - return o; - bad: - Py_DECREF(o); o = 0; - return NULL; -} - -static void __pyx_tp_dealloc_5tinyr__Iterator(PyObject *o) { - struct __pyx_obj_5tinyr__Iterator *p = (struct __pyx_obj_5tinyr__Iterator *)o; - #if CYTHON_USE_TP_FINALIZE - if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { - if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5tinyr__Iterator) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - } - #endif - PyObject_GC_UnTrack(o); - Py_CLEAR(p->rtree); - #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY - (*Py_TYPE(o)->tp_free)(o); - #else - { - freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free); - if (tp_free) tp_free(o); - } - #endif -} - -static int __pyx_tp_traverse_5tinyr__Iterator(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_5tinyr__Iterator *p = (struct __pyx_obj_5tinyr__Iterator *)o; - if (p->rtree) { - e = (*v)(((PyObject *)p->rtree), a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_5tinyr__Iterator(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_5tinyr__Iterator *p = (struct __pyx_obj_5tinyr__Iterator *)o; - tmp = ((PyObject*)p->rtree); - p->rtree = ((struct __pyx_obj_5tinyr_RTree *)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static PyMethodDef __pyx_methods_5tinyr__Iterator[] = { - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_Iterator_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_Iterator_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__Iterator_slots[] = { - {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5tinyr__Iterator}, - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr__Iterator}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr__Iterator}, - {Py_tp_iter, (void *)__pyx_pw_5tinyr_9_Iterator_3__iter__}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__Iterator}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__Iterator}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__Iterator_spec = { - "tinyr._Iterator", - sizeof(struct __pyx_obj_5tinyr__Iterator), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr__Iterator_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__Iterator = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_Iterator", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__Iterator), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__Iterator, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_5tinyr__Iterator, /*tp_traverse*/ - __pyx_tp_clear_5tinyr__Iterator, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - __pyx_pw_5tinyr_9_Iterator_3__iter__, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_5tinyr__Iterator, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__Iterator, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif - -static PyObject *__pyx_tp_new_5tinyr__ChildRecordIter(PyTypeObject *t, PyObject *a, PyObject *k) { - struct __pyx_obj_5tinyr__ChildRecordIter *p; - PyObject *o = __pyx_tp_new_5tinyr__Iterator(t, a, k); - if (unlikely(!o)) return 0; - p = ((struct __pyx_obj_5tinyr__ChildRecordIter *)o); - p->nodeset = ((PyObject*)Py_None); Py_INCREF(Py_None); - p->current_crs = ((PyObject*)Py_None); Py_INCREF(Py_None); - if (unlikely(__pyx_pw_5tinyr_16_ChildRecordIter_1__cinit__(o, a, k) < 0)) goto bad; - return o; - bad: - Py_DECREF(o); o = 0; - return NULL; -} - -static void __pyx_tp_dealloc_5tinyr__ChildRecordIter(PyObject *o) { - struct __pyx_obj_5tinyr__ChildRecordIter *p = (struct __pyx_obj_5tinyr__ChildRecordIter *)o; - #if CYTHON_USE_TP_FINALIZE - if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { - if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5tinyr__ChildRecordIter) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - } - #endif - PyObject_GC_UnTrack(o); - Py_CLEAR(p->nodeset); - Py_CLEAR(p->current_crs); - PyObject_GC_Track(o); - __pyx_tp_dealloc_5tinyr__Iterator(o); -} - -static int __pyx_tp_traverse_5tinyr__ChildRecordIter(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_5tinyr__ChildRecordIter *p = (struct __pyx_obj_5tinyr__ChildRecordIter *)o; - e = __pyx_tp_traverse_5tinyr__Iterator(o, v, a); if (e) return e; - if (p->nodeset) { - e = (*v)(p->nodeset, a); if (e) return e; - } - if (p->current_crs) { - e = (*v)(p->current_crs, a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_5tinyr__ChildRecordIter(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_5tinyr__ChildRecordIter *p = (struct __pyx_obj_5tinyr__ChildRecordIter *)o; - __pyx_tp_clear_5tinyr__Iterator(o); - tmp = ((PyObject*)p->nodeset); - p->nodeset = ((PyObject*)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - tmp = ((PyObject*)p->current_crs); - p->current_crs = ((PyObject*)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static PyObject *__pyx_specialmethod___pyx_pw_5tinyr_16_ChildRecordIter_3__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) { - PyObject *res = __pyx_pw_5tinyr_16_ChildRecordIter_3__next__(self); - if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); } - return res; -} - -static PyMethodDef __pyx_methods_5tinyr__ChildRecordIter[] = { - {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_5tinyr_16_ChildRecordIter_3__next__, METH_NOARGS|METH_COEXIST, 0}, - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_16_ChildRecordIter_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_16_ChildRecordIter_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__ChildRecordIter_slots[] = { - {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5tinyr__ChildRecordIter}, - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr__ChildRecordIter}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr__ChildRecordIter}, - {Py_tp_iternext, (void *)__pyx_pw_5tinyr_16_ChildRecordIter_3__next__}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__ChildRecordIter}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__ChildRecordIter}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__ChildRecordIter_spec = { - "tinyr._ChildRecordIter", - sizeof(struct __pyx_obj_5tinyr__ChildRecordIter), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr__ChildRecordIter_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__ChildRecordIter = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_ChildRecordIter", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__ChildRecordIter), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__ChildRecordIter, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_5tinyr__ChildRecordIter, /*tp_traverse*/ - __pyx_tp_clear_5tinyr__ChildRecordIter, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - #if CYTHON_COMPILING_IN_PYPY || 0 - __pyx_pw_5tinyr_9_Iterator_3__iter__, /*tp_iter*/ - #else - 0, /*tp_iter*/ - #endif - __pyx_pw_5tinyr_16_ChildRecordIter_3__next__, /*tp_iternext*/ - __pyx_methods_5tinyr__ChildRecordIter, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__ChildRecordIter, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif - -static PyObject *__pyx_tp_new_5tinyr__KVIIter(PyTypeObject *t, PyObject *a, PyObject *k) { - struct __pyx_obj_5tinyr__KVIIter *p; - PyObject *o = __pyx_tp_new_5tinyr__Iterator(t, a, k); - if (unlikely(!o)) return 0; - p = ((struct __pyx_obj_5tinyr__KVIIter *)o); - p->cri = ((struct __pyx_obj_5tinyr__ChildRecordIter *)Py_None); Py_INCREF(Py_None); - if (unlikely(__pyx_pw_5tinyr_8_KVIIter_1__cinit__(o, a, k) < 0)) goto bad; - return o; - bad: - Py_DECREF(o); o = 0; - return NULL; -} - -static void __pyx_tp_dealloc_5tinyr__KVIIter(PyObject *o) { - struct __pyx_obj_5tinyr__KVIIter *p = (struct __pyx_obj_5tinyr__KVIIter *)o; - #if CYTHON_USE_TP_FINALIZE - if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { - if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5tinyr__KVIIter) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - } - #endif - PyObject_GC_UnTrack(o); - Py_CLEAR(p->cri); - PyObject_GC_Track(o); - __pyx_tp_dealloc_5tinyr__Iterator(o); -} - -static int __pyx_tp_traverse_5tinyr__KVIIter(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_5tinyr__KVIIter *p = (struct __pyx_obj_5tinyr__KVIIter *)o; - e = __pyx_tp_traverse_5tinyr__Iterator(o, v, a); if (e) return e; - if (p->cri) { - e = (*v)(((PyObject *)p->cri), a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_5tinyr__KVIIter(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_5tinyr__KVIIter *p = (struct __pyx_obj_5tinyr__KVIIter *)o; - __pyx_tp_clear_5tinyr__Iterator(o); - tmp = ((PyObject*)p->cri); - p->cri = ((struct __pyx_obj_5tinyr__ChildRecordIter *)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static PyMethodDef __pyx_methods_5tinyr__KVIIter[] = { - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_8_KVIIter_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_8_KVIIter_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__KVIIter_slots[] = { - {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5tinyr__KVIIter}, - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr__KVIIter}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr__KVIIter}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__KVIIter}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__KVIIter}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__KVIIter_spec = { - "tinyr._KVIIter", - sizeof(struct __pyx_obj_5tinyr__KVIIter), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr__KVIIter_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__KVIIter = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_KVIIter", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__KVIIter), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__KVIIter, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_5tinyr__KVIIter, /*tp_traverse*/ - __pyx_tp_clear_5tinyr__KVIIter, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - #if CYTHON_COMPILING_IN_PYPY || 0 - __pyx_pw_5tinyr_9_Iterator_3__iter__, /*tp_iter*/ - #else - 0, /*tp_iter*/ - #endif - 0, /*tp_iternext*/ - __pyx_methods_5tinyr__KVIIter, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__KVIIter, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif - -static PyObject *__pyx_specialmethod___pyx_pw_5tinyr_9_KeysIter_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) { - PyObject *res = __pyx_pw_5tinyr_9_KeysIter_1__next__(self); - if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); } - return res; -} - -static PyMethodDef __pyx_methods_5tinyr__KeysIter[] = { - {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_5tinyr_9_KeysIter_1__next__, METH_NOARGS|METH_COEXIST, 0}, - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_KeysIter_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_KeysIter_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__KeysIter_slots[] = { - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr__KVIIter}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr__KVIIter}, - {Py_tp_iternext, (void *)__pyx_pw_5tinyr_9_KeysIter_1__next__}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__KeysIter}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__KVIIter}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__KeysIter_spec = { - "tinyr._KeysIter", - sizeof(struct __pyx_obj_5tinyr__KeysIter), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr__KeysIter_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__KeysIter = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_KeysIter", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__KeysIter), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__KVIIter, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_5tinyr__KVIIter, /*tp_traverse*/ - __pyx_tp_clear_5tinyr__KVIIter, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - #if CYTHON_COMPILING_IN_PYPY || 0 - __pyx_pw_5tinyr_9_Iterator_3__iter__, /*tp_iter*/ - #else - 0, /*tp_iter*/ - #endif - __pyx_pw_5tinyr_9_KeysIter_1__next__, /*tp_iternext*/ - __pyx_methods_5tinyr__KeysIter, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__KVIIter, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif - -static PyObject *__pyx_specialmethod___pyx_pw_5tinyr_11_ValuesIter_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) { - PyObject *res = __pyx_pw_5tinyr_11_ValuesIter_1__next__(self); - if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); } - return res; -} - -static PyMethodDef __pyx_methods_5tinyr__ValuesIter[] = { - {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_5tinyr_11_ValuesIter_1__next__, METH_NOARGS|METH_COEXIST, 0}, - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_11_ValuesIter_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_11_ValuesIter_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__ValuesIter_slots[] = { - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr__KVIIter}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr__KVIIter}, - {Py_tp_iternext, (void *)__pyx_pw_5tinyr_11_ValuesIter_1__next__}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__ValuesIter}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__KVIIter}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__ValuesIter_spec = { - "tinyr._ValuesIter", - sizeof(struct __pyx_obj_5tinyr__ValuesIter), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr__ValuesIter_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__ValuesIter = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_ValuesIter", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__ValuesIter), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__KVIIter, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_5tinyr__KVIIter, /*tp_traverse*/ - __pyx_tp_clear_5tinyr__KVIIter, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - #if CYTHON_COMPILING_IN_PYPY || 0 - __pyx_pw_5tinyr_9_Iterator_3__iter__, /*tp_iter*/ - #else - 0, /*tp_iter*/ - #endif - __pyx_pw_5tinyr_11_ValuesIter_1__next__, /*tp_iternext*/ - __pyx_methods_5tinyr__ValuesIter, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__KVIIter, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif - -static PyObject *__pyx_specialmethod___pyx_pw_5tinyr_10_ItemsIter_1__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) { - PyObject *res = __pyx_pw_5tinyr_10_ItemsIter_1__next__(self); - if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); } - return res; -} - -static PyMethodDef __pyx_methods_5tinyr__ItemsIter[] = { - {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_5tinyr_10_ItemsIter_1__next__, METH_NOARGS|METH_COEXIST, 0}, - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_10_ItemsIter_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_10_ItemsIter_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__ItemsIter_slots[] = { - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr__KVIIter}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr__KVIIter}, - {Py_tp_iternext, (void *)__pyx_pw_5tinyr_10_ItemsIter_1__next__}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__ItemsIter}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__KVIIter}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__ItemsIter_spec = { - "tinyr._ItemsIter", - sizeof(struct __pyx_obj_5tinyr__ItemsIter), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr__ItemsIter_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__ItemsIter = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_ItemsIter", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__ItemsIter), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__KVIIter, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_5tinyr__KVIIter, /*tp_traverse*/ - __pyx_tp_clear_5tinyr__KVIIter, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - #if CYTHON_COMPILING_IN_PYPY || 0 - __pyx_pw_5tinyr_9_Iterator_3__iter__, /*tp_iter*/ - #else - 0, /*tp_iter*/ - #endif - __pyx_pw_5tinyr_10_ItemsIter_1__next__, /*tp_iternext*/ - __pyx_methods_5tinyr__ItemsIter, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__KVIIter, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif - -static PyObject *__pyx_tp_new_5tinyr__NodeIter(PyTypeObject *t, PyObject *a, PyObject *k) { - struct __pyx_obj_5tinyr__NodeIter *p; - PyObject *o = __pyx_tp_new_5tinyr__Iterator(t, a, k); - if (unlikely(!o)) return 0; - p = ((struct __pyx_obj_5tinyr__NodeIter *)o); - p->nodeset = ((PyObject*)Py_None); Py_INCREF(Py_None); - if (unlikely(__pyx_pw_5tinyr_9_NodeIter_1__cinit__(o, a, k) < 0)) goto bad; - return o; - bad: - Py_DECREF(o); o = 0; - return NULL; -} - -static void __pyx_tp_dealloc_5tinyr__NodeIter(PyObject *o) { - struct __pyx_obj_5tinyr__NodeIter *p = (struct __pyx_obj_5tinyr__NodeIter *)o; - #if CYTHON_USE_TP_FINALIZE - if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { - if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5tinyr__NodeIter) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - } - #endif - PyObject_GC_UnTrack(o); - Py_CLEAR(p->nodeset); - PyObject_GC_Track(o); - __pyx_tp_dealloc_5tinyr__Iterator(o); -} - -static int __pyx_tp_traverse_5tinyr__NodeIter(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_5tinyr__NodeIter *p = (struct __pyx_obj_5tinyr__NodeIter *)o; - e = __pyx_tp_traverse_5tinyr__Iterator(o, v, a); if (e) return e; - if (p->nodeset) { - e = (*v)(p->nodeset, a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_5tinyr__NodeIter(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_5tinyr__NodeIter *p = (struct __pyx_obj_5tinyr__NodeIter *)o; - __pyx_tp_clear_5tinyr__Iterator(o); - tmp = ((PyObject*)p->nodeset); - p->nodeset = ((PyObject*)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static PyObject *__pyx_specialmethod___pyx_pw_5tinyr_9_NodeIter_3__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) { - PyObject *res = __pyx_pw_5tinyr_9_NodeIter_3__next__(self); - if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); } - return res; -} - -static PyMethodDef __pyx_methods_5tinyr__NodeIter[] = { - {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_5tinyr_9_NodeIter_3__next__, METH_NOARGS|METH_COEXIST, 0}, - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_NodeIter_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9_NodeIter_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__NodeIter_slots[] = { - {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5tinyr__NodeIter}, - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr__NodeIter}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr__NodeIter}, - {Py_tp_iternext, (void *)__pyx_pw_5tinyr_9_NodeIter_3__next__}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__NodeIter}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__NodeIter}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__NodeIter_spec = { - "tinyr._NodeIter", - sizeof(struct __pyx_obj_5tinyr__NodeIter), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr__NodeIter_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__NodeIter = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_NodeIter", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__NodeIter), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__NodeIter, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_5tinyr__NodeIter, /*tp_traverse*/ - __pyx_tp_clear_5tinyr__NodeIter, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - #if CYTHON_COMPILING_IN_PYPY || 0 - __pyx_pw_5tinyr_9_Iterator_3__iter__, /*tp_iter*/ - #else - 0, /*tp_iter*/ - #endif - __pyx_pw_5tinyr_9_NodeIter_3__next__, /*tp_iternext*/ - __pyx_methods_5tinyr__NodeIter, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__NodeIter, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif - -static PyObject *__pyx_tp_new_5tinyr__RectangleIter(PyTypeObject *t, PyObject *a, PyObject *k) { - struct __pyx_obj_5tinyr__RectangleIter *p; - PyObject *o = __pyx_tp_new_5tinyr__Iterator(t, a, k); - if (unlikely(!o)) return 0; - p = ((struct __pyx_obj_5tinyr__RectangleIter *)o); - p->ni = ((struct __pyx_obj_5tinyr__NodeIter *)Py_None); Py_INCREF(Py_None); - p->leafrecords = ((PyObject*)Py_None); Py_INCREF(Py_None); - if (unlikely(__pyx_pw_5tinyr_14_RectangleIter_1__cinit__(o, a, k) < 0)) goto bad; - return o; - bad: - Py_DECREF(o); o = 0; - return NULL; -} - -static void __pyx_tp_dealloc_5tinyr__RectangleIter(PyObject *o) { - struct __pyx_obj_5tinyr__RectangleIter *p = (struct __pyx_obj_5tinyr__RectangleIter *)o; - #if CYTHON_USE_TP_FINALIZE - if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { - if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5tinyr__RectangleIter) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - } - #endif - PyObject_GC_UnTrack(o); - Py_CLEAR(p->ni); - Py_CLEAR(p->leafrecords); - PyObject_GC_Track(o); - __pyx_tp_dealloc_5tinyr__Iterator(o); -} - -static int __pyx_tp_traverse_5tinyr__RectangleIter(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_5tinyr__RectangleIter *p = (struct __pyx_obj_5tinyr__RectangleIter *)o; - e = __pyx_tp_traverse_5tinyr__Iterator(o, v, a); if (e) return e; - if (p->ni) { - e = (*v)(((PyObject *)p->ni), a); if (e) return e; - } - if (p->leafrecords) { - e = (*v)(p->leafrecords, a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_5tinyr__RectangleIter(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_5tinyr__RectangleIter *p = (struct __pyx_obj_5tinyr__RectangleIter *)o; - __pyx_tp_clear_5tinyr__Iterator(o); - tmp = ((PyObject*)p->ni); - p->ni = ((struct __pyx_obj_5tinyr__NodeIter *)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - tmp = ((PyObject*)p->leafrecords); - p->leafrecords = ((PyObject*)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static PyObject *__pyx_specialmethod___pyx_pw_5tinyr_14_RectangleIter_3__next__(PyObject *self, CYTHON_UNUSED PyObject *arg) { - PyObject *res = __pyx_pw_5tinyr_14_RectangleIter_3__next__(self); - if (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); } - return res; -} - -static PyMethodDef __pyx_methods_5tinyr__RectangleIter[] = { - {"__next__", (PyCFunction)__pyx_specialmethod___pyx_pw_5tinyr_14_RectangleIter_3__next__, METH_NOARGS|METH_COEXIST, 0}, - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_14_RectangleIter_5__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_14_RectangleIter_7__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr__RectangleIter_slots[] = { - {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5tinyr__RectangleIter}, - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr__RectangleIter}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr__RectangleIter}, - {Py_tp_iternext, (void *)__pyx_pw_5tinyr_14_RectangleIter_3__next__}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr__RectangleIter}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr__RectangleIter}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr__RectangleIter_spec = { - "tinyr._RectangleIter", - sizeof(struct __pyx_obj_5tinyr__RectangleIter), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr__RectangleIter_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr__RectangleIter = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""_RectangleIter", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr__RectangleIter), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr__RectangleIter, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_5tinyr__RectangleIter, /*tp_traverse*/ - __pyx_tp_clear_5tinyr__RectangleIter, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - #if CYTHON_COMPILING_IN_PYPY || 0 - __pyx_pw_5tinyr_9_Iterator_3__iter__, /*tp_iter*/ - #else - 0, /*tp_iter*/ - #endif - __pyx_pw_5tinyr_14_RectangleIter_3__next__, /*tp_iternext*/ - __pyx_methods_5tinyr__RectangleIter, /*tp_methods*/ - 0, /*tp_members*/ - 0, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - 0, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr__RectangleIter, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif - -static PyObject *__pyx_tp_new_5tinyr_RTreeInfo(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - struct __pyx_obj_5tinyr_RTreeInfo *p; - PyObject *o; - #if CYTHON_COMPILING_IN_LIMITED_API - allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc); - o = alloc_func(t, 0); - #else - if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) { - o = (*t->tp_alloc)(t, 0); - } else { - o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); - } - if (unlikely(!o)) return 0; - #endif - p = ((struct __pyx_obj_5tinyr_RTreeInfo *)o); - p->rtree = ((struct __pyx_obj_5tinyr_RTree *)Py_None); Py_INCREF(Py_None); - return o; -} - -static void __pyx_tp_dealloc_5tinyr_RTreeInfo(PyObject *o) { - struct __pyx_obj_5tinyr_RTreeInfo *p = (struct __pyx_obj_5tinyr_RTreeInfo *)o; - #if CYTHON_USE_TP_FINALIZE - if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) { - if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_5tinyr_RTreeInfo) { - if (PyObject_CallFinalizerFromDealloc(o)) return; - } - } - #endif - PyObject_GC_UnTrack(o); - Py_CLEAR(p->rtree); - #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY - (*Py_TYPE(o)->tp_free)(o); - #else - { - freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free); - if (tp_free) tp_free(o); - } - #endif -} - -static int __pyx_tp_traverse_5tinyr_RTreeInfo(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_5tinyr_RTreeInfo *p = (struct __pyx_obj_5tinyr_RTreeInfo *)o; - if (p->rtree) { - e = (*v)(((PyObject *)p->rtree), a); if (e) return e; - } - return 0; -} - -static int __pyx_tp_clear_5tinyr_RTreeInfo(PyObject *o) { - PyObject* tmp; - struct __pyx_obj_5tinyr_RTreeInfo *p = (struct __pyx_obj_5tinyr_RTreeInfo *)o; - tmp = ((PyObject*)p->rtree); - p->rtree = ((struct __pyx_obj_5tinyr_RTree *)Py_None); Py_INCREF(Py_None); - Py_XDECREF(tmp); - return 0; -} - -static PyObject *__pyx_getprop_5tinyr_9RTreeInfo_levels(PyObject *o, CYTHON_UNUSED void *x) { - return __pyx_pw_5tinyr_9RTreeInfo_6levels_1__get__(o); -} - -static PyObject *__pyx_getprop_5tinyr_9RTreeInfo_common_boundary(PyObject *o, CYTHON_UNUSED void *x) { - return __pyx_pw_5tinyr_9RTreeInfo_15common_boundary_1__get__(o); -} - -static PyObject *__pyx_getprop_5tinyr_9RTreeInfo_width(PyObject *o, CYTHON_UNUSED void *x) { - return __pyx_pw_5tinyr_9RTreeInfo_5width_1__get__(o); -} - -static PyObject *__pyx_getprop_5tinyr_9RTreeInfo_height(PyObject *o, CYTHON_UNUSED void *x) { - return __pyx_pw_5tinyr_9RTreeInfo_6height_1__get__(o); -} - -static PyMethodDef __pyx_methods_5tinyr_RTreeInfo[] = { - {"iter_rectangles", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9RTreeInfo_3iter_rectangles, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_9RTreeInfo_2iter_rectangles}, - {"to_dot", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9RTreeInfo_5to_dot, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5tinyr_9RTreeInfo_4to_dot}, - {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9RTreeInfo_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5tinyr_9RTreeInfo_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; - -static struct PyGetSetDef __pyx_getsets_5tinyr_RTreeInfo[] = { - {(char *)"levels", __pyx_getprop_5tinyr_9RTreeInfo_levels, 0, (char *)0, 0}, - {(char *)"common_boundary", __pyx_getprop_5tinyr_9RTreeInfo_common_boundary, 0, (char *)0, 0}, - {(char *)"width", __pyx_getprop_5tinyr_9RTreeInfo_width, 0, (char *)0, 0}, - {(char *)"height", __pyx_getprop_5tinyr_9RTreeInfo_height, 0, (char *)0, 0}, - {0, 0, 0, 0, 0} -}; -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_type_5tinyr_RTreeInfo_slots[] = { - {Py_tp_dealloc, (void *)__pyx_tp_dealloc_5tinyr_RTreeInfo}, - {Py_tp_doc, (void *)PyDoc_STR("Provides some meta-info about an existing RTree\n \n @param rtree: an RTree object\n ")}, - {Py_tp_traverse, (void *)__pyx_tp_traverse_5tinyr_RTreeInfo}, - {Py_tp_clear, (void *)__pyx_tp_clear_5tinyr_RTreeInfo}, - {Py_tp_methods, (void *)__pyx_methods_5tinyr_RTreeInfo}, - {Py_tp_getset, (void *)__pyx_getsets_5tinyr_RTreeInfo}, - {Py_tp_init, (void *)__pyx_pw_5tinyr_9RTreeInfo_1__init__}, - {Py_tp_new, (void *)__pyx_tp_new_5tinyr_RTreeInfo}, - {0, 0}, -}; -static PyType_Spec __pyx_type_5tinyr_RTreeInfo_spec = { - "tinyr.RTreeInfo", - sizeof(struct __pyx_obj_5tinyr_RTreeInfo), - 0, - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, - __pyx_type_5tinyr_RTreeInfo_slots, -}; -#else - -static PyTypeObject __pyx_type_5tinyr_RTreeInfo = { - PyVarObject_HEAD_INIT(0, 0) - "tinyr.""RTreeInfo", /*tp_name*/ - sizeof(struct __pyx_obj_5tinyr_RTreeInfo), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_5tinyr_RTreeInfo, /*tp_dealloc*/ - #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 - 0, /*tp_vectorcall_offset*/ - #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 - 0, /*tp_compare*/ - #endif - #if PY_MAJOR_VERSION >= 3 - 0, /*tp_as_async*/ - #endif - 0, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ - PyDoc_STR("Provides some meta-info about an existing RTree\n \n @param rtree: an RTree object\n "), /*tp_doc*/ - __pyx_tp_traverse_5tinyr_RTreeInfo, /*tp_traverse*/ - __pyx_tp_clear_5tinyr_RTreeInfo, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_5tinyr_RTreeInfo, /*tp_methods*/ - 0, /*tp_members*/ - __pyx_getsets_5tinyr_RTreeInfo, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - #if !CYTHON_USE_TYPE_SPECS - 0, /*tp_dictoffset*/ - #endif - __pyx_pw_5tinyr_9RTreeInfo_1__init__, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_5tinyr_RTreeInfo, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ - 0, /*tp_del*/ - 0, /*tp_version_tag*/ - #if PY_VERSION_HEX >= 0x030400a1 - #if CYTHON_USE_TP_FINALIZE - 0, /*tp_finalize*/ - #else - NULL, /*tp_finalize*/ - #endif - #endif - #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if __PYX_NEED_TP_PRINT_SLOT == 1 - 0, /*tp_print*/ - #endif - #if PY_VERSION_HEX >= 0x030C0000 - 0, /*tp_watched*/ - #endif - #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, /*tp_pypy_flags*/ - #endif -}; -#endif - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define CYTHON_SMALL_CODE __attribute__((cold)) -#else - #define CYTHON_SMALL_CODE -#endif -#endif -/* #### Code section: pystring_table ### */ - -static int __Pyx_CreateStringTabAndInitStrings(void) { - __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_AssertionError, __pyx_k_AssertionError, sizeof(__pyx_k_AssertionError), 0, 0, 1, 1}, - {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1}, - {&__pyx_n_s_ChildRecord, __pyx_k_ChildRecord, sizeof(__pyx_k_ChildRecord), 0, 0, 1, 1}, - {&__pyx_n_s_ChildRecordIter, __pyx_k_ChildRecordIter, sizeof(__pyx_k_ChildRecordIter), 0, 0, 1, 1}, - {&__pyx_n_s_ChildRecordIter___reduce_cython, __pyx_k_ChildRecordIter___reduce_cython, sizeof(__pyx_k_ChildRecordIter___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_ChildRecordIter___setstate_cyth, __pyx_k_ChildRecordIter___setstate_cyth, sizeof(__pyx_k_ChildRecordIter___setstate_cyth), 0, 0, 1, 1}, - {&__pyx_n_s_ChildRecord___reduce_cython, __pyx_k_ChildRecord___reduce_cython, sizeof(__pyx_k_ChildRecord___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_ChildRecord___setstate_cython, __pyx_k_ChildRecord___setstate_cython, sizeof(__pyx_k_ChildRecord___setstate_cython), 0, 0, 1, 1}, - {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0}, - {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_k_Incompatible_checksums_0x_x_vs_0_2, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_2), 0, 0, 1, 0}, - {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3, __pyx_k_Incompatible_checksums_0x_x_vs_0_3, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_3), 0, 0, 1, 0}, - {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, - {&__pyx_n_s_InnerRecord, __pyx_k_InnerRecord, sizeof(__pyx_k_InnerRecord), 0, 0, 1, 1}, - {&__pyx_n_s_InnerRecord___reduce_cython, __pyx_k_InnerRecord___reduce_cython, sizeof(__pyx_k_InnerRecord___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_InnerRecord___setstate_cython, __pyx_k_InnerRecord___setstate_cython, sizeof(__pyx_k_InnerRecord___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_ItemsIter, __pyx_k_ItemsIter, sizeof(__pyx_k_ItemsIter), 0, 0, 1, 1}, - {&__pyx_n_s_ItemsIter___reduce_cython, __pyx_k_ItemsIter___reduce_cython, sizeof(__pyx_k_ItemsIter___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_ItemsIter___setstate_cython, __pyx_k_ItemsIter___setstate_cython, sizeof(__pyx_k_ItemsIter___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_Iterator, __pyx_k_Iterator, sizeof(__pyx_k_Iterator), 0, 0, 1, 1}, - {&__pyx_n_s_Iterator___reduce_cython, __pyx_k_Iterator___reduce_cython, sizeof(__pyx_k_Iterator___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_Iterator___setstate_cython, __pyx_k_Iterator___setstate_cython, sizeof(__pyx_k_Iterator___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_KVIIter, __pyx_k_KVIIter, sizeof(__pyx_k_KVIIter), 0, 0, 1, 1}, - {&__pyx_n_s_KVIIter___reduce_cython, __pyx_k_KVIIter___reduce_cython, sizeof(__pyx_k_KVIIter___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_KVIIter___setstate_cython, __pyx_k_KVIIter___setstate_cython, sizeof(__pyx_k_KVIIter___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_KeyError, __pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 0, 1, 1}, - {&__pyx_n_s_KeysIter, __pyx_k_KeysIter, sizeof(__pyx_k_KeysIter), 0, 0, 1, 1}, - {&__pyx_n_s_KeysIter___reduce_cython, __pyx_k_KeysIter___reduce_cython, sizeof(__pyx_k_KeysIter___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_KeysIter___setstate_cython, __pyx_k_KeysIter___setstate_cython, sizeof(__pyx_k_KeysIter___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_L, __pyx_k_L, sizeof(__pyx_k_L), 0, 0, 1, 1}, - {&__pyx_n_s_Node, __pyx_k_Node, sizeof(__pyx_k_Node), 0, 0, 1, 1}, - {&__pyx_n_s_NodeIter, __pyx_k_NodeIter, sizeof(__pyx_k_NodeIter), 0, 0, 1, 1}, - {&__pyx_n_s_NodeIter___reduce_cython, __pyx_k_NodeIter___reduce_cython, sizeof(__pyx_k_NodeIter___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_NodeIter___setstate_cython, __pyx_k_NodeIter___setstate_cython, sizeof(__pyx_k_NodeIter___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_Node___reduce_cython, __pyx_k_Node___reduce_cython, sizeof(__pyx_k_Node___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_Node___setstate_cython, __pyx_k_Node___setstate_cython, sizeof(__pyx_k_Node___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_NotImplemented, __pyx_k_NotImplemented, sizeof(__pyx_k_NotImplemented), 0, 0, 1, 1}, - {&__pyx_n_s_OverflowError, __pyx_k_OverflowError, sizeof(__pyx_k_OverflowError), 0, 0, 1, 1}, - {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, - {&__pyx_n_s_RTree, __pyx_k_RTree, sizeof(__pyx_k_RTree), 0, 0, 1, 1}, - {&__pyx_n_s_RTreeInfo, __pyx_k_RTreeInfo, sizeof(__pyx_k_RTreeInfo), 0, 0, 1, 1}, - {&__pyx_n_s_RTreeInfo___reduce_cython, __pyx_k_RTreeInfo___reduce_cython, sizeof(__pyx_k_RTreeInfo___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_RTreeInfo___setstate_cython, __pyx_k_RTreeInfo___setstate_cython, sizeof(__pyx_k_RTreeInfo___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_RTreeInfo_iter_rectangles, __pyx_k_RTreeInfo_iter_rectangles, sizeof(__pyx_k_RTreeInfo_iter_rectangles), 0, 0, 1, 1}, - {&__pyx_n_s_RTreeInfo_to_dot, __pyx_k_RTreeInfo_to_dot, sizeof(__pyx_k_RTreeInfo_to_dot), 0, 0, 1, 1}, - {&__pyx_n_s_RTreeInvalid, __pyx_k_RTreeInvalid, sizeof(__pyx_k_RTreeInvalid), 0, 0, 1, 1}, - {&__pyx_n_s_RTree___reduce_cython, __pyx_k_RTree___reduce_cython, sizeof(__pyx_k_RTree___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_RTree___setstate_cython, __pyx_k_RTree___setstate_cython, sizeof(__pyx_k_RTree___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_RTree_copy, __pyx_k_RTree_copy, sizeof(__pyx_k_RTree_copy), 0, 0, 1, 1}, - {&__pyx_n_s_RTree_get_info, __pyx_k_RTree_get_info, sizeof(__pyx_k_RTree_get_info), 0, 0, 1, 1}, - {&__pyx_n_s_RTree_insert, __pyx_k_RTree_insert, sizeof(__pyx_k_RTree_insert), 0, 0, 1, 1}, - {&__pyx_n_s_RTree_iteritems, __pyx_k_RTree_iteritems, sizeof(__pyx_k_RTree_iteritems), 0, 0, 1, 1}, - {&__pyx_n_s_RTree_iterkeys, __pyx_k_RTree_iterkeys, sizeof(__pyx_k_RTree_iterkeys), 0, 0, 1, 1}, - {&__pyx_n_s_RTree_itervalues, __pyx_k_RTree_itervalues, sizeof(__pyx_k_RTree_itervalues), 0, 0, 1, 1}, - {&__pyx_n_s_RTree_remove, __pyx_k_RTree_remove, sizeof(__pyx_k_RTree_remove), 0, 0, 1, 1}, - {&__pyx_n_s_RTree_search, __pyx_k_RTree_search, sizeof(__pyx_k_RTree_search), 0, 0, 1, 1}, - {&__pyx_n_s_RTree_search_surrounding, __pyx_k_RTree_search_surrounding, sizeof(__pyx_k_RTree_search_surrounding), 0, 0, 1, 1}, - {&__pyx_n_s_RTree_valid, __pyx_k_RTree_valid, sizeof(__pyx_k_RTree_valid), 0, 0, 1, 1}, - {&__pyx_n_s_Record, __pyx_k_Record, sizeof(__pyx_k_Record), 0, 0, 1, 1}, - {&__pyx_n_s_Record___reduce_cython, __pyx_k_Record___reduce_cython, sizeof(__pyx_k_Record___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_Record___setstate_cython, __pyx_k_Record___setstate_cython, sizeof(__pyx_k_Record___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_RectangleIter, __pyx_k_RectangleIter, sizeof(__pyx_k_RectangleIter), 0, 0, 1, 1}, - {&__pyx_n_s_RectangleIter___reduce_cython, __pyx_k_RectangleIter___reduce_cython, sizeof(__pyx_k_RectangleIter___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_RectangleIter___setstate_cython, __pyx_k_RectangleIter___setstate_cython, sizeof(__pyx_k_RectangleIter___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_StopIteration, __pyx_k_StopIteration, sizeof(__pyx_k_StopIteration), 0, 0, 1, 1}, - {&__pyx_kp_s_TD_PORT_d_CELLSPACING_0_d_TD, __pyx_k_TD_PORT_d_CELLSPACING_0_d_TD, sizeof(__pyx_k_TD_PORT_d_CELLSPACING_0_d_TD), 0, 0, 1, 0}, - {&__pyx_kp_s_TR_TABLE, __pyx_k_TR_TABLE, sizeof(__pyx_k_TR_TABLE), 0, 0, 1, 0}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, - {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_ValuesIter, __pyx_k_ValuesIter, sizeof(__pyx_k_ValuesIter), 0, 0, 1, 1}, - {&__pyx_n_s_ValuesIter___reduce_cython, __pyx_k_ValuesIter___reduce_cython, sizeof(__pyx_k_ValuesIter___reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_ValuesIter___setstate_cython, __pyx_k_ValuesIter___setstate_cython, sizeof(__pyx_k_ValuesIter___setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 0, 1, 1}, - {&__pyx_kp_s__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 1, 0}, - {&__pyx_kp_s__5, __pyx_k__5, sizeof(__pyx_k__5), 0, 0, 1, 0}, - {&__pyx_n_s__65, __pyx_k__65, sizeof(__pyx_k__65), 0, 0, 1, 1}, - {&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0}, - {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1}, - {&__pyx_n_s_chid, __pyx_k_chid, sizeof(__pyx_k_chid), 0, 0, 1, 1}, - {&__pyx_n_s_child, __pyx_k_child, sizeof(__pyx_k_child), 0, 0, 1, 1}, - {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_combinations, __pyx_k_combinations, sizeof(__pyx_k_combinations), 0, 0, 1, 1}, - {&__pyx_kp_s_coordinates_as_list_or_tuple_exp, __pyx_k_coordinates_as_list_or_tuple_exp, sizeof(__pyx_k_coordinates_as_list_or_tuple_exp), 0, 0, 1, 0}, - {&__pyx_n_s_coords, __pyx_k_coords, sizeof(__pyx_k_coords), 0, 0, 1, 1}, - {&__pyx_n_s_coords_a, __pyx_k_coords_a, sizeof(__pyx_k_coords_a), 0, 0, 1, 1}, - {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, - {&__pyx_n_s_cr, __pyx_k_cr, sizeof(__pyx_k_cr), 0, 0, 1, 1}, - {&__pyx_kp_s_d, __pyx_k_d, sizeof(__pyx_k_d), 0, 0, 1, 0}, - {&__pyx_n_s_d_2, __pyx_k_d_2, sizeof(__pyx_k_d_2), 0, 0, 1, 1}, - {&__pyx_kp_s_d_d_tailport_d_s, __pyx_k_d_d_tailport_d_s, sizeof(__pyx_k_d_d_tailport_d_s), 0, 0, 1, 0}, - {&__pyx_kp_s_d_label_TABLE_BORDER_0_CELLBORD, __pyx_k_d_label_TABLE_BORDER_0_CELLBORD, sizeof(__pyx_k_d_label_TABLE_BORDER_0_CELLBORD), 0, 0, 1, 0}, - {&__pyx_n_s_depth, __pyx_k_depth, sizeof(__pyx_k_depth), 0, 0, 1, 1}, - {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, - {&__pyx_n_s_dict_2, __pyx_k_dict_2, sizeof(__pyx_k_dict_2), 0, 0, 1, 1}, - {&__pyx_kp_s_digraph_RTree_node_shape_none, __pyx_k_digraph_RTree_node_shape_none, sizeof(__pyx_k_digraph_RTree_node_shape_none), 0, 0, 1, 0}, - {&__pyx_kp_u_disable, __pyx_k_disable, sizeof(__pyx_k_disable), 0, 1, 0, 0}, - {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, - {&__pyx_kp_s_double_link_doesn_t_cover_itself, __pyx_k_double_link_doesn_t_cover_itself, sizeof(__pyx_k_double_link_doesn_t_cover_itself), 0, 0, 1, 0}, - {&__pyx_kp_u_enable, __pyx_k_enable, sizeof(__pyx_k_enable), 0, 1, 0, 0}, - {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, - {&__pyx_n_s_filelike, __pyx_k_filelike, sizeof(__pyx_k_filelike), 0, 0, 1, 1}, - {&__pyx_kp_s_for_min_max_capacities_it_s_requ, __pyx_k_for_min_max_capacities_it_s_requ, sizeof(__pyx_k_for_min_max_capacities_it_s_requ), 0, 0, 1, 0}, - {&__pyx_kp_u_gc, __pyx_k_gc, sizeof(__pyx_k_gc), 0, 1, 0, 0}, - {&__pyx_n_s_get_info, __pyx_k_get_info, sizeof(__pyx_k_get_info), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, - {&__pyx_n_s_identifier, __pyx_k_identifier, sizeof(__pyx_k_identifier), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_kp_s_inconsistent_item_count_d_d, __pyx_k_inconsistent_item_count_d_d, sizeof(__pyx_k_inconsistent_item_count_d_d), 0, 0, 1, 0}, - {&__pyx_kp_s_inconsistent_node_depth_d_d, __pyx_k_inconsistent_node_depth_d_d, sizeof(__pyx_k_inconsistent_node_depth_d_d), 0, 0, 1, 0}, - {&__pyx_kp_s_indexing_RTree_only_possible_wit, __pyx_k_indexing_RTree_only_possible_wit, sizeof(__pyx_k_indexing_RTree_only_possible_wit), 0, 0, 1, 0}, - {&__pyx_n_s_init_subclass, __pyx_k_init_subclass, sizeof(__pyx_k_init_subclass), 0, 0, 1, 1}, - {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1}, - {&__pyx_n_s_insert, __pyx_k_insert, sizeof(__pyx_k_insert), 0, 0, 1, 1}, - {&__pyx_n_s_interleaved, __pyx_k_interleaved, sizeof(__pyx_k_interleaved), 0, 0, 1, 1}, - {&__pyx_n_s_ir, __pyx_k_ir, sizeof(__pyx_k_ir), 0, 0, 1, 1}, - {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1}, - {&__pyx_kp_u_isenabled, __pyx_k_isenabled, sizeof(__pyx_k_isenabled), 0, 1, 0, 0}, - {&__pyx_n_s_item_count, __pyx_k_item_count, sizeof(__pyx_k_item_count), 0, 0, 1, 1}, - {&__pyx_n_s_iter_rectangles, __pyx_k_iter_rectangles, sizeof(__pyx_k_iter_rectangles), 0, 0, 1, 1}, - {&__pyx_n_s_iteritems, __pyx_k_iteritems, sizeof(__pyx_k_iteritems), 0, 0, 1, 1}, - {&__pyx_n_s_iterkeys, __pyx_k_iterkeys, sizeof(__pyx_k_iterkeys), 0, 0, 1, 1}, - {&__pyx_n_s_itertools, __pyx_k_itertools, sizeof(__pyx_k_itertools), 0, 0, 1, 1}, - {&__pyx_n_s_itervalues, __pyx_k_itervalues, sizeof(__pyx_k_itervalues), 0, 0, 1, 1}, - {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1}, - {&__pyx_n_s_leaf, __pyx_k_leaf, sizeof(__pyx_k_leaf), 0, 0, 1, 1}, - {&__pyx_kp_s_leaf_level_is_not_equal_for_all, __pyx_k_leaf_level_is_not_equal_for_all, sizeof(__pyx_k_leaf_level_is_not_equal_for_all), 0, 0, 1, 0}, - {&__pyx_n_s_leafnodes, __pyx_k_leafnodes, sizeof(__pyx_k_leafnodes), 0, 0, 1, 1}, - {&__pyx_n_s_leafnodes_and_depth, __pyx_k_leafnodes_and_depth, sizeof(__pyx_k_leafnodes_and_depth), 0, 0, 1, 1}, - {&__pyx_kp_s_len_coords_must_be_4_len_is_d, __pyx_k_len_coords_must_be_4_len_is_d, sizeof(__pyx_k_len_coords_must_be_4_len_is_d), 0, 0, 1, 0}, - {&__pyx_kp_s_len_coords_must_be_4_length_is_d, __pyx_k_len_coords_must_be_4_length_is_d, sizeof(__pyx_k_len_coords_must_be_4_length_is_d), 0, 0, 1, 0}, - {&__pyx_kp_s_len_point_must_be_2_len_is_d, __pyx_k_len_point_must_be_2_len_is_d, sizeof(__pyx_k_len_point_must_be_2_len_is_d), 0, 0, 1, 0}, - {&__pyx_n_s_level, __pyx_k_level, sizeof(__pyx_k_level), 0, 0, 1, 1}, - {&__pyx_n_s_lid, __pyx_k_lid, sizeof(__pyx_k_lid), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_max_cap, __pyx_k_max_cap, sizeof(__pyx_k_max_cap), 0, 0, 1, 1}, - {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, - {&__pyx_n_s_min_cap, __pyx_k_min_cap, sizeof(__pyx_k_min_cap), 0, 0, 1, 1}, - {&__pyx_kp_s_misspositioned_inner_node, __pyx_k_misspositioned_inner_node, sizeof(__pyx_k_misspositioned_inner_node), 0, 0, 1, 0}, - {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, - {&__pyx_n_s_mro_entries, __pyx_k_mro_entries, sizeof(__pyx_k_mro_entries), 0, 0, 1, 1}, - {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, - {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, - {&__pyx_n_s_next, __pyx_k_next, sizeof(__pyx_k_next), 0, 0, 1, 1}, - {&__pyx_n_s_nid, __pyx_k_nid, sizeof(__pyx_k_nid), 0, 0, 1, 1}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_kp_s_no_parent_entry_holds_the_child, __pyx_k_no_parent_entry_holds_the_child, sizeof(__pyx_k_no_parent_entry_holds_the_child), 0, 0, 1, 0}, - {&__pyx_n_s_node, __pyx_k_node, sizeof(__pyx_k_node), 0, 0, 1, 1}, - {&__pyx_n_s_node_record_child, __pyx_k_node_record_child, sizeof(__pyx_k_node_record_child), 0, 0, 1, 1}, - {&__pyx_n_s_node_record_leaf, __pyx_k_node_record_leaf, sizeof(__pyx_k_node_record_leaf), 0, 0, 1, 1}, - {&__pyx_kp_s_node_shape_ellipse, __pyx_k_node_shape_ellipse, sizeof(__pyx_k_node_shape_ellipse), 0, 0, 1, 0}, - {&__pyx_n_s_nodedepht, __pyx_k_nodedepht, sizeof(__pyx_k_nodedepht), 0, 0, 1, 1}, - {&__pyx_kp_s_non_leaf_node_has_invalid_number, __pyx_k_non_leaf_node_has_invalid_number, sizeof(__pyx_k_non_leaf_node_has_invalid_number), 0, 0, 1, 0}, - {&__pyx_n_s_parent, __pyx_k_parent, sizeof(__pyx_k_parent), 0, 0, 1, 1}, - {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, - {&__pyx_n_s_point, __pyx_k_point, sizeof(__pyx_k_point), 0, 0, 1, 1}, - {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1}, - {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_unpickle_RTreeInfo, __pyx_k_pyx_unpickle_RTreeInfo, sizeof(__pyx_k_pyx_unpickle_RTreeInfo), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_unpickle__ChildRecord, __pyx_k_pyx_unpickle__ChildRecord, sizeof(__pyx_k_pyx_unpickle__ChildRecord), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_unpickle__Record, __pyx_k_pyx_unpickle__Record, sizeof(__pyx_k_pyx_unpickle__Record), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, - {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_rec, __pyx_k_rec, sizeof(__pyx_k_rec), 0, 0, 1, 1}, - {&__pyx_n_s_record, __pyx_k_record, sizeof(__pyx_k_record), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, - {&__pyx_n_s_remove, __pyx_k_remove, sizeof(__pyx_k_remove), 0, 0, 1, 1}, - {&__pyx_n_s_result, __pyx_k_result, sizeof(__pyx_k_result), 0, 0, 1, 1}, - {&__pyx_n_s_ret, __pyx_k_ret, sizeof(__pyx_k_ret), 0, 0, 1, 1}, - {&__pyx_n_s_rid, __pyx_k_rid, sizeof(__pyx_k_rid), 0, 0, 1, 1}, - {&__pyx_kp_s_root_must_have_at_least_2_record, __pyx_k_root_must_have_at_least_2_record, sizeof(__pyx_k_root_must_have_at_least_2_record), 0, 0, 1, 0}, - {&__pyx_n_s_rtree, __pyx_k_rtree, sizeof(__pyx_k_rtree), 0, 0, 1, 1}, - {&__pyx_n_s_search, __pyx_k_search, sizeof(__pyx_k_search), 0, 0, 1, 1}, - {&__pyx_n_s_search_surrounding, __pyx_k_search_surrounding, sizeof(__pyx_k_search_surrounding), 0, 0, 1, 1}, - {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, - {&__pyx_n_s_set_name, __pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 0, 1, 1}, - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1}, - {&__pyx_n_s_state, __pyx_k_state, sizeof(__pyx_k_state), 0, 0, 1, 1}, - {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, - {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_tinyr, __pyx_k_tinyr, sizeof(__pyx_k_tinyr), 0, 0, 1, 1}, - {&__pyx_n_u_tinyr, __pyx_k_tinyr, sizeof(__pyx_k_tinyr), 0, 1, 0, 1}, - {&__pyx_kp_s_tinyr_tinyr_pyx, __pyx_k_tinyr_tinyr_pyx, sizeof(__pyx_k_tinyr_tinyr_pyx), 0, 0, 1, 0}, - {&__pyx_n_s_tmp_coords, __pyx_k_tmp_coords, sizeof(__pyx_k_tmp_coords), 0, 0, 1, 1}, - {&__pyx_n_s_to_dot, __pyx_k_to_dot, sizeof(__pyx_k_to_dot), 0, 0, 1, 1}, - {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, - {&__pyx_n_s_use_setstate, __pyx_k_use_setstate, sizeof(__pyx_k_use_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_valid, __pyx_k_valid, sizeof(__pyx_k_valid), 0, 0, 1, 1}, - {&__pyx_n_s_write, __pyx_k_write, sizeof(__pyx_k_write), 0, 0, 1, 1}, - {&__pyx_kp_s_wrong_combined_area_of_records_o, __pyx_k_wrong_combined_area_of_records_o, sizeof(__pyx_k_wrong_combined_area_of_records_o), 0, 0, 1, 0}, - {0, 0, 0, 0, 0, 0, 0} - }; - return __Pyx_InitStrings(__pyx_string_tab); -} -/* #### Code section: cached_builtins ### */ -static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 86, __pyx_L1_error) - __pyx_builtin_NotImplemented = __Pyx_GetBuiltinName(__pyx_n_s_NotImplemented); if (!__pyx_builtin_NotImplemented) __PYX_ERR(0, 141, __pyx_L1_error) - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 2, __pyx_L1_error) - __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 365, __pyx_L1_error) - __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 391, __pyx_L1_error) - __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s_AssertionError); if (!__pyx_builtin_AssertionError) __PYX_ERR(0, 455, __pyx_L1_error) - __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) __PYX_ERR(0, 544, __pyx_L1_error) - __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(0, 909, __pyx_L1_error) - __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s_StopIteration); if (!__pyx_builtin_StopIteration) __PYX_ERR(0, 910, __pyx_L1_error) - __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(0, 1076, __pyx_L1_error) - __pyx_builtin_OverflowError = __Pyx_GetBuiltinName(__pyx_n_s_OverflowError); if (!__pyx_builtin_OverflowError) __PYX_ERR(1, 83, __pyx_L1_error) - __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 86, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} -/* #### Code section: cached_constants ### */ - -static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - /* "tinyr.pyx":358 - * - * def __cinit__(self): - * self.root = _Node(None) # <<<<<<<<<<<<<< - * self.root.is_leaf = True - * self._leaf_level = 0 - */ - __pyx_tuple_ = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 358, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple_); - __Pyx_GIVEREF(__pyx_tuple_); - - /* "tinyr.pyx":365 - * def __init__(self, interleaved=True, max_cap=5, min_cap=2): - * if min_cap > max_cap/2.: - * raise ValueError('for min/max capacities, it\'s required that min_cap <= max_cap/2.0') # <<<<<<<<<<<<<< - * - * if interleaved: - */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_for_min_max_capacities_it_s_requ); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 365, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - - /* "tinyr.pyx":391 - * elif len(item) == 4: - * return self.search(item) - * raise AttributeError('indexing RTree only possible with rectangle or point (x, y)') # <<<<<<<<<<<<<< - * - * def iterkeys(self): - */ - __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_indexing_RTree_only_possible_wit); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - - /* "(tree fragment)":4 - * cdef object __pyx_PickleError - * cdef object __pyx_result - * if __pyx_checksum not in (0xd6fae5e, 0xd6626c4, 0xfb1b8c2): # <<<<<<<<<<<<<< - * from pickle import PickleError as __pyx_PickleError - * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xd6fae5e, 0xd6626c4, 0xfb1b8c2) = (coords))" % __pyx_checksum - */ - __pyx_tuple__6 = PyTuple_Pack(3, __pyx_int_225422942, __pyx_int_224798404, __pyx_int_263305410); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__6); - __Pyx_GIVEREF(__pyx_tuple__6); - __pyx_tuple__8 = PyTuple_Pack(3, __pyx_int_165148252, __pyx_int_178991788, __pyx_int_212777770); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); - __pyx_tuple__9 = PyTuple_Pack(3, __pyx_int_229190861, __pyx_int_68185080, __pyx_int_161691044); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__9); - __Pyx_GIVEREF(__pyx_tuple__9); - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - __pyx_tuple__11 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_state, __pyx_n_s_dict_2, __pyx_n_s_use_setstate); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__11); - __Pyx_GIVEREF(__pyx_tuple__11); - __pyx_codeobj__12 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__11, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__12)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":16 - * else: - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle__Record__set_state(self, __pyx_state) - */ - __pyx_tuple__13 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(1, 16, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__13); - __Pyx_GIVEREF(__pyx_tuple__13); - __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(1, 16, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__11, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":16 - * else: - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle__ChildRecord__set_state(self, __pyx_state) - */ - __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(1, 16, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_tuple__17 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__17); - __Pyx_GIVEREF(__pyx_tuple__17); - __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_codeobj__19 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__19)) __PYX_ERR(1, 3, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_codeobj__21 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__21)) __PYX_ERR(1, 3, __pyx_L1_error) - - /* "tinyr.pyx":393 - * raise AttributeError('indexing RTree only possible with rectangle or point (x, y)') - * - * def iterkeys(self): # <<<<<<<<<<<<<< - * return _KeysIter(self) - * - */ - __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_iterkeys, 393, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 393, __pyx_L1_error) - - /* "tinyr.pyx":396 - * return _KeysIter(self) - * - * def itervalues(self): # <<<<<<<<<<<<<< - * return _ValuesIter(self) - * - */ - __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_itervalues, 396, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(0, 396, __pyx_L1_error) - - /* "tinyr.pyx":399 - * return _ValuesIter(self) - * - * def iteritems(self): # <<<<<<<<<<<<<< - * return _ItemsIter(self) - * - */ - __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_iteritems, 399, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 399, __pyx_L1_error) - - /* "tinyr.pyx":402 - * return _ItemsIter(self) - * - * def get_info(self): # <<<<<<<<<<<<<< - * return RTreeInfo(self) - * - */ - __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_get_info, 402, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__25)) __PYX_ERR(0, 402, __pyx_L1_error) - - /* "tinyr.pyx":405 - * return RTreeInfo(self) - * - * def insert(self, object key, object coords): # <<<<<<<<<<<<<< - * '''Insert an item. - * - */ - __pyx_tuple__26 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_coords, __pyx_n_s_cr, __pyx_n_s_L); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__26); - __Pyx_GIVEREF(__pyx_tuple__26); - __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_insert, 405, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(0, 405, __pyx_L1_error) - - /* "tinyr.pyx":431 - * - * - * def search(self, object coords): # <<<<<<<<<<<<<< - * '''Search overlapping items. - * - */ - __pyx_tuple__28 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_coords, __pyx_n_s_node, __pyx_n_s_cr, __pyx_n_s_coords_a, __pyx_n_s_leafnodes, __pyx_n_s_result); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 431, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__28); - __Pyx_GIVEREF(__pyx_tuple__28); - __pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_search, 431, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__29)) __PYX_ERR(0, 431, __pyx_L1_error) - - /* "tinyr.pyx":462 - * return result - * - * def copy(self): # <<<<<<<<<<<<<< - * cdef: - * RTree ret - */ - __pyx_tuple__30 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__30); - __Pyx_GIVEREF(__pyx_tuple__30); - __pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__30, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_copy, 462, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__31)) __PYX_ERR(0, 462, __pyx_L1_error) - - /* "tinyr.pyx":472 - * return ret - * - * def search_surrounding(self, point): # <<<<<<<<<<<<<< - * '''Search items that surround a point. - * - */ - __pyx_tuple__32 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_point, __pyx_n_s_node, __pyx_n_s_cr, __pyx_n_s_coords_a, __pyx_n_s_leafnodes, __pyx_n_s_result); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__32); - __Pyx_GIVEREF(__pyx_tuple__32); - __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__32, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_search_surrounding, 472, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(0, 472, __pyx_L1_error) - - /* "tinyr.pyx":524 - * return 0 - * - * def remove(self, identifier, coords): # <<<<<<<<<<<<<< - * '''Delete an item - * - */ - __pyx_tuple__34 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_identifier, __pyx_n_s_coords, __pyx_n_s_leaf, __pyx_n_s_coords_a); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__34); - __Pyx_GIVEREF(__pyx_tuple__34); - __pyx_codeobj__35 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__34, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_remove, 524, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__35)) __PYX_ERR(0, 524, __pyx_L1_error) - - /* "tinyr.pyx":806 - * - * - * def valid(self): # <<<<<<<<<<<<<< - * # numbers in comments refer to invariant properties of an RTree - taken from [Gut84] - * cdef: - */ - __pyx_tuple__36 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_tmp_coords, __pyx_n_s_node, __pyx_n_s_n, __pyx_n_s_depth, __pyx_n_s_item_count, __pyx_n_s_nodedepht, __pyx_n_s_leafnodes_and_depth, __pyx_n_s_rec, __pyx_n_s_ir, __pyx_n_s_d_2, __pyx_n_s_leaf); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 806, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__36); - __Pyx_GIVEREF(__pyx_tuple__36); - __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_valid, 806, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__37)) __PYX_ERR(0, 806, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(1, 3, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(1, 3, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(1, 3, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(1, 3, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(1, 3, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(1, 3, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(1, 3, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(1, 3, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(1, 3, __pyx_L1_error) - - /* "tinyr.pyx":1022 - * self.rtree = rtree - * - * def iter_rectangles(self): # <<<<<<<<<<<<<< - * '''Iterate over key coordinates and combined frames. - * - */ - __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_iter_rectangles, 1022, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 1022, __pyx_L1_error) - - /* "tinyr.pyx":1058 - * return coords[3]-coords[1] - * - * def to_dot(self, filelike): # <<<<<<<<<<<<<< - * '''Writes simple dot-code into filelike that represents the tree structure.''' - * cdef: - */ - __pyx_tuple__57 = PyTuple_Pack(13, __pyx_n_s_self, __pyx_n_s_filelike, __pyx_n_s_node, __pyx_n_s_ir, __pyx_n_s_cr, __pyx_n_s_level, __pyx_n_s_nid, __pyx_n_s_rid, __pyx_n_s_chid, __pyx_n_s_lid, __pyx_n_s_node_record_leaf, __pyx_n_s_node_record_child, __pyx_n_s_record); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(0, 1058, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__57); - __Pyx_GIVEREF(__pyx_tuple__57); - __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tinyr_tinyr_pyx, __pyx_n_s_to_dot, 1058, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 1058, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__11, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(1, 1, __pyx_L1_error) - - /* "(tree fragment)":16 - * else: - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle_RTreeInfo__set_state(self, __pyx_state) - */ - __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(1, 16, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __pyx_unpickle__Record(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - __pyx_tuple__61 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__61); - __Pyx_GIVEREF(__pyx_tuple__61); - __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle__Record, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(1, 1, __pyx_L1_error) - __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle__ChildRecord, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(1, 1, __pyx_L1_error) - __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__61, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RTreeInfo, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} -/* #### Code section: init_constants ### */ - -static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) { - __pyx_umethod_PyList_Type_pop.type = (PyObject*)&PyList_Type; - __pyx_umethod_PyList_Type_pop.method_name = &__pyx_n_s_pop; - __pyx_umethod_PyList_Type_remove.type = (PyObject*)&PyList_Type; - __pyx_umethod_PyList_Type_remove.method_name = &__pyx_n_s_remove; - if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(0, 1, __pyx_L1_error); - __pyx_float_2_ = PyFloat_FromDouble(2.); if (unlikely(!__pyx_float_2_)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_68185080 = PyInt_FromLong(68185080L); if (unlikely(!__pyx_int_68185080)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_161691044 = PyInt_FromLong(161691044L); if (unlikely(!__pyx_int_161691044)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_165148252 = PyInt_FromLong(165148252L); if (unlikely(!__pyx_int_165148252)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_178991788 = PyInt_FromLong(178991788L); if (unlikely(!__pyx_int_178991788)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_212777770 = PyInt_FromLong(212777770L); if (unlikely(!__pyx_int_212777770)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_224798404 = PyInt_FromLong(224798404L); if (unlikely(!__pyx_int_224798404)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_225422942 = PyInt_FromLong(225422942L); if (unlikely(!__pyx_int_225422942)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_229190861 = PyInt_FromLong(229190861L); if (unlikely(!__pyx_int_229190861)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_int_263305410 = PyInt_FromLong(263305410L); if (unlikely(!__pyx_int_263305410)) __PYX_ERR(0, 1, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} -/* #### Code section: init_globals ### */ - -static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { - /* AssertionsEnabled.init */ - if (likely(__Pyx_init_assertions_enabled() == 0)); else - -if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error) - - return 0; - __pyx_L1_error:; - return -1; -} -/* #### Code section: init_module ### */ - -static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ - -static int __Pyx_modinit_global_init_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); - /*--- Global init code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_variable_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); - /*--- Variable export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_function_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); - /*--- Function export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_vtabptr_5tinyr__Record = &__pyx_vtable_5tinyr__Record; - __pyx_vtable_5tinyr__Record.overlaps = (int (*)(struct __pyx_obj_5tinyr__Record *, __pyx_t_5tinyr_Dfloat *))__pyx_f_5tinyr_7_Record_overlaps; - __pyx_vtable_5tinyr__Record.copy_coords_to = (void (*)(struct __pyx_obj_5tinyr__Record *, __pyx_t_5tinyr_Dfloat *))__pyx_f_5tinyr_7_Record_copy_coords_to; - __pyx_vtable_5tinyr__Record.copy = (struct __pyx_obj_5tinyr__Record *(*)(struct __pyx_obj_5tinyr__Record *, struct __pyx_obj_5tinyr__Node *))__pyx_f_5tinyr_7_Record_copy; - #if CYTHON_USE_TYPE_SPECS - __pyx_ptype_5tinyr__Record = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__Record_spec, NULL); if (unlikely(!__pyx_ptype_5tinyr__Record)) __PYX_ERR(0, 129, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__Record_spec, __pyx_ptype_5tinyr__Record) < 0) __PYX_ERR(0, 129, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__Record = &__pyx_type_5tinyr__Record; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__Record) < 0) __PYX_ERR(0, 129, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__Record->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__Record->tp_dictoffset && __pyx_ptype_5tinyr__Record->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__Record->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (__Pyx_SetVtable(__pyx_ptype_5tinyr__Record, __pyx_vtabptr_5tinyr__Record) < 0) __PYX_ERR(0, 129, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_MergeVtables(__pyx_ptype_5tinyr__Record) < 0) __PYX_ERR(0, 129, __pyx_L1_error) - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Record, (PyObject *) __pyx_ptype_5tinyr__Record) < 0) __PYX_ERR(0, 129, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__Record) < 0) __PYX_ERR(0, 129, __pyx_L1_error) - #endif - __pyx_vtabptr_5tinyr__ChildRecord = &__pyx_vtable_5tinyr__ChildRecord; - __pyx_vtable_5tinyr__ChildRecord.__pyx_base = *__pyx_vtabptr_5tinyr__Record; - __pyx_vtable_5tinyr__ChildRecord.__pyx_base.copy = (struct __pyx_obj_5tinyr__Record *(*)(struct __pyx_obj_5tinyr__Record *, struct __pyx_obj_5tinyr__Node *))__pyx_f_5tinyr_12_ChildRecord_copy; - #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_5tinyr__Record); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5tinyr__ChildRecord = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__ChildRecord_spec, __pyx_t_1); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_ptype_5tinyr__ChildRecord)) __PYX_ERR(0, 143, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__ChildRecord_spec, __pyx_ptype_5tinyr__ChildRecord) < 0) __PYX_ERR(0, 143, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__ChildRecord = &__pyx_type_5tinyr__ChildRecord; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - __pyx_ptype_5tinyr__ChildRecord->tp_base = __pyx_ptype_5tinyr__Record; - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__ChildRecord) < 0) __PYX_ERR(0, 143, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__ChildRecord->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__ChildRecord->tp_dictoffset && __pyx_ptype_5tinyr__ChildRecord->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__ChildRecord->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (__Pyx_SetVtable(__pyx_ptype_5tinyr__ChildRecord, __pyx_vtabptr_5tinyr__ChildRecord) < 0) __PYX_ERR(0, 143, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_MergeVtables(__pyx_ptype_5tinyr__ChildRecord) < 0) __PYX_ERR(0, 143, __pyx_L1_error) - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ChildRecord, (PyObject *) __pyx_ptype_5tinyr__ChildRecord) < 0) __PYX_ERR(0, 143, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__ChildRecord) < 0) __PYX_ERR(0, 143, __pyx_L1_error) - #endif - __pyx_vtabptr_5tinyr__InnerRecord = &__pyx_vtable_5tinyr__InnerRecord; - __pyx_vtable_5tinyr__InnerRecord.__pyx_base = *__pyx_vtabptr_5tinyr__Record; - __pyx_vtable_5tinyr__InnerRecord.__pyx_base.copy = (struct __pyx_obj_5tinyr__Record *(*)(struct __pyx_obj_5tinyr__Record *, struct __pyx_obj_5tinyr__Node *))__pyx_f_5tinyr_12_InnerRecord_copy; - #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_5tinyr__Record); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5tinyr__InnerRecord = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__InnerRecord_spec, __pyx_t_1); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_ptype_5tinyr__InnerRecord)) __PYX_ERR(0, 158, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__InnerRecord_spec, __pyx_ptype_5tinyr__InnerRecord) < 0) __PYX_ERR(0, 158, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__InnerRecord = &__pyx_type_5tinyr__InnerRecord; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - __pyx_ptype_5tinyr__InnerRecord->tp_base = __pyx_ptype_5tinyr__Record; - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__InnerRecord) < 0) __PYX_ERR(0, 158, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__InnerRecord->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__InnerRecord->tp_dictoffset && __pyx_ptype_5tinyr__InnerRecord->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__InnerRecord->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (__Pyx_SetVtable(__pyx_ptype_5tinyr__InnerRecord, __pyx_vtabptr_5tinyr__InnerRecord) < 0) __PYX_ERR(0, 158, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_MergeVtables(__pyx_ptype_5tinyr__InnerRecord) < 0) __PYX_ERR(0, 158, __pyx_L1_error) - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_InnerRecord, (PyObject *) __pyx_ptype_5tinyr__InnerRecord) < 0) __PYX_ERR(0, 158, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__InnerRecord) < 0) __PYX_ERR(0, 158, __pyx_L1_error) - #endif - __pyx_vtabptr_5tinyr__Node = &__pyx_vtable_5tinyr__Node; - __pyx_vtable_5tinyr__Node.copy = (struct __pyx_obj_5tinyr__Node *(*)(struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Node *))__pyx_f_5tinyr_5_Node_copy; - __pyx_vtable_5tinyr__Node.common_boundaries = (void (*)(struct __pyx_obj_5tinyr__Node *, __pyx_t_5tinyr_Dfloat *))__pyx_f_5tinyr_5_Node_common_boundaries; - __pyx_vtable_5tinyr__Node.choose_subtree_least_enlargement = (struct __pyx_obj_5tinyr__Record *(*)(struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Record *))__pyx_f_5tinyr_5_Node_choose_subtree_least_enlargement; - __pyx_vtable_5tinyr__Node.find_overlapping_leafs_recursive = (void (*)(struct __pyx_obj_5tinyr__Node *, PyObject *, __pyx_t_5tinyr_Dfloat *))__pyx_f_5tinyr_5_Node_find_overlapping_leafs_recursive; - __pyx_vtable_5tinyr__Node.addChild = (void (*)(struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Node *))__pyx_f_5tinyr_5_Node_addChild; - #if CYTHON_USE_TYPE_SPECS - __pyx_ptype_5tinyr__Node = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__Node_spec, NULL); if (unlikely(!__pyx_ptype_5tinyr__Node)) __PYX_ERR(0, 173, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__Node_spec, __pyx_ptype_5tinyr__Node) < 0) __PYX_ERR(0, 173, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__Node = &__pyx_type_5tinyr__Node; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__Node) < 0) __PYX_ERR(0, 173, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__Node->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__Node->tp_dictoffset && __pyx_ptype_5tinyr__Node->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__Node->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (__Pyx_SetVtable(__pyx_ptype_5tinyr__Node, __pyx_vtabptr_5tinyr__Node) < 0) __PYX_ERR(0, 173, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_MergeVtables(__pyx_ptype_5tinyr__Node) < 0) __PYX_ERR(0, 173, __pyx_L1_error) - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Node, (PyObject *) __pyx_ptype_5tinyr__Node) < 0) __PYX_ERR(0, 173, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__Node) < 0) __PYX_ERR(0, 173, __pyx_L1_error) - #endif - __pyx_vtabptr_5tinyr_RTree = &__pyx_vtable_5tinyr_RTree; - __pyx_vtable_5tinyr_RTree.insert_at_node = (int (*)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Record *, struct __pyx_obj_5tinyr__Node *))__pyx_f_5tinyr_5RTree_insert_at_node; - __pyx_vtable_5tinyr_RTree.after_remove = (void (*)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *))__pyx_f_5tinyr_5RTree_after_remove; - __pyx_vtable_5tinyr_RTree.FindLeaf_and_remove = (struct __pyx_obj_5tinyr__Node *(*)(struct __pyx_obj_5tinyr_RTree *, PyObject *, __pyx_t_5tinyr_Dfloat *))__pyx_f_5tinyr_5RTree_FindLeaf_and_remove; - __pyx_vtable_5tinyr_RTree.CondenseTree = (int (*)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *))__pyx_f_5tinyr_5RTree_CondenseTree; - __pyx_vtable_5tinyr_RTree.find_inner_node = (struct __pyx_obj_5tinyr__Node *(*)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__InnerRecord *))__pyx_f_5tinyr_5RTree_find_inner_node; - __pyx_vtable_5tinyr_RTree.subtree_len = (__pyx_t_5tinyr_Duint (*)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__InnerRecord *))__pyx_f_5tinyr_5RTree_subtree_len; - __pyx_vtable_5tinyr_RTree.is_full = (int (*)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *))__pyx_f_5tinyr_5RTree_is_full; - __pyx_vtable_5tinyr_RTree._ChooseLeaf = (struct __pyx_obj_5tinyr__Node *(*)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Record *))__pyx_f_5tinyr_5RTree__ChooseLeaf; - __pyx_vtable_5tinyr_RTree._AdjustTree = (PyObject *(*)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Node *))__pyx_f_5tinyr_5RTree__AdjustTree; - __pyx_vtable_5tinyr_RTree.SplitNode = (struct __pyx_obj_5tinyr__Node *(*)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *, struct __pyx_obj_5tinyr__Record *))__pyx_f_5tinyr_5RTree_SplitNode; - __pyx_vtable_5tinyr_RTree.PickNext = (int (*)(struct __pyx_obj_5tinyr_RTree *, struct __pyx_obj_5tinyr__Node *, PyObject *, struct __pyx_obj_5tinyr__Node *))__pyx_f_5tinyr_5RTree_PickNext; - #if CYTHON_USE_TYPE_SPECS - __pyx_ptype_5tinyr_RTree = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr_RTree_spec, NULL); if (unlikely(!__pyx_ptype_5tinyr_RTree)) __PYX_ERR(0, 329, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr_RTree_spec, __pyx_ptype_5tinyr_RTree) < 0) __PYX_ERR(0, 329, __pyx_L1_error) - #else - __pyx_ptype_5tinyr_RTree = &__pyx_type_5tinyr_RTree; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr_RTree) < 0) __PYX_ERR(0, 329, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr_RTree->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr_RTree->tp_dictoffset && __pyx_ptype_5tinyr_RTree->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr_RTree->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (__Pyx_SetVtable(__pyx_ptype_5tinyr_RTree, __pyx_vtabptr_5tinyr_RTree) < 0) __PYX_ERR(0, 329, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_MergeVtables(__pyx_ptype_5tinyr_RTree) < 0) __PYX_ERR(0, 329, __pyx_L1_error) - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RTree, (PyObject *) __pyx_ptype_5tinyr_RTree) < 0) __PYX_ERR(0, 329, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr_RTree) < 0) __PYX_ERR(0, 329, __pyx_L1_error) - #endif - #if CYTHON_USE_TYPE_SPECS - __pyx_ptype_5tinyr__Iterator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__Iterator_spec, NULL); if (unlikely(!__pyx_ptype_5tinyr__Iterator)) __PYX_ERR(0, 883, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__Iterator_spec, __pyx_ptype_5tinyr__Iterator) < 0) __PYX_ERR(0, 883, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__Iterator = &__pyx_type_5tinyr__Iterator; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__Iterator) < 0) __PYX_ERR(0, 883, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__Iterator->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__Iterator->tp_dictoffset && __pyx_ptype_5tinyr__Iterator->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__Iterator->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Iterator, (PyObject *) __pyx_ptype_5tinyr__Iterator) < 0) __PYX_ERR(0, 883, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__Iterator) < 0) __PYX_ERR(0, 883, __pyx_L1_error) - #endif - #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_5tinyr__Iterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 946, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5tinyr__ChildRecordIter = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__ChildRecordIter_spec, __pyx_t_1); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_ptype_5tinyr__ChildRecordIter)) __PYX_ERR(0, 946, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__ChildRecordIter_spec, __pyx_ptype_5tinyr__ChildRecordIter) < 0) __PYX_ERR(0, 946, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__ChildRecordIter = &__pyx_type_5tinyr__ChildRecordIter; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - __pyx_ptype_5tinyr__ChildRecordIter->tp_base = __pyx_ptype_5tinyr__Iterator; - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__ChildRecordIter) < 0) __PYX_ERR(0, 946, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__ChildRecordIter->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__ChildRecordIter->tp_dictoffset && __pyx_ptype_5tinyr__ChildRecordIter->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__ChildRecordIter->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ChildRecordIter, (PyObject *) __pyx_ptype_5tinyr__ChildRecordIter) < 0) __PYX_ERR(0, 946, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__ChildRecordIter) < 0) __PYX_ERR(0, 946, __pyx_L1_error) - #endif - #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_5tinyr__Iterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 985, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5tinyr__KVIIter = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__KVIIter_spec, __pyx_t_1); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_ptype_5tinyr__KVIIter)) __PYX_ERR(0, 985, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__KVIIter_spec, __pyx_ptype_5tinyr__KVIIter) < 0) __PYX_ERR(0, 985, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__KVIIter = &__pyx_type_5tinyr__KVIIter; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - __pyx_ptype_5tinyr__KVIIter->tp_base = __pyx_ptype_5tinyr__Iterator; - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__KVIIter) < 0) __PYX_ERR(0, 985, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__KVIIter->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__KVIIter->tp_dictoffset && __pyx_ptype_5tinyr__KVIIter->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__KVIIter->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_KVIIter, (PyObject *) __pyx_ptype_5tinyr__KVIIter) < 0) __PYX_ERR(0, 985, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__KVIIter) < 0) __PYX_ERR(0, 985, __pyx_L1_error) - #endif - #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_5tinyr__KVIIter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 992, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5tinyr__KeysIter = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__KeysIter_spec, __pyx_t_1); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_ptype_5tinyr__KeysIter)) __PYX_ERR(0, 992, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__KeysIter_spec, __pyx_ptype_5tinyr__KeysIter) < 0) __PYX_ERR(0, 992, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__KeysIter = &__pyx_type_5tinyr__KeysIter; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - __pyx_ptype_5tinyr__KeysIter->tp_base = __pyx_ptype_5tinyr__KVIIter; - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__KeysIter) < 0) __PYX_ERR(0, 992, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__KeysIter->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__KeysIter->tp_dictoffset && __pyx_ptype_5tinyr__KeysIter->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__KeysIter->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_KeysIter, (PyObject *) __pyx_ptype_5tinyr__KeysIter) < 0) __PYX_ERR(0, 992, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__KeysIter) < 0) __PYX_ERR(0, 992, __pyx_L1_error) - #endif - #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_5tinyr__KVIIter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 996, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5tinyr__ValuesIter = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__ValuesIter_spec, __pyx_t_1); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_ptype_5tinyr__ValuesIter)) __PYX_ERR(0, 996, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__ValuesIter_spec, __pyx_ptype_5tinyr__ValuesIter) < 0) __PYX_ERR(0, 996, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__ValuesIter = &__pyx_type_5tinyr__ValuesIter; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - __pyx_ptype_5tinyr__ValuesIter->tp_base = __pyx_ptype_5tinyr__KVIIter; - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__ValuesIter) < 0) __PYX_ERR(0, 996, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__ValuesIter->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__ValuesIter->tp_dictoffset && __pyx_ptype_5tinyr__ValuesIter->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__ValuesIter->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ValuesIter, (PyObject *) __pyx_ptype_5tinyr__ValuesIter) < 0) __PYX_ERR(0, 996, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__ValuesIter) < 0) __PYX_ERR(0, 996, __pyx_L1_error) - #endif - #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_5tinyr__KVIIter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5tinyr__ItemsIter = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__ItemsIter_spec, __pyx_t_1); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_ptype_5tinyr__ItemsIter)) __PYX_ERR(0, 1000, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__ItemsIter_spec, __pyx_ptype_5tinyr__ItemsIter) < 0) __PYX_ERR(0, 1000, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__ItemsIter = &__pyx_type_5tinyr__ItemsIter; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - __pyx_ptype_5tinyr__ItemsIter->tp_base = __pyx_ptype_5tinyr__KVIIter; - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__ItemsIter) < 0) __PYX_ERR(0, 1000, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__ItemsIter->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__ItemsIter->tp_dictoffset && __pyx_ptype_5tinyr__ItemsIter->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__ItemsIter->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ItemsIter, (PyObject *) __pyx_ptype_5tinyr__ItemsIter) < 0) __PYX_ERR(0, 1000, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__ItemsIter) < 0) __PYX_ERR(0, 1000, __pyx_L1_error) - #endif - #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_5tinyr__Iterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 892, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5tinyr__NodeIter = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__NodeIter_spec, __pyx_t_1); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_ptype_5tinyr__NodeIter)) __PYX_ERR(0, 892, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__NodeIter_spec, __pyx_ptype_5tinyr__NodeIter) < 0) __PYX_ERR(0, 892, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__NodeIter = &__pyx_type_5tinyr__NodeIter; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - __pyx_ptype_5tinyr__NodeIter->tp_base = __pyx_ptype_5tinyr__Iterator; - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__NodeIter) < 0) __PYX_ERR(0, 892, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__NodeIter->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__NodeIter->tp_dictoffset && __pyx_ptype_5tinyr__NodeIter->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__NodeIter->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_NodeIter, (PyObject *) __pyx_ptype_5tinyr__NodeIter) < 0) __PYX_ERR(0, 892, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__NodeIter) < 0) __PYX_ERR(0, 892, __pyx_L1_error) - #endif - #if CYTHON_USE_TYPE_SPECS - __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_5tinyr__Iterator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 917, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5tinyr__RectangleIter = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr__RectangleIter_spec, __pyx_t_1); - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely(!__pyx_ptype_5tinyr__RectangleIter)) __PYX_ERR(0, 917, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr__RectangleIter_spec, __pyx_ptype_5tinyr__RectangleIter) < 0) __PYX_ERR(0, 917, __pyx_L1_error) - #else - __pyx_ptype_5tinyr__RectangleIter = &__pyx_type_5tinyr__RectangleIter; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - __pyx_ptype_5tinyr__RectangleIter->tp_base = __pyx_ptype_5tinyr__Iterator; - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr__RectangleIter) < 0) __PYX_ERR(0, 917, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr__RectangleIter->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr__RectangleIter->tp_dictoffset && __pyx_ptype_5tinyr__RectangleIter->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr__RectangleIter->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RectangleIter, (PyObject *) __pyx_ptype_5tinyr__RectangleIter) < 0) __PYX_ERR(0, 917, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr__RectangleIter) < 0) __PYX_ERR(0, 917, __pyx_L1_error) - #endif - #if CYTHON_USE_TYPE_SPECS - __pyx_ptype_5tinyr_RTreeInfo = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_5tinyr_RTreeInfo_spec, NULL); if (unlikely(!__pyx_ptype_5tinyr_RTreeInfo)) __PYX_ERR(0, 1007, __pyx_L1_error) - if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_5tinyr_RTreeInfo_spec, __pyx_ptype_5tinyr_RTreeInfo) < 0) __PYX_ERR(0, 1007, __pyx_L1_error) - #else - __pyx_ptype_5tinyr_RTreeInfo = &__pyx_type_5tinyr_RTreeInfo; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - #endif - #if !CYTHON_USE_TYPE_SPECS - if (__Pyx_PyType_Ready(__pyx_ptype_5tinyr_RTreeInfo) < 0) __PYX_ERR(0, 1007, __pyx_L1_error) - #endif - #if PY_MAJOR_VERSION < 3 - __pyx_ptype_5tinyr_RTreeInfo->tp_print = 0; - #endif - #if !CYTHON_COMPILING_IN_LIMITED_API - if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_5tinyr_RTreeInfo->tp_dictoffset && __pyx_ptype_5tinyr_RTreeInfo->tp_getattro == PyObject_GenericGetAttr)) { - __pyx_ptype_5tinyr_RTreeInfo->tp_getattro = __Pyx_PyObject_GenericGetAttr; - } - #endif - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RTreeInfo, (PyObject *) __pyx_ptype_5tinyr_RTreeInfo) < 0) __PYX_ERR(0, 1007, __pyx_L1_error) - #if !CYTHON_COMPILING_IN_LIMITED_API - if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_5tinyr_RTreeInfo) < 0) __PYX_ERR(0, 1007, __pyx_L1_error) - #endif - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_RefNannyFinishContext(); - return -1; -} - -static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_variable_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); - /*--- Variable import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - -static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} - - -#if PY_MAJOR_VERSION >= 3 -#if CYTHON_PEP489_MULTI_PHASE_INIT -static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ -static int __pyx_pymod_exec_tinyr(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec_tinyr}, - {0, NULL} -}; -#endif - -#ifdef __cplusplus -namespace { - struct PyModuleDef __pyx_moduledef = - #else - static struct PyModuleDef __pyx_moduledef = - #endif - { - PyModuleDef_HEAD_INIT, - "tinyr", - __pyx_k_Fast_2D_R_Tree_implementation_i, /* m_doc */ - #if CYTHON_PEP489_MULTI_PHASE_INIT - 0, /* m_size */ - #elif CYTHON_USE_MODULE_STATE - sizeof(__pyx_mstate), /* m_size */ - #else - -1, /* m_size */ - #endif - __pyx_methods /* m_methods */, - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_moduledef_slots, /* m_slots */ - #else - NULL, /* m_reload */ - #endif - #if CYTHON_USE_MODULE_STATE - __pyx_m_traverse, /* m_traverse */ - __pyx_m_clear, /* m_clear */ - NULL /* m_free */ - #else - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ - #endif - }; - #ifdef __cplusplus -} /* anonymous namespace */ -#endif -#endif - -#ifndef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#elif PY_MAJOR_VERSION < 3 -#ifdef __cplusplus -#define __Pyx_PyMODINIT_FUNC extern "C" void -#else -#define __Pyx_PyMODINIT_FUNC void -#endif -#else -#ifdef __cplusplus -#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * -#else -#define __Pyx_PyMODINIT_FUNC PyObject * -#endif -#endif - - -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC inittinyr(void) CYTHON_SMALL_CODE; /*proto*/ -#if !defined(CYTHON_NO_PYINIT_EXPORT) && (defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) -__Pyx_PyMODINIT_FUNC init__init__(void) { inittinyr(); } -#endif -__Pyx_PyMODINIT_FUNC inittinyr(void) -#else -__Pyx_PyMODINIT_FUNC PyInit_tinyr(void) CYTHON_SMALL_CODE; /*proto*/ -#if !defined(CYTHON_NO_PYINIT_EXPORT) && (defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)) -__Pyx_PyMODINIT_FUNC PyInit___init__(void) { return PyInit_tinyr(); } -#endif -__Pyx_PyMODINIT_FUNC PyInit_tinyr(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { - #if PY_VERSION_HEX >= 0x030700A1 - static PY_INT64_T main_interpreter_id = -1; - PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); - if (main_interpreter_id == -1) { - main_interpreter_id = current_id; - return (unlikely(current_id == -1)) ? -1 : 0; - } else if (unlikely(main_interpreter_id != current_id)) - #else - static PyInterpreterState *main_interpreter = NULL; - PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; - if (!main_interpreter) { - main_interpreter = current_interpreter; - } else if (unlikely(main_interpreter != current_interpreter)) - #endif - { - PyErr_SetString( - PyExc_ImportError, - "Interpreter change detected - this module can only be loaded into one interpreter per process."); - return -1; - } - return 0; -} -#if CYTHON_COMPILING_IN_LIMITED_API -static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none) -#else -static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) -#endif -{ - PyObject *value = PyObject_GetAttrString(spec, from_name); - int result = 0; - if (likely(value)) { - if (allow_none || value != Py_None) { -#if CYTHON_COMPILING_IN_LIMITED_API - result = PyModule_AddObject(module, to_name, value); -#else - result = PyDict_SetItemString(moddict, to_name, value); -#endif - } - Py_DECREF(value); - } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Clear(); - } else { - result = -1; - } - return result; -} -static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - CYTHON_UNUSED_VAR(def); - if (__Pyx_check_single_interpreter()) - return NULL; - if (__pyx_m) - return __Pyx_NewRef(__pyx_m); - modname = PyObject_GetAttrString(spec, "name"); - if (unlikely(!modname)) goto bad; - module = PyModule_NewObject(modname); - Py_DECREF(modname); - if (unlikely(!module)) goto bad; -#if CYTHON_COMPILING_IN_LIMITED_API - moddict = module; -#else - moddict = PyModule_GetDict(module); - if (unlikely(!moddict)) goto bad; -#endif - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; - return module; -bad: - Py_XDECREF(module); - return NULL; -} - - -static CYTHON_SMALL_CODE int __pyx_pymod_exec_tinyr(PyObject *__pyx_pyinit_module) -#endif -#endif -{ - int stringtab_initialized = 0; - #if CYTHON_USE_MODULE_STATE - int pystate_addmodule_run = 0; - #endif - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - PyObject *__pyx_t_5 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { - if (__pyx_m == __pyx_pyinit_module) return 0; - PyErr_SetString(PyExc_RuntimeError, "Module 'tinyr' has already been imported. Re-initialisation is not supported."); - return -1; - } - #elif PY_MAJOR_VERSION >= 3 - if (__pyx_m) return __Pyx_NewRef(__pyx_m); - #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; - Py_INCREF(__pyx_m); - #else - #if PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4("tinyr", __pyx_methods, __pyx_k_Fast_2D_R_Tree_implementation_i, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); - if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) - #elif CYTHON_USE_MODULE_STATE - __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) - { - int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef); - __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "tinyr" pseudovariable */ - if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error) - pystate_addmodule_run = 1; - } - #else - __pyx_m = PyModule_Create(&__pyx_moduledef); - if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #endif - CYTHON_UNUSED_VAR(__pyx_t_1); - __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error) - Py_INCREF(__pyx_d); - __pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_cython_runtime = __Pyx_PyImport_AddModuleRef((const char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error) - if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #if CYTHON_REFNANNY -__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); -if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); -} -#endif - __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_tinyr(void)", 0); - if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #ifdef __Pxy_PyFrame_Initialize_Offsets - __Pxy_PyFrame_Initialize_Offsets(); - #endif - __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error) - __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error) - #ifdef __Pyx_CyFunction_USED - if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_FusedFunction_USED - if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Coroutine_USED - if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Generator_USED - if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_AsyncGen_USED - if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_StopAsyncIteration_USED - if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ - #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif - /*--- Initialize various global constants etc. ---*/ - if (__Pyx_InitConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - stringtab_initialized = 1; - if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) - if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - if (__pyx_module_is_main_tinyr) { - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - } - if (!CYTHON_PEP489_MULTI_PHASE_INIT) { - if (unlikely((__Pyx_SetPackagePathFromImportLib(__pyx_n_u_tinyr) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) - } - #if PY_MAJOR_VERSION >= 3 - { - PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error) - if (!PyDict_GetItemString(modules, "tinyr")) { - if (unlikely((PyDict_SetItemString(modules, "tinyr", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); - if (unlikely((__Pyx_modinit_type_init_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error) - (void)__Pyx_modinit_type_import_code(); - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - #endif - - /* "tinyr.pyx":37 - * # cython: profile=False - * - * import itertools # <<<<<<<<<<<<<< - * - * - */ - __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_itertools, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_itertools, __pyx_t_2) < 0) __PYX_ERR(0, 37, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "tinyr.pyx":62 - * cdef class _ItemsIter(_KVIIter) - * - * class RTreeInvalid(Exception): # <<<<<<<<<<<<<< - * pass - * - */ - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])); - __Pyx_GIVEREF((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])))) __PYX_ERR(0, 62, __pyx_L1_error); - __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_3, __pyx_n_s_RTreeInvalid, __pyx_n_s_RTreeInvalid, (PyObject *) NULL, __pyx_n_s_tinyr, (PyObject *) NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (__pyx_t_3 != __pyx_t_2) { - if (unlikely((PyDict_SetItemString(__pyx_t_5, "__orig_bases__", __pyx_t_2) < 0))) __PYX_ERR(0, 62, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_RTreeInvalid, __pyx_t_3, __pyx_t_5, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_RTreeInvalid, __pyx_t_2) < 0) __PYX_ERR(0, 62, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_7_Record_1__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Record___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__12)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr__Record, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr__Record); - - /* "(tree fragment)":16 - * else: - * return __pyx_unpickle__Record, (type(self), 0xd6fae5e, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle__Record__set_state(self, __pyx_state) - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_7_Record_3__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Record___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__14)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr__Record, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr__Record); - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_12_ChildRecord_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChildRecord___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__15)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr__ChildRecord, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr__ChildRecord); - - /* "(tree fragment)":16 - * else: - * return __pyx_unpickle__ChildRecord, (type(self), 0x9d7f65c, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle__ChildRecord__set_state(self, __pyx_state) - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_12_ChildRecord_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChildRecord___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr__ChildRecord, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr__ChildRecord); - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_12_InnerRecord_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_InnerRecord___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__18)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_12_InnerRecord_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_InnerRecord___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__19)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5_Node_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Node___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__20)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5_Node_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Node___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__21)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":393 - * raise AttributeError('indexing RTree only possible with rectangle or point (x, y)') - * - * def iterkeys(self): # <<<<<<<<<<<<<< - * return _KeysIter(self) - * - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_9iterkeys, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree_iterkeys, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTree, __pyx_n_s_iterkeys, __pyx_t_3) < 0) __PYX_ERR(0, 393, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTree); - - /* "tinyr.pyx":396 - * return _KeysIter(self) - * - * def itervalues(self): # <<<<<<<<<<<<<< - * return _ValuesIter(self) - * - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_11itervalues, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree_itervalues, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__23)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTree, __pyx_n_s_itervalues, __pyx_t_3) < 0) __PYX_ERR(0, 396, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTree); - - /* "tinyr.pyx":399 - * return _ValuesIter(self) - * - * def iteritems(self): # <<<<<<<<<<<<<< - * return _ItemsIter(self) - * - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_13iteritems, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree_iteritems, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTree, __pyx_n_s_iteritems, __pyx_t_3) < 0) __PYX_ERR(0, 399, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTree); - - /* "tinyr.pyx":402 - * return _ItemsIter(self) - * - * def get_info(self): # <<<<<<<<<<<<<< - * return RTreeInfo(self) - * - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_15get_info, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree_get_info, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__25)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 402, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTree, __pyx_n_s_get_info, __pyx_t_3) < 0) __PYX_ERR(0, 402, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTree); - - /* "tinyr.pyx":405 - * return RTreeInfo(self) - * - * def insert(self, object key, object coords): # <<<<<<<<<<<<<< - * '''Insert an item. - * - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_17insert, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree_insert, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__27)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTree, __pyx_n_s_insert, __pyx_t_3) < 0) __PYX_ERR(0, 405, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTree); - - /* "tinyr.pyx":431 - * - * - * def search(self, object coords): # <<<<<<<<<<<<<< - * '''Search overlapping items. - * - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_19search, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree_search, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 431, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTree, __pyx_n_s_search, __pyx_t_3) < 0) __PYX_ERR(0, 431, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTree); - - /* "tinyr.pyx":462 - * return result - * - * def copy(self): # <<<<<<<<<<<<<< - * cdef: - * RTree ret - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_21copy, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree_copy, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__31)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTree, __pyx_n_s_copy, __pyx_t_3) < 0) __PYX_ERR(0, 462, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTree); - - /* "tinyr.pyx":472 - * return ret - * - * def search_surrounding(self, point): # <<<<<<<<<<<<<< - * '''Search items that surround a point. - * - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_23search_surrounding, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree_search_surrounding, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTree, __pyx_n_s_search_surrounding, __pyx_t_3) < 0) __PYX_ERR(0, 472, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTree); - - /* "tinyr.pyx":524 - * return 0 - * - * def remove(self, identifier, coords): # <<<<<<<<<<<<<< - * '''Delete an item - * - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_25remove, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree_remove, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__35)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 524, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTree, __pyx_n_s_remove, __pyx_t_3) < 0) __PYX_ERR(0, 524, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTree); - - /* "tinyr.pyx":806 - * - * - * def valid(self): # <<<<<<<<<<<<<< - * # numbers in comments refer to invariant properties of an RTree - taken from [Gut84] - * cdef: - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_27valid, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree_valid, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 806, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTree, __pyx_n_s_valid, __pyx_t_3) < 0) __PYX_ERR(0, 806, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTree); - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_29__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5RTree_31__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTree___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__39)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_9_Iterator_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Iterator___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_9_Iterator_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Iterator___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_9_NodeIter_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_NodeIter___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_9_NodeIter_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_NodeIter___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_14_RectangleIter_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RectangleIter___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__44)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_14_RectangleIter_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RectangleIter___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_16_ChildRecordIter_5__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChildRecordIter___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__46)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_16_ChildRecordIter_7__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ChildRecordIter___setstate_cyth, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_8_KVIIter_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_KVIIter___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_8_KVIIter_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_KVIIter___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_9_KeysIter_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_KeysIter___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_9_KeysIter_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_KeysIter___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_11_ValuesIter_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ValuesIter___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_11_ValuesIter_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ValuesIter___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_10_ItemsIter_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ItemsIter___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":3 - * def __reduce_cython__(self): - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_10_ItemsIter_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ItemsIter___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 3, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":1022 - * self.rtree = rtree - * - * def iter_rectangles(self): # <<<<<<<<<<<<<< - * '''Iterate over key coordinates and combined frames. - * - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_9RTreeInfo_3iter_rectangles, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTreeInfo_iter_rectangles, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1022, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTreeInfo, __pyx_n_s_iter_rectangles, __pyx_t_3) < 0) __PYX_ERR(0, 1022, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTreeInfo); - - /* "tinyr.pyx":1058 - * return coords[3]-coords[1] - * - * def to_dot(self, filelike): # <<<<<<<<<<<<<< - * '''Writes simple dot-code into filelike that represents the tree structure.''' - * cdef: - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_9RTreeInfo_5to_dot, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTreeInfo_to_dot, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1058, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTreeInfo, __pyx_n_s_to_dot, __pyx_t_3) < 0) __PYX_ERR(0, 1058, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTreeInfo); - - /* "(tree fragment)":1 - * def __reduce_cython__(self): # <<<<<<<<<<<<<< - * cdef tuple state - * cdef object _dict - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_9RTreeInfo_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTreeInfo___reduce_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTreeInfo, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTreeInfo); - - /* "(tree fragment)":16 - * else: - * return __pyx_unpickle_RTreeInfo, (type(self), 0xda92ccd, state) - * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< - * __pyx_unpickle_RTreeInfo__set_state(self, __pyx_state) - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_9RTreeInfo_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RTreeInfo___setstate_cython, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_5tinyr_RTreeInfo, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - PyType_Modified(__pyx_ptype_5tinyr_RTreeInfo); - - /* "(tree fragment)":1 - * def __pyx_unpickle__Record(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_1__pyx_unpickle__Record, 0, __pyx_n_s_pyx_unpickle__Record, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle__Record, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":11 - * __pyx_unpickle__Record__set_state(<_Record> __pyx_result, __pyx_state) - * return __pyx_result - * cdef __pyx_unpickle__Record__set_state(_Record __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< - * __pyx_result.coords = __pyx_state[0] - * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_3__pyx_unpickle__ChildRecord, 0, __pyx_n_s_pyx_unpickle__ChildRecord, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle__ChildRecord, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "(tree fragment)":1 - * def __pyx_unpickle_RTreeInfo(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5tinyr_5__pyx_unpickle_RTreeInfo, 0, __pyx_n_s_pyx_unpickle_RTreeInfo, NULL, __pyx_n_s_tinyr, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RTreeInfo, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "tinyr.pyx":1 - * # # <<<<<<<<<<<<<< - * # tinyr - a 2D-RTree implementation in Cython - * # Copyright (C) 2011 Matthias Simon - */ - __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_3) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /*--- Wrapped vars code ---*/ - - goto __pyx_L0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_5); - if (__pyx_m) { - if (__pyx_d && stringtab_initialized) { - __Pyx_AddTraceback("init tinyr", __pyx_clineno, __pyx_lineno, __pyx_filename); - } - #if !CYTHON_USE_MODULE_STATE - Py_CLEAR(__pyx_m); - #else - Py_DECREF(__pyx_m); - if (pystate_addmodule_run) { - PyObject *tp, *value, *tb; - PyErr_Fetch(&tp, &value, &tb); - PyState_RemoveModule(&__pyx_moduledef); - PyErr_Restore(tp, value, tb); - } - #endif - } else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_ImportError, "init tinyr"); - } - __pyx_L0:; - __Pyx_RefNannyFinishContext(); - #if CYTHON_PEP489_MULTI_PHASE_INIT - return (__pyx_m != NULL) ? 0 : -1; - #elif PY_MAJOR_VERSION >= 3 - return __pyx_m; - #else - return; - #endif -} -/* #### Code section: cleanup_globals ### */ -/* #### Code section: cleanup_module ### */ -/* #### Code section: main_method ### */ -/* #### Code section: utility_code_pragmas ### */ -#ifdef _MSC_VER -#pragma warning( push ) -/* Warning 4127: conditional expression is constant - * Cython uses constant conditional expressions to allow in inline functions to be optimized at - * compile-time, so this warning is not useful - */ -#pragma warning( disable : 4127 ) -#endif - - - -/* #### Code section: utility_code_def ### */ - -/* --- Runtime support code --- */ -/* Refnanny */ -#if CYTHON_REFNANNY -static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { - PyObject *m = NULL, *p = NULL; - void *r = NULL; - m = PyImport_ImportModule(modname); - if (!m) goto end; - p = PyObject_GetAttrString(m, "RefNannyAPI"); - if (!p) goto end; - r = PyLong_AsVoidPtr(p); -end: - Py_XDECREF(p); - Py_XDECREF(m); - return (__Pyx_RefNannyAPIStruct *)r; -} -#endif - -/* PyErrExceptionMatches */ -#if CYTHON_FAST_THREAD_STATE -static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { - Py_ssize_t i, n; - n = PyTuple_GET_SIZE(tuple); -#if PY_MAJOR_VERSION >= 3 - for (i=0; i= 0x030C00A6 - PyObject *current_exception = tstate->current_exception; - if (unlikely(!current_exception)) return 0; - exc_type = (PyObject*) Py_TYPE(current_exception); - if (exc_type == err) return 1; -#else - exc_type = tstate->curexc_type; - if (exc_type == err) return 1; - if (unlikely(!exc_type)) return 0; -#endif - #if CYTHON_AVOID_BORROWED_REFS - Py_INCREF(exc_type); - #endif - if (unlikely(PyTuple_Check(err))) { - result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); - } else { - result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err); - } - #if CYTHON_AVOID_BORROWED_REFS - Py_DECREF(exc_type); - #endif - return result; -} -#endif - -/* PyErrFetchRestore */ -#if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { -#if PY_VERSION_HEX >= 0x030C00A6 - PyObject *tmp_value; - assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value))); - if (value) { - #if CYTHON_COMPILING_IN_CPYTHON - if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb)) - #endif - PyException_SetTraceback(value, tb); - } - tmp_value = tstate->current_exception; - tstate->current_exception = value; - Py_XDECREF(tmp_value); - Py_XDECREF(type); - Py_XDECREF(tb); -#else - PyObject *tmp_type, *tmp_value, *tmp_tb; - tmp_type = tstate->curexc_type; - tmp_value = tstate->curexc_value; - tmp_tb = tstate->curexc_traceback; - tstate->curexc_type = type; - tstate->curexc_value = value; - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -#endif -} -static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { -#if PY_VERSION_HEX >= 0x030C00A6 - PyObject* exc_value; - exc_value = tstate->current_exception; - tstate->current_exception = 0; - *value = exc_value; - *type = NULL; - *tb = NULL; - if (exc_value) { - *type = (PyObject*) Py_TYPE(exc_value); - Py_INCREF(*type); - #if CYTHON_COMPILING_IN_CPYTHON - *tb = ((PyBaseExceptionObject*) exc_value)->traceback; - Py_XINCREF(*tb); - #else - *tb = PyException_GetTraceback(exc_value); - #endif - } -#else - *type = tstate->curexc_type; - *value = tstate->curexc_value; - *tb = tstate->curexc_traceback; - tstate->curexc_type = 0; - tstate->curexc_value = 0; - tstate->curexc_traceback = 0; -#endif -} -#endif - -/* PyObjectGetAttrStr */ -#if CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_getattro)) - return tp->tp_getattro(obj, attr_name); -#if PY_MAJOR_VERSION < 3 - if (likely(tp->tp_getattr)) - return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); -#endif - return PyObject_GetAttr(obj, attr_name); -} -#endif - -/* PyObjectGetAttrStrNoError */ -#if __PYX_LIMITED_VERSION_HEX < 0x030d00A1 -static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) - __Pyx_PyErr_Clear(); -} -#endif -static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { - PyObject *result; -#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1 - (void) PyObject_GetOptionalAttr(obj, attr_name, &result); - return result; -#else -#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 - PyTypeObject* tp = Py_TYPE(obj); - if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { - return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); - } -#endif - result = __Pyx_PyObject_GetAttrStr(obj, attr_name); - if (unlikely(!result)) { - __Pyx_PyObject_GetAttrStr_ClearAttributeError(); - } - return result; -#endif -} - -/* GetBuiltinName */ -static PyObject *__Pyx_GetBuiltinName(PyObject *name) { - PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_b, name); - if (unlikely(!result) && !PyErr_Occurred()) { - PyErr_Format(PyExc_NameError, -#if PY_MAJOR_VERSION >= 3 - "name '%U' is not defined", name); -#else - "name '%.200s' is not defined", PyString_AS_STRING(name)); -#endif - } - return result; -} - -/* GetTopmostException */ -#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE -static _PyErr_StackItem * -__Pyx_PyErr_GetTopmostException(PyThreadState *tstate) -{ - _PyErr_StackItem *exc_info = tstate->exc_info; - while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) && - exc_info->previous_item != NULL) - { - exc_info = exc_info->previous_item; - } - return exc_info; -} -#endif - -/* SaveResetException */ -#if CYTHON_FAST_THREAD_STATE -static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { - #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4 - _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); - PyObject *exc_value = exc_info->exc_value; - if (exc_value == NULL || exc_value == Py_None) { - *value = NULL; - *type = NULL; - *tb = NULL; - } else { - *value = exc_value; - Py_INCREF(*value); - *type = (PyObject*) Py_TYPE(exc_value); - Py_INCREF(*type); - *tb = PyException_GetTraceback(exc_value); - } - #elif CYTHON_USE_EXC_INFO_STACK - _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); - *type = exc_info->exc_type; - *value = exc_info->exc_value; - *tb = exc_info->exc_traceback; - Py_XINCREF(*type); - Py_XINCREF(*value); - Py_XINCREF(*tb); - #else - *type = tstate->exc_type; - *value = tstate->exc_value; - *tb = tstate->exc_traceback; - Py_XINCREF(*type); - Py_XINCREF(*value); - Py_XINCREF(*tb); - #endif -} -static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { - #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4 - _PyErr_StackItem *exc_info = tstate->exc_info; - PyObject *tmp_value = exc_info->exc_value; - exc_info->exc_value = value; - Py_XDECREF(tmp_value); - Py_XDECREF(type); - Py_XDECREF(tb); - #else - PyObject *tmp_type, *tmp_value, *tmp_tb; - #if CYTHON_USE_EXC_INFO_STACK - _PyErr_StackItem *exc_info = tstate->exc_info; - tmp_type = exc_info->exc_type; - tmp_value = exc_info->exc_value; - tmp_tb = exc_info->exc_traceback; - exc_info->exc_type = type; - exc_info->exc_value = value; - exc_info->exc_traceback = tb; - #else - tmp_type = tstate->exc_type; - tmp_value = tstate->exc_value; - tmp_tb = tstate->exc_traceback; - tstate->exc_type = type; - tstate->exc_value = value; - tstate->exc_traceback = tb; - #endif - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); - #endif -} -#endif - -/* FastTypeChecks */ -#if CYTHON_COMPILING_IN_CPYTHON -static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { - while (a) { - a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*); - if (a == b) - return 1; - } - return b == &PyBaseObject_Type; -} -static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { - PyObject *mro; - if (a == b) return 1; - mro = a->tp_mro; - if (likely(mro)) { - Py_ssize_t i, n; - n = PyTuple_GET_SIZE(mro); - for (i = 0; i < n; i++) { - if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) - return 1; - } - return 0; - } - return __Pyx_InBases(a, b); -} -static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) { - PyObject *mro; - if (cls == a || cls == b) return 1; - mro = cls->tp_mro; - if (likely(mro)) { - Py_ssize_t i, n; - n = PyTuple_GET_SIZE(mro); - for (i = 0; i < n; i++) { - PyObject *base = PyTuple_GET_ITEM(mro, i); - if (base == (PyObject *)a || base == (PyObject *)b) - return 1; - } - return 0; - } - return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b); -} -#if PY_MAJOR_VERSION == 2 -static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { - PyObject *exception, *value, *tb; - int res; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ErrFetch(&exception, &value, &tb); - res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - if (!res) { - res = PyObject_IsSubclass(err, exc_type2); - if (unlikely(res == -1)) { - PyErr_WriteUnraisable(err); - res = 0; - } - } - __Pyx_ErrRestore(exception, value, tb); - return res; -} -#else -static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { - if (exc_type1) { - return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2); - } else { - return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); - } -} -#endif -static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { - Py_ssize_t i, n; - assert(PyExceptionClass_Check(exc_type)); - n = PyTuple_GET_SIZE(tuple); -#if PY_MAJOR_VERSION >= 3 - for (i=0; i= 0)) ? i : i + PyList_GET_SIZE(o); - if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { - PyObject *r = PyList_GET_ITEM(o, n); - Py_INCREF(r); - return r; - } - } - else if (PyTuple_CheckExact(o)) { - Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); - if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { - PyObject *r = PyTuple_GET_ITEM(o, n); - Py_INCREF(r); - return r; - } - } else { - PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping; - PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence; - if (mm && mm->mp_subscript) { - PyObject *r, *key = PyInt_FromSsize_t(i); - if (unlikely(!key)) return NULL; - r = mm->mp_subscript(o, key); - Py_DECREF(key); - return r; - } - if (likely(sm && sm->sq_item)) { - if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) { - Py_ssize_t l = sm->sq_length(o); - if (likely(l >= 0)) { - i += l; - } else { - if (!PyErr_ExceptionMatches(PyExc_OverflowError)) - return NULL; - PyErr_Clear(); - } - } - return sm->sq_item(o, i); - } - } -#else - if (is_list || !PyMapping_Check(o)) { - return PySequence_GetItem(o, i); - } -#endif - return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); -} - -/* ExtTypeTest */ -static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { - __Pyx_TypeName obj_type_name; - __Pyx_TypeName type_name; - if (unlikely(!type)) { - PyErr_SetString(PyExc_SystemError, "Missing type object"); - return 0; - } - if (likely(__Pyx_TypeCheck(obj, type))) - return 1; - obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); - type_name = __Pyx_PyType_GetName(type); - PyErr_Format(PyExc_TypeError, - "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME, - obj_type_name, type_name); - __Pyx_DECREF_TypeName(obj_type_name); - __Pyx_DECREF_TypeName(type_name); - return 0; -} - -/* RaiseException */ -#if PY_MAJOR_VERSION < 3 -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { - __Pyx_PyThreadState_declare - CYTHON_UNUSED_VAR(cause); - Py_XINCREF(type); - if (!value || value == Py_None) - value = NULL; - else - Py_INCREF(value); - if (!tb || tb == Py_None) - tb = NULL; - else { - Py_INCREF(tb); - if (!PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto raise_error; - } - } - if (PyType_Check(type)) { -#if CYTHON_COMPILING_IN_PYPY - if (!value) { - Py_INCREF(Py_None); - value = Py_None; - } -#endif - PyErr_NormalizeException(&type, &value, &tb); - } else { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto raise_error; - } - value = type; - type = (PyObject*) Py_TYPE(type); - Py_INCREF(type); - if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto raise_error; - } - } - __Pyx_PyThreadState_assign - __Pyx_ErrRestore(type, value, tb); - return; -raise_error: - Py_XDECREF(value); - Py_XDECREF(type); - Py_XDECREF(tb); - return; -} -#else -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { - PyObject* owned_instance = NULL; - if (tb == Py_None) { - tb = 0; - } else if (tb && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto bad; - } - if (value == Py_None) - value = 0; - if (PyExceptionInstance_Check(type)) { - if (value) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto bad; - } - value = type; - type = (PyObject*) Py_TYPE(value); - } else if (PyExceptionClass_Check(type)) { - PyObject *instance_class = NULL; - if (value && PyExceptionInstance_Check(value)) { - instance_class = (PyObject*) Py_TYPE(value); - if (instance_class != type) { - int is_subclass = PyObject_IsSubclass(instance_class, type); - if (!is_subclass) { - instance_class = NULL; - } else if (unlikely(is_subclass == -1)) { - goto bad; - } else { - type = instance_class; - } - } - } - if (!instance_class) { - PyObject *args; - if (!value) - args = PyTuple_New(0); - else if (PyTuple_Check(value)) { - Py_INCREF(value); - args = value; - } else - args = PyTuple_Pack(1, value); - if (!args) - goto bad; - owned_instance = PyObject_Call(type, args, NULL); - Py_DECREF(args); - if (!owned_instance) - goto bad; - value = owned_instance; - if (!PyExceptionInstance_Check(value)) { - PyErr_Format(PyExc_TypeError, - "calling %R should have returned an instance of " - "BaseException, not %R", - type, Py_TYPE(value)); - goto bad; - } - } - } else { - PyErr_SetString(PyExc_TypeError, - "raise: exception class must be a subclass of BaseException"); - goto bad; - } - if (cause) { - PyObject *fixed_cause; - if (cause == Py_None) { - fixed_cause = NULL; - } else if (PyExceptionClass_Check(cause)) { - fixed_cause = PyObject_CallObject(cause, NULL); - if (fixed_cause == NULL) - goto bad; - } else if (PyExceptionInstance_Check(cause)) { - fixed_cause = cause; - Py_INCREF(fixed_cause); - } else { - PyErr_SetString(PyExc_TypeError, - "exception causes must derive from " - "BaseException"); - goto bad; - } - PyException_SetCause(value, fixed_cause); - } - PyErr_SetObject(type, value); - if (tb) { - #if PY_VERSION_HEX >= 0x030C00A6 - PyException_SetTraceback(value, tb); - #elif CYTHON_FAST_THREAD_STATE - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject* tmp_tb = tstate->curexc_traceback; - if (tb != tmp_tb) { - Py_INCREF(tb); - tstate->curexc_traceback = tb; - Py_XDECREF(tmp_tb); - } -#else - PyObject *tmp_type, *tmp_value, *tmp_tb; - PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); - Py_INCREF(tb); - PyErr_Restore(tmp_type, tmp_value, tb); - Py_XDECREF(tmp_tb); -#endif - } -bad: - Py_XDECREF(owned_instance); - return; -} -#endif - -/* TupleAndListFromArray */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) { - PyObject *v; - Py_ssize_t i; - for (i = 0; i < length; i++) { - v = dest[i] = src[i]; - Py_INCREF(v); - } -} -static CYTHON_INLINE PyObject * -__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n) -{ - PyObject *res; - if (n <= 0) { - Py_INCREF(__pyx_empty_tuple); - return __pyx_empty_tuple; - } - res = PyTuple_New(n); - if (unlikely(res == NULL)) return NULL; - __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n); - return res; -} -static CYTHON_INLINE PyObject * -__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n) -{ - PyObject *res; - if (n <= 0) { - return PyList_New(0); - } - res = PyList_New(n); - if (unlikely(res == NULL)) return NULL; - __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n); - return res; -} -#endif - -/* BytesEquals */ -static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { -#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API - return PyObject_RichCompareBool(s1, s2, equals); -#else - if (s1 == s2) { - return (equals == Py_EQ); - } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { - const char *ps1, *ps2; - Py_ssize_t length = PyBytes_GET_SIZE(s1); - if (length != PyBytes_GET_SIZE(s2)) - return (equals == Py_NE); - ps1 = PyBytes_AS_STRING(s1); - ps2 = PyBytes_AS_STRING(s2); - if (ps1[0] != ps2[0]) { - return (equals == Py_NE); - } else if (length == 1) { - return (equals == Py_EQ); - } else { - int result; -#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000) - Py_hash_t hash1, hash2; - hash1 = ((PyBytesObject*)s1)->ob_shash; - hash2 = ((PyBytesObject*)s2)->ob_shash; - if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { - return (equals == Py_NE); - } -#endif - result = memcmp(ps1, ps2, (size_t)length); - return (equals == Py_EQ) ? (result == 0) : (result != 0); - } - } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { - return (equals == Py_NE); - } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { - return (equals == Py_NE); - } else { - int result; - PyObject* py_result = PyObject_RichCompare(s1, s2, equals); - if (!py_result) - return -1; - result = __Pyx_PyObject_IsTrue(py_result); - Py_DECREF(py_result); - return result; - } -#endif -} - -/* UnicodeEquals */ -static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { -#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API - return PyObject_RichCompareBool(s1, s2, equals); -#else -#if PY_MAJOR_VERSION < 3 - PyObject* owned_ref = NULL; -#endif - int s1_is_unicode, s2_is_unicode; - if (s1 == s2) { - goto return_eq; - } - s1_is_unicode = PyUnicode_CheckExact(s1); - s2_is_unicode = PyUnicode_CheckExact(s2); -#if PY_MAJOR_VERSION < 3 - if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { - owned_ref = PyUnicode_FromObject(s2); - if (unlikely(!owned_ref)) - return -1; - s2 = owned_ref; - s2_is_unicode = 1; - } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { - owned_ref = PyUnicode_FromObject(s1); - if (unlikely(!owned_ref)) - return -1; - s1 = owned_ref; - s1_is_unicode = 1; - } else if (((!s2_is_unicode) & (!s1_is_unicode))) { - return __Pyx_PyBytes_Equals(s1, s2, equals); - } -#endif - if (s1_is_unicode & s2_is_unicode) { - Py_ssize_t length; - int kind; - void *data1, *data2; - if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) - return -1; - length = __Pyx_PyUnicode_GET_LENGTH(s1); - if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { - goto return_ne; - } -#if CYTHON_USE_UNICODE_INTERNALS - { - Py_hash_t hash1, hash2; - #if CYTHON_PEP393_ENABLED - hash1 = ((PyASCIIObject*)s1)->hash; - hash2 = ((PyASCIIObject*)s2)->hash; - #else - hash1 = ((PyUnicodeObject*)s1)->hash; - hash2 = ((PyUnicodeObject*)s2)->hash; - #endif - if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { - goto return_ne; - } - } -#endif - kind = __Pyx_PyUnicode_KIND(s1); - if (kind != __Pyx_PyUnicode_KIND(s2)) { - goto return_ne; - } - data1 = __Pyx_PyUnicode_DATA(s1); - data2 = __Pyx_PyUnicode_DATA(s2); - if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { - goto return_ne; - } else if (length == 1) { - goto return_eq; - } else { - int result = memcmp(data1, data2, (size_t)(length * kind)); - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(owned_ref); - #endif - return (equals == Py_EQ) ? (result == 0) : (result != 0); - } - } else if ((s1 == Py_None) & s2_is_unicode) { - goto return_ne; - } else if ((s2 == Py_None) & s1_is_unicode) { - goto return_ne; - } else { - int result; - PyObject* py_result = PyObject_RichCompare(s1, s2, equals); - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(owned_ref); - #endif - if (!py_result) - return -1; - result = __Pyx_PyObject_IsTrue(py_result); - Py_DECREF(py_result); - return result; - } -return_eq: - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(owned_ref); - #endif - return (equals == Py_EQ); -return_ne: - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(owned_ref); - #endif - return (equals == Py_NE); -#endif -} - -/* fastcall */ -#if CYTHON_METH_FASTCALL -static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s) -{ - Py_ssize_t i, n = PyTuple_GET_SIZE(kwnames); - for (i = 0; i < n; i++) - { - if (s == PyTuple_GET_ITEM(kwnames, i)) return kwvalues[i]; - } - for (i = 0; i < n; i++) - { - int eq = __Pyx_PyUnicode_Equals(s, PyTuple_GET_ITEM(kwnames, i), Py_EQ); - if (unlikely(eq != 0)) { - if (unlikely(eq < 0)) return NULL; - return kwvalues[i]; - } - } - return NULL; -} -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000 -CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) { - Py_ssize_t i, nkwargs = PyTuple_GET_SIZE(kwnames); - PyObject *dict; - dict = PyDict_New(); - if (unlikely(!dict)) - return NULL; - for (i=0; i= 0x030d00A1 - int res = PyObject_GetOptionalAttr(o, n, &r); - return (res != 0) ? r : __Pyx_NewRef(d); -#else - #if CYTHON_USE_TYPE_SLOTS - if (likely(PyString_Check(n))) { - r = __Pyx_PyObject_GetAttrStrNoError(o, n); - if (unlikely(!r) && likely(!PyErr_Occurred())) { - r = __Pyx_NewRef(d); - } - return r; - } - #endif - r = PyObject_GetAttr(o, n); - return (likely(r)) ? r : __Pyx_GetAttr3Default(d); -#endif -} - -/* PyDictVersioning */ -#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; -} -static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { - PyObject **dictptr = NULL; - Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; - if (offset) { -#if CYTHON_COMPILING_IN_CPYTHON - dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); -#else - dictptr = _PyObject_GetDictPtr(obj); -#endif - } - return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; -} -static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { - PyObject *dict = Py_TYPE(obj)->tp_dict; - if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) - return 0; - return obj_dict_version == __Pyx_get_object_dict_version(obj); -} -#endif - -/* GetModuleGlobalName */ -#if CYTHON_USE_DICT_VERSIONS -static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) -#else -static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) -#endif -{ - PyObject *result; -#if !CYTHON_AVOID_BORROWED_REFS -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && PY_VERSION_HEX < 0x030d0000 - result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); - __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) - if (likely(result)) { - return __Pyx_NewRef(result); - } else if (unlikely(PyErr_Occurred())) { - return NULL; - } -#elif CYTHON_COMPILING_IN_LIMITED_API - if (unlikely(!__pyx_m)) { - return NULL; - } - result = PyObject_GetAttr(__pyx_m, name); - if (likely(result)) { - return result; - } -#else - result = PyDict_GetItem(__pyx_d, name); - __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) - if (likely(result)) { - return __Pyx_NewRef(result); - } -#endif -#else - result = PyObject_GetItem(__pyx_d, name); - __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) - if (likely(result)) { - return __Pyx_NewRef(result); - } - PyErr_Clear(); -#endif - return __Pyx_GetBuiltinName(name); -} - -/* RaiseDoubleKeywords */ -static void __Pyx_RaiseDoubleKeywordsError( - const char* func_name, - PyObject* kw_name) -{ - PyErr_Format(PyExc_TypeError, - #if PY_MAJOR_VERSION >= 3 - "%s() got multiple values for keyword argument '%U'", func_name, kw_name); - #else - "%s() got multiple values for keyword argument '%s'", func_name, - PyString_AsString(kw_name)); - #endif -} - -/* ParseKeywords */ -static int __Pyx_ParseOptionalKeywords( - PyObject *kwds, - PyObject *const *kwvalues, - PyObject **argnames[], - PyObject *kwds2, - PyObject *values[], - Py_ssize_t num_pos_args, - const char* function_name) -{ - PyObject *key = 0, *value = 0; - Py_ssize_t pos = 0; - PyObject*** name; - PyObject*** first_kw_arg = argnames + num_pos_args; - int kwds_is_tuple = CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds)); - while (1) { - Py_XDECREF(key); key = NULL; - Py_XDECREF(value); value = NULL; - if (kwds_is_tuple) { - Py_ssize_t size; -#if CYTHON_ASSUME_SAFE_MACROS - size = PyTuple_GET_SIZE(kwds); -#else - size = PyTuple_Size(kwds); - if (size < 0) goto bad; -#endif - if (pos >= size) break; -#if CYTHON_AVOID_BORROWED_REFS - key = __Pyx_PySequence_ITEM(kwds, pos); - if (!key) goto bad; -#elif CYTHON_ASSUME_SAFE_MACROS - key = PyTuple_GET_ITEM(kwds, pos); -#else - key = PyTuple_GetItem(kwds, pos); - if (!key) goto bad; -#endif - value = kwvalues[pos]; - pos++; - } - else - { - if (!PyDict_Next(kwds, &pos, &key, &value)) break; -#if CYTHON_AVOID_BORROWED_REFS - Py_INCREF(key); -#endif - } - name = first_kw_arg; - while (*name && (**name != key)) name++; - if (*name) { - values[name-argnames] = value; -#if CYTHON_AVOID_BORROWED_REFS - Py_INCREF(value); - Py_DECREF(key); -#endif - key = NULL; - value = NULL; - continue; - } -#if !CYTHON_AVOID_BORROWED_REFS - Py_INCREF(key); -#endif - Py_INCREF(value); - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 - if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { - values[name-argnames] = value; -#if CYTHON_AVOID_BORROWED_REFS - value = NULL; -#endif - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - if ((**argname == key) || ( - (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) - && _PyString_Eq(**argname, key))) { - goto arg_passed_twice; - } - argname++; - } - } - } else - #endif - if (likely(PyUnicode_Check(key))) { - while (*name) { - int cmp = ( - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key) - ); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) { - values[name-argnames] = value; -#if CYTHON_AVOID_BORROWED_REFS - value = NULL; -#endif - break; - } - name++; - } - if (*name) continue; - else { - PyObject*** argname = argnames; - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 - (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; - if (cmp == 0) goto arg_passed_twice; - argname++; - } - } - } else - goto invalid_keyword_type; - if (kwds2) { - if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; - } else { - goto invalid_keyword; - } - } - Py_XDECREF(key); - Py_XDECREF(value); - return 0; -arg_passed_twice: - __Pyx_RaiseDoubleKeywordsError(function_name, key); - goto bad; -invalid_keyword_type: - PyErr_Format(PyExc_TypeError, - "%.200s() keywords must be strings", function_name); - goto bad; -invalid_keyword: - #if PY_MAJOR_VERSION < 3 - PyErr_Format(PyExc_TypeError, - "%.200s() got an unexpected keyword argument '%.200s'", - function_name, PyString_AsString(key)); - #else - PyErr_Format(PyExc_TypeError, - "%s() got an unexpected keyword argument '%U'", - function_name, key); - #endif -bad: - Py_XDECREF(key); - Py_XDECREF(value); - return -1; -} - -/* RaiseUnexpectedTypeError */ -static int -__Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj) -{ - __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); - PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME, - expected, obj_type_name); - __Pyx_DECREF_TypeName(obj_type_name); - return 0; -} - -/* PyFunctionFastCall */ -#if CYTHON_FAST_PYCALL && !CYTHON_VECTORCALL -static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, - PyObject *globals) { - PyFrameObject *f; - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject **fastlocals; - Py_ssize_t i; - PyObject *result; - assert(globals != NULL); - /* XXX Perhaps we should create a specialized - PyFrame_New() that doesn't take locals, but does - take builtins without sanity checking them. - */ - assert(tstate != NULL); - f = PyFrame_New(tstate, co, globals, NULL); - if (f == NULL) { - return NULL; - } - fastlocals = __Pyx_PyFrame_GetLocalsplus(f); - for (i = 0; i < na; i++) { - Py_INCREF(*args); - fastlocals[i] = *args++; - } - result = PyEval_EvalFrameEx(f,0); - ++tstate->recursion_depth; - Py_DECREF(f); - --tstate->recursion_depth; - return result; -} -static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { - PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); - PyObject *globals = PyFunction_GET_GLOBALS(func); - PyObject *argdefs = PyFunction_GET_DEFAULTS(func); - PyObject *closure; -#if PY_MAJOR_VERSION >= 3 - PyObject *kwdefs; -#endif - PyObject *kwtuple, **k; - PyObject **d; - Py_ssize_t nd; - Py_ssize_t nk; - PyObject *result; - assert(kwargs == NULL || PyDict_Check(kwargs)); - nk = kwargs ? PyDict_Size(kwargs) : 0; - #if PY_MAJOR_VERSION < 3 - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) { - return NULL; - } - #else - if (unlikely(Py_EnterRecursiveCall(" while calling a Python object"))) { - return NULL; - } - #endif - if ( -#if PY_MAJOR_VERSION >= 3 - co->co_kwonlyargcount == 0 && -#endif - likely(kwargs == NULL || nk == 0) && - co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { - if (argdefs == NULL && co->co_argcount == nargs) { - result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); - goto done; - } - else if (nargs == 0 && argdefs != NULL - && co->co_argcount == Py_SIZE(argdefs)) { - /* function called with no arguments, but all parameters have - a default value: use default values as arguments .*/ - args = &PyTuple_GET_ITEM(argdefs, 0); - result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); - goto done; - } - } - if (kwargs != NULL) { - Py_ssize_t pos, i; - kwtuple = PyTuple_New(2 * nk); - if (kwtuple == NULL) { - result = NULL; - goto done; - } - k = &PyTuple_GET_ITEM(kwtuple, 0); - pos = i = 0; - while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { - Py_INCREF(k[i]); - Py_INCREF(k[i+1]); - i += 2; - } - nk = i / 2; - } - else { - kwtuple = NULL; - k = NULL; - } - closure = PyFunction_GET_CLOSURE(func); -#if PY_MAJOR_VERSION >= 3 - kwdefs = PyFunction_GET_KW_DEFAULTS(func); -#endif - if (argdefs != NULL) { - d = &PyTuple_GET_ITEM(argdefs, 0); - nd = Py_SIZE(argdefs); - } - else { - d = NULL; - nd = 0; - } -#if PY_MAJOR_VERSION >= 3 - result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, - args, (int)nargs, - k, (int)nk, - d, (int)nd, kwdefs, closure); -#else - result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, - args, (int)nargs, - k, (int)nk, - d, (int)nd, closure); -#endif - Py_XDECREF(kwtuple); -done: - Py_LeaveRecursiveCall(); - return result; -} -#endif - -/* PyObjectCall */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; - ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - #if PY_MAJOR_VERSION < 3 - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) - return NULL; - #else - if (unlikely(Py_EnterRecursiveCall(" while calling a Python object"))) - return NULL; - #endif - result = (*call)(func, arg, kw); - Py_LeaveRecursiveCall(); - if (unlikely(!result) && unlikely(!PyErr_Occurred())) { - PyErr_SetString( - PyExc_SystemError, - "NULL result without error in PyObject_Call"); - } - return result; -} -#endif - -/* PyObjectCallMethO */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { - PyObject *self, *result; - PyCFunction cfunc; - cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func); - self = __Pyx_CyOrPyCFunction_GET_SELF(func); - #if PY_MAJOR_VERSION < 3 - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) - return NULL; - #else - if (unlikely(Py_EnterRecursiveCall(" while calling a Python object"))) - return NULL; - #endif - result = cfunc(self, arg); - Py_LeaveRecursiveCall(); - if (unlikely(!result) && unlikely(!PyErr_Occurred())) { - PyErr_SetString( - PyExc_SystemError, - "NULL result without error in PyObject_Call"); - } - return result; -} -#endif - -/* PyObjectFastCall */ -#if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API -static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs) { - PyObject *argstuple; - PyObject *result = 0; - size_t i; - argstuple = PyTuple_New((Py_ssize_t)nargs); - if (unlikely(!argstuple)) return NULL; - for (i = 0; i < nargs; i++) { - Py_INCREF(args[i]); - if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) < 0) goto bad; - } - result = __Pyx_PyObject_Call(func, argstuple, kwargs); - bad: - Py_DECREF(argstuple); - return result; -} -#endif -static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t _nargs, PyObject *kwargs) { - Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs); -#if CYTHON_COMPILING_IN_CPYTHON - if (nargs == 0 && kwargs == NULL) { - if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS)) - return __Pyx_PyObject_CallMethO(func, NULL); - } - else if (nargs == 1 && kwargs == NULL) { - if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O)) - return __Pyx_PyObject_CallMethO(func, args[0]); - } -#endif - #if PY_VERSION_HEX < 0x030800B1 - #if CYTHON_FAST_PYCCALL - if (PyCFunction_Check(func)) { - if (kwargs) { - return _PyCFunction_FastCallDict(func, args, nargs, kwargs); - } else { - return _PyCFunction_FastCallKeywords(func, args, nargs, NULL); - } - } - #if PY_VERSION_HEX >= 0x030700A1 - if (!kwargs && __Pyx_IS_TYPE(func, &PyMethodDescr_Type)) { - return _PyMethodDescr_FastCallKeywords(func, args, nargs, NULL); - } - #endif - #endif - #if CYTHON_FAST_PYCALL - if (PyFunction_Check(func)) { - return __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs); - } - #endif - #endif - if (kwargs == NULL) { - #if CYTHON_VECTORCALL - #if PY_VERSION_HEX < 0x03090000 - vectorcallfunc f = _PyVectorcall_Function(func); - #else - vectorcallfunc f = PyVectorcall_Function(func); - #endif - if (f) { - return f(func, args, (size_t)nargs, NULL); - } - #elif defined(__Pyx_CyFunction_USED) && CYTHON_BACKPORT_VECTORCALL - if (__Pyx_CyFunction_CheckExact(func)) { - __pyx_vectorcallfunc f = __Pyx_CyFunction_func_vectorcall(func); - if (f) return f(func, args, (size_t)nargs, NULL); - } - #endif - } - if (nargs == 0) { - return __Pyx_PyObject_Call(func, __pyx_empty_tuple, kwargs); - } - #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API - return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs); - #else - return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs); - #endif -} - -/* PyObjectCallOneArg */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { - PyObject *args[2] = {NULL, arg}; - return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); -} - -/* ArgTypeTest */ -static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) -{ - __Pyx_TypeName type_name; - __Pyx_TypeName obj_type_name; - if (unlikely(!type)) { - PyErr_SetString(PyExc_SystemError, "Missing type object"); - return 0; - } - else if (exact) { - #if PY_MAJOR_VERSION == 2 - if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; - #endif - } - else { - if (likely(__Pyx_TypeCheck(obj, type))) return 1; - } - type_name = __Pyx_PyType_GetName(type); - obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj)); - PyErr_Format(PyExc_TypeError, - "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME - ", got " __Pyx_FMT_TYPENAME ")", name, type_name, obj_type_name); - __Pyx_DECREF_TypeName(type_name); - __Pyx_DECREF_TypeName(obj_type_name); - return 0; -} - -/* SetItemInt */ -static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) { - int r; - if (unlikely(!j)) return -1; - r = PyObject_SetItem(o, j, v); - Py_DECREF(j); - return r; -} -static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, - CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { -#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS - if (is_list || PyList_CheckExact(o)) { - Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o)); - if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) { - PyObject* old = PyList_GET_ITEM(o, n); - Py_INCREF(v); - PyList_SET_ITEM(o, n, v); - Py_DECREF(old); - return 1; - } - } else { - PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping; - PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence; - if (mm && mm->mp_ass_subscript) { - int r; - PyObject *key = PyInt_FromSsize_t(i); - if (unlikely(!key)) return -1; - r = mm->mp_ass_subscript(o, key, v); - Py_DECREF(key); - return r; - } - if (likely(sm && sm->sq_ass_item)) { - if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) { - Py_ssize_t l = sm->sq_length(o); - if (likely(l >= 0)) { - i += l; - } else { - if (!PyErr_ExceptionMatches(PyExc_OverflowError)) - return -1; - PyErr_Clear(); - } - } - return sm->sq_ass_item(o, i, v); - } - } -#else - if (is_list || !PyMapping_Check(o)) - { - return PySequence_SetItem(o, i, v); - } -#endif - return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v); -} - -/* RaiseUnboundLocalError */ -static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { - PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); -} - -/* RaiseTooManyValuesToUnpack */ -static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { - PyErr_Format(PyExc_ValueError, - "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); -} - -/* RaiseNeedMoreValuesToUnpack */ -static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { - PyErr_Format(PyExc_ValueError, - "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", - index, (index == 1) ? "" : "s"); -} - -/* IterFinish */ -static CYTHON_INLINE int __Pyx_IterFinish(void) { - PyObject* exc_type; - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - exc_type = __Pyx_PyErr_CurrentExceptionType(); - if (unlikely(exc_type)) { - if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) - return -1; - __Pyx_PyErr_Clear(); - return 0; - } - return 0; -} - -/* UnpackItemEndCheck */ -static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { - if (unlikely(retval)) { - Py_DECREF(retval); - __Pyx_RaiseTooManyValuesError(expected); - return -1; - } - return __Pyx_IterFinish(); -} - -/* UnpackUnboundCMethod */ -static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) { - PyObject *result; - PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args)); - if (unlikely(!selfless_args)) return NULL; - result = PyObject_Call(method, selfless_args, kwargs); - Py_DECREF(selfless_args); - return result; -} -static PyMethodDef __Pyx_UnboundCMethod_Def = { - "CythonUnboundCMethod", - __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall), - METH_VARARGS | METH_KEYWORDS, - NULL -}; -static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) { - PyObject *method; - method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name); - if (unlikely(!method)) - return -1; - target->method = method; -#if CYTHON_COMPILING_IN_CPYTHON - #if PY_MAJOR_VERSION >= 3 - if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type))) - #else - if (likely(!__Pyx_CyOrPyCFunction_Check(method))) - #endif - { - PyMethodDescrObject *descr = (PyMethodDescrObject*) method; - target->func = descr->d_method->ml_meth; - target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS); - } else -#endif -#if CYTHON_COMPILING_IN_PYPY -#else - if (PyCFunction_Check(method)) -#endif - { - PyObject *self; - int self_found; -#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY - self = PyObject_GetAttrString(method, "__self__"); - if (!self) { - PyErr_Clear(); - } -#else - self = PyCFunction_GET_SELF(method); -#endif - self_found = (self && self != Py_None); -#if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY - Py_XDECREF(self); -#endif - if (self_found) { - PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method); - if (unlikely(!unbound_method)) return -1; - Py_DECREF(method); - target->method = unbound_method; - } - } - return 0; -} - -/* CallUnboundCMethod1 */ -#if CYTHON_COMPILING_IN_CPYTHON -static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) { - if (likely(cfunc->func)) { - int flag = cfunc->flag; - if (flag == METH_O) { - return (*(cfunc->func))(self, arg); - } else if ((PY_VERSION_HEX >= 0x030600B1) && flag == METH_FASTCALL) { - #if PY_VERSION_HEX >= 0x030700A0 - return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, &arg, 1); - #else - return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL); - #endif - } else if ((PY_VERSION_HEX >= 0x030700A0) && flag == (METH_FASTCALL | METH_KEYWORDS)) { - return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL); - } - } - return __Pyx__CallUnboundCMethod1(cfunc, self, arg); -} -#endif -static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){ - PyObject *args, *result = NULL; - if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; -#if CYTHON_COMPILING_IN_CPYTHON - if (cfunc->func && (cfunc->flag & METH_VARARGS)) { - args = PyTuple_New(1); - if (unlikely(!args)) goto bad; - Py_INCREF(arg); - PyTuple_SET_ITEM(args, 0, arg); - if (cfunc->flag & METH_KEYWORDS) - result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL); - else - result = (*cfunc->func)(self, args); - } else { - args = PyTuple_New(2); - if (unlikely(!args)) goto bad; - Py_INCREF(self); - PyTuple_SET_ITEM(args, 0, self); - Py_INCREF(arg); - PyTuple_SET_ITEM(args, 1, arg); - result = __Pyx_PyObject_Call(cfunc->method, args, NULL); - } -#else - args = PyTuple_Pack(2, self, arg); - if (unlikely(!args)) goto bad; - result = __Pyx_PyObject_Call(cfunc->method, args, NULL); -#endif -bad: - Py_XDECREF(args); - return result; -} - -/* PyFloatBinop */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyFloat_TrueDivideObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) { - const double b = floatval; - double a, result; - CYTHON_UNUSED_VAR(inplace); - CYTHON_UNUSED_VAR(zerodivision_check); - if (likely(PyFloat_CheckExact(op1))) { -#if CYTHON_COMPILING_IN_LIMITED_API - a = __pyx_PyFloat_AsDouble(op1); -#else - a = PyFloat_AS_DOUBLE(op1); -#endif - - } else - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op1))) { - a = (double) PyInt_AS_LONG(op1); - - } else - #endif - if (likely(PyLong_CheckExact(op1))) { - #if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsZero(op1)) { - a = 0.0; - - } else if (__Pyx_PyLong_IsCompact(op1)) { - a = (double) __Pyx_PyLong_CompactValue(op1); - } else { - const digit* digits = __Pyx_PyLong_Digits(op1); - const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1); - switch (size) { - case -2: - case 2: - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) { - a = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) { - if (size == -2) - a = -a; - break; - } - } - CYTHON_FALLTHROUGH; - case -3: - case 3: - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) { - a = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) { - if (size == -3) - a = -a; - break; - } - } - CYTHON_FALLTHROUGH; - case -4: - case 4: - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) { - a = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) { - if (size == -4) - a = -a; - break; - } - } - CYTHON_FALLTHROUGH; - default: - #endif - a = PyLong_AsDouble(op1); - if (unlikely(a == -1.0 && PyErr_Occurred())) return NULL; - #if CYTHON_USE_PYLONG_INTERNALS - } - } - #endif - } else { - return (inplace ? PyNumber_InPlaceTrueDivide : PyNumber_TrueDivide)(op1, op2); - } - PyFPE_START_PROTECT("divide", return NULL) - result = a / b; - PyFPE_END_PROTECT(result) - return PyFloat_FromDouble(result); -} -#endif - -/* PyIntBinop */ -#if !CYTHON_COMPILING_IN_PYPY -static PyObject* __Pyx_PyInt_MultiplyCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) { - CYTHON_MAYBE_UNUSED_VAR(intval); - CYTHON_MAYBE_UNUSED_VAR(inplace); - CYTHON_UNUSED_VAR(zerodivision_check); - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(op2))) { - const long a = intval; - long b = PyInt_AS_LONG(op2); - -#ifdef HAVE_LONG_LONG - if (sizeof(PY_LONG_LONG) > sizeof(long)) { - PY_LONG_LONG result = (PY_LONG_LONG)a * (PY_LONG_LONG)b; - return (result >= LONG_MIN && result <= LONG_MAX) ? - PyInt_FromLong((long)result) : PyLong_FromLongLong(result); - } -#endif -#if CYTHON_USE_TYPE_SLOTS - return PyInt_Type.tp_as_number->nb_multiply(op1, op2); -#else - return PyNumber_Multiply(op1, op2); -#endif - } - #endif - #if CYTHON_USE_PYLONG_INTERNALS - if (likely(PyLong_CheckExact(op2))) { - const long a = intval; - long b, x; -#ifdef HAVE_LONG_LONG - const PY_LONG_LONG lla = intval; - PY_LONG_LONG llb, llx; -#endif - if (unlikely(__Pyx_PyLong_IsZero(op2))) { - return __Pyx_NewRef(op2); - } - if (likely(__Pyx_PyLong_IsCompact(op2))) { - b = __Pyx_PyLong_CompactValue(op2); - } else { - const digit* digits = __Pyx_PyLong_Digits(op2); - const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op2); - switch (size) { - case -2: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) { - b = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; - #ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) { - llb = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; - #endif - } - CYTHON_FALLTHROUGH; - case 2: - if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) { - b = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; - #ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) { - llb = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; - #endif - } - CYTHON_FALLTHROUGH; - case -3: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) { - b = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; - #ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) { - llb = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; - #endif - } - CYTHON_FALLTHROUGH; - case 3: - if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) { - b = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; - #ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) { - llb = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; - #endif - } - CYTHON_FALLTHROUGH; - case -4: - if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) { - b = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; - #ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) { - llb = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; - #endif - } - CYTHON_FALLTHROUGH; - case 4: - if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) { - b = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); - break; - #ifdef HAVE_LONG_LONG - } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) { - llb = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); - goto long_long; - #endif - } - CYTHON_FALLTHROUGH; - default: return PyLong_Type.tp_as_number->nb_multiply(op1, op2); - } - } - CYTHON_UNUSED_VAR(a); - CYTHON_UNUSED_VAR(b); - #ifdef HAVE_LONG_LONG - llb = b; - goto long_long; - #else - return PyLong_Type.tp_as_number->nb_multiply(op1, op2); - #endif - return PyLong_FromLong(x); -#ifdef HAVE_LONG_LONG - long_long: - llx = lla * llb; - return PyLong_FromLongLong(llx); -#endif - - - } - #endif - if (PyFloat_CheckExact(op2)) { - const long a = intval; -#if CYTHON_COMPILING_IN_LIMITED_API - double b = __pyx_PyFloat_AsDouble(op2); -#else - double b = PyFloat_AS_DOUBLE(op2); -#endif - double result; - - PyFPE_START_PROTECT("multiply", return NULL) - result = ((double)a) * (double)b; - PyFPE_END_PROTECT(result) - return PyFloat_FromDouble(result); - } - return (inplace ? PyNumber_InPlaceMultiply : PyNumber_Multiply)(op1, op2); -} -#endif - -/* RaiseNoneIterError */ -static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { - PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -} - -/* PyObjectCallNoArg */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { - PyObject *arg[2] = {NULL, NULL}; - return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); -} - -/* PyObjectGetMethod */ -static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { - PyObject *attr; -#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP - __Pyx_TypeName type_name; - PyTypeObject *tp = Py_TYPE(obj); - PyObject *descr; - descrgetfunc f = NULL; - PyObject **dictptr, *dict; - int meth_found = 0; - assert (*method == NULL); - if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { - attr = __Pyx_PyObject_GetAttrStr(obj, name); - goto try_unpack; - } - if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { - return 0; - } - descr = _PyType_Lookup(tp, name); - if (likely(descr != NULL)) { - Py_INCREF(descr); -#if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR - if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR)) -#elif PY_MAJOR_VERSION >= 3 - #ifdef __Pyx_CyFunction_USED - if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) - #else - if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type))) - #endif -#else - #ifdef __Pyx_CyFunction_USED - if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) - #else - if (likely(PyFunction_Check(descr))) - #endif -#endif - { - meth_found = 1; - } else { - f = Py_TYPE(descr)->tp_descr_get; - if (f != NULL && PyDescr_IsData(descr)) { - attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); - Py_DECREF(descr); - goto try_unpack; - } - } - } - dictptr = _PyObject_GetDictPtr(obj); - if (dictptr != NULL && (dict = *dictptr) != NULL) { - Py_INCREF(dict); - attr = __Pyx_PyDict_GetItemStr(dict, name); - if (attr != NULL) { - Py_INCREF(attr); - Py_DECREF(dict); - Py_XDECREF(descr); - goto try_unpack; - } - Py_DECREF(dict); - } - if (meth_found) { - *method = descr; - return 1; - } - if (f != NULL) { - attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); - Py_DECREF(descr); - goto try_unpack; - } - if (likely(descr != NULL)) { - *method = descr; - return 0; - } - type_name = __Pyx_PyType_GetName(tp); - PyErr_Format(PyExc_AttributeError, -#if PY_MAJOR_VERSION >= 3 - "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'", - type_name, name); -#else - "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'", - type_name, PyString_AS_STRING(name)); -#endif - __Pyx_DECREF_TypeName(type_name); - return 0; -#else - attr = __Pyx_PyObject_GetAttrStr(obj, name); - goto try_unpack; -#endif -try_unpack: -#if CYTHON_UNPACK_METHODS - if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { - PyObject *function = PyMethod_GET_FUNCTION(attr); - Py_INCREF(function); - Py_DECREF(attr); - *method = function; - return 1; - } -#endif - *method = attr; - return 0; -} - -/* PyObjectCallMethod0 */ -static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) { - PyObject *method = NULL, *result = NULL; - int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); - if (likely(is_method)) { - result = __Pyx_PyObject_CallOneArg(method, obj); - Py_DECREF(method); - return result; - } - if (unlikely(!method)) goto bad; - result = __Pyx_PyObject_CallNoArg(method); - Py_DECREF(method); -bad: - return result; -} - -/* CallUnboundCMethod0 */ -static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) { - PyObject *args, *result = NULL; - if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; -#if CYTHON_ASSUME_SAFE_MACROS - args = PyTuple_New(1); - if (unlikely(!args)) goto bad; - Py_INCREF(self); - PyTuple_SET_ITEM(args, 0, self); -#else - args = PyTuple_Pack(1, self); - if (unlikely(!args)) goto bad; -#endif - result = __Pyx_PyObject_Call(cfunc->method, args, NULL); - Py_DECREF(args); -bad: - return result; -} - -/* pop */ -static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L) { - if (__Pyx_IS_TYPE(L, &PySet_Type)) { - return PySet_Pop(L); - } - return __Pyx_PyObject_CallMethod0(L, __pyx_n_s_pop); -} -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L) { - if (likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) { - __Pyx_SET_SIZE(L, Py_SIZE(L) - 1); - return PyList_GET_ITEM(L, PyList_GET_SIZE(L)); - } - return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyList_Type_pop, L); -} -#endif - -/* PyObjectCall2Args */ -static CYTHON_INLINE PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { - PyObject *args[3] = {NULL, arg1, arg2}; - return __Pyx_PyObject_FastCall(function, args+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET); -} - -/* PyObjectCallMethod1 */ -#if !(CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030C00A2) -static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) { - PyObject *result = __Pyx_PyObject_CallOneArg(method, arg); - Py_DECREF(method); - return result; -} -#endif -static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) { -#if CYTHON_VECTORCALL && __PYX_LIMITED_VERSION_HEX >= 0x030C00A2 - PyObject *args[2] = {obj, arg}; - (void) __Pyx_PyObject_GetMethod; - (void) __Pyx_PyObject_CallOneArg; - (void) __Pyx_PyObject_Call2Args; - return PyObject_VectorcallMethod(method_name, args, 2 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); -#else - PyObject *method = NULL, *result; - int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); - if (likely(is_method)) { - result = __Pyx_PyObject_Call2Args(method, obj, arg); - Py_DECREF(method); - return result; - } - if (unlikely(!method)) return NULL; - return __Pyx__PyObject_CallMethod1(method, arg); -#endif -} - -/* pop_index */ -static PyObject* __Pyx__PyObject_PopNewIndex(PyObject* L, PyObject* py_ix) { - PyObject *r; - if (unlikely(!py_ix)) return NULL; - r = __Pyx__PyObject_PopIndex(L, py_ix); - Py_DECREF(py_ix); - return r; -} -static PyObject* __Pyx__PyObject_PopIndex(PyObject* L, PyObject* py_ix) { - return __Pyx_PyObject_CallMethod1(L, __pyx_n_s_pop, py_ix); -} -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS -static PyObject* __Pyx__PyList_PopIndex(PyObject* L, PyObject* py_ix, Py_ssize_t ix) { - Py_ssize_t size = PyList_GET_SIZE(L); - if (likely(size > (((PyListObject*)L)->allocated >> 1))) { - Py_ssize_t cix = ix; - if (cix < 0) { - cix += size; - } - if (likely(__Pyx_is_valid_index(cix, size))) { - PyObject* v = PyList_GET_ITEM(L, cix); - __Pyx_SET_SIZE(L, Py_SIZE(L) - 1); - size -= 1; - memmove(&PyList_GET_ITEM(L, cix), &PyList_GET_ITEM(L, cix+1), (size_t)(size-cix)*sizeof(PyObject*)); - return v; - } - } - if (py_ix == Py_None) { - return __Pyx__PyObject_PopNewIndex(L, PyInt_FromSsize_t(ix)); - } else { - return __Pyx__PyObject_PopIndex(L, py_ix); - } -} -#endif - -/* GetException */ -#if CYTHON_FAST_THREAD_STATE -static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) -#else -static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) -#endif -{ - PyObject *local_type = NULL, *local_value, *local_tb = NULL; -#if CYTHON_FAST_THREAD_STATE - PyObject *tmp_type, *tmp_value, *tmp_tb; - #if PY_VERSION_HEX >= 0x030C00A6 - local_value = tstate->current_exception; - tstate->current_exception = 0; - if (likely(local_value)) { - local_type = (PyObject*) Py_TYPE(local_value); - Py_INCREF(local_type); - local_tb = PyException_GetTraceback(local_value); - } - #else - local_type = tstate->curexc_type; - local_value = tstate->curexc_value; - local_tb = tstate->curexc_traceback; - tstate->curexc_type = 0; - tstate->curexc_value = 0; - tstate->curexc_traceback = 0; - #endif -#else - PyErr_Fetch(&local_type, &local_value, &local_tb); -#endif - PyErr_NormalizeException(&local_type, &local_value, &local_tb); -#if CYTHON_FAST_THREAD_STATE && PY_VERSION_HEX >= 0x030C00A6 - if (unlikely(tstate->current_exception)) -#elif CYTHON_FAST_THREAD_STATE - if (unlikely(tstate->curexc_type)) -#else - if (unlikely(PyErr_Occurred())) -#endif - goto bad; - #if PY_MAJOR_VERSION >= 3 - if (local_tb) { - if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) - goto bad; - } - #endif - Py_XINCREF(local_tb); - Py_XINCREF(local_type); - Py_XINCREF(local_value); - *type = local_type; - *value = local_value; - *tb = local_tb; -#if CYTHON_FAST_THREAD_STATE - #if CYTHON_USE_EXC_INFO_STACK - { - _PyErr_StackItem *exc_info = tstate->exc_info; - #if PY_VERSION_HEX >= 0x030B00a4 - tmp_value = exc_info->exc_value; - exc_info->exc_value = local_value; - tmp_type = NULL; - tmp_tb = NULL; - Py_XDECREF(local_type); - Py_XDECREF(local_tb); - #else - tmp_type = exc_info->exc_type; - tmp_value = exc_info->exc_value; - tmp_tb = exc_info->exc_traceback; - exc_info->exc_type = local_type; - exc_info->exc_value = local_value; - exc_info->exc_traceback = local_tb; - #endif - } - #else - tmp_type = tstate->exc_type; - tmp_value = tstate->exc_value; - tmp_tb = tstate->exc_traceback; - tstate->exc_type = local_type; - tstate->exc_value = local_value; - tstate->exc_traceback = local_tb; - #endif - Py_XDECREF(tmp_type); - Py_XDECREF(tmp_value); - Py_XDECREF(tmp_tb); -#else - PyErr_SetExcInfo(local_type, local_value, local_tb); -#endif - return 0; -bad: - *type = 0; - *value = 0; - *tb = 0; - Py_XDECREF(local_type); - Py_XDECREF(local_value); - Py_XDECREF(local_tb); - return -1; -} - -/* Import */ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { - PyObject *module = 0; - PyObject *empty_dict = 0; - PyObject *empty_list = 0; - #if PY_MAJOR_VERSION < 3 - PyObject *py_import; - py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); - if (unlikely(!py_import)) - goto bad; - if (!from_list) { - empty_list = PyList_New(0); - if (unlikely(!empty_list)) - goto bad; - from_list = empty_list; - } - #endif - empty_dict = PyDict_New(); - if (unlikely(!empty_dict)) - goto bad; - { - #if PY_MAJOR_VERSION >= 3 - if (level == -1) { - if (strchr(__Pyx_MODULE_NAME, '.') != NULL) { - module = PyImport_ImportModuleLevelObject( - name, __pyx_d, empty_dict, from_list, 1); - if (unlikely(!module)) { - if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError))) - goto bad; - PyErr_Clear(); - } - } - level = 0; - } - #endif - if (!module) { - #if PY_MAJOR_VERSION < 3 - PyObject *py_level = PyInt_FromLong(level); - if (unlikely(!py_level)) - goto bad; - module = PyObject_CallFunctionObjArgs(py_import, - name, __pyx_d, empty_dict, from_list, py_level, (PyObject *)NULL); - Py_DECREF(py_level); - #else - module = PyImport_ImportModuleLevelObject( - name, __pyx_d, empty_dict, from_list, level); - #endif - } - } -bad: - Py_XDECREF(empty_dict); - Py_XDECREF(empty_list); - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(py_import); - #endif - return module; -} - -/* ImportFrom */ -static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { - PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); - if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { - const char* module_name_str = 0; - PyObject* module_name = 0; - PyObject* module_dot = 0; - PyObject* full_name = 0; - PyErr_Clear(); - module_name_str = PyModule_GetName(module); - if (unlikely(!module_name_str)) { goto modbad; } - module_name = PyUnicode_FromString(module_name_str); - if (unlikely(!module_name)) { goto modbad; } - module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__7); - if (unlikely(!module_dot)) { goto modbad; } - full_name = PyUnicode_Concat(module_dot, name); - if (unlikely(!full_name)) { goto modbad; } - #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400) - { - PyObject *modules = PyImport_GetModuleDict(); - if (unlikely(!modules)) - goto modbad; - value = PyObject_GetItem(modules, full_name); - } - #else - value = PyImport_GetModule(full_name); - #endif - modbad: - Py_XDECREF(full_name); - Py_XDECREF(module_dot); - Py_XDECREF(module_name); - } - if (unlikely(!value)) { - PyErr_Format(PyExc_ImportError, - #if PY_MAJOR_VERSION < 3 - "cannot import name %.230s", PyString_AS_STRING(name)); - #else - "cannot import name %S", name); - #endif - } - return value; -} - -/* GetAttr */ -static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { -#if CYTHON_USE_TYPE_SLOTS -#if PY_MAJOR_VERSION >= 3 - if (likely(PyUnicode_Check(n))) -#else - if (likely(PyString_Check(n))) -#endif - return __Pyx_PyObject_GetAttrStr(o, n); -#endif - return PyObject_GetAttr(o, n); -} - -/* HasAttr */ -#if __PYX_LIMITED_VERSION_HEX < 0x030d00A1 -static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { - PyObject *r; - if (unlikely(!__Pyx_PyBaseString_Check(n))) { - PyErr_SetString(PyExc_TypeError, - "hasattr(): attribute name must be string"); - return -1; - } - r = __Pyx_GetAttr(o, n); - if (!r) { - PyErr_Clear(); - return 0; - } else { - Py_DECREF(r); - return 1; - } -} -#endif - -/* CallNextTpTraverse */ -static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse) { - PyTypeObject* type = Py_TYPE(obj); - traverseproc tp_traverse = NULL; - while (type && __Pyx_PyType_GetSlot(type, tp_traverse, traverseproc) != current_tp_traverse) - type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*); - while (type && (tp_traverse = __Pyx_PyType_GetSlot(type, tp_traverse, traverseproc)) == current_tp_traverse) - type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*); - if (type && tp_traverse) - return tp_traverse(obj, v, a); - return 0; -} - -/* CallNextTpClear */ -static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear) { - PyTypeObject* type = Py_TYPE(obj); - inquiry tp_clear = NULL; - while (type && __Pyx_PyType_GetSlot(type, tp_clear, inquiry) != current_tp_clear) - type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*); - while (type && (tp_clear = __Pyx_PyType_GetSlot(type, tp_clear, inquiry)) == current_tp_clear) - type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*); - if (type && tp_clear) - tp_clear(obj); -} - -/* SetPackagePathFromImportLib */ -#if PY_MAJOR_VERSION >= 3 && !CYTHON_PEP489_MULTI_PHASE_INIT -static int __Pyx_SetPackagePathFromImportLib(PyObject *module_name) { - PyObject *importlib, *osmod, *ossep, *parts, *package_path; - PyObject *file_path = NULL; - int result; - PyObject *spec; - importlib = PyImport_ImportModule("importlib.util"); - if (unlikely(!importlib)) - goto bad; - spec = PyObject_CallMethod(importlib, "find_spec", "(O)", module_name); - Py_DECREF(importlib); - if (unlikely(!spec)) - goto bad; - file_path = PyObject_GetAttrString(spec, "origin"); - Py_DECREF(spec); - if (unlikely(!file_path)) - goto bad; - if (unlikely(PyObject_SetAttrString(__pyx_m, "__file__", file_path) < 0)) - goto bad; - osmod = PyImport_ImportModule("os"); - if (unlikely(!osmod)) - goto bad; - ossep = PyObject_GetAttrString(osmod, "sep"); - Py_DECREF(osmod); - if (unlikely(!ossep)) - goto bad; - parts = PyObject_CallMethod(file_path, "rsplit", "(Oi)", ossep, 1); - Py_DECREF(file_path); file_path = NULL; - Py_DECREF(ossep); - if (unlikely(!parts)) - goto bad; - package_path = Py_BuildValue("[O]", PyList_GET_ITEM(parts, 0)); - Py_DECREF(parts); - if (unlikely(!package_path)) - goto bad; - goto set_path; -bad: - PyErr_WriteUnraisable(module_name); - Py_XDECREF(file_path); - PyErr_Clear(); - package_path = PyList_New(0); - if (unlikely(!package_path)) - return -1; -set_path: - result = PyObject_SetAttrString(__pyx_m, "__path__", package_path); - Py_DECREF(package_path); - return result; -} -#endif - -/* FixUpExtensionType */ -#if CYTHON_USE_TYPE_SPECS -static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) { -#if PY_VERSION_HEX > 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API - CYTHON_UNUSED_VAR(spec); - CYTHON_UNUSED_VAR(type); -#else - const PyType_Slot *slot = spec->slots; - while (slot && slot->slot && slot->slot != Py_tp_members) - slot++; - if (slot && slot->slot == Py_tp_members) { - int changed = 0; -#if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON) - const -#endif - PyMemberDef *memb = (PyMemberDef*) slot->pfunc; - while (memb && memb->name) { - if (memb->name[0] == '_' && memb->name[1] == '_') { -#if PY_VERSION_HEX < 0x030900b1 - if (strcmp(memb->name, "__weaklistoffset__") == 0) { - assert(memb->type == T_PYSSIZET); - assert(memb->flags == READONLY); - type->tp_weaklistoffset = memb->offset; - changed = 1; - } - else if (strcmp(memb->name, "__dictoffset__") == 0) { - assert(memb->type == T_PYSSIZET); - assert(memb->flags == READONLY); - type->tp_dictoffset = memb->offset; - changed = 1; - } -#if CYTHON_METH_FASTCALL - else if (strcmp(memb->name, "__vectorcalloffset__") == 0) { - assert(memb->type == T_PYSSIZET); - assert(memb->flags == READONLY); -#if PY_VERSION_HEX >= 0x030800b4 - type->tp_vectorcall_offset = memb->offset; -#else - type->tp_print = (printfunc) memb->offset; -#endif - changed = 1; - } -#endif -#else - if ((0)); -#endif -#if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON - else if (strcmp(memb->name, "__module__") == 0) { - PyObject *descr; - assert(memb->type == T_OBJECT); - assert(memb->flags == 0 || memb->flags == READONLY); - descr = PyDescr_NewMember(type, memb); - if (unlikely(!descr)) - return -1; - if (unlikely(PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr) < 0)) { - Py_DECREF(descr); - return -1; - } - Py_DECREF(descr); - changed = 1; - } -#endif - } - memb++; - } - if (changed) - PyType_Modified(type); - } -#endif - return 0; -} -#endif - -/* ValidateBasesTuple */ -#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS -static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) { - Py_ssize_t i, n; -#if CYTHON_ASSUME_SAFE_MACROS - n = PyTuple_GET_SIZE(bases); -#else - n = PyTuple_Size(bases); - if (n < 0) return -1; -#endif - for (i = 1; i < n; i++) - { -#if CYTHON_AVOID_BORROWED_REFS - PyObject *b0 = PySequence_GetItem(bases, i); - if (!b0) return -1; -#elif CYTHON_ASSUME_SAFE_MACROS - PyObject *b0 = PyTuple_GET_ITEM(bases, i); -#else - PyObject *b0 = PyTuple_GetItem(bases, i); - if (!b0) return -1; -#endif - PyTypeObject *b; -#if PY_MAJOR_VERSION < 3 - if (PyClass_Check(b0)) - { - PyErr_Format(PyExc_TypeError, "base class '%.200s' is an old-style class", - PyString_AS_STRING(((PyClassObject*)b0)->cl_name)); -#if CYTHON_AVOID_BORROWED_REFS - Py_DECREF(b0); -#endif - return -1; - } -#endif - b = (PyTypeObject*) b0; - if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE)) - { - __Pyx_TypeName b_name = __Pyx_PyType_GetName(b); - PyErr_Format(PyExc_TypeError, - "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name); - __Pyx_DECREF_TypeName(b_name); -#if CYTHON_AVOID_BORROWED_REFS - Py_DECREF(b0); -#endif - return -1; - } - if (dictoffset == 0) - { - Py_ssize_t b_dictoffset = 0; -#if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY - b_dictoffset = b->tp_dictoffset; -#else - PyObject *py_b_dictoffset = PyObject_GetAttrString((PyObject*)b, "__dictoffset__"); - if (!py_b_dictoffset) goto dictoffset_return; - b_dictoffset = PyLong_AsSsize_t(py_b_dictoffset); - Py_DECREF(py_b_dictoffset); - if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return; -#endif - if (b_dictoffset) { - { - __Pyx_TypeName b_name = __Pyx_PyType_GetName(b); - PyErr_Format(PyExc_TypeError, - "extension type '%.200s' has no __dict__ slot, " - "but base type '" __Pyx_FMT_TYPENAME "' has: " - "either add 'cdef dict __dict__' to the extension type " - "or add '__slots__ = [...]' to the base type", - type_name, b_name); - __Pyx_DECREF_TypeName(b_name); - } -#if !(CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY) - dictoffset_return: -#endif -#if CYTHON_AVOID_BORROWED_REFS - Py_DECREF(b0); -#endif - return -1; - } - } -#if CYTHON_AVOID_BORROWED_REFS - Py_DECREF(b0); -#endif - } - return 0; -} -#endif - -/* PyType_Ready */ -static int __Pyx_PyType_Ready(PyTypeObject *t) { -#if CYTHON_USE_TYPE_SPECS || !(CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API) || defined(PYSTON_MAJOR_VERSION) - (void)__Pyx_PyObject_CallMethod0; -#if CYTHON_USE_TYPE_SPECS - (void)__Pyx_validate_bases_tuple; -#endif - return PyType_Ready(t); -#else - int r; - PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*); - if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1)) - return -1; -#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION) - { - int gc_was_enabled; - #if PY_VERSION_HEX >= 0x030A00b1 - gc_was_enabled = PyGC_Disable(); - (void)__Pyx_PyObject_CallMethod0; - #else - PyObject *ret, *py_status; - PyObject *gc = NULL; - #if PY_VERSION_HEX >= 0x030700a1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400) - gc = PyImport_GetModule(__pyx_kp_u_gc); - #endif - if (unlikely(!gc)) gc = PyImport_Import(__pyx_kp_u_gc); - if (unlikely(!gc)) return -1; - py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_isenabled); - if (unlikely(!py_status)) { - Py_DECREF(gc); - return -1; - } - gc_was_enabled = __Pyx_PyObject_IsTrue(py_status); - Py_DECREF(py_status); - if (gc_was_enabled > 0) { - ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_disable); - if (unlikely(!ret)) { - Py_DECREF(gc); - return -1; - } - Py_DECREF(ret); - } else if (unlikely(gc_was_enabled == -1)) { - Py_DECREF(gc); - return -1; - } - #endif - t->tp_flags |= Py_TPFLAGS_HEAPTYPE; -#if PY_VERSION_HEX >= 0x030A0000 - t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE; -#endif -#else - (void)__Pyx_PyObject_CallMethod0; -#endif - r = PyType_Ready(t); -#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION) - t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE; - #if PY_VERSION_HEX >= 0x030A00b1 - if (gc_was_enabled) - PyGC_Enable(); - #else - if (gc_was_enabled) { - PyObject *tp, *v, *tb; - PyErr_Fetch(&tp, &v, &tb); - ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_enable); - if (likely(ret || r == -1)) { - Py_XDECREF(ret); - PyErr_Restore(tp, v, tb); - } else { - Py_XDECREF(tp); - Py_XDECREF(v); - Py_XDECREF(tb); - r = -1; - } - } - Py_DECREF(gc); - #endif - } -#endif - return r; -#endif -} - -/* PyObject_GenericGetAttrNoDict */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { - __Pyx_TypeName type_name = __Pyx_PyType_GetName(tp); - PyErr_Format(PyExc_AttributeError, -#if PY_MAJOR_VERSION >= 3 - "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'", - type_name, attr_name); -#else - "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'", - type_name, PyString_AS_STRING(attr_name)); -#endif - __Pyx_DECREF_TypeName(type_name); - return NULL; -} -static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { - PyObject *descr; - PyTypeObject *tp = Py_TYPE(obj); - if (unlikely(!PyString_Check(attr_name))) { - return PyObject_GenericGetAttr(obj, attr_name); - } - assert(!tp->tp_dictoffset); - descr = _PyType_Lookup(tp, attr_name); - if (unlikely(!descr)) { - return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); - } - Py_INCREF(descr); - #if PY_MAJOR_VERSION < 3 - if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) - #endif - { - descrgetfunc f = Py_TYPE(descr)->tp_descr_get; - if (unlikely(f)) { - PyObject *res = f(descr, obj, (PyObject *)tp); - Py_DECREF(descr); - return res; - } - } - return descr; -} -#endif - -/* PyObject_GenericGetAttr */ -#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 -static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { - if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { - return PyObject_GenericGetAttr(obj, attr_name); - } - return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); -} -#endif - -/* SetVTable */ -static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) { - PyObject *ob = PyCapsule_New(vtable, 0, 0); - if (unlikely(!ob)) - goto bad; -#if CYTHON_COMPILING_IN_LIMITED_API - if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_n_s_pyx_vtable, ob) < 0)) -#else - if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_n_s_pyx_vtable, ob) < 0)) -#endif - goto bad; - Py_DECREF(ob); - return 0; -bad: - Py_XDECREF(ob); - return -1; -} - -/* GetVTable */ -static void* __Pyx_GetVtable(PyTypeObject *type) { - void* ptr; -#if CYTHON_COMPILING_IN_LIMITED_API - PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_n_s_pyx_vtable); -#else - PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_n_s_pyx_vtable); -#endif - if (!ob) - goto bad; - ptr = PyCapsule_GetPointer(ob, 0); - if (!ptr && !PyErr_Occurred()) - PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type"); - Py_DECREF(ob); - return ptr; -bad: - Py_XDECREF(ob); - return NULL; -} - -/* MergeVTables */ -#if !CYTHON_COMPILING_IN_LIMITED_API -static int __Pyx_MergeVtables(PyTypeObject *type) { - int i; - void** base_vtables; - __Pyx_TypeName tp_base_name; - __Pyx_TypeName base_name; - void* unknown = (void*)-1; - PyObject* bases = type->tp_bases; - int base_depth = 0; - { - PyTypeObject* base = type->tp_base; - while (base) { - base_depth += 1; - base = base->tp_base; - } - } - base_vtables = (void**) malloc(sizeof(void*) * (size_t)(base_depth + 1)); - base_vtables[0] = unknown; - for (i = 1; i < PyTuple_GET_SIZE(bases); i++) { - void* base_vtable = __Pyx_GetVtable(((PyTypeObject*)PyTuple_GET_ITEM(bases, i))); - if (base_vtable != NULL) { - int j; - PyTypeObject* base = type->tp_base; - for (j = 0; j < base_depth; j++) { - if (base_vtables[j] == unknown) { - base_vtables[j] = __Pyx_GetVtable(base); - base_vtables[j + 1] = unknown; - } - if (base_vtables[j] == base_vtable) { - break; - } else if (base_vtables[j] == NULL) { - goto bad; - } - base = base->tp_base; - } - } - } - PyErr_Clear(); - free(base_vtables); - return 0; -bad: - tp_base_name = __Pyx_PyType_GetName(type->tp_base); - base_name = __Pyx_PyType_GetName((PyTypeObject*)PyTuple_GET_ITEM(bases, i)); - PyErr_Format(PyExc_TypeError, - "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name); - __Pyx_DECREF_TypeName(tp_base_name); - __Pyx_DECREF_TypeName(base_name); - free(base_vtables); - return -1; -} -#endif - -/* SetupReduce */ -#if !CYTHON_COMPILING_IN_LIMITED_API -static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; - PyObject *name_attr; - name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_n_s_name); - if (likely(name_attr)) { - ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); - } else { - ret = -1; - } - if (unlikely(ret < 0)) { - PyErr_Clear(); - ret = 0; - } - Py_XDECREF(name_attr); - return ret; -} -static int __Pyx_setup_reduce(PyObject* type_obj) { - int ret = 0; - PyObject *object_reduce = NULL; - PyObject *object_getstate = NULL; - PyObject *object_reduce_ex = NULL; - PyObject *reduce = NULL; - PyObject *reduce_ex = NULL; - PyObject *reduce_cython = NULL; - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - PyObject *getstate = NULL; -#if CYTHON_USE_PYTYPE_LOOKUP - getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate); -#else - getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate); - if (!getstate && PyErr_Occurred()) { - goto __PYX_BAD; - } -#endif - if (getstate) { -#if CYTHON_USE_PYTYPE_LOOKUP - object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate); -#else - object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate); - if (!object_getstate && PyErr_Occurred()) { - goto __PYX_BAD; - } -#endif - if (object_getstate != getstate) { - goto __PYX_GOOD; - } - } -#if CYTHON_USE_PYTYPE_LOOKUP - object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; -#else - object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; -#endif - reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { -#if CYTHON_USE_PYTYPE_LOOKUP - object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; -#else - object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; -#endif - reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { - reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); - if (likely(reduce_cython)) { - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; - } else if (reduce == object_reduce || PyErr_Occurred()) { - goto __PYX_BAD; - } - setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { - setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); - if (likely(setstate_cython)) { - ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; - ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; - } else if (!setstate || PyErr_Occurred()) { - goto __PYX_BAD; - } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } - goto __PYX_GOOD; -__PYX_BAD: - if (!PyErr_Occurred()) { - __Pyx_TypeName type_obj_name = - __Pyx_PyType_GetName((PyTypeObject*)type_obj); - PyErr_Format(PyExc_RuntimeError, - "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name); - __Pyx_DECREF_TypeName(type_obj_name); - } - ret = -1; -__PYX_GOOD: -#if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); - Py_XDECREF(object_getstate); - Py_XDECREF(getstate); -#endif - Py_XDECREF(reduce); - Py_XDECREF(reduce_ex); - Py_XDECREF(reduce_cython); - Py_XDECREF(setstate); - Py_XDECREF(setstate_cython); - return ret; -} -#endif - -/* ImportDottedModule */ -#if PY_MAJOR_VERSION >= 3 -static PyObject *__Pyx__ImportDottedModule_Error(PyObject *name, PyObject *parts_tuple, Py_ssize_t count) { - PyObject *partial_name = NULL, *slice = NULL, *sep = NULL; - if (unlikely(PyErr_Occurred())) { - PyErr_Clear(); - } - if (likely(PyTuple_GET_SIZE(parts_tuple) == count)) { - partial_name = name; - } else { - slice = PySequence_GetSlice(parts_tuple, 0, count); - if (unlikely(!slice)) - goto bad; - sep = PyUnicode_FromStringAndSize(".", 1); - if (unlikely(!sep)) - goto bad; - partial_name = PyUnicode_Join(sep, slice); - } - PyErr_Format( -#if PY_MAJOR_VERSION < 3 - PyExc_ImportError, - "No module named '%s'", PyString_AS_STRING(partial_name)); -#else -#if PY_VERSION_HEX >= 0x030600B1 - PyExc_ModuleNotFoundError, -#else - PyExc_ImportError, -#endif - "No module named '%U'", partial_name); -#endif -bad: - Py_XDECREF(sep); - Py_XDECREF(slice); - Py_XDECREF(partial_name); - return NULL; -} -#endif -#if PY_MAJOR_VERSION >= 3 -static PyObject *__Pyx__ImportDottedModule_Lookup(PyObject *name) { - PyObject *imported_module; -#if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400) - PyObject *modules = PyImport_GetModuleDict(); - if (unlikely(!modules)) - return NULL; - imported_module = __Pyx_PyDict_GetItemStr(modules, name); - Py_XINCREF(imported_module); -#else - imported_module = PyImport_GetModule(name); -#endif - return imported_module; -} -#endif -#if PY_MAJOR_VERSION >= 3 -static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple) { - Py_ssize_t i, nparts; - nparts = PyTuple_GET_SIZE(parts_tuple); - for (i=1; i < nparts && module; i++) { - PyObject *part, *submodule; -#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - part = PyTuple_GET_ITEM(parts_tuple, i); -#else - part = PySequence_ITEM(parts_tuple, i); -#endif - submodule = __Pyx_PyObject_GetAttrStrNoError(module, part); -#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) - Py_DECREF(part); -#endif - Py_DECREF(module); - module = submodule; - } - if (unlikely(!module)) { - return __Pyx__ImportDottedModule_Error(name, parts_tuple, i); - } - return module; -} -#endif -static PyObject *__Pyx__ImportDottedModule(PyObject *name, PyObject *parts_tuple) { -#if PY_MAJOR_VERSION < 3 - PyObject *module, *from_list, *star = __pyx_n_s__10; - CYTHON_UNUSED_VAR(parts_tuple); - from_list = PyList_New(1); - if (unlikely(!from_list)) - return NULL; - Py_INCREF(star); - PyList_SET_ITEM(from_list, 0, star); - module = __Pyx_Import(name, from_list, 0); - Py_DECREF(from_list); - return module; -#else - PyObject *imported_module; - PyObject *module = __Pyx_Import(name, NULL, 0); - if (!parts_tuple || unlikely(!module)) - return module; - imported_module = __Pyx__ImportDottedModule_Lookup(name); - if (likely(imported_module)) { - Py_DECREF(module); - return imported_module; - } - PyErr_Clear(); - return __Pyx_ImportDottedModule_WalkParts(module, name, parts_tuple); -#endif -} -static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple) { -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030400B1 - PyObject *module = __Pyx__ImportDottedModule_Lookup(name); - if (likely(module)) { - PyObject *spec = __Pyx_PyObject_GetAttrStrNoError(module, __pyx_n_s_spec); - if (likely(spec)) { - PyObject *unsafe = __Pyx_PyObject_GetAttrStrNoError(spec, __pyx_n_s_initializing); - if (likely(!unsafe || !__Pyx_PyObject_IsTrue(unsafe))) { - Py_DECREF(spec); - spec = NULL; - } - Py_XDECREF(unsafe); - } - if (likely(!spec)) { - PyErr_Clear(); - return module; - } - Py_DECREF(spec); - Py_DECREF(module); - } else if (PyErr_Occurred()) { - PyErr_Clear(); - } -#endif - return __Pyx__ImportDottedModule(name, parts_tuple); -} - -/* Py3UpdateBases */ -static PyObject* -__Pyx_PEP560_update_bases(PyObject *bases) -{ - Py_ssize_t i, j, size_bases; - PyObject *base, *meth, *new_base, *result, *new_bases = NULL; - size_bases = PyTuple_GET_SIZE(bases); - for (i = 0; i < size_bases; i++) { - base = PyTuple_GET_ITEM(bases, i); - if (PyType_Check(base)) { - if (new_bases) { - if (PyList_Append(new_bases, base) < 0) { - goto error; - } - } - continue; - } - meth = __Pyx_PyObject_GetAttrStrNoError(base, __pyx_n_s_mro_entries); - if (!meth && PyErr_Occurred()) { - goto error; - } - if (!meth) { - if (new_bases) { - if (PyList_Append(new_bases, base) < 0) { - goto error; - } - } - continue; - } - new_base = __Pyx_PyObject_CallOneArg(meth, bases); - Py_DECREF(meth); - if (!new_base) { - goto error; - } - if (!PyTuple_Check(new_base)) { - PyErr_SetString(PyExc_TypeError, - "__mro_entries__ must return a tuple"); - Py_DECREF(new_base); - goto error; - } - if (!new_bases) { - if (!(new_bases = PyList_New(i))) { - goto error; - } - for (j = 0; j < i; j++) { - base = PyTuple_GET_ITEM(bases, j); - PyList_SET_ITEM(new_bases, j, base); - Py_INCREF(base); - } - } - j = PyList_GET_SIZE(new_bases); - if (PyList_SetSlice(new_bases, j, j, new_base) < 0) { - goto error; - } - Py_DECREF(new_base); - } - if (!new_bases) { - Py_INCREF(bases); - return bases; - } - result = PyList_AsTuple(new_bases); - Py_DECREF(new_bases); - return result; -error: - Py_XDECREF(new_bases); - return NULL; -} - -/* CalculateMetaclass */ -static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { - Py_ssize_t i, nbases; -#if CYTHON_ASSUME_SAFE_MACROS - nbases = PyTuple_GET_SIZE(bases); -#else - nbases = PyTuple_Size(bases); - if (nbases < 0) return NULL; -#endif - for (i=0; i < nbases; i++) { - PyTypeObject *tmptype; -#if CYTHON_ASSUME_SAFE_MACROS - PyObject *tmp = PyTuple_GET_ITEM(bases, i); -#else - PyObject *tmp = PyTuple_GetItem(bases, i); - if (!tmp) return NULL; -#endif - tmptype = Py_TYPE(tmp); -#if PY_MAJOR_VERSION < 3 - if (tmptype == &PyClass_Type) - continue; -#endif - if (!metaclass) { - metaclass = tmptype; - continue; - } - if (PyType_IsSubtype(metaclass, tmptype)) - continue; - if (PyType_IsSubtype(tmptype, metaclass)) { - metaclass = tmptype; - continue; - } - PyErr_SetString(PyExc_TypeError, - "metaclass conflict: " - "the metaclass of a derived class " - "must be a (non-strict) subclass " - "of the metaclasses of all its bases"); - return NULL; - } - if (!metaclass) { -#if PY_MAJOR_VERSION < 3 - metaclass = &PyClass_Type; -#else - metaclass = &PyType_Type; -#endif - } - Py_INCREF((PyObject*) metaclass); - return (PyObject*) metaclass; -} - -/* PyObjectLookupSpecial */ -#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS -static CYTHON_INLINE PyObject* __Pyx__PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name, int with_error) { - PyObject *res; - PyTypeObject *tp = Py_TYPE(obj); -#if PY_MAJOR_VERSION < 3 - if (unlikely(PyInstance_Check(obj))) - return with_error ? __Pyx_PyObject_GetAttrStr(obj, attr_name) : __Pyx_PyObject_GetAttrStrNoError(obj, attr_name); -#endif - res = _PyType_Lookup(tp, attr_name); - if (likely(res)) { - descrgetfunc f = Py_TYPE(res)->tp_descr_get; - if (!f) { - Py_INCREF(res); - } else { - res = f(res, obj, (PyObject *)tp); - } - } else if (with_error) { - PyErr_SetObject(PyExc_AttributeError, attr_name); - } - return res; -} -#endif - -/* Py3ClassCreate */ -static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, - PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) { - PyObject *ns; - if (metaclass) { - PyObject *prep = __Pyx_PyObject_GetAttrStrNoError(metaclass, __pyx_n_s_prepare); - if (prep) { - PyObject *pargs[3] = {NULL, name, bases}; - ns = __Pyx_PyObject_FastCallDict(prep, pargs+1, 2 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, mkw); - Py_DECREF(prep); - } else { - if (unlikely(PyErr_Occurred())) - return NULL; - ns = PyDict_New(); - } - } else { - ns = PyDict_New(); - } - if (unlikely(!ns)) - return NULL; - if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad; -#if PY_VERSION_HEX >= 0x03030000 - if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad; -#else - CYTHON_MAYBE_UNUSED_VAR(qualname); -#endif - if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad; - return ns; -bad: - Py_DECREF(ns); - return NULL; -} -#if PY_VERSION_HEX < 0x030600A4 && CYTHON_PEP487_INIT_SUBCLASS -static int __Pyx_SetNamesPEP487(PyObject *type_obj) { - PyTypeObject *type = (PyTypeObject*) type_obj; - PyObject *names_to_set, *key, *value, *set_name, *tmp; - Py_ssize_t i = 0; -#if CYTHON_USE_TYPE_SLOTS - names_to_set = PyDict_Copy(type->tp_dict); -#else - { - PyObject *d = PyObject_GetAttr(type_obj, __pyx_n_s_dict); - names_to_set = NULL; - if (likely(d)) { - PyObject *names_to_set = PyDict_New(); - int ret = likely(names_to_set) ? PyDict_Update(names_to_set, d) : -1; - Py_DECREF(d); - if (unlikely(ret < 0)) - Py_CLEAR(names_to_set); - } - } -#endif - if (unlikely(names_to_set == NULL)) - goto bad; - while (PyDict_Next(names_to_set, &i, &key, &value)) { - set_name = __Pyx_PyObject_LookupSpecialNoError(value, __pyx_n_s_set_name); - if (unlikely(set_name != NULL)) { - tmp = __Pyx_PyObject_Call2Args(set_name, type_obj, key); - Py_DECREF(set_name); - if (unlikely(tmp == NULL)) { - __Pyx_TypeName value_type_name = - __Pyx_PyType_GetName(Py_TYPE(value)); - __Pyx_TypeName type_name = __Pyx_PyType_GetName(type); - PyErr_Format(PyExc_RuntimeError, -#if PY_MAJOR_VERSION >= 3 - "Error calling __set_name__ on '" __Pyx_FMT_TYPENAME "' instance %R " "in '" __Pyx_FMT_TYPENAME "'", - value_type_name, key, type_name); -#else - "Error calling __set_name__ on '" __Pyx_FMT_TYPENAME "' instance %.100s in '" __Pyx_FMT_TYPENAME "'", - value_type_name, - PyString_Check(key) ? PyString_AS_STRING(key) : "?", - type_name); -#endif - goto bad; - } else { - Py_DECREF(tmp); - } - } - else if (unlikely(PyErr_Occurred())) { - goto bad; - } - } - Py_DECREF(names_to_set); - return 0; -bad: - Py_XDECREF(names_to_set); - return -1; -} -static PyObject *__Pyx_InitSubclassPEP487(PyObject *type_obj, PyObject *mkw) { -#if CYTHON_USE_TYPE_SLOTS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - PyTypeObject *type = (PyTypeObject*) type_obj; - PyObject *mro = type->tp_mro; - Py_ssize_t i, nbases; - if (unlikely(!mro)) goto done; - (void) &__Pyx_GetBuiltinName; - Py_INCREF(mro); - nbases = PyTuple_GET_SIZE(mro); - assert(PyTuple_GET_ITEM(mro, 0) == type_obj); - for (i = 1; i < nbases-1; i++) { - PyObject *base, *dict, *meth; - base = PyTuple_GET_ITEM(mro, i); - dict = ((PyTypeObject *)base)->tp_dict; - meth = __Pyx_PyDict_GetItemStrWithError(dict, __pyx_n_s_init_subclass); - if (unlikely(meth)) { - descrgetfunc f = Py_TYPE(meth)->tp_descr_get; - PyObject *res; - Py_INCREF(meth); - if (likely(f)) { - res = f(meth, NULL, type_obj); - Py_DECREF(meth); - if (unlikely(!res)) goto bad; - meth = res; - } - res = __Pyx_PyObject_FastCallDict(meth, NULL, 0, mkw); - Py_DECREF(meth); - if (unlikely(!res)) goto bad; - Py_DECREF(res); - goto done; - } else if (unlikely(PyErr_Occurred())) { - goto bad; - } - } -done: - Py_XDECREF(mro); - return type_obj; -bad: - Py_XDECREF(mro); - Py_DECREF(type_obj); - return NULL; -#else - PyObject *super_type, *super, *func, *res; -#if CYTHON_COMPILING_IN_PYPY && !defined(PySuper_Type) - super_type = __Pyx_GetBuiltinName(__pyx_n_s_super); -#else - super_type = (PyObject*) &PySuper_Type; - (void) &__Pyx_GetBuiltinName; -#endif - super = likely(super_type) ? __Pyx_PyObject_Call2Args(super_type, type_obj, type_obj) : NULL; -#if CYTHON_COMPILING_IN_PYPY && !defined(PySuper_Type) - Py_XDECREF(super_type); -#endif - if (unlikely(!super)) { - Py_CLEAR(type_obj); - goto done; - } - func = __Pyx_PyObject_GetAttrStrNoError(super, __pyx_n_s_init_subclass); - Py_DECREF(super); - if (likely(!func)) { - if (unlikely(PyErr_Occurred())) - Py_CLEAR(type_obj); - goto done; - } - res = __Pyx_PyObject_FastCallDict(func, NULL, 0, mkw); - Py_DECREF(func); - if (unlikely(!res)) - Py_CLEAR(type_obj); - Py_XDECREF(res); -done: - return type_obj; -#endif -} -#endif -static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, - PyObject *dict, PyObject *mkw, - int calculate_metaclass, int allow_py2_metaclass) { - PyObject *result; - PyObject *owned_metaclass = NULL; - PyObject *margs[4] = {NULL, name, bases, dict}; - if (allow_py2_metaclass) { - owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass); - if (owned_metaclass) { - metaclass = owned_metaclass; - } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) { - PyErr_Clear(); - } else { - return NULL; - } - } - if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) { - metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases); - Py_XDECREF(owned_metaclass); - if (unlikely(!metaclass)) - return NULL; - owned_metaclass = metaclass; - } - result = __Pyx_PyObject_FastCallDict(metaclass, margs+1, 3 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET, -#if PY_VERSION_HEX < 0x030600A4 - (metaclass == (PyObject*)&PyType_Type) ? NULL : mkw -#else - mkw -#endif - ); - Py_XDECREF(owned_metaclass); -#if PY_VERSION_HEX < 0x030600A4 && CYTHON_PEP487_INIT_SUBCLASS - if (likely(result) && likely(PyType_Check(result))) { - if (unlikely(__Pyx_SetNamesPEP487(result) < 0)) { - Py_CLEAR(result); - } else { - result = __Pyx_InitSubclassPEP487(result, mkw); - } - } -#else - (void) &__Pyx_GetBuiltinName; -#endif - return result; -} - -/* FetchSharedCythonModule */ -static PyObject *__Pyx_FetchSharedCythonABIModule(void) { - return __Pyx_PyImport_AddModuleRef((char*) __PYX_ABI_MODULE_NAME); -} - -/* FetchCommonType */ -static int __Pyx_VerifyCachedType(PyObject *cached_type, - const char *name, - Py_ssize_t basicsize, - Py_ssize_t expected_basicsize) { - if (!PyType_Check(cached_type)) { - PyErr_Format(PyExc_TypeError, - "Shared Cython type %.200s is not a type object", name); - return -1; - } - if (basicsize != expected_basicsize) { - PyErr_Format(PyExc_TypeError, - "Shared Cython type %.200s has the wrong size, try recompiling", - name); - return -1; - } - return 0; -} -#if !CYTHON_USE_TYPE_SPECS -static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { - PyObject* abi_module; - const char* object_name; - PyTypeObject *cached_type = NULL; - abi_module = __Pyx_FetchSharedCythonABIModule(); - if (!abi_module) return NULL; - object_name = strrchr(type->tp_name, '.'); - object_name = object_name ? object_name+1 : type->tp_name; - cached_type = (PyTypeObject*) PyObject_GetAttrString(abi_module, object_name); - if (cached_type) { - if (__Pyx_VerifyCachedType( - (PyObject *)cached_type, - object_name, - cached_type->tp_basicsize, - type->tp_basicsize) < 0) { - goto bad; - } - goto done; - } - if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; - PyErr_Clear(); - if (PyType_Ready(type) < 0) goto bad; - if (PyObject_SetAttrString(abi_module, object_name, (PyObject *)type) < 0) - goto bad; - Py_INCREF(type); - cached_type = type; -done: - Py_DECREF(abi_module); - return cached_type; -bad: - Py_XDECREF(cached_type); - cached_type = NULL; - goto done; -} -#else -static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) { - PyObject *abi_module, *cached_type = NULL; - const char* object_name = strrchr(spec->name, '.'); - object_name = object_name ? object_name+1 : spec->name; - abi_module = __Pyx_FetchSharedCythonABIModule(); - if (!abi_module) return NULL; - cached_type = PyObject_GetAttrString(abi_module, object_name); - if (cached_type) { - Py_ssize_t basicsize; -#if CYTHON_COMPILING_IN_LIMITED_API - PyObject *py_basicsize; - py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__"); - if (unlikely(!py_basicsize)) goto bad; - basicsize = PyLong_AsSsize_t(py_basicsize); - Py_DECREF(py_basicsize); - py_basicsize = 0; - if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; -#else - basicsize = likely(PyType_Check(cached_type)) ? ((PyTypeObject*) cached_type)->tp_basicsize : -1; -#endif - if (__Pyx_VerifyCachedType( - cached_type, - object_name, - basicsize, - spec->basicsize) < 0) { - goto bad; - } - goto done; - } - if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; - PyErr_Clear(); - CYTHON_UNUSED_VAR(module); - cached_type = __Pyx_PyType_FromModuleAndSpec(abi_module, spec, bases); - if (unlikely(!cached_type)) goto bad; - if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad; - if (PyObject_SetAttrString(abi_module, object_name, cached_type) < 0) goto bad; -done: - Py_DECREF(abi_module); - assert(cached_type == NULL || PyType_Check(cached_type)); - return (PyTypeObject *) cached_type; -bad: - Py_XDECREF(cached_type); - cached_type = NULL; - goto done; -} -#endif - -/* PyVectorcallFastCallDict */ -#if CYTHON_METH_FASTCALL -static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw) -{ - PyObject *res = NULL; - PyObject *kwnames; - PyObject **newargs; - PyObject **kwvalues; - Py_ssize_t i, pos; - size_t j; - PyObject *key, *value; - unsigned long keys_are_strings; - Py_ssize_t nkw = PyDict_GET_SIZE(kw); - newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0])); - if (unlikely(newargs == NULL)) { - PyErr_NoMemory(); - return NULL; - } - for (j = 0; j < nargs; j++) newargs[j] = args[j]; - kwnames = PyTuple_New(nkw); - if (unlikely(kwnames == NULL)) { - PyMem_Free(newargs); - return NULL; - } - kwvalues = newargs + nargs; - pos = i = 0; - keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS; - while (PyDict_Next(kw, &pos, &key, &value)) { - keys_are_strings &= Py_TYPE(key)->tp_flags; - Py_INCREF(key); - Py_INCREF(value); - PyTuple_SET_ITEM(kwnames, i, key); - kwvalues[i] = value; - i++; - } - if (unlikely(!keys_are_strings)) { - PyErr_SetString(PyExc_TypeError, "keywords must be strings"); - goto cleanup; - } - res = vc(func, newargs, nargs, kwnames); -cleanup: - Py_DECREF(kwnames); - for (i = 0; i < nkw; i++) - Py_DECREF(kwvalues[i]); - PyMem_Free(newargs); - return res; -} -static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw) -{ - if (likely(kw == NULL) || PyDict_GET_SIZE(kw) == 0) { - return vc(func, args, nargs, NULL); - } - return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw); -} -#endif - -/* CythonFunctionShared */ -#if CYTHON_COMPILING_IN_LIMITED_API -static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) { - if (__Pyx_CyFunction_Check(func)) { - return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc; - } else if (PyCFunction_Check(func)) { - return PyCFunction_GetFunction(func) == (PyCFunction) cfunc; - } - return 0; -} -#else -static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) { - return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc; -} -#endif -static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) { -#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API - __Pyx_Py_XDECREF_SET( - __Pyx_CyFunction_GetClassObj(f), - ((classobj) ? __Pyx_NewRef(classobj) : NULL)); -#else - __Pyx_Py_XDECREF_SET( - ((PyCMethodObject *) (f))->mm_class, - (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL)); -#endif -} -static PyObject * -__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure) -{ - CYTHON_UNUSED_VAR(closure); - if (unlikely(op->func_doc == NULL)) { -#if CYTHON_COMPILING_IN_LIMITED_API - op->func_doc = PyObject_GetAttrString(op->func, "__doc__"); - if (unlikely(!op->func_doc)) return NULL; -#else - if (((PyCFunctionObject*)op)->m_ml->ml_doc) { -#if PY_MAJOR_VERSION >= 3 - op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc); -#else - op->func_doc = PyString_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc); -#endif - if (unlikely(op->func_doc == NULL)) - return NULL; - } else { - Py_INCREF(Py_None); - return Py_None; - } -#endif - } - Py_INCREF(op->func_doc); - return op->func_doc; -} -static int -__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context) -{ - CYTHON_UNUSED_VAR(context); - if (value == NULL) { - value = Py_None; - } - Py_INCREF(value); - __Pyx_Py_XDECREF_SET(op->func_doc, value); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context) -{ - CYTHON_UNUSED_VAR(context); - if (unlikely(op->func_name == NULL)) { -#if CYTHON_COMPILING_IN_LIMITED_API - op->func_name = PyObject_GetAttrString(op->func, "__name__"); -#elif PY_MAJOR_VERSION >= 3 - op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name); -#else - op->func_name = PyString_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name); -#endif - if (unlikely(op->func_name == NULL)) - return NULL; - } - Py_INCREF(op->func_name); - return op->func_name; -} -static int -__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context) -{ - CYTHON_UNUSED_VAR(context); -#if PY_MAJOR_VERSION >= 3 - if (unlikely(value == NULL || !PyUnicode_Check(value))) -#else - if (unlikely(value == NULL || !PyString_Check(value))) -#endif - { - PyErr_SetString(PyExc_TypeError, - "__name__ must be set to a string object"); - return -1; - } - Py_INCREF(value); - __Pyx_Py_XDECREF_SET(op->func_name, value); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context) -{ - CYTHON_UNUSED_VAR(context); - Py_INCREF(op->func_qualname); - return op->func_qualname; -} -static int -__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context) -{ - CYTHON_UNUSED_VAR(context); -#if PY_MAJOR_VERSION >= 3 - if (unlikely(value == NULL || !PyUnicode_Check(value))) -#else - if (unlikely(value == NULL || !PyString_Check(value))) -#endif - { - PyErr_SetString(PyExc_TypeError, - "__qualname__ must be set to a string object"); - return -1; - } - Py_INCREF(value); - __Pyx_Py_XDECREF_SET(op->func_qualname, value); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context) -{ - CYTHON_UNUSED_VAR(context); - if (unlikely(op->func_dict == NULL)) { - op->func_dict = PyDict_New(); - if (unlikely(op->func_dict == NULL)) - return NULL; - } - Py_INCREF(op->func_dict); - return op->func_dict; -} -static int -__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, void *context) -{ - CYTHON_UNUSED_VAR(context); - if (unlikely(value == NULL)) { - PyErr_SetString(PyExc_TypeError, - "function's dictionary may not be deleted"); - return -1; - } - if (unlikely(!PyDict_Check(value))) { - PyErr_SetString(PyExc_TypeError, - "setting function's dictionary to a non-dict"); - return -1; - } - Py_INCREF(value); - __Pyx_Py_XDECREF_SET(op->func_dict, value); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context) -{ - CYTHON_UNUSED_VAR(context); - Py_INCREF(op->func_globals); - return op->func_globals; -} -static PyObject * -__Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context) -{ - CYTHON_UNUSED_VAR(op); - CYTHON_UNUSED_VAR(context); - Py_INCREF(Py_None); - return Py_None; -} -static PyObject * -__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context) -{ - PyObject* result = (op->func_code) ? op->func_code : Py_None; - CYTHON_UNUSED_VAR(context); - Py_INCREF(result); - return result; -} -static int -__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { - int result = 0; - PyObject *res = op->defaults_getter((PyObject *) op); - if (unlikely(!res)) - return -1; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - op->defaults_tuple = PyTuple_GET_ITEM(res, 0); - Py_INCREF(op->defaults_tuple); - op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); - Py_INCREF(op->defaults_kwdict); - #else - op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0); - if (unlikely(!op->defaults_tuple)) result = -1; - else { - op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1); - if (unlikely(!op->defaults_kwdict)) result = -1; - } - #endif - Py_DECREF(res); - return result; -} -static int -__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) { - CYTHON_UNUSED_VAR(context); - if (!value) { - value = Py_None; - } else if (unlikely(value != Py_None && !PyTuple_Check(value))) { - PyErr_SetString(PyExc_TypeError, - "__defaults__ must be set to a tuple object"); - return -1; - } - PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not " - "currently affect the values used in function calls", 1); - Py_INCREF(value); - __Pyx_Py_XDECREF_SET(op->defaults_tuple, value); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) { - PyObject* result = op->defaults_tuple; - CYTHON_UNUSED_VAR(context); - if (unlikely(!result)) { - if (op->defaults_getter) { - if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL; - result = op->defaults_tuple; - } else { - result = Py_None; - } - } - Py_INCREF(result); - return result; -} -static int -__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) { - CYTHON_UNUSED_VAR(context); - if (!value) { - value = Py_None; - } else if (unlikely(value != Py_None && !PyDict_Check(value))) { - PyErr_SetString(PyExc_TypeError, - "__kwdefaults__ must be set to a dict object"); - return -1; - } - PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not " - "currently affect the values used in function calls", 1); - Py_INCREF(value); - __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) { - PyObject* result = op->defaults_kwdict; - CYTHON_UNUSED_VAR(context); - if (unlikely(!result)) { - if (op->defaults_getter) { - if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL; - result = op->defaults_kwdict; - } else { - result = Py_None; - } - } - Py_INCREF(result); - return result; -} -static int -__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) { - CYTHON_UNUSED_VAR(context); - if (!value || value == Py_None) { - value = NULL; - } else if (unlikely(!PyDict_Check(value))) { - PyErr_SetString(PyExc_TypeError, - "__annotations__ must be set to a dict object"); - return -1; - } - Py_XINCREF(value); - __Pyx_Py_XDECREF_SET(op->func_annotations, value); - return 0; -} -static PyObject * -__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) { - PyObject* result = op->func_annotations; - CYTHON_UNUSED_VAR(context); - if (unlikely(!result)) { - result = PyDict_New(); - if (unlikely(!result)) return NULL; - op->func_annotations = result; - } - Py_INCREF(result); - return result; -} -static PyObject * -__Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) { - int is_coroutine; - CYTHON_UNUSED_VAR(context); - if (op->func_is_coroutine) { - return __Pyx_NewRef(op->func_is_coroutine); - } - is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE; -#if PY_VERSION_HEX >= 0x03050000 - if (is_coroutine) { - PyObject *module, *fromlist, *marker = __pyx_n_s_is_coroutine; - fromlist = PyList_New(1); - if (unlikely(!fromlist)) return NULL; - Py_INCREF(marker); -#if CYTHON_ASSUME_SAFE_MACROS - PyList_SET_ITEM(fromlist, 0, marker); -#else - if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) { - Py_DECREF(marker); - Py_DECREF(fromlist); - return NULL; - } -#endif - module = PyImport_ImportModuleLevelObject(__pyx_n_s_asyncio_coroutines, NULL, NULL, fromlist, 0); - Py_DECREF(fromlist); - if (unlikely(!module)) goto ignore; - op->func_is_coroutine = __Pyx_PyObject_GetAttrStr(module, marker); - Py_DECREF(module); - if (likely(op->func_is_coroutine)) { - return __Pyx_NewRef(op->func_is_coroutine); - } -ignore: - PyErr_Clear(); - } -#endif - op->func_is_coroutine = __Pyx_PyBool_FromLong(is_coroutine); - return __Pyx_NewRef(op->func_is_coroutine); -} -#if CYTHON_COMPILING_IN_LIMITED_API -static PyObject * -__Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) { - CYTHON_UNUSED_VAR(context); - return PyObject_GetAttrString(op->func, "__module__"); -} -static int -__Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) { - CYTHON_UNUSED_VAR(context); - return PyObject_SetAttrString(op->func, "__module__", value); -} -#endif -static PyGetSetDef __pyx_CyFunction_getsets[] = { - {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, - {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, - {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, - {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, - {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, - {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, - {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, - {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, - {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, - {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, - {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, - {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, - {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, - {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, - {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, - {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, - {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, - {(char *) "_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0}, -#if CYTHON_COMPILING_IN_LIMITED_API - {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0}, -#endif - {0, 0, 0, 0, 0} -}; -static PyMemberDef __pyx_CyFunction_members[] = { -#if !CYTHON_COMPILING_IN_LIMITED_API - {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0}, -#endif -#if CYTHON_USE_TYPE_SPECS - {(char *) "__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0}, -#if CYTHON_METH_FASTCALL -#if CYTHON_BACKPORT_VECTORCALL - {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0}, -#else -#if !CYTHON_COMPILING_IN_LIMITED_API - {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0}, -#endif -#endif -#endif -#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API - {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0}, -#else - {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0}, -#endif -#endif - {0, 0, 0, 0, 0} -}; -static PyObject * -__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args) -{ - CYTHON_UNUSED_VAR(args); -#if PY_MAJOR_VERSION >= 3 - Py_INCREF(m->func_qualname); - return m->func_qualname; -#else - return PyString_FromString(((PyCFunctionObject*)m)->m_ml->ml_name); -#endif -} -static PyMethodDef __pyx_CyFunction_methods[] = { - {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, - {0, 0, 0, 0} -}; -#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API -#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) -#else -#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist) -#endif -static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname, - PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { -#if !CYTHON_COMPILING_IN_LIMITED_API - PyCFunctionObject *cf = (PyCFunctionObject*) op; -#endif - if (unlikely(op == NULL)) - return NULL; -#if CYTHON_COMPILING_IN_LIMITED_API - op->func = PyCFunction_NewEx(ml, (PyObject*)op, module); - if (unlikely(!op->func)) return NULL; -#endif - op->flags = flags; - __Pyx_CyFunction_weakreflist(op) = NULL; -#if !CYTHON_COMPILING_IN_LIMITED_API - cf->m_ml = ml; - cf->m_self = (PyObject *) op; -#endif - Py_XINCREF(closure); - op->func_closure = closure; -#if !CYTHON_COMPILING_IN_LIMITED_API - Py_XINCREF(module); - cf->m_module = module; -#endif - op->func_dict = NULL; - op->func_name = NULL; - Py_INCREF(qualname); - op->func_qualname = qualname; - op->func_doc = NULL; -#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API - op->func_classobj = NULL; -#else - ((PyCMethodObject*)op)->mm_class = NULL; -#endif - op->func_globals = globals; - Py_INCREF(op->func_globals); - Py_XINCREF(code); - op->func_code = code; - op->defaults_pyobjects = 0; - op->defaults_size = 0; - op->defaults = NULL; - op->defaults_tuple = NULL; - op->defaults_kwdict = NULL; - op->defaults_getter = NULL; - op->func_annotations = NULL; - op->func_is_coroutine = NULL; -#if CYTHON_METH_FASTCALL - switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) { - case METH_NOARGS: - __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS; - break; - case METH_O: - __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O; - break; - case METH_METHOD | METH_FASTCALL | METH_KEYWORDS: - __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD; - break; - case METH_FASTCALL | METH_KEYWORDS: - __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS; - break; - case METH_VARARGS | METH_KEYWORDS: - __Pyx_CyFunction_func_vectorcall(op) = NULL; - break; - default: - PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction"); - Py_DECREF(op); - return NULL; - } -#endif - return (PyObject *) op; -} -static int -__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) -{ - Py_CLEAR(m->func_closure); -#if CYTHON_COMPILING_IN_LIMITED_API - Py_CLEAR(m->func); -#else - Py_CLEAR(((PyCFunctionObject*)m)->m_module); -#endif - Py_CLEAR(m->func_dict); - Py_CLEAR(m->func_name); - Py_CLEAR(m->func_qualname); - Py_CLEAR(m->func_doc); - Py_CLEAR(m->func_globals); - Py_CLEAR(m->func_code); -#if !CYTHON_COMPILING_IN_LIMITED_API -#if PY_VERSION_HEX < 0x030900B1 - Py_CLEAR(__Pyx_CyFunction_GetClassObj(m)); -#else - { - PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class; - ((PyCMethodObject *) (m))->mm_class = NULL; - Py_XDECREF(cls); - } -#endif -#endif - Py_CLEAR(m->defaults_tuple); - Py_CLEAR(m->defaults_kwdict); - Py_CLEAR(m->func_annotations); - Py_CLEAR(m->func_is_coroutine); - if (m->defaults) { - PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); - int i; - for (i = 0; i < m->defaults_pyobjects; i++) - Py_XDECREF(pydefaults[i]); - PyObject_Free(m->defaults); - m->defaults = NULL; - } - return 0; -} -static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m) -{ - if (__Pyx_CyFunction_weakreflist(m) != NULL) - PyObject_ClearWeakRefs((PyObject *) m); - __Pyx_CyFunction_clear(m); - __Pyx_PyHeapTypeObject_GC_Del(m); -} -static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) -{ - PyObject_GC_UnTrack(m); - __Pyx__CyFunction_dealloc(m); -} -static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) -{ - Py_VISIT(m->func_closure); -#if CYTHON_COMPILING_IN_LIMITED_API - Py_VISIT(m->func); -#else - Py_VISIT(((PyCFunctionObject*)m)->m_module); -#endif - Py_VISIT(m->func_dict); - Py_VISIT(m->func_name); - Py_VISIT(m->func_qualname); - Py_VISIT(m->func_doc); - Py_VISIT(m->func_globals); - Py_VISIT(m->func_code); -#if !CYTHON_COMPILING_IN_LIMITED_API - Py_VISIT(__Pyx_CyFunction_GetClassObj(m)); -#endif - Py_VISIT(m->defaults_tuple); - Py_VISIT(m->defaults_kwdict); - Py_VISIT(m->func_is_coroutine); - if (m->defaults) { - PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); - int i; - for (i = 0; i < m->defaults_pyobjects; i++) - Py_VISIT(pydefaults[i]); - } - return 0; -} -static PyObject* -__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) -{ -#if PY_MAJOR_VERSION >= 3 - return PyUnicode_FromFormat("", - op->func_qualname, (void *)op); -#else - return PyString_FromFormat("", - PyString_AsString(op->func_qualname), (void *)op); -#endif -} -static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { -#if CYTHON_COMPILING_IN_LIMITED_API - PyObject *f = ((__pyx_CyFunctionObject*)func)->func; - PyObject *py_name = NULL; - PyCFunction meth; - int flags; - meth = PyCFunction_GetFunction(f); - if (unlikely(!meth)) return NULL; - flags = PyCFunction_GetFlags(f); - if (unlikely(flags < 0)) return NULL; -#else - PyCFunctionObject* f = (PyCFunctionObject*)func; - PyCFunction meth = f->m_ml->ml_meth; - int flags = f->m_ml->ml_flags; -#endif - Py_ssize_t size; - switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { - case METH_VARARGS: - if (likely(kw == NULL || PyDict_Size(kw) == 0)) - return (*meth)(self, arg); - break; - case METH_VARARGS | METH_KEYWORDS: - return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw); - case METH_NOARGS: - if (likely(kw == NULL || PyDict_Size(kw) == 0)) { -#if CYTHON_ASSUME_SAFE_MACROS - size = PyTuple_GET_SIZE(arg); -#else - size = PyTuple_Size(arg); - if (unlikely(size < 0)) return NULL; -#endif - if (likely(size == 0)) - return (*meth)(self, NULL); -#if CYTHON_COMPILING_IN_LIMITED_API - py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL); - if (!py_name) return NULL; - PyErr_Format(PyExc_TypeError, - "%.200S() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", - py_name, size); - Py_DECREF(py_name); -#else - PyErr_Format(PyExc_TypeError, - "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", - f->m_ml->ml_name, size); -#endif - return NULL; - } - break; - case METH_O: - if (likely(kw == NULL || PyDict_Size(kw) == 0)) { -#if CYTHON_ASSUME_SAFE_MACROS - size = PyTuple_GET_SIZE(arg); -#else - size = PyTuple_Size(arg); - if (unlikely(size < 0)) return NULL; -#endif - if (likely(size == 1)) { - PyObject *result, *arg0; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - arg0 = PyTuple_GET_ITEM(arg, 0); - #else - arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; - #endif - result = (*meth)(self, arg0); - #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) - Py_DECREF(arg0); - #endif - return result; - } -#if CYTHON_COMPILING_IN_LIMITED_API - py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL); - if (!py_name) return NULL; - PyErr_Format(PyExc_TypeError, - "%.200S() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", - py_name, size); - Py_DECREF(py_name); -#else - PyErr_Format(PyExc_TypeError, - "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", - f->m_ml->ml_name, size); -#endif - return NULL; - } - break; - default: - PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction"); - return NULL; - } -#if CYTHON_COMPILING_IN_LIMITED_API - py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL); - if (!py_name) return NULL; - PyErr_Format(PyExc_TypeError, "%.200S() takes no keyword arguments", - py_name); - Py_DECREF(py_name); -#else - PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", - f->m_ml->ml_name); -#endif - return NULL; -} -static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *self, *result; -#if CYTHON_COMPILING_IN_LIMITED_API - self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func); - if (unlikely(!self) && PyErr_Occurred()) return NULL; -#else - self = ((PyCFunctionObject*)func)->m_self; -#endif - result = __Pyx_CyFunction_CallMethod(func, self, arg, kw); - return result; -} -static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { - PyObject *result; - __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; -#if CYTHON_METH_FASTCALL - __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc); - if (vc) { -#if CYTHON_ASSUME_SAFE_MACROS - return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw); -#else - (void) &__Pyx_PyVectorcall_FastCallDict; - return PyVectorcall_Call(func, args, kw); -#endif - } -#endif - if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { - Py_ssize_t argc; - PyObject *new_args; - PyObject *self; -#if CYTHON_ASSUME_SAFE_MACROS - argc = PyTuple_GET_SIZE(args); -#else - argc = PyTuple_Size(args); - if (unlikely(!argc) < 0) return NULL; -#endif - new_args = PyTuple_GetSlice(args, 1, argc); - if (unlikely(!new_args)) - return NULL; - self = PyTuple_GetItem(args, 0); - if (unlikely(!self)) { - Py_DECREF(new_args); -#if PY_MAJOR_VERSION > 2 - PyErr_Format(PyExc_TypeError, - "unbound method %.200S() needs an argument", - cyfunc->func_qualname); -#else - PyErr_SetString(PyExc_TypeError, - "unbound method needs an argument"); -#endif - return NULL; - } - result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); - Py_DECREF(new_args); - } else { - result = __Pyx_CyFunction_Call(func, args, kw); - } - return result; -} -#if CYTHON_METH_FASTCALL -static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames) -{ - int ret = 0; - if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { - if (unlikely(nargs < 1)) { - PyErr_Format(PyExc_TypeError, "%.200s() needs an argument", - ((PyCFunctionObject*)cyfunc)->m_ml->ml_name); - return -1; - } - ret = 1; - } - if (unlikely(kwnames) && unlikely(PyTuple_GET_SIZE(kwnames))) { - PyErr_Format(PyExc_TypeError, - "%.200s() takes no keyword arguments", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name); - return -1; - } - return ret; -} -static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) -{ - __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; - PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; -#if CYTHON_BACKPORT_VECTORCALL - Py_ssize_t nargs = (Py_ssize_t)nargsf; -#else - Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); -#endif - PyObject *self; - switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) { - case 1: - self = args[0]; - args += 1; - nargs -= 1; - break; - case 0: - self = ((PyCFunctionObject*)cyfunc)->m_self; - break; - default: - return NULL; - } - if (unlikely(nargs != 0)) { - PyErr_Format(PyExc_TypeError, - "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", - def->ml_name, nargs); - return NULL; - } - return def->ml_meth(self, NULL); -} -static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) -{ - __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; - PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; -#if CYTHON_BACKPORT_VECTORCALL - Py_ssize_t nargs = (Py_ssize_t)nargsf; -#else - Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); -#endif - PyObject *self; - switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) { - case 1: - self = args[0]; - args += 1; - nargs -= 1; - break; - case 0: - self = ((PyCFunctionObject*)cyfunc)->m_self; - break; - default: - return NULL; - } - if (unlikely(nargs != 1)) { - PyErr_Format(PyExc_TypeError, - "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", - def->ml_name, nargs); - return NULL; - } - return def->ml_meth(self, args[0]); -} -static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) -{ - __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; - PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; -#if CYTHON_BACKPORT_VECTORCALL - Py_ssize_t nargs = (Py_ssize_t)nargsf; -#else - Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); -#endif - PyObject *self; - switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) { - case 1: - self = args[0]; - args += 1; - nargs -= 1; - break; - case 0: - self = ((PyCFunctionObject*)cyfunc)->m_self; - break; - default: - return NULL; - } - return ((_PyCFunctionFastWithKeywords)(void(*)(void))def->ml_meth)(self, args, nargs, kwnames); -} -static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames) -{ - __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func; - PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml; - PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc); -#if CYTHON_BACKPORT_VECTORCALL - Py_ssize_t nargs = (Py_ssize_t)nargsf; -#else - Py_ssize_t nargs = PyVectorcall_NARGS(nargsf); -#endif - PyObject *self; - switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) { - case 1: - self = args[0]; - args += 1; - nargs -= 1; - break; - case 0: - self = ((PyCFunctionObject*)cyfunc)->m_self; - break; - default: - return NULL; - } - return ((__Pyx_PyCMethod)(void(*)(void))def->ml_meth)(self, cls, args, (size_t)nargs, kwnames); -} -#endif -#if CYTHON_USE_TYPE_SPECS -static PyType_Slot __pyx_CyFunctionType_slots[] = { - {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc}, - {Py_tp_repr, (void *)__Pyx_CyFunction_repr}, - {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod}, - {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse}, - {Py_tp_clear, (void *)__Pyx_CyFunction_clear}, - {Py_tp_methods, (void *)__pyx_CyFunction_methods}, - {Py_tp_members, (void *)__pyx_CyFunction_members}, - {Py_tp_getset, (void *)__pyx_CyFunction_getsets}, - {Py_tp_descr_get, (void *)__Pyx_PyMethod_New}, - {0, 0}, -}; -static PyType_Spec __pyx_CyFunctionType_spec = { - __PYX_TYPE_MODULE_PREFIX "cython_function_or_method", - sizeof(__pyx_CyFunctionObject), - 0, -#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR - Py_TPFLAGS_METHOD_DESCRIPTOR | -#endif -#if (defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL) - _Py_TPFLAGS_HAVE_VECTORCALL | -#endif - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, - __pyx_CyFunctionType_slots -}; -#else -static PyTypeObject __pyx_CyFunctionType_type = { - PyVarObject_HEAD_INIT(0, 0) - __PYX_TYPE_MODULE_PREFIX "cython_function_or_method", - sizeof(__pyx_CyFunctionObject), - 0, - (destructor) __Pyx_CyFunction_dealloc, -#if !CYTHON_METH_FASTCALL - 0, -#elif CYTHON_BACKPORT_VECTORCALL - (printfunc)offsetof(__pyx_CyFunctionObject, func_vectorcall), -#else - offsetof(PyCFunctionObject, vectorcall), -#endif - 0, - 0, -#if PY_MAJOR_VERSION < 3 - 0, -#else - 0, -#endif - (reprfunc) __Pyx_CyFunction_repr, - 0, - 0, - 0, - 0, - __Pyx_CyFunction_CallAsMethod, - 0, - 0, - 0, - 0, -#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR - Py_TPFLAGS_METHOD_DESCRIPTOR | -#endif -#if defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL - _Py_TPFLAGS_HAVE_VECTORCALL | -#endif - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE, - 0, - (traverseproc) __Pyx_CyFunction_traverse, - (inquiry) __Pyx_CyFunction_clear, - 0, -#if PY_VERSION_HEX < 0x030500A0 - offsetof(__pyx_CyFunctionObject, func_weakreflist), -#else - offsetof(PyCFunctionObject, m_weakreflist), -#endif - 0, - 0, - __pyx_CyFunction_methods, - __pyx_CyFunction_members, - __pyx_CyFunction_getsets, - 0, - 0, - __Pyx_PyMethod_New, - 0, - offsetof(__pyx_CyFunctionObject, func_dict), - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, -#if PY_VERSION_HEX >= 0x030400a1 - 0, -#endif -#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, -#endif -#if __PYX_NEED_TP_PRINT_SLOT - 0, -#endif -#if PY_VERSION_HEX >= 0x030C0000 - 0, -#endif -#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 - 0, -#endif -}; -#endif -static int __pyx_CyFunction_init(PyObject *module) { -#if CYTHON_USE_TYPE_SPECS - __pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CyFunctionType_spec, NULL); -#else - CYTHON_UNUSED_VAR(module); - __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); -#endif - if (unlikely(__pyx_CyFunctionType == NULL)) { - return -1; - } - return 0; -} -static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { - __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; - m->defaults = PyObject_Malloc(size); - if (unlikely(!m->defaults)) - return PyErr_NoMemory(); - memset(m->defaults, 0, size); - m->defaults_pyobjects = pyobjects; - m->defaults_size = size; - return m->defaults; -} -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { - __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; - m->defaults_tuple = tuple; - Py_INCREF(tuple); -} -static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { - __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; - m->defaults_kwdict = dict; - Py_INCREF(dict); -} -static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { - __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; - m->func_annotations = dict; - Py_INCREF(dict); -} - -/* CythonFunction */ -static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname, - PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { - PyObject *op = __Pyx_CyFunction_Init( - PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType), - ml, flags, qualname, closure, module, globals, code - ); - if (likely(op)) { - PyObject_GC_Track(op); - } - return op; -} - -/* CLineInTraceback */ -#ifndef CYTHON_CLINE_IN_TRACEBACK -static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; -#if CYTHON_COMPILING_IN_CPYTHON - PyObject **cython_runtime_dict; -#endif - CYTHON_MAYBE_UNUSED_VAR(tstate); - if (unlikely(!__pyx_cython_runtime)) { - return c_line; - } - __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); -#if CYTHON_COMPILING_IN_CPYTHON - cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); - if (likely(cython_runtime_dict)) { - __PYX_PY_DICT_LOOKUP_IF_MODIFIED( - use_cline, *cython_runtime_dict, - __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) - } else -#endif - { - PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStrNoError(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); - if (use_cline_obj) { - use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; - Py_DECREF(use_cline_obj); - } else { - PyErr_Clear(); - use_cline = NULL; - } - } - if (!use_cline) { - c_line = 0; - (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; - } - __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); - return c_line; -} -#endif - -/* CodeObjectCache */ -#if !CYTHON_COMPILING_IN_LIMITED_API -static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { - int start = 0, mid = 0, end = count - 1; - if (end >= 0 && code_line > entries[end].code_line) { - return count; - } - while (start < end) { - mid = start + (end - start) / 2; - if (code_line < entries[mid].code_line) { - end = mid; - } else if (code_line > entries[mid].code_line) { - start = mid + 1; - } else { - return mid; - } - } - if (code_line <= entries[mid].code_line) { - return mid; - } else { - return mid + 1; - } -} -static PyCodeObject *__pyx_find_code_object(int code_line) { - PyCodeObject* code_object; - int pos; - if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { - return NULL; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { - return NULL; - } - code_object = __pyx_code_cache.entries[pos].code_object; - Py_INCREF(code_object); - return code_object; -} -static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - int pos, i; - __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; - if (unlikely(!code_line)) { - return; - } - if (unlikely(!entries)) { - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); - if (likely(entries)) { - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = 64; - __pyx_code_cache.count = 1; - entries[0].code_line = code_line; - entries[0].code_object = code_object; - Py_INCREF(code_object); - } - return; - } - pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); - if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { - PyCodeObject* tmp = entries[pos].code_object; - entries[pos].code_object = code_object; - Py_DECREF(tmp); - return; - } - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( - __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } - __pyx_code_cache.entries = entries; - __pyx_code_cache.max_count = new_max; - } - for (i=__pyx_code_cache.count; i>pos; i--) { - entries[i] = entries[i-1]; - } - entries[pos].code_line = code_line; - entries[pos].code_object = code_object; - __pyx_code_cache.count++; - Py_INCREF(code_object); -} -#endif - -/* AddTraceback */ -#include "compile.h" -#include "frameobject.h" -#include "traceback.h" -#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API - #ifndef Py_BUILD_CORE - #define Py_BUILD_CORE 1 - #endif - #include "internal/pycore_frame.h" -#endif -#if CYTHON_COMPILING_IN_LIMITED_API -static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict, - PyObject *firstlineno, PyObject *name) { - PyObject *replace = NULL; - if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL; - if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL; - replace = PyObject_GetAttrString(code, "replace"); - if (likely(replace)) { - PyObject *result; - result = PyObject_Call(replace, __pyx_empty_tuple, scratch_dict); - Py_DECREF(replace); - return result; - } - PyErr_Clear(); - #if __PYX_LIMITED_VERSION_HEX < 0x030780000 - { - PyObject *compiled = NULL, *result = NULL; - if (unlikely(PyDict_SetItemString(scratch_dict, "code", code))) return NULL; - if (unlikely(PyDict_SetItemString(scratch_dict, "type", (PyObject*)(&PyType_Type)))) return NULL; - compiled = Py_CompileString( - "out = type(code)(\n" - " code.co_argcount, code.co_kwonlyargcount, code.co_nlocals, code.co_stacksize,\n" - " code.co_flags, code.co_code, code.co_consts, code.co_names,\n" - " code.co_varnames, code.co_filename, co_name, co_firstlineno,\n" - " code.co_lnotab)\n", "", Py_file_input); - if (!compiled) return NULL; - result = PyEval_EvalCode(compiled, scratch_dict, scratch_dict); - Py_DECREF(compiled); - if (!result) PyErr_Print(); - Py_DECREF(result); - result = PyDict_GetItemString(scratch_dict, "out"); - if (result) Py_INCREF(result); - return result; - } - #else - return NULL; - #endif -} -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename) { - PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL; - PyObject *replace = NULL, *getframe = NULL, *frame = NULL; - PyObject *exc_type, *exc_value, *exc_traceback; - int success = 0; - if (c_line) { - (void) __pyx_cfilenm; - (void) __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line); - } - PyErr_Fetch(&exc_type, &exc_value, &exc_traceback); - code_object = Py_CompileString("_getframe()", filename, Py_eval_input); - if (unlikely(!code_object)) goto bad; - py_py_line = PyLong_FromLong(py_line); - if (unlikely(!py_py_line)) goto bad; - py_funcname = PyUnicode_FromString(funcname); - if (unlikely(!py_funcname)) goto bad; - dict = PyDict_New(); - if (unlikely(!dict)) goto bad; - { - PyObject *old_code_object = code_object; - code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname); - Py_DECREF(old_code_object); - } - if (unlikely(!code_object)) goto bad; - getframe = PySys_GetObject("_getframe"); - if (unlikely(!getframe)) goto bad; - if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad; - frame = PyEval_EvalCode(code_object, dict, dict); - if (unlikely(!frame) || frame == Py_None) goto bad; - success = 1; - bad: - PyErr_Restore(exc_type, exc_value, exc_traceback); - Py_XDECREF(code_object); - Py_XDECREF(py_py_line); - Py_XDECREF(py_funcname); - Py_XDECREF(dict); - Py_XDECREF(replace); - if (success) { - PyTraceBack_Here( - (struct _frame*)frame); - } - Py_XDECREF(frame); -} -#else -static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = NULL; - PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 - PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); - if (!py_srcfile) goto bad; - #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); - if (!py_funcname) goto bad; - funcname = PyUnicode_AsUTF8(py_funcname); - if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); - if (!py_funcname) goto bad; - #endif - } - #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, - 0, - 0, - 0, - 0, - __pyx_empty_bytes, /*PyObject *code,*/ - __pyx_empty_tuple, /*PyObject *consts,*/ - __pyx_empty_tuple, /*PyObject *names,*/ - __pyx_empty_tuple, /*PyObject *varnames,*/ - __pyx_empty_tuple, /*PyObject *freevars,*/ - __pyx_empty_tuple, /*PyObject *cellvars,*/ - py_srcfile, /*PyObject *filename,*/ - py_funcname, /*PyObject *name,*/ - py_line, - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); - #else - py_code = PyCode_NewEmpty(filename, funcname, py_line); - #endif - Py_XDECREF(py_funcname); - return py_code; -bad: - Py_XDECREF(py_funcname); - #if PY_MAJOR_VERSION < 3 - Py_XDECREF(py_srcfile); - #endif - return NULL; -} -static void __Pyx_AddTraceback(const char *funcname, int c_line, - int py_line, const char *filename) { - PyCodeObject *py_code = 0; - PyFrameObject *py_frame = 0; - PyThreadState *tstate = __Pyx_PyThreadState_Current; - PyObject *ptype, *pvalue, *ptraceback; - if (c_line) { - c_line = __Pyx_CLineForTraceback(tstate, c_line); - } - py_code = __pyx_find_code_object(c_line ? -c_line : py_line); - if (!py_code) { - __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); - py_code = __Pyx_CreateCodeObjectForTraceback( - funcname, c_line, py_line, filename); - if (!py_code) { - /* If the code object creation fails, then we should clear the - fetched exception references and propagate the new exception */ - Py_XDECREF(ptype); - Py_XDECREF(pvalue); - Py_XDECREF(ptraceback); - goto bad; - } - __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); - __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); - } - py_frame = PyFrame_New( - tstate, /*PyThreadState *tstate,*/ - py_code, /*PyCodeObject *code,*/ - __pyx_d, /*PyObject *globals,*/ - 0 /*PyObject *locals*/ - ); - if (!py_frame) goto bad; - __Pyx_PyFrame_SetLineNumber(py_frame, py_line); - PyTraceBack_Here(py_frame); -bad: - Py_XDECREF(py_code); - Py_XDECREF(py_frame); -} -#endif - -/* CIntFromPyVerify */ -#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) -#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ - {\ - func_type value = func_value;\ - if (sizeof(target_type) < sizeof(func_type)) {\ - if (unlikely(value != (func_type) (target_type) value)) {\ - func_type zero = 0;\ - if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ - return (target_type) -1;\ - if (is_unsigned && unlikely(value < zero))\ - goto raise_neg_overflow;\ - else\ - goto raise_overflow;\ - }\ - }\ - return (target_type) value;\ - } - -/* CIntFromPy */ -static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif - const long neg_one = (long) -1, const_zero = (long) 0; -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic pop -#endif - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if ((sizeof(long) < sizeof(long))) { - __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (long) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) { - return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 3: - if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) { - return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 4: - if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) { - return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - } - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if ((sizeof(long) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { - return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 2: - if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { - return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -3: - if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { - return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 3: - if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { - return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -4: - if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { - return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 4: - if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) { - return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - } - } -#endif - if ((sizeof(long) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { - long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); -#if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } -#endif - if (likely(v)) { - int ret = -1; -#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - long idigit; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (unlikely(!PyLong_CheckExact(v))) { - PyObject *tmp = v; - v = PyNumber_Long(v); - assert(PyLong_CheckExact(v)); - Py_DECREF(tmp); - if (unlikely(!v)) return (long) -1; - } -#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - if (Py_SIZE(x) == 0) - return (long) 0; - is_negative = Py_SIZE(x) < 0; -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (long) -1; - is_negative = result == 1; - } -#endif - if (is_unsigned && unlikely(is_negative)) { - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - if (unlikely(!stepval)) - return (long) -1; - } else { - stepval = __Pyx_NewRef(v); - } - val = (long) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - val |= ((long) idigit) << bits; - #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - if (Py_SIZE(stepval) == 0) - goto unpacking_done; - #endif - } - idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((long) idigit) << bits; - #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - unpacking_done: - #endif - if (!is_unsigned) { - if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - Py_DECREF(v); - if (likely(!ret)) - return val; - } - return (long) -1; - } - } else { - long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (long) -1; - val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to long"); - return (long) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to long"); - return (long) -1; -} - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif - const long neg_one = (long) -1, const_zero = (long) 0; -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic pop -#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 - return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); -#else - PyObject *from_bytes, *result = NULL; - PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; - from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); - if (!from_bytes) return NULL; - py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long)); - if (!py_bytes) goto limited_bad; - order_str = PyUnicode_FromString(little ? "little" : "big"); - if (!order_str) goto limited_bad; - arg_tuple = PyTuple_Pack(2, py_bytes, order_str); - if (!arg_tuple) goto limited_bad; - if (!is_unsigned) { - kwds = PyDict_New(); - if (!kwds) goto limited_bad; - if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad; - } - result = PyObject_Call(from_bytes, arg_tuple, kwds); - limited_bad: - Py_XDECREF(kwds); - Py_XDECREF(arg_tuple); - Py_XDECREF(order_str); - Py_XDECREF(py_bytes); - Py_XDECREF(from_bytes); - return result; -#endif - } -} - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif - const int neg_one = (int) -1, const_zero = (int) 0; -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic pop -#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(int) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(int) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 - return _PyLong_FromByteArray(bytes, sizeof(int), - little, !is_unsigned); -#else - PyObject *from_bytes, *result = NULL; - PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; - from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); - if (!from_bytes) return NULL; - py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int)); - if (!py_bytes) goto limited_bad; - order_str = PyUnicode_FromString(little ? "little" : "big"); - if (!order_str) goto limited_bad; - arg_tuple = PyTuple_Pack(2, py_bytes, order_str); - if (!arg_tuple) goto limited_bad; - if (!is_unsigned) { - kwds = PyDict_New(); - if (!kwds) goto limited_bad; - if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad; - } - result = PyObject_Call(from_bytes, arg_tuple, kwds); - limited_bad: - Py_XDECREF(kwds); - Py_XDECREF(arg_tuple); - Py_XDECREF(order_str); - Py_XDECREF(py_bytes); - Py_XDECREF(from_bytes); - return result; -#endif - } -} - -/* CIntFromPy */ -static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif - const int neg_one = (int) -1, const_zero = (int) 0; -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic pop -#endif - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if ((sizeof(int) < sizeof(long))) { - __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (int) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) { - return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 3: - if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) { - return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 4: - if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) { - return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - } - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if ((sizeof(int) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { - return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 2: - if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { - return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -3: - if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { - return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 3: - if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { - return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -4: - if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { - return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 4: - if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) { - return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - } - } -#endif - if ((sizeof(int) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { - int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); -#if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } -#endif - if (likely(v)) { - int ret = -1; -#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - long idigit; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (unlikely(!PyLong_CheckExact(v))) { - PyObject *tmp = v; - v = PyNumber_Long(v); - assert(PyLong_CheckExact(v)); - Py_DECREF(tmp); - if (unlikely(!v)) return (int) -1; - } -#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - if (Py_SIZE(x) == 0) - return (int) 0; - is_negative = Py_SIZE(x) < 0; -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (int) -1; - is_negative = result == 1; - } -#endif - if (is_unsigned && unlikely(is_negative)) { - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - if (unlikely(!stepval)) - return (int) -1; - } else { - stepval = __Pyx_NewRef(v); - } - val = (int) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - val |= ((int) idigit) << bits; - #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - if (Py_SIZE(stepval) == 0) - goto unpacking_done; - #endif - } - idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((int) idigit) << bits; - #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - unpacking_done: - #endif - if (!is_unsigned) { - if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - Py_DECREF(v); - if (likely(!ret)) - return val; - } - return (int) -1; - } - } else { - int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (int) -1; - val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to int"); - return (int) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to int"); - return (int) -1; -} - -/* CIntFromPy */ -static CYTHON_INLINE unsigned int __Pyx_PyInt_As_unsigned_int(PyObject *x) { -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif - const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic pop -#endif - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if ((sizeof(unsigned int) < sizeof(long))) { - __PYX_VERIFY_RETURN_INT(unsigned int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (unsigned int) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) >= 2 * PyLong_SHIFT)) { - return (unsigned int) (((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); - } - } - break; - case 3: - if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) >= 3 * PyLong_SHIFT)) { - return (unsigned int) (((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); - } - } - break; - case 4: - if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) >= 4 * PyLong_SHIFT)) { - return (unsigned int) (((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0])); - } - } - break; - } - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (unsigned int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if ((sizeof(unsigned int) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if ((sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(unsigned int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(unsigned int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(unsigned int) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { - return (unsigned int) (((unsigned int)-1)*(((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); - } - } - break; - case 2: - if ((8 * sizeof(unsigned int) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { - return (unsigned int) ((((((unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); - } - } - break; - case -3: - if ((8 * sizeof(unsigned int) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { - return (unsigned int) (((unsigned int)-1)*(((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); - } - } - break; - case 3: - if ((8 * sizeof(unsigned int) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { - return (unsigned int) ((((((((unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); - } - } - break; - case -4: - if ((8 * sizeof(unsigned int) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) { - return (unsigned int) (((unsigned int)-1)*(((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); - } - } - break; - case 4: - if ((8 * sizeof(unsigned int) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(unsigned int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(unsigned int) - 1 > 4 * PyLong_SHIFT)) { - return (unsigned int) ((((((((((unsigned int)digits[3]) << PyLong_SHIFT) | (unsigned int)digits[2]) << PyLong_SHIFT) | (unsigned int)digits[1]) << PyLong_SHIFT) | (unsigned int)digits[0]))); - } - } - break; - } - } -#endif - if ((sizeof(unsigned int) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(unsigned int, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if ((sizeof(unsigned int) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(unsigned int, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { - unsigned int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); -#if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } -#endif - if (likely(v)) { - int ret = -1; -#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - long idigit; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (unlikely(!PyLong_CheckExact(v))) { - PyObject *tmp = v; - v = PyNumber_Long(v); - assert(PyLong_CheckExact(v)); - Py_DECREF(tmp); - if (unlikely(!v)) return (unsigned int) -1; - } -#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - if (Py_SIZE(x) == 0) - return (unsigned int) 0; - is_negative = Py_SIZE(x) < 0; -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (unsigned int) -1; - is_negative = result == 1; - } -#endif - if (is_unsigned && unlikely(is_negative)) { - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - if (unlikely(!stepval)) - return (unsigned int) -1; - } else { - stepval = __Pyx_NewRef(v); - } - val = (unsigned int) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(unsigned int) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - val |= ((unsigned int) idigit) << bits; - #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - if (Py_SIZE(stepval) == 0) - goto unpacking_done; - #endif - } - idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(unsigned int) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((unsigned int) idigit) << bits; - #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - unpacking_done: - #endif - if (!is_unsigned) { - if (unlikely(val & (((unsigned int) 1) << (sizeof(unsigned int) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - Py_DECREF(v); - if (likely(!ret)) - return val; - } - return (unsigned int) -1; - } - } else { - unsigned int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (unsigned int) -1; - val = __Pyx_PyInt_As_unsigned_int(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to unsigned int"); - return (unsigned int) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to unsigned int"); - return (unsigned int) -1; -} - -/* CIntToPy */ -static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_int(unsigned int value) { -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif - const unsigned int neg_one = (unsigned int) -1, const_zero = (unsigned int) 0; -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic pop -#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(unsigned int) < sizeof(long)) { - return PyInt_FromLong((long) value); - } else if (sizeof(unsigned int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(unsigned int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -#endif - } - } else { - if (sizeof(unsigned int) <= sizeof(long)) { - return PyInt_FromLong((long) value); -#ifdef HAVE_LONG_LONG - } else if (sizeof(unsigned int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); -#endif - } - } - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000 - return _PyLong_FromByteArray(bytes, sizeof(unsigned int), - little, !is_unsigned); -#else - PyObject *from_bytes, *result = NULL; - PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL; - from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes"); - if (!from_bytes) return NULL; - py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(unsigned int)); - if (!py_bytes) goto limited_bad; - order_str = PyUnicode_FromString(little ? "little" : "big"); - if (!order_str) goto limited_bad; - arg_tuple = PyTuple_Pack(2, py_bytes, order_str); - if (!arg_tuple) goto limited_bad; - if (!is_unsigned) { - kwds = PyDict_New(); - if (!kwds) goto limited_bad; - if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad; - } - result = PyObject_Call(from_bytes, arg_tuple, kwds); - limited_bad: - Py_XDECREF(kwds); - Py_XDECREF(arg_tuple); - Py_XDECREF(order_str); - Py_XDECREF(py_bytes); - Py_XDECREF(from_bytes); - return result; -#endif - } -} - -/* CIntFromPy */ -static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wconversion" -#endif - const size_t neg_one = (size_t) -1, const_zero = (size_t) 0; -#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -#pragma GCC diagnostic pop -#endif - const int is_unsigned = neg_one > const_zero; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { - if ((sizeof(size_t) < sizeof(long))) { - __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } - return (size_t) val; - } - } else -#endif - if (likely(PyLong_Check(x))) { - if (is_unsigned) { -#if CYTHON_USE_PYLONG_INTERNALS - if (unlikely(__Pyx_PyLong_IsNeg(x))) { - goto raise_neg_overflow; - } else if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_DigitCount(x)) { - case 2: - if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(size_t) >= 2 * PyLong_SHIFT)) { - return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - case 3: - if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(size_t) >= 3 * PyLong_SHIFT)) { - return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - case 4: - if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(size_t) >= 4 * PyLong_SHIFT)) { - return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - } - break; - } - } -#endif -#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 - if (unlikely(Py_SIZE(x) < 0)) { - goto raise_neg_overflow; - } -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (size_t) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } -#endif - if ((sizeof(size_t) <= sizeof(unsigned long))) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) -#ifdef HAVE_LONG_LONG - } else if ((sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -#endif - } - } else { -#if CYTHON_USE_PYLONG_INTERNALS - if (__Pyx_PyLong_IsCompact(x)) { - __PYX_VERIFY_RETURN_INT(size_t, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x)) - } else { - const digit* digits = __Pyx_PyLong_Digits(x); - assert(__Pyx_PyLong_DigitCount(x) > 1); - switch (__Pyx_PyLong_SignedDigitCount(x)) { - case -2: - if ((8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) { - return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 2: - if ((8 * sizeof(size_t) > 1 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) { - return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case -3: - if ((8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) { - return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 3: - if ((8 * sizeof(size_t) > 2 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) { - return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case -4: - if ((8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) { - return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - case 4: - if ((8 * sizeof(size_t) > 3 * PyLong_SHIFT)) { - if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) { - __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) - } else if ((8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT)) { - return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); - } - } - break; - } - } -#endif - if ((sizeof(size_t) <= sizeof(long))) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) -#ifdef HAVE_LONG_LONG - } else if ((sizeof(size_t) <= sizeof(PY_LONG_LONG))) { - __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) -#endif - } - } - { - size_t val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); -#if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { - PyObject *tmp = v; - v = PyNumber_Long(tmp); - Py_DECREF(tmp); - } -#endif - if (likely(v)) { - int ret = -1; -#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray) - int one = 1; int is_little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&val; - ret = _PyLong_AsByteArray((PyLongObject *)v, - bytes, sizeof(val), - is_little, !is_unsigned); -#else - PyObject *stepval = NULL, *mask = NULL, *shift = NULL; - int bits, remaining_bits, is_negative = 0; - long idigit; - int chunk_size = (sizeof(long) < 8) ? 30 : 62; - if (unlikely(!PyLong_CheckExact(v))) { - PyObject *tmp = v; - v = PyNumber_Long(v); - assert(PyLong_CheckExact(v)); - Py_DECREF(tmp); - if (unlikely(!v)) return (size_t) -1; - } -#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - if (Py_SIZE(x) == 0) - return (size_t) 0; - is_negative = Py_SIZE(x) < 0; -#else - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) - return (size_t) -1; - is_negative = result == 1; - } -#endif - if (is_unsigned && unlikely(is_negative)) { - goto raise_neg_overflow; - } else if (is_negative) { - stepval = PyNumber_Invert(v); - if (unlikely(!stepval)) - return (size_t) -1; - } else { - stepval = __Pyx_NewRef(v); - } - val = (size_t) 0; - mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done; - shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done; - for (bits = 0; bits < (int) sizeof(size_t) * 8 - chunk_size; bits += chunk_size) { - PyObject *tmp, *digit; - digit = PyNumber_And(stepval, mask); - if (unlikely(!digit)) goto done; - idigit = PyLong_AsLong(digit); - Py_DECREF(digit); - if (unlikely(idigit < 0)) goto done; - tmp = PyNumber_Rshift(stepval, shift); - if (unlikely(!tmp)) goto done; - Py_DECREF(stepval); stepval = tmp; - val |= ((size_t) idigit) << bits; - #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - if (Py_SIZE(stepval) == 0) - goto unpacking_done; - #endif - } - idigit = PyLong_AsLong(stepval); - if (unlikely(idigit < 0)) goto done; - remaining_bits = ((int) sizeof(size_t) * 8) - bits - (is_unsigned ? 0 : 1); - if (unlikely(idigit >= (1L << remaining_bits))) - goto raise_overflow; - val |= ((size_t) idigit) << bits; - #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000 - unpacking_done: - #endif - if (!is_unsigned) { - if (unlikely(val & (((size_t) 1) << (sizeof(size_t) * 8 - 1)))) - goto raise_overflow; - if (is_negative) - val = ~val; - } - ret = 0; - done: - Py_XDECREF(shift); - Py_XDECREF(mask); - Py_XDECREF(stepval); -#endif - Py_DECREF(v); - if (likely(!ret)) - return val; - } - return (size_t) -1; - } - } else { - size_t val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); - if (!tmp) return (size_t) -1; - val = __Pyx_PyInt_As_size_t(tmp); - Py_DECREF(tmp); - return val; - } -raise_overflow: - PyErr_SetString(PyExc_OverflowError, - "value too large to convert to size_t"); - return (size_t) -1; -raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, - "can't convert negative value to size_t"); - return (size_t) -1; -} - -/* FormatTypeName */ -#if CYTHON_COMPILING_IN_LIMITED_API -static __Pyx_TypeName -__Pyx_PyType_GetName(PyTypeObject* tp) -{ - PyObject *name = __Pyx_PyObject_GetAttrStr((PyObject *)tp, - __pyx_n_s_name); - if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) { - PyErr_Clear(); - Py_XDECREF(name); - name = __Pyx_NewRef(__pyx_n_s__65); - } - return name; -} -#endif - -/* CheckBinaryVersion */ -static unsigned long __Pyx_get_runtime_version(void) { -#if __PYX_LIMITED_VERSION_HEX >= 0x030B00A4 - return Py_Version & ~0xFFUL; -#else - const char* rt_version = Py_GetVersion(); - unsigned long version = 0; - unsigned long factor = 0x01000000UL; - unsigned int digit = 0; - int i = 0; - while (factor) { - while ('0' <= rt_version[i] && rt_version[i] <= '9') { - digit = digit * 10 + (unsigned int) (rt_version[i] - '0'); - ++i; - } - version += factor * digit; - if (rt_version[i] != '.') - break; - digit = 0; - factor >>= 8; - ++i; - } - return version; -#endif -} -static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) { - const unsigned long MAJOR_MINOR = 0xFFFF0000UL; - if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR)) - return 0; - if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR))) - return 1; - { - char message[200]; - PyOS_snprintf(message, sizeof(message), - "compile time Python version %d.%d " - "of module '%.100s' " - "%s " - "runtime version %d.%d", - (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF), - __Pyx_MODULE_NAME, - (allow_newer) ? "was newer than" : "does not match", - (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF) - ); - return PyErr_WarnEx(NULL, message, 1); - } -} - -/* InitStrings */ -#if PY_MAJOR_VERSION >= 3 -static int __Pyx_InitString(__Pyx_StringTabEntry t, PyObject **str) { - if (t.is_unicode | t.is_str) { - if (t.intern) { - *str = PyUnicode_InternFromString(t.s); - } else if (t.encoding) { - *str = PyUnicode_Decode(t.s, t.n - 1, t.encoding, NULL); - } else { - *str = PyUnicode_FromStringAndSize(t.s, t.n - 1); - } - } else { - *str = PyBytes_FromStringAndSize(t.s, t.n - 1); - } - if (!*str) - return -1; - if (PyObject_Hash(*str) == -1) - return -1; - return 0; -} -#endif -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { - while (t->p) { - #if PY_MAJOR_VERSION >= 3 - __Pyx_InitString(*t, t->p); - #else - if (t->is_unicode) { - *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); - } else if (t->intern) { - *t->p = PyString_InternFromString(t->s); - } else { - *t->p = PyString_FromStringAndSize(t->s, t->n - 1); - } - if (!*t->p) - return -1; - if (PyObject_Hash(*t->p) == -1) - return -1; - #endif - ++t; - } - return 0; -} - -#include -static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) { - size_t len = strlen(s); - if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) { - PyErr_SetString(PyExc_OverflowError, "byte string is too long"); - return -1; - } - return (Py_ssize_t) len; -} -static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { - Py_ssize_t len = __Pyx_ssize_strlen(c_str); - if (unlikely(len < 0)) return NULL; - return __Pyx_PyUnicode_FromStringAndSize(c_str, len); -} -static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) { - Py_ssize_t len = __Pyx_ssize_strlen(c_str); - if (unlikely(len < 0)) return NULL; - return PyByteArray_FromStringAndSize(c_str, len); -} -static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { - Py_ssize_t ignore; - return __Pyx_PyObject_AsStringAndSize(o, &ignore); -} -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT -#if !CYTHON_PEP393_ENABLED -static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { - char* defenc_c; - PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); - if (!defenc) return NULL; - defenc_c = PyBytes_AS_STRING(defenc); -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - { - char* end = defenc_c + PyBytes_GET_SIZE(defenc); - char* c; - for (c = defenc_c; c < end; c++) { - if ((unsigned char) (*c) >= 128) { - PyUnicode_AsASCIIString(o); - return NULL; - } - } - } -#endif - *length = PyBytes_GET_SIZE(defenc); - return defenc_c; -} -#else -static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { - if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - if (likely(PyUnicode_IS_ASCII(o))) { - *length = PyUnicode_GET_LENGTH(o); - return PyUnicode_AsUTF8(o); - } else { - PyUnicode_AsASCIIString(o); - return NULL; - } -#else - return PyUnicode_AsUTF8AndSize(o, length); -#endif -} -#endif -#endif -static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { -#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT - if ( -#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII - __Pyx_sys_getdefaultencoding_not_ascii && -#endif - PyUnicode_Check(o)) { - return __Pyx_PyUnicode_AsStringAndSize(o, length); - } else -#endif -#if (!CYTHON_COMPILING_IN_PYPY && !CYTHON_COMPILING_IN_LIMITED_API) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) - if (PyByteArray_Check(o)) { - *length = PyByteArray_GET_SIZE(o); - return PyByteArray_AS_STRING(o); - } else -#endif - { - char* result; - int r = PyBytes_AsStringAndSize(o, &result, length); - if (unlikely(r < 0)) { - return NULL; - } else { - return result; - } - } -} -static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { - int is_true = x == Py_True; - if (is_true | (x == Py_False) | (x == Py_None)) return is_true; - else return PyObject_IsTrue(x); -} -static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { - int retval; - if (unlikely(!x)) return -1; - retval = __Pyx_PyObject_IsTrue(x); - Py_DECREF(x); - return retval; -} -static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { - __Pyx_TypeName result_type_name = __Pyx_PyType_GetName(Py_TYPE(result)); -#if PY_MAJOR_VERSION >= 3 - if (PyLong_Check(result)) { - if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, - "__int__ returned non-int (type " __Pyx_FMT_TYPENAME "). " - "The ability to return an instance of a strict subclass of int is deprecated, " - "and may be removed in a future version of Python.", - result_type_name)) { - __Pyx_DECREF_TypeName(result_type_name); - Py_DECREF(result); - return NULL; - } - __Pyx_DECREF_TypeName(result_type_name); - return result; - } -#endif - PyErr_Format(PyExc_TypeError, - "__%.4s__ returned non-%.4s (type " __Pyx_FMT_TYPENAME ")", - type_name, type_name, result_type_name); - __Pyx_DECREF_TypeName(result_type_name); - Py_DECREF(result); - return NULL; -} -static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { -#if CYTHON_USE_TYPE_SLOTS - PyNumberMethods *m; -#endif - const char *name = NULL; - PyObject *res = NULL; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x) || PyLong_Check(x))) -#else - if (likely(PyLong_Check(x))) -#endif - return __Pyx_NewRef(x); -#if CYTHON_USE_TYPE_SLOTS - m = Py_TYPE(x)->tp_as_number; - #if PY_MAJOR_VERSION < 3 - if (m && m->nb_int) { - name = "int"; - res = m->nb_int(x); - } - else if (m && m->nb_long) { - name = "long"; - res = m->nb_long(x); - } - #else - if (likely(m && m->nb_int)) { - name = "int"; - res = m->nb_int(x); - } - #endif -#else - if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { - res = PyNumber_Int(x); - } -#endif - if (likely(res)) { -#if PY_MAJOR_VERSION < 3 - if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { -#else - if (unlikely(!PyLong_CheckExact(res))) { -#endif - return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); - } - } - else if (!PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError, - "an integer is required"); - } - return res; -} -static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_ssize_t ival; - PyObject *x; -#if PY_MAJOR_VERSION < 3 - if (likely(PyInt_CheckExact(b))) { - if (sizeof(Py_ssize_t) >= sizeof(long)) - return PyInt_AS_LONG(b); - else - return PyInt_AsSsize_t(b); - } -#endif - if (likely(PyLong_CheckExact(b))) { - #if CYTHON_USE_PYLONG_INTERNALS - if (likely(__Pyx_PyLong_IsCompact(b))) { - return __Pyx_PyLong_CompactValue(b); - } else { - const digit* digits = __Pyx_PyLong_Digits(b); - const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b); - switch (size) { - case 2: - if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { - return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -2: - if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case 3: - if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { - return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -3: - if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case 4: - if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { - return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - case -4: - if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { - return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); - } - break; - } - } - #endif - return PyLong_AsSsize_t(b); - } - x = PyNumber_Index(b); - if (!x) return -1; - ival = PyInt_AsSsize_t(x); - Py_DECREF(x); - return ival; -} -static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { - if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { - return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -#if PY_MAJOR_VERSION < 3 - } else if (likely(PyInt_CheckExact(o))) { - return PyInt_AS_LONG(o); -#endif - } else { - Py_ssize_t ival; - PyObject *x; - x = PyNumber_Index(o); - if (!x) return -1; - ival = PyInt_AsLong(x); - Py_DECREF(x); - return ival; - } -} -static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); -} -static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { - return PyInt_FromSize_t(ival); -} - - -/* #### Code section: utility_code_pragmas_end ### */ -#ifdef _MSC_VER -#pragma warning( pop ) -#endif - - - -/* #### Code section: end ### */ -#endif /* Py_PYTHON_H */ diff --git a/pyflowline/external/tinyr/tinyr/tinyr.pyx b/pyflowline/external/tinyr/tinyr/tinyr.pyx deleted file mode 100644 index eaf2eea..0000000 --- a/pyflowline/external/tinyr/tinyr/tinyr.pyx +++ /dev/null @@ -1,1106 +0,0 @@ -# -# tinyr - a 2D-RTree implementation in Cython -# Copyright (C) 2011 Matthias Simon -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - - -''' -Fast 2D R-Tree implementation in cython. - -The implementation is based on the original paper [Gut84]. - - - -[Gut84] R-trees: A Dynamic Index Structure for Spatial Searching, A. Guttman, - Proc ACM SIGMOD Int, 47-57, 1984 - -[Bec90] The R*-tree: An efficient and robust access method for points and - rectangles, N. Beckmann, H.-P. Kriegel, R. Schneider, and B. Seeger, - ACM SIGMOD, 322-331, 1990 -''' - -# cython: profile=False - -import itertools - - -from libc.float cimport DBL_MAX as Dfloat_max, DBL_MIN as Dfloat_min - -ctypedef double Dfloat -ctypedef unsigned Duint - - -############################################################################### -#--- forward declarations -############################################################################### - -cdef class _Record -cdef class _ChildRecord(_Record) -cdef class _InnerRecord(_Record) -cdef class _Node -cdef class RTree -cdef class _Iterator -cdef class _ChildRecordIter(_Iterator) -cdef class _KVIIter(_Iterator) -cdef class _KeysIter(_KVIIter) -cdef class _ValuesIter(_KVIIter) -cdef class _ItemsIter(_KVIIter) - -class RTreeInvalid(Exception): - pass - -############################################################################### - -cdef inline void init_Dfloat4(Dfloat *f): - # array initialization - compiler cries if we don't do that - f[0] = 0 - f[1] = 0 - f[2] = 0 - f[3] = 0 - -cdef inline void make_order(Dfloat *coords): - cdef Dfloat switch - if coords[0] > coords[2]: - switch = coords[0] - coords[0] = coords[2] - coords[2] = switch - if coords[1] > coords[3]: - switch = coords[1] - coords[1] = coords[3] - coords[3] = switch - -cdef void tuple_to_array_interleaved(object t, Dfloat *coords): - for i in range(4): - coords[i] = t[i] - make_order(coords) - -cdef void tuple_to_array_normal(object t, Dfloat *coords): - coords[0] = t[0] - coords[2] = t[1] - coords[1] = t[2] - coords[3] = t[3] - make_order(coords) - - -cdef tuple array_to_tuple_interleaved(Dfloat *coords): - return tuple([ coords[i] for i in range(4)]) - -cdef tuple array_to_tuple_normal(Dfloat *coords): - return tuple([ coords[0], coords[2], coords[1], coords[3] ]) - -cdef inline _InnerRecord parent_record(_Node node): - cdef: - _InnerRecord e - - for e in node.parent.records: - if e.child == node: - return e - -cdef inline void common_boundaries(list records, Dfloat *target): - cdef: - Dfloat *coords - _Record r - - target[0] = target[1] = Dfloat_max - target[2] = target[3] = -Dfloat_min - for r in records: - coords = r.coords - target[0] = min(target[0], coords[0]) - target[1] = min(target[1], coords[1]) - target[2] = max(target[2], coords[2]) - target[3] = max(target[3], coords[3]) - -cdef inline Dfloat area(Dfloat *coords): - return (coords[2] - coords[0]) * (coords[3] - coords[1]) - -cdef class _Record: - cdef: - Dfloat coords[4] - - cdef inline bint overlaps(self, Dfloat *rect): - return self.coords[0] < rect[2] and self.coords[2] > rect[0] and self.coords[1] < rect[3] and self.coords[3] > rect[1] - - cdef inline void copy_coords_to(self, Dfloat *coords): - for i in range(4): - coords[i] = self.coords[i] - - cdef _Record copy(self, _Node newparent): - raise NotImplemented - -cdef class _ChildRecord(_Record): - cdef: - object identifier - - def __init__(self, object identifier): - self.identifier = identifier - - cdef _Record copy(self, _Node newparent): - cdef: - _ChildRecord ret - - ret = _ChildRecord(self.identifier) - self.copy_coords_to(ret.coords) - return ret - -cdef class _InnerRecord(_Record): - cdef: - _Node child - - def __cinit__(self, _Node child): - self.child = child - - cdef _Record copy(self, _Node newparent): - cdef: - _InnerRecord ret - - ret = _InnerRecord(self.child.copy(newparent)) - self.copy_coords_to(ret.coords) - return ret - -cdef class _Node(object): - cdef: - _Node parent - list records - bint is_leaf - - def __cinit__(self, _Node parent): - self.parent = parent - self.records = list() - - cdef _Node copy(self, _Node parent): - cdef: - _Node ret - ret = _Node(parent) - ret.records = [ (<_Record>rec).copy(ret) for rec in self.records ] - ret.is_leaf = self.is_leaf - return ret - - cdef inline void common_boundaries(self, Dfloat *target): - common_boundaries(self.records, target) - - cdef inline _Record choose_subtree_least_enlargement(self, _Record ir): - cdef: - Dfloat least_enlargement, enlagrgement, current_area, target_area - Dfloat combined_rectangle[4] - _Record current_record, target - list records - - init_Dfloat4(combined_rectangle) - - target_area = least_enlargement = Dfloat_max - records = [ir, None] - - - for current_record in self.records: - current_area = area(current_record.coords) - - records[1] = current_record - - common_boundaries(records, combined_rectangle) - enlagrgement = area(combined_rectangle) - current_area - - if enlagrgement < least_enlargement: - target = current_record - target_area = area(current_record.coords) - least_enlargement = enlagrgement - elif enlagrgement == least_enlargement and current_area < target_area: - target = current_record - least_enlargement = target_area = current_area - - return target - - cdef void find_overlapping_leafs_recursive(self, list result, Dfloat *coords): - cdef: - _InnerRecord record - - if self.is_leaf: - result.append(self) - else: - for record in self.records: - if record.overlaps(coords): - record.child.find_overlapping_leafs_recursive(result, coords) - - cdef void addChild(self, _Node node): - cdef: - _InnerRecord ir - - node.parent = self - ir = _InnerRecord(node) - node.common_boundaries(ir.coords) - self.records.append(ir) - -cdef list find_overlapping_leafs_recursive(RTree rtree, Dfloat *coords): - cdef: - _Record rec - list result - - # don't know the whole surrounding rectangle of root, ask records for overlapping - for rec in rtree.root.records: - if rec.overlaps(coords): - break - else: - return [] - - result = list() - rtree.root.find_overlapping_leafs_recursive(result, coords) - return result - -# performs worse than the recursive one - so we skip it -#cdef list find_overlapping_leafs_linear(RTree rtree, Dfloat *coords): -# cdef: -# _Node node -# _InnerRecord ir -# list nodes_to_check, next_level_nodes -# unsigned level -# -# nodes_to_check = [rtree.root] -# next_level_nodes = [] -# level = 0 -# -# while level != rtree._leaf_level: -# while nodes_to_check: -# node = <_Node>nodes_to_check.pop() -# for ir in node.records: -# if (<_InnerRecord>ir).overlaps(coords): -# next_level_nodes.append((<_InnerRecord>ir).child) -# -# nodes_to_check = next_level_nodes -# next_level_nodes = [] -# level += 1 -# -# return nodes_to_check - -cdef int PickSeedsQuadratic(_Node node, list remaining, _Node newnode) except -1: - cdef: - Dfloat d, d_max, E1_E2[4] - Dfloat J, a_E1, a_E2 - _Record E1_ret, E2_ret - list combi - - init_Dfloat4(E1_E2) - - combi = [None, None] - d_max = -Dfloat_max - - for E1, E2 in itertools.combinations(remaining, 2): - - combi[0] = E1 - combi[1] = E2 - - common_boundaries(combi, E1_E2) - J = area(E1_E2) - a_E1 = area((<_Record>E1).coords) - a_E2 = area((<_Record>E2).coords) - d = J - a_E1 - a_E2 - - if d > d_max: - E1_ret = E1 - E2_ret = E2 - - remaining.remove(E1_ret) - remaining.remove(E2_ret) - - node.records = [E1_ret] - newnode.records = [E2_ret] - - return 0 - -#cdef int PickSeedsLinear(_Node node, list remaining, _Node newnode) except -1: -# # specification intended to have such a method, but -# # too complicated, since spec lets an unclear situation left: -# # the two seed nodes may be the same. the spec doen't say anything about how -# # to handle this situation... my guess 'take the next best one' would be too -# # rude. -# raise NotImplemented - -cdef class RTree(object): - '''RTree - structure for 2D-indexed items. - - @param interleaved: It True, all methods that accept coordinates expect it to be in format (x1, y1, x2, y2). - If False, coordinates are supposed to be (x1, x2, y1, y2) - Default: True - @param max_cap: Maximum of capacity of an index node. Default: 5 - @param min_cap: Minimum of entries an index node must hold. Default: 2 - ''' - cdef: - _Node root - Duint _leaf_level - Duint _node_cnt - int M_cap, m_cap - - list (*find_overlapping_leafs)(RTree rtree, Dfloat *coords) - int (*PickSeeds)(_Node node, list remaining, _Node newnode) except -1 - void (*tuple_to_array)(object t, Dfloat *coords) - tuple (*array_to_tuple)(Dfloat *coords) - - property min_cap: - def __get__(self): - return self.m_cap - - property max_cap: - def __get__(self): - return self.M_cap - - def __cinit__(self): - self.root = _Node(None) - self.root.is_leaf = True - self._leaf_level = 0 - self._node_cnt = 0 - - def __init__(self, interleaved=True, max_cap=5, min_cap=2): - if min_cap > max_cap/2.: - raise ValueError('for min/max capacities, it\'s required that min_cap <= max_cap/2.0') - - if interleaved: - self.tuple_to_array = tuple_to_array_interleaved - self.array_to_tuple = array_to_tuple_interleaved - else: - self.tuple_to_array = tuple_to_array_normal - self.array_to_tuple = array_to_tuple_normal - - # the iterative method performed worse - self.find_overlapping_leafs = find_overlapping_leafs_recursive - - self.PickSeeds = PickSeedsQuadratic - - self.M_cap = max_cap - self.m_cap = min_cap - - def __len__(self): - return self._node_cnt - - def __getitem__(self, item): - if isinstance(item, (list, tuple)): - if len(item) == 2: - return self.search_surrounding(item) - elif len(item) == 4: - return self.search(item) - raise AttributeError('indexing RTree only possible with rectangle or point (x, y)') - - def iterkeys(self): - return _KeysIter(self) - - def itervalues(self): - return _ValuesIter(self) - - def iteritems(self): - return _ItemsIter(self) - - def get_info(self): - return RTreeInfo(self) - - def insert(self, object key, object coords): - '''Insert an item. - - @param key: an object to insert, where all keys should be unique (regarding !=) - @param coords: 2D coordinates - ''' - - cdef: - _ChildRecord cr - _Node L - - if not isinstance(coords, (list, tuple)): - raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - if not len(coords) == 4: - raise TypeError('len(coords) must be 4, length is %d' % len(coords)) - - cr = _ChildRecord(key) - self.tuple_to_array(coords, cr.coords) - - L = self._ChooseLeaf(cr) - - self.insert_at_node(cr, L) - - self._node_cnt += 1 - - - def search(self, object coords): - '''Search overlapping items. - - @param coords: list or tuple of four values that make a rectangle - @return: a list of identifiers whose coordinates overlap with coords - ''' - cdef: - _Node node - _ChildRecord cr - Dfloat coords_a[4] - list leafnodes, result - - if not isinstance(coords, (list, tuple)): - raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - - if len(coords) != 4: - raise TypeError('len(coords) must be 4, len is %d' % len(coords)) - - self.tuple_to_array(coords, coords_a) - - leafnodes = self.find_overlapping_leafs(self, coords_a) - - result = [] - for node in leafnodes: - assert node.is_leaf - for cr in node.records: - if cr.overlaps(coords_a): - result.append(cr.identifier) - - return result - - def copy(self): - cdef: - RTree ret - - ret = RTree(max_cap=self.M_cap, min_cap=self.m_cap) - ret._leaf_level = self._leaf_level - ret._node_cnt = self._node_cnt - ret.root = self.root.copy(None) - return ret - - def search_surrounding(self, point): - '''Search items that surround a point. - - @param item: a point in form (x, y) - @return: a list of identifiers whose coordinates surround with point - ''' - cdef: - _Node node - _ChildRecord cr - Dfloat coords_a[4] - list leafnodes, result - - if not isinstance(point, (list, tuple)): - raise TypeError('coordinates as list or tuple expected, got %s' % point.__class__) - - if len(point) == 2: - point = 2 * point - else: - raise TypeError('len(point) must be 2, len is %d' % len(point)) - - self.tuple_to_array(point, coords_a) - - leafnodes = self.find_overlapping_leafs(self, coords_a) - - result = [] - for node in leafnodes: - assert node.is_leaf - for cr in node.records: - if cr.overlaps(coords_a): - result.append(cr.identifier) - - return result - - cdef inline int insert_at_node(self, _Record r, _Node L) except -1: - cdef: - _Node LL = None - - if self.is_full(L): - LL = self.SplitNode(L, r) - else: - L.records.append(r) - - L, LL = self._AdjustTree(L, LL) - - if LL != None: - self.root = _Node(None) - self.root.addChild(L) - self.root.addChild(LL) - self._leaf_level += 1 - - return 0 - - def remove(self, identifier, coords): - '''Delete an item - - @param identifier: the item that should be removed - @param coords: the coordinates of item - ''' - cdef: - _Node leaf - Dfloat coords_a[4] - - if not isinstance(coords, (list, tuple)): - raise TypeError('coordinates as list or tuple expected, got %s' % coords.__class__) - if not len(coords) == 4: - raise TypeError('len(coords) must be 4, len is %d' % len(coords)) - - self.tuple_to_array(coords, coords_a) - - leaf = self.FindLeaf_and_remove(identifier, coords_a) - - if leaf is None: - raise KeyError() - - self.after_remove(leaf) - - self._node_cnt -= 1 - - cdef inline void after_remove(self, _Node node): - self.CondenseTree(node) - if not self.root.is_leaf and len(self.root.records) == 1: - self.root = (<_InnerRecord>self.root.records.pop()).child - self._leaf_level -= 1 - - cdef inline _Node FindLeaf_and_remove(self, object identifier, Dfloat *coords): - # A bit different that in spec: we find overlapping leaf nodes with the - # method the user wants to find it (recursive or iterative). Spec only - # defines a recursive way. - # It also removes the item that should be removed. - cdef: - list leafs - _Node node - _ChildRecord rec - - leafs = self.find_overlapping_leafs(self, coords) - for node in leafs: - assert node.is_leaf - for rec in node.records: - if rec.identifier == identifier and rec.overlaps(coords): - node.records.remove(rec) # D2 - return node - - return None - - cdef inline int CondenseTree(self, _Node node) except -1: - cdef: - _Node P, N - _InnerRecord EN - _Record rec - _InnerRecord ir - _ChildRecord crec - list removed_childrecords, removed_innerrecords, reclist - - removed_innerrecords = list() - - N = node - while not N is self.root: - - P = N.parent - EN = parent_record(N) - - if len(N.records) < self.m_cap: - assert EN is not None, str(N.is_leaf) - - P.records.remove(EN) - if N.is_leaf: - assert removed_childrecords is None - removed_childrecords = N.records - else: - removed_innerrecords.extend(N.records) - - else: - common_boundaries(N.records, EN.coords) - - N = P - - - for ir in removed_innerrecords: - node = self.find_inner_node(ir) - ir.child.parent = node - self.insert_at_node(ir, node) - - if removed_childrecords is not None: - for crec in removed_childrecords: - node = self._ChooseLeaf(crec) - self.insert_at_node(crec, node) - - return 0 - - cdef _Node find_inner_node(self, _InnerRecord record): - cdef: - _Node node - _InnerRecord rec - Duint subtree_len, level_reverse - - subtree_len = self.subtree_len(record) - level_reverse = self._leaf_level - - node = self.root - - while level_reverse != subtree_len: - rec = node.choose_subtree_least_enlargement(record) - node = rec.child - level_reverse -= 1 - - return node - - - cdef Duint subtree_len(self, _InnerRecord rec): - cdef: - _Node node - Duint slen - - slen = 1 - - node = rec.child - while not node.is_leaf: - assert node.records - node = (<_InnerRecord>node.records[0]).child - slen += 1 - - return slen - - - cdef inline bint is_full(self, _Node node): - return len(node.records) == self.M_cap - - cdef inline _Node _ChooseLeaf(self, _Record ir): - cdef: - _Node N - _InnerRecord F - - N = self.root - while True: - if N.is_leaf: - break - r = N.choose_subtree_least_enlargement(ir) - N = (<_InnerRecord>r).child - return N - - cdef inline tuple _AdjustTree(self, _Node L, _Node LL): - cdef: - _Node N, NN, P - _Record EN, e - - N = L - NN = LL - - while N != self.root: - P = N.parent - - # search for the entry in parent of N that holds N - EN = parent_record(N) - - assert EN != None, 'no parent entry holds the child' - - N.common_boundaries(EN.coords) - - if NN != None: - ENN = _InnerRecord(NN) - NN.common_boundaries(ENN.coords) - if not self.is_full(P): - P.records.append(ENN) - NN = None - else: - NN = self.SplitNode(P, ENN) - - N = P - - return (N, NN) - - cdef _Node SplitNode(self, _Node node, _Record ir): - cdef: - list remaining - _Node newnode - unsigned remaining_count - _InnerRecord r - - remaining = node.records - remaining.append(ir) - node.records = list() - - newnode = _Node(node.parent) - - self.PickSeeds(node, remaining, newnode) - - remaining_count = len(remaining) - while remaining_count > 0: - if len(node.records) + remaining_count - 1 < self.m_cap: - node.records.extend(remaining) - break - if len(newnode.records) + remaining_count - 1 < self.m_cap: - newnode.records.extend(remaining) - break - - self.PickNext(node, remaining, newnode) - remaining_count -= 1 - - if node.is_leaf: - newnode.is_leaf = True - else: - # child records are inner records - re-set parent of them to newnode - for r in newnode.records: - r.child.parent = newnode - - return newnode - - cdef inline int PickNext(self, _Node node, list remaining, _Node newnode) except -1: - cdef: - Dfloat area_group_L, area_group_LL - Dfloat d1_next, d2_next # for QS3 decision - Dfloat d1, d2, d_diff, d_diff_max - Dfloat coords[4] - _Record E_next, E, r - - area_group_L = 0 - area_group_LL = 0 - d1_next = 0 - d2_next = 0 - init_Dfloat4(coords) - - if len(remaining) == 1: - E_next = remaining.pop() - else: - for r in node.records: - area_group_L += area(r.coords) - - for r in newnode.records: - area_group_LL += area(r.coords) - - d_diff_max = -Dfloat_min - - node.records.append(None) - newnode.records.append(None) - - for E in remaining: - - # temporary add E to self.records / newnode.records as parameter for common_boundires() - # -> don't init a new list of records - node.records[-1] = E - newnode.records[-1] = E - - common_boundaries(node.records, coords) - d1 = area(coords) - area_group_L - - common_boundaries(newnode.records, coords) - d2 = area(coords) - area_group_LL - - d_diff = d1 - d2 - d_diff = d_diff if d_diff >= 0 else -d_diff # abs diff - - if d_diff > d_diff_max: - d_diff_max = d_diff - E_next = E - - d1_next = d1 - d2_next = d2 - - node.records.pop() - newnode.records.pop() - - remaining.remove(E_next) - - # QS3 - if d1_next < d2_next: - node.records.append(E_next) - elif d1_next > d2_next: - newnode.records.append(E_next) - elif len(node.records) > len(newnode.records): - newnode.records.append(E_next) - else: - node.records.append(E_next) - - - def valid(self): - # numbers in comments refer to invariant properties of an RTree - taken from [Gut84] - cdef: - Dfloat tmp_coords[4] - _Node node, n - Duint depth, item_count - - nodedepht = None - item_count = 0 - leafnodes_and_depth = [] - - for depth, node in _NodeIter(self): - if node.is_leaf: - for rec in node.records: - assert isinstance(rec, _ChildRecord), depth - - # (1) - if not (node is self.root or len(node.records) <= self.M_cap and len(node.records) >= self.m_cap): - raise RTreeInvalid('non-leaf node has invalid number of entries: %d <= len(%s) <= %d == False' % (self.m_cap, str(node), self.m_cap)) - - # (2) - # Always True since I _IS_ the N-dimensional representation of the data object. - - # prepare (6) - if nodedepht is None: - nodedepht = depth - leafnodes_and_depth.append((depth, node)) - - item_count += len(node.records) - - # height is right - if self._leaf_level != depth: - raise RTreeInvalid('inconsistent node depth: %d != %d' % (self._leaf_level, depth)) - - else: - # (3) - if not node is self.root: - if not (len(node.records) <= self.M_cap and len(node.records) >= self.m_cap): - raise RTreeInvalid('non-leaf node has invalid number of entries: %d <= len(%s) <= %d == False' % (self.m_cap, str(node), self.m_cap)) - - # (4) - for rec in node.records: - if not isinstance(rec, _InnerRecord) or \ - not isinstance((<_InnerRecord>rec).child, _Node): - raise RTreeInvalid('misspositioned inner node') - - common_boundaries((<_InnerRecord>rec).child.records, tmp_coords) - - if area((<_Record>rec).coords) != area(tmp_coords): - raise RTreeInvalid('wrong combined area of records of a node') - - # double-links cover each other - for ir in node.records: - if not (<_InnerRecord>ir).child.parent is node: - raise RTreeInvalid('double-link doesn\'t cover itself') - - # (5) - if not self.root.is_leaf: - - if len(self.root.records) < 2: - raise RTreeInvalid('root must have at least 2 records, not %d.' % len(self.root.records)) - - # (6) - for d, leaf in leafnodes_and_depth: - if d != nodedepht: - raise RTreeInvalid('leaf level is not equal for all leafs') - - # count of items is right - if item_count != self._node_cnt: - raise RTreeInvalid('inconsistent item count %d != %d' % (item_count, self._node_cnt)) - - return True - -############################################################################### -#--- Iterators and RTree Info -############################################################################### - -cdef class _Iterator: - cdef RTree rtree - - def __cinit__(self, RTree rtree): - self.rtree = rtree - - def __iter__(self): - return self - -cdef class _NodeIter(_Iterator): - cdef: - list nodeset - - def __cinit__(self, RTree rtree): - if rtree.root: - self.nodeset = [(0, rtree.root)] - else: - self.nodeset = [] - - def __next__(self): - cdef: - _Node next - Duint level - - try: - level, next = <_Node>self.nodeset.pop(0) - except IndexError: - raise StopIteration - - if not next.is_leaf: - self.nodeset = [ (level+1, (<_InnerRecord>r).child) for r in next.records ] + self.nodeset - - return level, next - -cdef class _RectangleIter(_Iterator): - cdef: - _NodeIter ni - list leafrecords - int l_level - - def __cinit__(self, RTree rtree): - self.ni = _NodeIter(rtree) - - def __next__(self): - cdef: - _Node nextnode - Dfloat coords[4] - int level - - if self.leafrecords: - rec = self.leafrecords.pop() - return (self.l_level, self.rtree.array_to_tuple((<_ChildRecord>rec).coords) ) - - level, nextnode = self.ni.next() - - if nextnode.is_leaf: - self.leafrecords = list(nextnode.records) - self.l_level = level+1 - - common_boundaries(nextnode.records, coords) - return (level, self.rtree.array_to_tuple(coords)) - - -cdef class _ChildRecordIter(_Iterator): - cdef: - list nodeset, current_crs - object (*returner)(_ChildRecordIter this, _ChildRecord cr) - - def __cinit__(self, RTree rtree): - if rtree.root: - self.nodeset = [rtree.root] - else: - self.nodeset = [] - self.current_crs = [] - - def __next__(self): - cdef: - _Node node - _ChildRecord cr - - if not self.current_crs: - try: - node = self.nodeset.pop(0) - except IndexError: - raise StopIteration - - while not node.is_leaf: - self.nodeset = [ (<_InnerRecord>r).child for r in node.records ] + self.nodeset - try: - node = self.nodeset.pop(0) - except IndexError: - raise StopIteration - - self.current_crs.extend(node.records) - - try: - return self.current_crs.pop(0) - except IndexError: - # should not happen - raise StopIteration - - -cdef class _KVIIter(_Iterator): - cdef: - _ChildRecordIter cri - - def __cinit__(self, RTree rtree): - self.cri = _ChildRecordIter(rtree) - -cdef class _KeysIter(_KVIIter): - def __next__(self): - return self.rtree.array_to_tuple((<_ChildRecord>self.cri.next()).coords) - -cdef class _ValuesIter(_KVIIter): - def __next__(self): - return (<_ChildRecord>self.cri.next()).identifier - -cdef class _ItemsIter(_KVIIter): - def __next__(self): - cdef _ChildRecord cr - cr = self.cri.next() - return ( self.rtree.array_to_tuple(cr.coords), cr.identifier ) - - -cdef class RTreeInfo: - '''Provides some meta-info about an existing RTree - - @param rtree: an RTree object - ''' - cdef: - RTree rtree - - property levels: - def __get__(self): - return self.rtree._leaf_level + 1 # count leaf rectangles, too - - def __init__(self, RTree rtree): - self.rtree = rtree - - def iter_rectangles(self): - '''Iterate over key coordinates and combined frames. - - Combined frames are 2D-indexes under which rectangle entries are stored. - The iterator returns a tuple (level, coordinates) where level is the - level of the index node or entry in the tree structure. - ''' - return _RectangleIter(self.rtree) - - property common_boundary: - def __get__(self): - cdef: - Dfloat coords[4] - if not self.rtree.root: - return 0 - common_boundaries(self.rtree.root.records, coords) - return self.rtree.array_to_tuple(coords) - - property width: - def __get__(self): - cdef: - Dfloat coords[4] - if not self.rtree.root: - return 0 - common_boundaries(self.rtree.root.records, coords) - return coords[2]-coords[0] - - property height: - def __get__(self): - cdef: - Dfloat coords[4] - if not self.rtree.root: - return 0 - common_boundaries(self.rtree.root.records, coords) - return coords[3]-coords[1] - - def to_dot(self, filelike): - '''Writes simple dot-code into filelike that represents the tree structure.''' - cdef: - _Node node - _InnerRecord ir - _ChildRecord cr - int level - unsigned nid, rid, chid, lid - list node_record_leaf, node_record_child - - filelike.write('digraph RTree {\n node [shape=\"none\"]; \n') - - node_record_leaf = list() - node_record_child = list() - - for level, node in _NodeIter(self.rtree): - if node.is_leaf: - for cr in node.records: - node_record_leaf.append((id(node), id(cr), id(cr.identifier))) - - else: - for ir in node.records: - node_record_child.append((id(node), id(ir), id(ir.child))) - - filelike.write(' %d [label=<' % (id(node))) - for record in node.records: - filelike.write('' % (id(record), id(record))) - filelike.write('
%d
>];\n') - - filelike.write('\n node [shape=\"ellipse\"]; \n') - for nid, rid, lid in node_record_leaf: - filelike.write(' %d;\n' % lid) - - filelike.write('\n') - - for nid, rid, chid in node_record_child: - filelike.write(' %d->%d [tailport=\"%d:s\"]\n' % ( nid, chid, rid )) - - filelike.write('\n') - - for nid, rid, lid in node_record_leaf: - filelike.write(' %d->%d [tailport=\"%d:s\"]\n' % ( nid, lid, rid )) - - filelike.write('}') - - - - - diff --git a/pyflowline/mesh/dggrid/create_dggrid_mesh.py b/pyflowline/mesh/dggrid/create_dggrid_mesh.py index c4c8fed..c422d24 100644 --- a/pyflowline/mesh/dggrid/create_dggrid_mesh.py +++ b/pyflowline/mesh/dggrid/create_dggrid_mesh.py @@ -18,17 +18,17 @@ #setup common resolution aISEA3H = [4320.490, 2539.690, - 1480.02, + 1480.02, 855.419, 494.959, 285.6520, - 165.058, - 95.2636, - 55.0226, - 31.7596, + 165.058, + 95.2636, + 55.0226, + 31.7596, 18.341, - 10.5871, - 6.11367, + 10.5871, + 6.11367, 3.52911] aISEA4H = [3764.92, @@ -36,11 +36,11 @@ 961.978, 481.7710, 241.0470, - 120.56, - 60.2893, - 30.147, - 15.0741, - 7.53719, + 120.56, + 60.2893, + 30.147, + 15.0741, + 7.53719, 3.76863] def generate_bash_script(sWorkspace_output): @@ -98,7 +98,7 @@ def find_number_range(number, aArray): for i in range(nPoint): if aArray[i] <= number <= aArray[i+1]: return i # Return the index of the range where the number falls - return -1 + return -1 def dggrid_find_index_by_resolution(sDggrid_type, dResolution): @@ -118,7 +118,7 @@ def dggrid_find_index_by_resolution(sDggrid_type, dResolution): def dggrid_find_resolution_by_index(sDggrid_type, iResolution_index): if sDggrid_type == 'ISEA3H': - + dResolution = aISEA3H[iResolution_index-1 ] * 1000 pass else: @@ -131,7 +131,7 @@ def dggrid_find_resolution_by_index(sDggrid_type, iResolution_index): def convert_dggrid_mesh_to_pyflowline_mesh(sFilename_dggrid_mesh, sFilename_mesh_pyflowline, iFlag_global_in = None): - + iReturn_code = 1 if os.path.isfile(sFilename_dggrid_mesh): print(sFilename_dggrid_mesh) @@ -140,12 +140,12 @@ def convert_dggrid_mesh_to_pyflowline_mesh(sFilename_dggrid_mesh, sFilename_mesh print('This mesh file does not exist: ', sFilename_dggrid_mesh ) iReturn_code = 0 return iReturn_code - + if iFlag_global_in is not None: iFlag_global = iFlag_global_in else: iFlag_global = 0 - + if os.path.isfile(sFilename_mesh_pyflowline): print('This mesh file already exists: ', sFilename_mesh_pyflowline ) os.remove(sFilename_mesh_pyflowline) @@ -153,14 +153,14 @@ def convert_dggrid_mesh_to_pyflowline_mesh(sFilename_dggrid_mesh, sFilename_mesh aDggrid=list() aDggrid_dict = dict() lCellIndex = 0 - pDriver_geojson = ogr.GetDriverByName('GeoJSON') + pDriver_geojson = ogr.GetDriverByName('GeoJSON') pDataset_mesh = pDriver_geojson.Open(sFilename_dggrid_mesh, gdal.GA_ReadOnly) pLayer_mesh = pDataset_mesh.GetLayer(0) pSpatial_reference_out = pLayer_mesh.GetSpatialRef() ldefn = pLayer_mesh.GetLayerDefn() - pSpatial_reference_gcs = osr.SpatialReference() - pSpatial_reference_gcs.ImportFromEPSG(4326) # WGS84 lat/lon + pSpatial_reference_gcs = osr.SpatialReference() + pSpatial_reference_gcs.ImportFromEPSG(4326) # WGS84 lat/lon pDataset = pDriver_geojson.CreateDataSource(sFilename_mesh_pyflowline) pLayer = pDataset.CreateLayer('cell', pSpatial_reference_gcs, ogr.wkbPolygon) # Add one attribute @@ -172,40 +172,40 @@ def convert_dggrid_mesh_to_pyflowline_mesh(sFilename_dggrid_mesh, sFilename_mesh pArea_field.SetPrecision(2) pLayer.CreateField(pArea_field) pLayerDefn = pLayer.GetLayerDefn() - pFeature = ogr.Feature(pLayerDefn) - + pFeature = ogr.Feature(pLayerDefn) + #we also need to spatial reference for pFeature_mesh in pLayer_mesh: - pGeometry_mesh = pFeature_mesh.GetGeometryRef() - aCoords_gcs = get_geometry_coordinates(pGeometry_mesh) + pGeometry_mesh = pFeature_mesh.GetGeometryRef() + aCoords_gcs = get_geometry_coordinates(pGeometry_mesh) dLongitude_center = np.mean(aCoords_gcs[:-1,0]) - dLatitude_center = np.mean(aCoords_gcs[:-1,1]) + dLatitude_center = np.mean(aCoords_gcs[:-1,1]) lCellID = int(pFeature_mesh.GetField("name") ) - pdggrid = convert_gcs_coordinates_to_cell(5, dLongitude_center, dLatitude_center, aCoords_gcs) + pdggrid = convert_gcs_coordinates_to_cell(5, dLongitude_center, dLatitude_center, aCoords_gcs) dArea = pdggrid.calculate_cell_area() pdggrid.calculate_edge_length() pdggrid.dLength_flowline = pdggrid.dLength #Default - pdggrid.lCellID = lCellID - aNeighbor = pFeature_mesh.GetField("neighbors") + pdggrid.lCellID = lCellID + aNeighbor = pFeature_mesh.GetField("neighbors") pdggrid.nNeighbor = len(aNeighbor) pdggrid.aNeighbor = list() for i in range(len(aNeighbor)): - pdggrid.aNeighbor.append( int(aNeighbor[i]) ) + pdggrid.aNeighbor.append( int(aNeighbor[i]) ) aDggrid.append(pdggrid) aDggrid_dict[lCellID] = lCellIndex lCellIndex = lCellIndex + 1 - nVertex = pdggrid.nVertex - ring = ogr.Geometry(ogr.wkbLinearRing) + nVertex = pdggrid.nVertex + ring = ogr.Geometry(ogr.wkbLinearRing) for j in range(nVertex): x1 = pdggrid.aVertex[j].dLongitude_degree y1 = pdggrid.aVertex[j].dLatitude_degree - ring.AddPoint(x1, y1) + ring.AddPoint(x1, y1) pass x1 = pdggrid.aVertex[0].dLongitude_degree y1 = pdggrid.aVertex[0].dLatitude_degree - ring.AddPoint(x1, y1) #double check + ring.AddPoint(x1, y1) #double check pPolygon = ogr.Geometry(ogr.wkbPolygon) pPolygon.AddGeometry(ring) pFeature.SetGeometry(pPolygon) @@ -213,18 +213,18 @@ def convert_dggrid_mesh_to_pyflowline_mesh(sFilename_dggrid_mesh, sFilename_mesh pFeature.SetField("longitude", dLongitude_center ) pFeature.SetField("latitude", dLatitude_center ) pFeature.SetField("area", dArea ) - + pLayer.CreateFeature(pFeature) - #rebuild neighbor list - aDggrid_middle = list() - for pCell in aDggrid: - aNeighbor = pCell.aNeighbor - aNeighbor_new = list() - for lNeighbor in aNeighbor: - if lNeighbor in aDggrid_dict: + #rebuild neighbor list + aDggrid_middle = list() + for pCell in aDggrid: + aNeighbor = pCell.aNeighbor + aNeighbor_new = list() + for lNeighbor in aNeighbor: + if lNeighbor in aDggrid_dict: aNeighbor_new.append(lNeighbor) - + pCell.aNeighbor = aNeighbor_new pCell.nNeighbor = len(aNeighbor_new) pCell.nNeighbor_land= len(aNeighbor_new) @@ -238,15 +238,15 @@ def convert_dggrid_mesh_to_pyflowline_mesh(sFilename_dggrid_mesh, sFilename_mesh pDggrid.aNeighbor_distance=list() for lCellID1 in aNeighbor: lIndex = aDggrid_dict[lCellID1] - pDggrid1 = aDggrid_middle[lIndex] + pDggrid1 = aDggrid_middle[lIndex] dDistance = pDggrid.pVertex_center.calculate_distance( pDggrid1.pVertex_center ) pDggrid.aNeighbor_distance.append(dDistance) - - pDataset = pLayer = pFeature = None + + pDataset = pLayer = pFeature = None #currently we do not fill the holes in dggrid, it is recommended to modify the input data directly. - + return aDggrid_middle def create_dggrid_mesh(iFlag_global, @@ -256,10 +256,11 @@ def create_dggrid_mesh(iFlag_global, iResolution_index_in = None, sDggrid_type_in= None, iFlag_antarctic_in=None, + iFlag_arctic_in=None, sFilename_boundary_in = None ): - #use dggrid table to determine the resolution index - sFilename_cell = sWorkspace_output + slash + 'cells' + #use dggrid table to determine the resolution index + sFilename_cell = sWorkspace_output + slash + 'cells' if iResolution_index_in is not None: iResolution_index = iResolution_index_in @@ -271,9 +272,9 @@ def create_dggrid_mesh(iFlag_global, else: sDggrid_type = 'ISEA3H' #default - dResolution= dggrid_find_resolution_by_index(sDggrid_type, iResolution_index) + dResolution= dggrid_find_resolution_by_index(sDggrid_type, iResolution_index) print('Resolution is: ', dResolution) - # + # sResolution = "{:0d}".format( iResolution_index ) if sFilename_boundary_in is not None: @@ -286,11 +287,11 @@ def create_dggrid_mesh(iFlag_global, iFlag_global = 1 else: - iFlag_crop = 0 + iFlag_crop = 0 - iFlag_mode = 1 + iFlag_mode = 1 - if iFlag_mode == 1: #call the binary directly + if iFlag_mode == 1: #call the binary directly #write configuration sFilename_config= sWorkspace_output + slash + 'dggrid.ini' ofs = open(sFilename_config, 'w') @@ -321,8 +322,8 @@ def create_dggrid_mesh(iFlag_global, sLine = 'max_cells_per_output_file 0' + '\n' ofs.write(sLine) sLine = 'neighbor_output_type GDAL_COLLECTION' + '\n' - ofs.write(sLine) - + ofs.write(sLine) + ofs.close() #writen normal run script generate_bash_script(sWorkspace_output) @@ -333,10 +334,10 @@ def create_dggrid_mesh(iFlag_global, p.wait() #convert the pyflowline mesh format - + aDggrid = convert_dggrid_mesh_to_pyflowline_mesh(sFilename_cell, sFilename_mesh, iFlag_global_in = iFlag_global) - + return aDggrid if __name__ == '__main__': diff --git a/pyflowline/mesh/mpas/create_mpas_mesh.py b/pyflowline/mesh/mpas/create_mpas_mesh.py index 8bb34d2..ed8ad6b 100644 --- a/pyflowline/mesh/mpas/create_mpas_mesh.py +++ b/pyflowline/mesh/mpas/create_mpas_mesh.py @@ -4,20 +4,25 @@ import numpy as np from osgeo import ogr, osr, gdal from pyflowline.formats.convert_attributes import convert_gcs_attributes_to_cell -gdal.UseExceptions() -iFlag_cython = importlib.util.find_spec("cython") +from pyflowline.algorithms.potentiometric.calculate_potentiometric import calculate_potentiometric +gdal.UseExceptions() + +iFlag_cython = importlib.util.find_spec("cython") + + if iFlag_cython is not None: from pyflowline.algorithms.cython.kernel import convert_360_to_180 else: from pyearth.gis.geometry.convert_longitude_range import convert_360_to_180 -def create_mpas_mesh(iFlag_global_in, - iFlag_use_mesh_dem, - iFlag_save_mesh_in, - sFilename_mesh_netcdf_in, +def create_mpas_mesh(iFlag_global_in, + iFlag_use_mesh_dem, + iFlag_save_mesh_in, + sFilename_mesh_netcdf_in, sFilename_output_in, iFlag_antarctic_in=None, - pBoundary_in = None): + iFlag_arctic_in=None, + pBoundary_in = None): """ Create a MPAS mesh @@ -39,6 +44,11 @@ def create_mpas_mesh(iFlag_global_in, else: iFlag_antarctic=iFlag_antarctic_in + if iFlag_arctic_in is None: + iFlag_arctic=0 + else: + iFlag_arctic=iFlag_arctic_in + if pBoundary_in is None: pBoundary = None else: @@ -46,24 +56,26 @@ def create_mpas_mesh(iFlag_global_in, #https://gdal.org/api/python_gotchas.html pBoundary = ogr.CreateGeometryFromWkt(pBoundary_in) #pBoundary = pBoundary_in #only works for shapely geometry object - + if (os.path.exists(sFilename_mesh_netcdf_in)): pass else: print('Mesh file does not exist!') return - - if os.path.exists(sFilename_output_in): + + if os.path.exists(sFilename_output_in): os.remove(sFilename_output_in) - + iFlag_elevation_profile=0 + iFlag_bed_elevation=0 + iFlag_ice_thickness=0 pDatasets_in = nc.Dataset(sFilename_mesh_netcdf_in) netcdf_format = pDatasets_in.file_format - pDriver_geojson = ogr.GetDriverByName('GeoJSON') - pSpatial_reference_gcs = osr.SpatialReference() - pSpatial_reference_gcs.ImportFromEPSG(4326) # WGS84 lat/lon + pDriver_geojson = ogr.GetDriverByName('GeoJSON') + pSpatial_reference_gcs = osr.SpatialReference() + pSpatial_reference_gcs.ImportFromEPSG(4326) # WGS84 lat/lon #geojson if iFlag_save_mesh_in ==1: pDataset = pDriver_geojson.CreateDataSource(sFilename_output_in) @@ -81,121 +93,127 @@ def create_mpas_mesh(iFlag_global_in, pLayer.CreateField(ogr.FieldDefn('elevation_profile0', ogr.OFTReal)) #float type for high resolution else: pass - + pLayerDefn = pLayer.GetLayerDefn() - pFeature = ogr.Feature(pLayerDefn) + pFeature = ogr.Feature(pLayerDefn) #read new netcdf - for sKey, aValue in pDatasets_in.variables.items(): + for sKey, aValue in pDatasets_in.variables.items(): #we need to filter out unused grids based on mpas specs if sKey == 'latCell': latCell0 = aValue else: pass if sKey == 'lonCell': - lonCell0 = aValue + lonCell0 = aValue else: pass - + if sKey == 'edgesOnCell': - edgesOnCell0 = aValue + edgesOnCell0 = aValue else: pass - + if sKey == 'cellsOnCell': - cellsOnCell0 = aValue + cellsOnCell0 = aValue else: pass if sKey == 'cellsOnEdge': - cellsOnEdge0 = aValue + cellsOnEdge0 = aValue else: pass - + if sKey == 'verticesOnCell': verticesOnCell0 = aValue else: pass - + if sKey == 'verticesOnEdge': - verticesOnEdge0 = aValue + verticesOnEdge0 = aValue else: pass if sKey == 'indexToCellID': - indexToCellID0 = aValue + indexToCellID0 = aValue else: pass if sKey == 'indexToEdgeID': - indexToEdgeID0 = aValue + indexToEdgeID0 = aValue else: pass if sKey == 'indexToVertexID': - indexToVertexID0 = aValue + indexToVertexID0 = aValue else: pass if sKey == 'lonVertex': - lonVertex0 = aValue + lonVertex0 = aValue else: pass if sKey == 'latVertex': - latVertex0 = aValue + latVertex0 = aValue else: pass if sKey == 'areaCell': - areaCell0 = aValue + areaCell0 = aValue else: pass if sKey == 'bed_elevation': - bed_elevation0 = aValue + bed_elevation0 = aValue + iFlag_bed_elevation = 1 else: pass if sKey == 'ice_thickness': - ice_thickness0 = aValue + ice_thickness0 = aValue + iFlag_ice_thickness = 1 else: pass if sKey == 'areaCell': - areaCell0 = aValue + areaCell0 = aValue else: pass if sKey == 'dcEdge': - dcEdge0 = aValue + dcEdge0 = aValue else: pass if sKey == 'bed_elevation_profile': - bed_elevation_profile0 = aValue + iFlag_elevation_profile = 1 + bed_elevation_profile0 = aValue else: - pass + pass aLatitudeVertex = latVertex0[:] / math.pi * 180 - aLongitudeVertex = lonVertex0[:] / math.pi * 180 - #convert unit + aLongitudeVertex = lonVertex0[:] / math.pi * 180 + #convert unit aLatitudeCell = latCell0[:] / math.pi * 180 aLongitudeCell = lonCell0[:] / math.pi * 180 aCellsOnCell = cellsOnCell0[:] aCellOnEdge = cellsOnEdge0[:] aEdgesOnCell = edgesOnCell0[:] aVertexOnCell = verticesOnCell0[:] - aVertexOnEdge0 = verticesOnEdge0[:] + aVertexOnEdge0 = verticesOnEdge0[:] aIndexToCellID = indexToCellID0[:] #aIndexToEdgeID = indexToEdgeID0[:] #aIndexToVertexID = indexToVertexID0[:] - aBed_elevation = bed_elevation0[:] - aIce_thickness = ice_thickness0[:] + if iFlag_bed_elevation == 1: + aBed_elevation = bed_elevation0[:] + if iFlag_ice_thickness == 1: + aIce_thickness = ice_thickness0[:] aCellArea = areaCell0[:] aDcEdge = dcEdge0[:] - aBed_elevation_profile = bed_elevation_profile0[:] #elevation - ncell = len(aIndexToCellID) + if iFlag_elevation_profile == 1: + aBed_elevation_profile = bed_elevation_profile0[:] #elevation + ncell = len(aIndexToCellID) aMpas = list() aMpas_dict = dict() lCellIndex=0 @@ -203,9 +221,9 @@ def create_mpas_mesh(iFlag_global_in, #add a mpas cell into a list def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_profile0, aCoords ): dLon = convert_360_to_180 (aLongitudeCell[i]) - dLat = (aLatitudeCell[i]) - if dLon > 100: - print('Warning: longitude > 100') + dLat = (aLatitudeCell[i]) + if dLon > 180: + print('Warning: longitude > 180') #vertex aCellOnCellIndex = np.array(aCellsOnCell[i,:]) aEdgesOnCellIndex = np.array(aEdgesOnCell[i,:]) @@ -217,8 +235,8 @@ def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_pro dummy2 = np.where(aCellOnCellIndex > 0) aNeighborIndex= (aCellOnCellIndex[dummy2]).astype(int) aVertexIndexOnEdge = np.array(aVertexOnEdge0[aEdgeIndex-1,:]).astype((int)) - - pmpas = convert_gcs_attributes_to_cell(4, dLon, dLat, aCoords, aVertexIndex, aEdgeIndex, aVertexIndexOnEdge) + + pmpas = convert_gcs_attributes_to_cell(4, dLon, dLat, aCoords, aVertexIndex, aEdgeIndex, aVertexIndexOnEdge) pmpas.dArea = dArea pmpas.calculate_edge_length() pmpas.dLength_flowline = pmpas.dLength_edge #Default @@ -228,17 +246,17 @@ def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_pro #now setup the neighbor information pmpas.aNeighbor=aNeighborIndex pmpas.nNeighbor=len(aNeighborIndex) - if pmpas.nNeighbor != pmpas.nVertex: #this cell is next to the ocean boundary - pmpas.nNeighbor_land = pmpas.nNeighbor + if pmpas.nNeighbor != pmpas.nVertex: #this cell is next to the ocean boundary + pmpas.nNeighbor_land = pmpas.nNeighbor pmpas.nNeighbor_ocean = pmpas.nVertex - pmpas.nNeighbor pmpas.aNeighbor_land=aNeighborIndex pmpas.nNeighbor_land=len(aNeighborIndex) print(lCellID) print('Warning: nNeighbor != nVertex') else: #this cell is not at the the land-ocean mask coastal line - pmpas.nNeighbor_land = pmpas.nNeighbor + pmpas.nNeighbor_land = pmpas.nNeighbor pmpas.nNeighbor_ocean = 0 - pmpas.aNeighbor_land = aNeighborIndex + pmpas.aNeighbor_land = aNeighborIndex pmpas.nNeighbor_land=len(aNeighborIndex) aDistance=list() @@ -251,18 +269,18 @@ def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_pro pass #this contains all the original mpas neighbor distance - pmpas.aNeighbor_distance = aDistance + pmpas.aNeighbor_distance = aDistance aList.append(pmpas) return aList - if iFlag_antarctic == 1: + if iFlag_antarctic == 1: #use potentiometric iFlag_remove_ice = 0 #if it is antarctic, we dont need the boundary for i in range(ncell): #center dLon = convert_360_to_180 (aLongitudeCell[i]) dLat = (aLatitudeCell[i]) - + aVertexOnCellIndex = np.array(aVertexOnCell[i,:]) dummy0 = np.where(aVertexOnCellIndex > 0) aVertexIndex = aVertexOnCellIndex[dummy0] @@ -275,7 +293,7 @@ def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_pro aCoords = np.full((nVertex,2), -9999.0, dtype=float) for j in range(nVertex): x1 = convert_360_to_180(aLonVertex[j]) - y1 = aLatVertex[j] + y1 = aLatVertex[j] ring.AddPoint(x1, y1) aCoords[j,0] = x1 aCoords[j,1] = y1 @@ -283,38 +301,45 @@ def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_pro x1 = convert_360_to_180(aLonVertex[0]) y1 = aLatVertex[0] - ring.AddPoint(x1, y1) #double check + ring.AddPoint(x1, y1) #double check pPolygon = ogr.Geometry(ogr.wkbPolygon) pPolygon.AddGeometry(ring) if dLat < -60: iFlag = True - else: + else: iFlag = False pass if ( iFlag == True ): lCellID = int(aIndexToCellID[i]) - dElevation_mean = float(aBed_elevation[i]) - dElevation_profile0 = float(aBed_elevation_profile[i,0]) - dThickness_ice = float( aIce_thickness[i] ) + if iFlag_bed_elevation == 1: + dElevation_mean = float(aBed_elevation[i]) + else: + dElevation_mean = -9999 + if iFlag_elevation_profile == 1: + dElevation_profile0 = float(aBed_elevation_profile[i,0]) + else: + dElevation_profile0 = -9999 + if iFlag_ice_thickness == 1: + dThickness_ice = float( aIce_thickness[i] ) + else: + dThickness_ice = -9999 dArea = float(aCellArea[i]) #then check if it is ice free - if iFlag_remove_ice == 1: - if dThickness_ice > 0 : - continue - else: - pass - else: - pass + + if dThickness_ice > 0 : + #use potentiometric + dElevation_mean = calculate_potentiometric(dElevation_mean , dThickness_ice) + dElevation_profile0 = calculate_potentiometric(dElevation_profile0 , dThickness_ice) #call fuction to add the cell aMpas = add_cell_into_list(aMpas, i, lCellID, dArea, dElevation_mean, dElevation_profile0, aCoords ) aMpas_dict[lCellID] = lCellIndex lCellIndex = lCellIndex + 1 #save mesh cell - if iFlag_save_mesh_in ==1: + if iFlag_save_mesh_in ==1: pFeature.SetGeometry(pPolygon) pFeature.SetField("cellid", int(lCellID) ) pFeature.SetField("longitude", dLon ) @@ -325,134 +350,212 @@ def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_pro pFeature.SetField("elevation_profile0", dElevation_profile0 ) pLayer.CreateFeature(pFeature) - else: - iFlag_remove_ice = 1 - for i in range(ncell): - #vertex - aVertexOnCellIndex = np.array(aVertexOnCell[i,:]) - dummy0 = np.where(aVertexOnCellIndex > 0) - aVertexIndex = aVertexOnCellIndex[dummy0] - aLonVertex = aLongitudeVertex[aVertexIndex-1] - aLatVertex = aLatitudeVertex[aVertexIndex-1] - nVertex = len(aLonVertex) - #first check if it is within the boundary - - ring = ogr.Geometry(ogr.wkbLinearRing) - aCoords = np.full((nVertex,2), -9999.0, dtype=float) - for j in range(nVertex): - x1 = convert_360_to_180(aLonVertex[j]) - y1 = aLatVertex[j] - ring.AddPoint(x1, y1) - aCoords[j,0] = x1 - aCoords[j,1] = y1 - pass - - x1 = convert_360_to_180(aLonVertex[0]) - y1 = aLatVertex[0] - ring.AddPoint(x1, y1) #double check - pPolygon = ogr.Geometry(ogr.wkbPolygon) - pPolygon.AddGeometry(ring) - #check within first - iFlag = False - if pPolygon.Within(pBoundary): - iFlag = True - else: - dLon_min = np.min(aCoords[:,0]) - dLon_max = np.max(aCoords[:,0]) - if np.abs(dLon_min-dLon_max) > 100: #this polygon cross international date line - #print('Warning: longitude > 100') + if iFlag_arctic ==1: #for arctic only + iFlag_remove_ice = 0 + for i in range(ncell): + #center + dLon = convert_360_to_180 (aLongitudeCell[i]) + dLat = (aLatitudeCell[i]) + + aVertexOnCellIndex = np.array(aVertexOnCell[i,:]) + dummy0 = np.where(aVertexOnCellIndex > 0) + aVertexIndex = aVertexOnCellIndex[dummy0] + aLonVertex = aLongitudeVertex[aVertexIndex-1] + aLatVertex = aLatitudeVertex[aVertexIndex-1] + nVertex = len(aLonVertex) + #first check if it is within the boundary + iFlag = False + ring = ogr.Geometry(ogr.wkbLinearRing) + aCoords = np.full((nVertex,2), -9999.0, dtype=float) + for j in range(nVertex): + x1 = convert_360_to_180(aLonVertex[j]) + y1 = aLatVertex[j] + ring.AddPoint(x1, y1) + aCoords[j,0] = x1 + aCoords[j,1] = y1 pass + + x1 = convert_360_to_180(aLonVertex[0]) + y1 = aLatVertex[0] + ring.AddPoint(x1, y1) #double check + pPolygon = ogr.Geometry(ogr.wkbPolygon) + pPolygon.AddGeometry(ring) + + if dLat > 55.0: + iFlag = True else: - #then check intersection - if pPolygon.Intersects(pBoundary): - iFlag = True - else: - pass + iFlag = False + pass - if ( iFlag == True ): - lCellID = int(aIndexToCellID[i]) - dElevation_mean = float(aBed_elevation[i]) - dElevation_profile0 = float(aBed_elevation_profile[i,0]) - dThickness_ice = float( aIce_thickness[i] ) - dArea = float(aCellArea[i]) + if ( iFlag == True ): + lCellID = int(aIndexToCellID[i]) + if iFlag_bed_elevation == 1: + dElevation_mean = float(aBed_elevation[i]) + else: + dElevation_mean = -9999 + if iFlag_elevation_profile == 1: + dElevation_profile0 = float(aBed_elevation_profile[i,0]) + else: + dElevation_profile0 = -9999 + if iFlag_ice_thickness == 1: + dThickness_ice = float( aIce_thickness[i] ) + else: + dThickness_ice = -9999 + dArea = float(aCellArea[i]) - #then check if it is ice free - if iFlag_remove_ice == 1: + #then check if it is ice free if dThickness_ice > 0 : - continue + #use potentiometric + dElevation_mean = calculate_potentiometric(dElevation_mean , dThickness_ice) + dElevation_profile0 = calculate_potentiometric(dElevation_profile0 , dThickness_ice) + + + #call fuction to add the cell + aMpas = add_cell_into_list(aMpas, i, lCellID, dArea, dElevation_mean, dElevation_profile0, aCoords ) + aMpas_dict[lCellID] = lCellIndex + lCellIndex = lCellIndex + 1 + #save mesh cell + if iFlag_save_mesh_in ==1: + pFeature.SetGeometry(pPolygon) + pFeature.SetField("cellid", int(lCellID) ) + pFeature.SetField("longitude", dLon ) + pFeature.SetField("latitude", dLat ) + pFeature.SetField("area", dArea ) + if iFlag_use_mesh_dem == 1: + pFeature.SetField("elevation_mean", dElevation_mean ) + pFeature.SetField("elevation_profile0", dElevation_profile0 ) + + pLayer.CreateFeature(pFeature) + + pass + else: + iFlag_remove_ice = 1 + for i in range(ncell): + #vertex + aVertexOnCellIndex = np.array(aVertexOnCell[i,:]) + dummy0 = np.where(aVertexOnCellIndex > 0) + aVertexIndex = aVertexOnCellIndex[dummy0] + aLonVertex = aLongitudeVertex[aVertexIndex-1] + aLatVertex = aLatitudeVertex[aVertexIndex-1] + nVertex = len(aLonVertex) + #first check if it is within the boundary + + ring = ogr.Geometry(ogr.wkbLinearRing) + aCoords = np.full((nVertex,2), -9999.0, dtype=float) + for j in range(nVertex): + x1 = convert_360_to_180(aLonVertex[j]) + y1 = aLatVertex[j] + ring.AddPoint(x1, y1) + aCoords[j,0] = x1 + aCoords[j,1] = y1 + pass + + x1 = convert_360_to_180(aLonVertex[0]) + y1 = aLatVertex[0] + ring.AddPoint(x1, y1) #double check + pPolygon = ogr.Geometry(ogr.wkbPolygon) + pPolygon.AddGeometry(ring) + #check within first + iFlag = False + if pPolygon.Within(pBoundary): + iFlag = True + else: + dLon_min = np.min(aCoords[:,0]) + dLon_max = np.max(aCoords[:,0]) + if np.abs(dLon_min-dLon_max) > 100: #this polygon cross international date line + #print('Warning: longitude > 180') + pass + else: + #then check intersection + if pPolygon.Intersects(pBoundary): + iFlag = True + else: + pass + + if ( iFlag == True ): + lCellID = int(aIndexToCellID[i]) + dElevation_mean = float(aBed_elevation[i]) + dElevation_profile0 = float(aBed_elevation_profile[i,0]) + dThickness_ice = float( aIce_thickness[i] ) + dArea = float(aCellArea[i]) + + #then check if it is ice free + if iFlag_remove_ice == 1: + if dThickness_ice > 0 : + continue + else: + pass else: pass - else: - pass - #call fuction to add the cell - - - aMpas = add_cell_into_list(aMpas, i, lCellID, dArea, dElevation_mean, dElevation_profile0, aCoords ) - aMpas_dict[lCellID] = lCellIndex - lCellIndex = lCellIndex + 1 - #save mesh cell - if iFlag_save_mesh_in == 1: - dLon = convert_360_to_180 (aLongitudeCell[i]) - dLat = (aLatitudeCell[i]) - pFeature.SetGeometry(pPolygon) - pFeature.SetField("cellid", int(lCellID) ) - pFeature.SetField("longitude", dLon ) - pFeature.SetField("latitude", dLat ) - pFeature.SetField("area", dArea ) - if iFlag_use_mesh_dem == 1: - pFeature.SetField("elevation_mean", dElevation_mean ) - pFeature.SetField("elevation_profile0", dElevation_profile0 ) + #call fuction to add the cell - pLayer.CreateFeature(pFeature) + + aMpas = add_cell_into_list(aMpas, i, lCellID, dArea, dElevation_mean, dElevation_profile0, aCoords ) + aMpas_dict[lCellID] = lCellIndex + lCellIndex = lCellIndex + 1 + #save mesh cell + if iFlag_save_mesh_in == 1: + dLon = convert_360_to_180 (aLongitudeCell[i]) + dLat = (aLatitudeCell[i]) + pFeature.SetGeometry(pPolygon) + pFeature.SetField("cellid", int(lCellID) ) + pFeature.SetField("longitude", dLon ) + pFeature.SetField("latitude", dLat ) + pFeature.SetField("area", dArea ) + if iFlag_use_mesh_dem == 1: + pFeature.SetField("elevation_mean", dElevation_mean ) + pFeature.SetField("elevation_profile0", dElevation_profile0 ) + + pLayer.CreateFeature(pFeature) #for maps we need to clean some cell because they were not actually in the domain #besides, we need to add some smal holes back #to do this, we need two steps. - + if iFlag_global_in == 1: aMpas_out = aMpas else: - iFlag_fill_hole = 0 + iFlag_fill_hole = 0 aMpas_out = list() ncell = len(aMpas) - #generate the list of cell ID that are already certain - if iFlag_fill_hole == 1: + #generate the list of cell ID that are already certain + if iFlag_fill_hole == 1: #first update neighbor information because some cell should have vitual land neighbor (not present in the mesh) #this operation does not increase the number of cells, but it update the neighbor information - #specifically, it divided the land neighbor into two parts: land and virtual land - for pCell in aMpas: + #specifically, it divided the land neighbor into two parts: land and virtual land + for pCell in aMpas: aNeighbor_land = pCell.aNeighbor_land #including both holes and maps land cutoff by boundary aNeighbor_land_update = list() aNeighbor_land_virtual = list() - for lNeighbor in aNeighbor_land: #loop all land neighbors - if lNeighbor in aMpas_dict: + for lNeighbor in aNeighbor_land: #loop all land neighbors + if lNeighbor in aMpas_dict: aNeighbor_land_update.append(lNeighbor) else: #a hole or boundary mpas land cell aNeighbor_land_virtual.append(lNeighbor) pCell.aNeighbor_land = aNeighbor_land_update - pCell.nNeighbor_land= len(aNeighbor_land_update) - pCell.aNeighbor_land_virtual = aNeighbor_land_virtual + pCell.nNeighbor_land= len(aNeighbor_land_update) + pCell.aNeighbor_land_virtual = aNeighbor_land_virtual pCell.nNeighbor_land_virtual = len(aNeighbor_land_virtual) pass - + #distance remains unchanged since we just have missing cells. - #now add back small holes - #this operation will increase the number of cells - #it will also update the neighbor information for some cells, + #now add back small holes + #this operation will increase the number of cells + #it will also update the neighbor information for some cells, #not all cells will be updated (because some cells have 2+ virtual land neighbors) - for pCell in aMpas: - if pCell.nNeighbor_land_virtual == 1: #only one virtual land means it is likely next to a hole + for pCell in aMpas: + if pCell.nNeighbor_land_virtual == 1: #only one virtual land means it is likely next to a hole lNeighbor_hole = pCell.aNeighbor_land_virtual[0] j = lNeighbor_hole-1 dLon = convert_360_to_180 (aLongitudeCell[j]) - dLat = aLatitudeCell[j] + dLat = aLatitudeCell[j] #vertex aVertexOnCellIndex = np.array(aVertexOnCell[j,:]) dummy0 = np.where(aVertexOnCellIndex > 0) @@ -465,7 +568,7 @@ def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_pro aCoords = np.full((nVertex,2), -9999.0, dtype=float) for k in range(nVertex): x1 = convert_360_to_180(aLonVertex[k]) - y1 = aLatVertex[k] + y1 = aLatVertex[k] ring.AddPoint(x1, y1) aCoords[k,0] = x1 aCoords[k,1] = y1 @@ -473,7 +576,7 @@ def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_pro x1 = convert_360_to_180(aLonVertex[0]) y1 = aLatVertex[0] - ring.AddPoint(x1, y1) #double check + ring.AddPoint(x1, y1) #double check pPolygon = ogr.Geometry(ogr.wkbPolygon) pPolygon.AddGeometry(ring) @@ -482,7 +585,7 @@ def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_pro dElevation_profile0 = float(aBed_elevation_profile[j,0]) dArea = float(aCellArea[j]) - if lCellID not in aMpas_dict: + if lCellID not in aMpas_dict: aMpas = add_cell_into_list(aMpas, j, lCellID, dArea, dElevation_mean, dElevation_profile0, aCoords ) aMpas_dict[lCellID] = lCellIndex lCellIndex = lCellIndex + 1 @@ -492,7 +595,7 @@ def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_pro pCell.aNeighbor_land_virtual = None pCell.nNeighbor_land_virtual = 0 #save mesh cell - if iFlag_save_mesh_in ==1: + if iFlag_save_mesh_in ==1: pFeature.SetGeometry(pPolygon) pFeature.SetField("cellid", int(lCellID) ) pFeature.SetField("longitude", dLon ) @@ -517,52 +620,52 @@ def add_cell_into_list(aList, i, lCellID, dArea, dElevation_mean, dElevation_pro #now update again because some cell has more than one virutal land neighbor, but now none of them is virtual anymore #this fix will move virtual land neighbor back to land neighbor #the ocean neighbor will remain unchanged - - for pCell in aMpas: - aNeighbor_land_update = list() - aNeighbor_land = pCell.aNeighbor_land - aNeighbor_land_virtual_update = list() - aNeighbor_land_virtual = pCell.aNeighbor_land_virtual - for lNeighbor in aNeighbor_land: + + for pCell in aMpas: + aNeighbor_land_update = list() + aNeighbor_land = pCell.aNeighbor_land + aNeighbor_land_virtual_update = list() + aNeighbor_land_virtual = pCell.aNeighbor_land_virtual + for lNeighbor in aNeighbor_land: if lNeighbor in aMpas_dict: - aNeighbor_land_update.append(lNeighbor) + aNeighbor_land_update.append(lNeighbor) pass else: #this is a land cell in mpas, but it may be clipped by boundary pass - #for book keeping only - for lNeighbor in aNeighbor_land_virtual: + #for book keeping only + for lNeighbor in aNeighbor_land_virtual: if lNeighbor in aMpas_dict: - #this cell is actually not virtual anymore + #this cell is actually not virtual anymore aNeighbor_land_update.append(lNeighbor) else: aNeighbor_land_virtual_update.append(lNeighbor) pass pCell.aNeighbor_land = aNeighbor_land_update - pCell.nNeighbor_land= len(aNeighbor_land_update) + pCell.nNeighbor_land= len(aNeighbor_land_update) pCell.aNeighbor_land_virtual = aNeighbor_land_virtual_update #for book keeping only pCell.nNeighbor_land_virtual = len(aNeighbor_land_virtual_update) aMpas_out.append(pCell) else: #no hole filling applied #still need to get rid cell that are not in the domain - for pCell in aMpas: - aNeighbor = pCell.aNeighbor - aNeighbor_land_update = list() - for lNeighbor in aNeighbor: - if lNeighbor in aMpas_dict: + for pCell in aMpas: + aNeighbor = pCell.aNeighbor + aNeighbor_land_update = list() + for lNeighbor in aNeighbor: + if lNeighbor in aMpas_dict: aNeighbor_land_update.append(lNeighbor) #for latlon, there is no ocean concept pCell.aNeighbor = aNeighbor_land_update - pCell.nNeighbor= len(aNeighbor_land_update) - pCell.aNeighbor_land = aNeighbor_land_update - pCell.nNeighbor_land= len(aNeighbor_land_update) + pCell.nNeighbor= len(aNeighbor_land_update) + pCell.aNeighbor_land = aNeighbor_land_update + pCell.nNeighbor_land= len(aNeighbor_land_update) pCell.nNeighbor_ocean = pCell.nVertex - pCell.nNeighbor_land aMpas_out.append(pCell) - + pass return aMpas_out