jpayne@69
|
1 /* Generated by Cython 3.0.11 */
|
jpayne@69
|
2
|
jpayne@69
|
3 /* BEGIN: Cython Metadata
|
jpayne@69
|
4 {
|
jpayne@69
|
5 "distutils": {
|
jpayne@69
|
6 "define_macros": [
|
jpayne@69
|
7 [
|
jpayne@69
|
8 "BUILDING_WHEEL",
|
jpayne@69
|
9 null
|
jpayne@69
|
10 ]
|
jpayne@69
|
11 ],
|
jpayne@69
|
12 "depends": [
|
jpayne@69
|
13 "/project/samtools/samtools.pysam.h"
|
jpayne@69
|
14 ],
|
jpayne@69
|
15 "extra_compile_args": [
|
jpayne@69
|
16 "-Wno-unused",
|
jpayne@69
|
17 "-Wno-strict-prototypes",
|
jpayne@69
|
18 "-Wno-sign-compare",
|
jpayne@69
|
19 "-Wno-error=declaration-after-statement"
|
jpayne@69
|
20 ],
|
jpayne@69
|
21 "extra_link_args": [
|
jpayne@69
|
22 "-Wl,-rpath,$ORIGIN"
|
jpayne@69
|
23 ],
|
jpayne@69
|
24 "include_dirs": [
|
jpayne@69
|
25 "/project/pysam",
|
jpayne@69
|
26 "/project/htslib",
|
jpayne@69
|
27 "/project/samtools",
|
jpayne@69
|
28 "/project/samtools/lz4",
|
jpayne@69
|
29 "/project/bcftools",
|
jpayne@69
|
30 "/project"
|
jpayne@69
|
31 ],
|
jpayne@69
|
32 "language": "c",
|
jpayne@69
|
33 "libraries": [
|
jpayne@69
|
34 "z",
|
jpayne@69
|
35 "lzma",
|
jpayne@69
|
36 "bz2",
|
jpayne@69
|
37 "z",
|
jpayne@69
|
38 "m",
|
jpayne@69
|
39 "curl",
|
jpayne@69
|
40 "crypto",
|
jpayne@69
|
41 "chtslib.cpython-36m-x86_64-linux-gnu"
|
jpayne@69
|
42 ],
|
jpayne@69
|
43 "library_dirs": [
|
jpayne@69
|
44 "/project/pysam",
|
jpayne@69
|
45 "/project",
|
jpayne@69
|
46 "build/lib.linux-x86_64-3.6/pysam",
|
jpayne@69
|
47 "build/lib.linux-x86_64-3.6/pysam"
|
jpayne@69
|
48 ],
|
jpayne@69
|
49 "name": "pysam.libcsamtools",
|
jpayne@69
|
50 "sources": [
|
jpayne@69
|
51 "pysam/libcsamtools.pyx",
|
jpayne@69
|
52 "samtools/bam_fastq.c.pysam.c",
|
jpayne@69
|
53 "samtools/bam.c.pysam.c",
|
jpayne@69
|
54 "samtools/bam_markdup.c.pysam.c",
|
jpayne@69
|
55 "samtools/dict.c.pysam.c",
|
jpayne@69
|
56 "samtools/bam_quickcheck.c.pysam.c",
|
jpayne@69
|
57 "samtools/stats.c.pysam.c",
|
jpayne@69
|
58 "samtools/sam_opts.c.pysam.c",
|
jpayne@69
|
59 "samtools/bam_sort.c.pysam.c",
|
jpayne@69
|
60 "samtools/bam_plcmd.c.pysam.c",
|
jpayne@69
|
61 "samtools/stats_isize.c.pysam.c",
|
jpayne@69
|
62 "samtools/bam_aux.c.pysam.c",
|
jpayne@69
|
63 "samtools/cut_target.c.pysam.c",
|
jpayne@69
|
64 "samtools/bam_cat.c.pysam.c",
|
jpayne@69
|
65 "samtools/bam_consensus.c.pysam.c",
|
jpayne@69
|
66 "samtools/bam2depth.c.pysam.c",
|
jpayne@69
|
67 "samtools/coverage.c.pysam.c",
|
jpayne@69
|
68 "samtools/padding.c.pysam.c",
|
jpayne@69
|
69 "samtools/bam_index.c.pysam.c",
|
jpayne@69
|
70 "samtools/cram_size.c.pysam.c",
|
jpayne@69
|
71 "samtools/bam_import.c.pysam.c",
|
jpayne@69
|
72 "samtools/bam_mate.c.pysam.c",
|
jpayne@69
|
73 "samtools/bam_md.c.pysam.c",
|
jpayne@69
|
74 "samtools/bam_ampliconclip.c.pysam.c",
|
jpayne@69
|
75 "samtools/consensus_pileup.c.pysam.c",
|
jpayne@69
|
76 "samtools/samtools.pysam.c",
|
jpayne@69
|
77 "samtools/sam_view.c.pysam.c",
|
jpayne@69
|
78 "samtools/bam_flags.c.pysam.c",
|
jpayne@69
|
79 "samtools/reset.c.pysam.c",
|
jpayne@69
|
80 "samtools/bam_lpileup.c.pysam.c",
|
jpayne@69
|
81 "samtools/phase.c.pysam.c",
|
jpayne@69
|
82 "samtools/bam_split.c.pysam.c",
|
jpayne@69
|
83 "samtools/sam_utils.c.pysam.c",
|
jpayne@69
|
84 "samtools/bam_samples.c.pysam.c",
|
jpayne@69
|
85 "samtools/faidx.c.pysam.c",
|
jpayne@69
|
86 "samtools/bam_reheader.c.pysam.c",
|
jpayne@69
|
87 "samtools/bam_rmdupse.c.pysam.c",
|
jpayne@69
|
88 "samtools/bamshuf.c.pysam.c",
|
jpayne@69
|
89 "samtools/reference.c.pysam.c",
|
jpayne@69
|
90 "samtools/bam_rmdup.c.pysam.c",
|
jpayne@69
|
91 "samtools/bam_addrprg.c.pysam.c",
|
jpayne@69
|
92 "samtools/bam_stat.c.pysam.c",
|
jpayne@69
|
93 "samtools/amplicon_stats.c.pysam.c",
|
jpayne@69
|
94 "samtools/sample.c.pysam.c",
|
jpayne@69
|
95 "samtools/bedidx.c.pysam.c",
|
jpayne@69
|
96 "samtools/bam_color.c.pysam.c",
|
jpayne@69
|
97 "samtools/bamtk.c.pysam.c",
|
jpayne@69
|
98 "samtools/bedcov.c.pysam.c",
|
jpayne@69
|
99 "samtools/tmp_file.c.pysam.c",
|
jpayne@69
|
100 "samtools/bam_plbuf.c.pysam.c",
|
jpayne@69
|
101 "samtools/lz4/lz4.c"
|
jpayne@69
|
102 ]
|
jpayne@69
|
103 },
|
jpayne@69
|
104 "module_name": "pysam.libcsamtools"
|
jpayne@69
|
105 }
|
jpayne@69
|
106 END: Cython Metadata */
|
jpayne@69
|
107
|
jpayne@69
|
108 #ifndef PY_SSIZE_T_CLEAN
|
jpayne@69
|
109 #define PY_SSIZE_T_CLEAN
|
jpayne@69
|
110 #endif /* PY_SSIZE_T_CLEAN */
|
jpayne@69
|
111 #if defined(CYTHON_LIMITED_API) && 0
|
jpayne@69
|
112 #ifndef Py_LIMITED_API
|
jpayne@69
|
113 #if CYTHON_LIMITED_API+0 > 0x03030000
|
jpayne@69
|
114 #define Py_LIMITED_API CYTHON_LIMITED_API
|
jpayne@69
|
115 #else
|
jpayne@69
|
116 #define Py_LIMITED_API 0x03030000
|
jpayne@69
|
117 #endif
|
jpayne@69
|
118 #endif
|
jpayne@69
|
119 #endif
|
jpayne@69
|
120
|
jpayne@69
|
121 #include "Python.h"
|
jpayne@69
|
122 #ifndef Py_PYTHON_H
|
jpayne@69
|
123 #error Python headers needed to compile C extensions, please install development version of Python.
|
jpayne@69
|
124 #elif PY_VERSION_HEX < 0x02070000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
|
jpayne@69
|
125 #error Cython requires Python 2.7+ or Python 3.3+.
|
jpayne@69
|
126 #else
|
jpayne@69
|
127 #if defined(CYTHON_LIMITED_API) && CYTHON_LIMITED_API
|
jpayne@69
|
128 #define __PYX_EXTRA_ABI_MODULE_NAME "limited"
|
jpayne@69
|
129 #else
|
jpayne@69
|
130 #define __PYX_EXTRA_ABI_MODULE_NAME ""
|
jpayne@69
|
131 #endif
|
jpayne@69
|
132 #define CYTHON_ABI "3_0_11" __PYX_EXTRA_ABI_MODULE_NAME
|
jpayne@69
|
133 #define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
|
jpayne@69
|
134 #define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."
|
jpayne@69
|
135 #define CYTHON_HEX_VERSION 0x03000BF0
|
jpayne@69
|
136 #define CYTHON_FUTURE_DIVISION 1
|
jpayne@69
|
137 #include <stddef.h>
|
jpayne@69
|
138 #ifndef offsetof
|
jpayne@69
|
139 #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
|
jpayne@69
|
140 #endif
|
jpayne@69
|
141 #if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
|
jpayne@69
|
142 #ifndef __stdcall
|
jpayne@69
|
143 #define __stdcall
|
jpayne@69
|
144 #endif
|
jpayne@69
|
145 #ifndef __cdecl
|
jpayne@69
|
146 #define __cdecl
|
jpayne@69
|
147 #endif
|
jpayne@69
|
148 #ifndef __fastcall
|
jpayne@69
|
149 #define __fastcall
|
jpayne@69
|
150 #endif
|
jpayne@69
|
151 #endif
|
jpayne@69
|
152 #ifndef DL_IMPORT
|
jpayne@69
|
153 #define DL_IMPORT(t) t
|
jpayne@69
|
154 #endif
|
jpayne@69
|
155 #ifndef DL_EXPORT
|
jpayne@69
|
156 #define DL_EXPORT(t) t
|
jpayne@69
|
157 #endif
|
jpayne@69
|
158 #define __PYX_COMMA ,
|
jpayne@69
|
159 #ifndef HAVE_LONG_LONG
|
jpayne@69
|
160 #define HAVE_LONG_LONG
|
jpayne@69
|
161 #endif
|
jpayne@69
|
162 #ifndef PY_LONG_LONG
|
jpayne@69
|
163 #define PY_LONG_LONG LONG_LONG
|
jpayne@69
|
164 #endif
|
jpayne@69
|
165 #ifndef Py_HUGE_VAL
|
jpayne@69
|
166 #define Py_HUGE_VAL HUGE_VAL
|
jpayne@69
|
167 #endif
|
jpayne@69
|
168 #define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
|
jpayne@69
|
169 #if defined(GRAALVM_PYTHON)
|
jpayne@69
|
170 /* For very preliminary testing purposes. Most variables are set the same as PyPy.
|
jpayne@69
|
171 The existence of this section does not imply that anything works or is even tested */
|
jpayne@69
|
172 #define CYTHON_COMPILING_IN_PYPY 0
|
jpayne@69
|
173 #define CYTHON_COMPILING_IN_CPYTHON 0
|
jpayne@69
|
174 #define CYTHON_COMPILING_IN_LIMITED_API 0
|
jpayne@69
|
175 #define CYTHON_COMPILING_IN_GRAAL 1
|
jpayne@69
|
176 #define CYTHON_COMPILING_IN_NOGIL 0
|
jpayne@69
|
177 #undef CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
178 #define CYTHON_USE_TYPE_SLOTS 0
|
jpayne@69
|
179 #undef CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
180 #define CYTHON_USE_TYPE_SPECS 0
|
jpayne@69
|
181 #undef CYTHON_USE_PYTYPE_LOOKUP
|
jpayne@69
|
182 #define CYTHON_USE_PYTYPE_LOOKUP 0
|
jpayne@69
|
183 #if PY_VERSION_HEX < 0x03050000
|
jpayne@69
|
184 #undef CYTHON_USE_ASYNC_SLOTS
|
jpayne@69
|
185 #define CYTHON_USE_ASYNC_SLOTS 0
|
jpayne@69
|
186 #elif !defined(CYTHON_USE_ASYNC_SLOTS)
|
jpayne@69
|
187 #define CYTHON_USE_ASYNC_SLOTS 1
|
jpayne@69
|
188 #endif
|
jpayne@69
|
189 #undef CYTHON_USE_PYLIST_INTERNALS
|
jpayne@69
|
190 #define CYTHON_USE_PYLIST_INTERNALS 0
|
jpayne@69
|
191 #undef CYTHON_USE_UNICODE_INTERNALS
|
jpayne@69
|
192 #define CYTHON_USE_UNICODE_INTERNALS 0
|
jpayne@69
|
193 #undef CYTHON_USE_UNICODE_WRITER
|
jpayne@69
|
194 #define CYTHON_USE_UNICODE_WRITER 0
|
jpayne@69
|
195 #undef CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
196 #define CYTHON_USE_PYLONG_INTERNALS 0
|
jpayne@69
|
197 #undef CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
198 #define CYTHON_AVOID_BORROWED_REFS 1
|
jpayne@69
|
199 #undef CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
200 #define CYTHON_ASSUME_SAFE_MACROS 0
|
jpayne@69
|
201 #undef CYTHON_UNPACK_METHODS
|
jpayne@69
|
202 #define CYTHON_UNPACK_METHODS 0
|
jpayne@69
|
203 #undef CYTHON_FAST_THREAD_STATE
|
jpayne@69
|
204 #define CYTHON_FAST_THREAD_STATE 0
|
jpayne@69
|
205 #undef CYTHON_FAST_GIL
|
jpayne@69
|
206 #define CYTHON_FAST_GIL 0
|
jpayne@69
|
207 #undef CYTHON_METH_FASTCALL
|
jpayne@69
|
208 #define CYTHON_METH_FASTCALL 0
|
jpayne@69
|
209 #undef CYTHON_FAST_PYCALL
|
jpayne@69
|
210 #define CYTHON_FAST_PYCALL 0
|
jpayne@69
|
211 #ifndef CYTHON_PEP487_INIT_SUBCLASS
|
jpayne@69
|
212 #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
|
jpayne@69
|
213 #endif
|
jpayne@69
|
214 #undef CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
215 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
|
jpayne@69
|
216 #undef CYTHON_USE_MODULE_STATE
|
jpayne@69
|
217 #define CYTHON_USE_MODULE_STATE 0
|
jpayne@69
|
218 #undef CYTHON_USE_TP_FINALIZE
|
jpayne@69
|
219 #define CYTHON_USE_TP_FINALIZE 0
|
jpayne@69
|
220 #undef CYTHON_USE_DICT_VERSIONS
|
jpayne@69
|
221 #define CYTHON_USE_DICT_VERSIONS 0
|
jpayne@69
|
222 #undef CYTHON_USE_EXC_INFO_STACK
|
jpayne@69
|
223 #define CYTHON_USE_EXC_INFO_STACK 0
|
jpayne@69
|
224 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
|
jpayne@69
|
225 #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
|
jpayne@69
|
226 #endif
|
jpayne@69
|
227 #undef CYTHON_USE_FREELISTS
|
jpayne@69
|
228 #define CYTHON_USE_FREELISTS 0
|
jpayne@69
|
229 #elif defined(PYPY_VERSION)
|
jpayne@69
|
230 #define CYTHON_COMPILING_IN_PYPY 1
|
jpayne@69
|
231 #define CYTHON_COMPILING_IN_CPYTHON 0
|
jpayne@69
|
232 #define CYTHON_COMPILING_IN_LIMITED_API 0
|
jpayne@69
|
233 #define CYTHON_COMPILING_IN_GRAAL 0
|
jpayne@69
|
234 #define CYTHON_COMPILING_IN_NOGIL 0
|
jpayne@69
|
235 #undef CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
236 #define CYTHON_USE_TYPE_SLOTS 0
|
jpayne@69
|
237 #ifndef CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
238 #define CYTHON_USE_TYPE_SPECS 0
|
jpayne@69
|
239 #endif
|
jpayne@69
|
240 #undef CYTHON_USE_PYTYPE_LOOKUP
|
jpayne@69
|
241 #define CYTHON_USE_PYTYPE_LOOKUP 0
|
jpayne@69
|
242 #if PY_VERSION_HEX < 0x03050000
|
jpayne@69
|
243 #undef CYTHON_USE_ASYNC_SLOTS
|
jpayne@69
|
244 #define CYTHON_USE_ASYNC_SLOTS 0
|
jpayne@69
|
245 #elif !defined(CYTHON_USE_ASYNC_SLOTS)
|
jpayne@69
|
246 #define CYTHON_USE_ASYNC_SLOTS 1
|
jpayne@69
|
247 #endif
|
jpayne@69
|
248 #undef CYTHON_USE_PYLIST_INTERNALS
|
jpayne@69
|
249 #define CYTHON_USE_PYLIST_INTERNALS 0
|
jpayne@69
|
250 #undef CYTHON_USE_UNICODE_INTERNALS
|
jpayne@69
|
251 #define CYTHON_USE_UNICODE_INTERNALS 0
|
jpayne@69
|
252 #undef CYTHON_USE_UNICODE_WRITER
|
jpayne@69
|
253 #define CYTHON_USE_UNICODE_WRITER 0
|
jpayne@69
|
254 #undef CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
255 #define CYTHON_USE_PYLONG_INTERNALS 0
|
jpayne@69
|
256 #undef CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
257 #define CYTHON_AVOID_BORROWED_REFS 1
|
jpayne@69
|
258 #undef CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
259 #define CYTHON_ASSUME_SAFE_MACROS 0
|
jpayne@69
|
260 #undef CYTHON_UNPACK_METHODS
|
jpayne@69
|
261 #define CYTHON_UNPACK_METHODS 0
|
jpayne@69
|
262 #undef CYTHON_FAST_THREAD_STATE
|
jpayne@69
|
263 #define CYTHON_FAST_THREAD_STATE 0
|
jpayne@69
|
264 #undef CYTHON_FAST_GIL
|
jpayne@69
|
265 #define CYTHON_FAST_GIL 0
|
jpayne@69
|
266 #undef CYTHON_METH_FASTCALL
|
jpayne@69
|
267 #define CYTHON_METH_FASTCALL 0
|
jpayne@69
|
268 #undef CYTHON_FAST_PYCALL
|
jpayne@69
|
269 #define CYTHON_FAST_PYCALL 0
|
jpayne@69
|
270 #ifndef CYTHON_PEP487_INIT_SUBCLASS
|
jpayne@69
|
271 #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
|
jpayne@69
|
272 #endif
|
jpayne@69
|
273 #if PY_VERSION_HEX < 0x03090000
|
jpayne@69
|
274 #undef CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
275 #define CYTHON_PEP489_MULTI_PHASE_INIT 0
|
jpayne@69
|
276 #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
|
jpayne@69
|
277 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
|
jpayne@69
|
278 #endif
|
jpayne@69
|
279 #undef CYTHON_USE_MODULE_STATE
|
jpayne@69
|
280 #define CYTHON_USE_MODULE_STATE 0
|
jpayne@69
|
281 #undef CYTHON_USE_TP_FINALIZE
|
jpayne@69
|
282 #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1 && PYPY_VERSION_NUM >= 0x07030C00)
|
jpayne@69
|
283 #undef CYTHON_USE_DICT_VERSIONS
|
jpayne@69
|
284 #define CYTHON_USE_DICT_VERSIONS 0
|
jpayne@69
|
285 #undef CYTHON_USE_EXC_INFO_STACK
|
jpayne@69
|
286 #define CYTHON_USE_EXC_INFO_STACK 0
|
jpayne@69
|
287 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
|
jpayne@69
|
288 #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
|
jpayne@69
|
289 #endif
|
jpayne@69
|
290 #undef CYTHON_USE_FREELISTS
|
jpayne@69
|
291 #define CYTHON_USE_FREELISTS 0
|
jpayne@69
|
292 #elif defined(CYTHON_LIMITED_API)
|
jpayne@69
|
293 #ifdef Py_LIMITED_API
|
jpayne@69
|
294 #undef __PYX_LIMITED_VERSION_HEX
|
jpayne@69
|
295 #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
|
jpayne@69
|
296 #endif
|
jpayne@69
|
297 #define CYTHON_COMPILING_IN_PYPY 0
|
jpayne@69
|
298 #define CYTHON_COMPILING_IN_CPYTHON 0
|
jpayne@69
|
299 #define CYTHON_COMPILING_IN_LIMITED_API 1
|
jpayne@69
|
300 #define CYTHON_COMPILING_IN_GRAAL 0
|
jpayne@69
|
301 #define CYTHON_COMPILING_IN_NOGIL 0
|
jpayne@69
|
302 #undef CYTHON_CLINE_IN_TRACEBACK
|
jpayne@69
|
303 #define CYTHON_CLINE_IN_TRACEBACK 0
|
jpayne@69
|
304 #undef CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
305 #define CYTHON_USE_TYPE_SLOTS 0
|
jpayne@69
|
306 #undef CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
307 #define CYTHON_USE_TYPE_SPECS 1
|
jpayne@69
|
308 #undef CYTHON_USE_PYTYPE_LOOKUP
|
jpayne@69
|
309 #define CYTHON_USE_PYTYPE_LOOKUP 0
|
jpayne@69
|
310 #undef CYTHON_USE_ASYNC_SLOTS
|
jpayne@69
|
311 #define CYTHON_USE_ASYNC_SLOTS 0
|
jpayne@69
|
312 #undef CYTHON_USE_PYLIST_INTERNALS
|
jpayne@69
|
313 #define CYTHON_USE_PYLIST_INTERNALS 0
|
jpayne@69
|
314 #undef CYTHON_USE_UNICODE_INTERNALS
|
jpayne@69
|
315 #define CYTHON_USE_UNICODE_INTERNALS 0
|
jpayne@69
|
316 #ifndef CYTHON_USE_UNICODE_WRITER
|
jpayne@69
|
317 #define CYTHON_USE_UNICODE_WRITER 0
|
jpayne@69
|
318 #endif
|
jpayne@69
|
319 #undef CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
320 #define CYTHON_USE_PYLONG_INTERNALS 0
|
jpayne@69
|
321 #ifndef CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
322 #define CYTHON_AVOID_BORROWED_REFS 0
|
jpayne@69
|
323 #endif
|
jpayne@69
|
324 #undef CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
325 #define CYTHON_ASSUME_SAFE_MACROS 0
|
jpayne@69
|
326 #undef CYTHON_UNPACK_METHODS
|
jpayne@69
|
327 #define CYTHON_UNPACK_METHODS 0
|
jpayne@69
|
328 #undef CYTHON_FAST_THREAD_STATE
|
jpayne@69
|
329 #define CYTHON_FAST_THREAD_STATE 0
|
jpayne@69
|
330 #undef CYTHON_FAST_GIL
|
jpayne@69
|
331 #define CYTHON_FAST_GIL 0
|
jpayne@69
|
332 #undef CYTHON_METH_FASTCALL
|
jpayne@69
|
333 #define CYTHON_METH_FASTCALL 0
|
jpayne@69
|
334 #undef CYTHON_FAST_PYCALL
|
jpayne@69
|
335 #define CYTHON_FAST_PYCALL 0
|
jpayne@69
|
336 #ifndef CYTHON_PEP487_INIT_SUBCLASS
|
jpayne@69
|
337 #define CYTHON_PEP487_INIT_SUBCLASS 1
|
jpayne@69
|
338 #endif
|
jpayne@69
|
339 #undef CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
340 #define CYTHON_PEP489_MULTI_PHASE_INIT 0
|
jpayne@69
|
341 #undef CYTHON_USE_MODULE_STATE
|
jpayne@69
|
342 #define CYTHON_USE_MODULE_STATE 1
|
jpayne@69
|
343 #ifndef CYTHON_USE_TP_FINALIZE
|
jpayne@69
|
344 #define CYTHON_USE_TP_FINALIZE 0
|
jpayne@69
|
345 #endif
|
jpayne@69
|
346 #undef CYTHON_USE_DICT_VERSIONS
|
jpayne@69
|
347 #define CYTHON_USE_DICT_VERSIONS 0
|
jpayne@69
|
348 #undef CYTHON_USE_EXC_INFO_STACK
|
jpayne@69
|
349 #define CYTHON_USE_EXC_INFO_STACK 0
|
jpayne@69
|
350 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
|
jpayne@69
|
351 #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
|
jpayne@69
|
352 #endif
|
jpayne@69
|
353 #undef CYTHON_USE_FREELISTS
|
jpayne@69
|
354 #define CYTHON_USE_FREELISTS 0
|
jpayne@69
|
355 #elif defined(Py_GIL_DISABLED) || defined(Py_NOGIL)
|
jpayne@69
|
356 #define CYTHON_COMPILING_IN_PYPY 0
|
jpayne@69
|
357 #define CYTHON_COMPILING_IN_CPYTHON 0
|
jpayne@69
|
358 #define CYTHON_COMPILING_IN_LIMITED_API 0
|
jpayne@69
|
359 #define CYTHON_COMPILING_IN_GRAAL 0
|
jpayne@69
|
360 #define CYTHON_COMPILING_IN_NOGIL 1
|
jpayne@69
|
361 #ifndef CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
362 #define CYTHON_USE_TYPE_SLOTS 1
|
jpayne@69
|
363 #endif
|
jpayne@69
|
364 #ifndef CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
365 #define CYTHON_USE_TYPE_SPECS 0
|
jpayne@69
|
366 #endif
|
jpayne@69
|
367 #undef CYTHON_USE_PYTYPE_LOOKUP
|
jpayne@69
|
368 #define CYTHON_USE_PYTYPE_LOOKUP 0
|
jpayne@69
|
369 #ifndef CYTHON_USE_ASYNC_SLOTS
|
jpayne@69
|
370 #define CYTHON_USE_ASYNC_SLOTS 1
|
jpayne@69
|
371 #endif
|
jpayne@69
|
372 #ifndef CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
373 #define CYTHON_USE_PYLONG_INTERNALS 0
|
jpayne@69
|
374 #endif
|
jpayne@69
|
375 #undef CYTHON_USE_PYLIST_INTERNALS
|
jpayne@69
|
376 #define CYTHON_USE_PYLIST_INTERNALS 0
|
jpayne@69
|
377 #ifndef CYTHON_USE_UNICODE_INTERNALS
|
jpayne@69
|
378 #define CYTHON_USE_UNICODE_INTERNALS 1
|
jpayne@69
|
379 #endif
|
jpayne@69
|
380 #undef CYTHON_USE_UNICODE_WRITER
|
jpayne@69
|
381 #define CYTHON_USE_UNICODE_WRITER 0
|
jpayne@69
|
382 #ifndef CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
383 #define CYTHON_AVOID_BORROWED_REFS 0
|
jpayne@69
|
384 #endif
|
jpayne@69
|
385 #ifndef CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
386 #define CYTHON_ASSUME_SAFE_MACROS 1
|
jpayne@69
|
387 #endif
|
jpayne@69
|
388 #ifndef CYTHON_UNPACK_METHODS
|
jpayne@69
|
389 #define CYTHON_UNPACK_METHODS 1
|
jpayne@69
|
390 #endif
|
jpayne@69
|
391 #undef CYTHON_FAST_THREAD_STATE
|
jpayne@69
|
392 #define CYTHON_FAST_THREAD_STATE 0
|
jpayne@69
|
393 #undef CYTHON_FAST_GIL
|
jpayne@69
|
394 #define CYTHON_FAST_GIL 0
|
jpayne@69
|
395 #ifndef CYTHON_METH_FASTCALL
|
jpayne@69
|
396 #define CYTHON_METH_FASTCALL 1
|
jpayne@69
|
397 #endif
|
jpayne@69
|
398 #undef CYTHON_FAST_PYCALL
|
jpayne@69
|
399 #define CYTHON_FAST_PYCALL 0
|
jpayne@69
|
400 #ifndef CYTHON_PEP487_INIT_SUBCLASS
|
jpayne@69
|
401 #define CYTHON_PEP487_INIT_SUBCLASS 1
|
jpayne@69
|
402 #endif
|
jpayne@69
|
403 #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
404 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
|
jpayne@69
|
405 #endif
|
jpayne@69
|
406 #ifndef CYTHON_USE_MODULE_STATE
|
jpayne@69
|
407 #define CYTHON_USE_MODULE_STATE 0
|
jpayne@69
|
408 #endif
|
jpayne@69
|
409 #ifndef CYTHON_USE_TP_FINALIZE
|
jpayne@69
|
410 #define CYTHON_USE_TP_FINALIZE 1
|
jpayne@69
|
411 #endif
|
jpayne@69
|
412 #undef CYTHON_USE_DICT_VERSIONS
|
jpayne@69
|
413 #define CYTHON_USE_DICT_VERSIONS 0
|
jpayne@69
|
414 #undef CYTHON_USE_EXC_INFO_STACK
|
jpayne@69
|
415 #define CYTHON_USE_EXC_INFO_STACK 0
|
jpayne@69
|
416 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
|
jpayne@69
|
417 #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
|
jpayne@69
|
418 #endif
|
jpayne@69
|
419 #ifndef CYTHON_USE_FREELISTS
|
jpayne@69
|
420 #define CYTHON_USE_FREELISTS 0
|
jpayne@69
|
421 #endif
|
jpayne@69
|
422 #else
|
jpayne@69
|
423 #define CYTHON_COMPILING_IN_PYPY 0
|
jpayne@69
|
424 #define CYTHON_COMPILING_IN_CPYTHON 1
|
jpayne@69
|
425 #define CYTHON_COMPILING_IN_LIMITED_API 0
|
jpayne@69
|
426 #define CYTHON_COMPILING_IN_GRAAL 0
|
jpayne@69
|
427 #define CYTHON_COMPILING_IN_NOGIL 0
|
jpayne@69
|
428 #ifndef CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
429 #define CYTHON_USE_TYPE_SLOTS 1
|
jpayne@69
|
430 #endif
|
jpayne@69
|
431 #ifndef CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
432 #define CYTHON_USE_TYPE_SPECS 0
|
jpayne@69
|
433 #endif
|
jpayne@69
|
434 #ifndef CYTHON_USE_PYTYPE_LOOKUP
|
jpayne@69
|
435 #define CYTHON_USE_PYTYPE_LOOKUP 1
|
jpayne@69
|
436 #endif
|
jpayne@69
|
437 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
438 #undef CYTHON_USE_ASYNC_SLOTS
|
jpayne@69
|
439 #define CYTHON_USE_ASYNC_SLOTS 0
|
jpayne@69
|
440 #elif !defined(CYTHON_USE_ASYNC_SLOTS)
|
jpayne@69
|
441 #define CYTHON_USE_ASYNC_SLOTS 1
|
jpayne@69
|
442 #endif
|
jpayne@69
|
443 #ifndef CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
444 #define CYTHON_USE_PYLONG_INTERNALS 1
|
jpayne@69
|
445 #endif
|
jpayne@69
|
446 #ifndef CYTHON_USE_PYLIST_INTERNALS
|
jpayne@69
|
447 #define CYTHON_USE_PYLIST_INTERNALS 1
|
jpayne@69
|
448 #endif
|
jpayne@69
|
449 #ifndef CYTHON_USE_UNICODE_INTERNALS
|
jpayne@69
|
450 #define CYTHON_USE_UNICODE_INTERNALS 1
|
jpayne@69
|
451 #endif
|
jpayne@69
|
452 #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
|
jpayne@69
|
453 #undef CYTHON_USE_UNICODE_WRITER
|
jpayne@69
|
454 #define CYTHON_USE_UNICODE_WRITER 0
|
jpayne@69
|
455 #elif !defined(CYTHON_USE_UNICODE_WRITER)
|
jpayne@69
|
456 #define CYTHON_USE_UNICODE_WRITER 1
|
jpayne@69
|
457 #endif
|
jpayne@69
|
458 #ifndef CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
459 #define CYTHON_AVOID_BORROWED_REFS 0
|
jpayne@69
|
460 #endif
|
jpayne@69
|
461 #ifndef CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
462 #define CYTHON_ASSUME_SAFE_MACROS 1
|
jpayne@69
|
463 #endif
|
jpayne@69
|
464 #ifndef CYTHON_UNPACK_METHODS
|
jpayne@69
|
465 #define CYTHON_UNPACK_METHODS 1
|
jpayne@69
|
466 #endif
|
jpayne@69
|
467 #ifndef CYTHON_FAST_THREAD_STATE
|
jpayne@69
|
468 #define CYTHON_FAST_THREAD_STATE 1
|
jpayne@69
|
469 #endif
|
jpayne@69
|
470 #ifndef CYTHON_FAST_GIL
|
jpayne@69
|
471 #define CYTHON_FAST_GIL (PY_MAJOR_VERSION < 3 || PY_VERSION_HEX >= 0x03060000 && PY_VERSION_HEX < 0x030C00A6)
|
jpayne@69
|
472 #endif
|
jpayne@69
|
473 #ifndef CYTHON_METH_FASTCALL
|
jpayne@69
|
474 #define CYTHON_METH_FASTCALL (PY_VERSION_HEX >= 0x030700A1)
|
jpayne@69
|
475 #endif
|
jpayne@69
|
476 #ifndef CYTHON_FAST_PYCALL
|
jpayne@69
|
477 #define CYTHON_FAST_PYCALL 1
|
jpayne@69
|
478 #endif
|
jpayne@69
|
479 #ifndef CYTHON_PEP487_INIT_SUBCLASS
|
jpayne@69
|
480 #define CYTHON_PEP487_INIT_SUBCLASS 1
|
jpayne@69
|
481 #endif
|
jpayne@69
|
482 #if PY_VERSION_HEX < 0x03050000
|
jpayne@69
|
483 #undef CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
484 #define CYTHON_PEP489_MULTI_PHASE_INIT 0
|
jpayne@69
|
485 #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
|
jpayne@69
|
486 #define CYTHON_PEP489_MULTI_PHASE_INIT 1
|
jpayne@69
|
487 #endif
|
jpayne@69
|
488 #ifndef CYTHON_USE_MODULE_STATE
|
jpayne@69
|
489 #define CYTHON_USE_MODULE_STATE 0
|
jpayne@69
|
490 #endif
|
jpayne@69
|
491 #if PY_VERSION_HEX < 0x030400a1
|
jpayne@69
|
492 #undef CYTHON_USE_TP_FINALIZE
|
jpayne@69
|
493 #define CYTHON_USE_TP_FINALIZE 0
|
jpayne@69
|
494 #elif !defined(CYTHON_USE_TP_FINALIZE)
|
jpayne@69
|
495 #define CYTHON_USE_TP_FINALIZE 1
|
jpayne@69
|
496 #endif
|
jpayne@69
|
497 #if PY_VERSION_HEX < 0x030600B1
|
jpayne@69
|
498 #undef CYTHON_USE_DICT_VERSIONS
|
jpayne@69
|
499 #define CYTHON_USE_DICT_VERSIONS 0
|
jpayne@69
|
500 #elif !defined(CYTHON_USE_DICT_VERSIONS)
|
jpayne@69
|
501 #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX < 0x030C00A5)
|
jpayne@69
|
502 #endif
|
jpayne@69
|
503 #if PY_VERSION_HEX < 0x030700A3
|
jpayne@69
|
504 #undef CYTHON_USE_EXC_INFO_STACK
|
jpayne@69
|
505 #define CYTHON_USE_EXC_INFO_STACK 0
|
jpayne@69
|
506 #elif !defined(CYTHON_USE_EXC_INFO_STACK)
|
jpayne@69
|
507 #define CYTHON_USE_EXC_INFO_STACK 1
|
jpayne@69
|
508 #endif
|
jpayne@69
|
509 #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
|
jpayne@69
|
510 #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
|
jpayne@69
|
511 #endif
|
jpayne@69
|
512 #ifndef CYTHON_USE_FREELISTS
|
jpayne@69
|
513 #define CYTHON_USE_FREELISTS 1
|
jpayne@69
|
514 #endif
|
jpayne@69
|
515 #endif
|
jpayne@69
|
516 #if !defined(CYTHON_FAST_PYCCALL)
|
jpayne@69
|
517 #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
|
jpayne@69
|
518 #endif
|
jpayne@69
|
519 #if !defined(CYTHON_VECTORCALL)
|
jpayne@69
|
520 #define CYTHON_VECTORCALL (CYTHON_FAST_PYCCALL && PY_VERSION_HEX >= 0x030800B1)
|
jpayne@69
|
521 #endif
|
jpayne@69
|
522 #define CYTHON_BACKPORT_VECTORCALL (CYTHON_METH_FASTCALL && PY_VERSION_HEX < 0x030800B1)
|
jpayne@69
|
523 #if CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
524 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
525 #include "longintrepr.h"
|
jpayne@69
|
526 #endif
|
jpayne@69
|
527 #undef SHIFT
|
jpayne@69
|
528 #undef BASE
|
jpayne@69
|
529 #undef MASK
|
jpayne@69
|
530 #ifdef SIZEOF_VOID_P
|
jpayne@69
|
531 enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
|
jpayne@69
|
532 #endif
|
jpayne@69
|
533 #endif
|
jpayne@69
|
534 #ifndef __has_attribute
|
jpayne@69
|
535 #define __has_attribute(x) 0
|
jpayne@69
|
536 #endif
|
jpayne@69
|
537 #ifndef __has_cpp_attribute
|
jpayne@69
|
538 #define __has_cpp_attribute(x) 0
|
jpayne@69
|
539 #endif
|
jpayne@69
|
540 #ifndef CYTHON_RESTRICT
|
jpayne@69
|
541 #if defined(__GNUC__)
|
jpayne@69
|
542 #define CYTHON_RESTRICT __restrict__
|
jpayne@69
|
543 #elif defined(_MSC_VER) && _MSC_VER >= 1400
|
jpayne@69
|
544 #define CYTHON_RESTRICT __restrict
|
jpayne@69
|
545 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
jpayne@69
|
546 #define CYTHON_RESTRICT restrict
|
jpayne@69
|
547 #else
|
jpayne@69
|
548 #define CYTHON_RESTRICT
|
jpayne@69
|
549 #endif
|
jpayne@69
|
550 #endif
|
jpayne@69
|
551 #ifndef CYTHON_UNUSED
|
jpayne@69
|
552 #if defined(__cplusplus)
|
jpayne@69
|
553 /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
|
jpayne@69
|
554 * but leads to warnings with -pedantic, since it is a C++17 feature */
|
jpayne@69
|
555 #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
|
jpayne@69
|
556 #if __has_cpp_attribute(maybe_unused)
|
jpayne@69
|
557 #define CYTHON_UNUSED [[maybe_unused]]
|
jpayne@69
|
558 #endif
|
jpayne@69
|
559 #endif
|
jpayne@69
|
560 #endif
|
jpayne@69
|
561 #endif
|
jpayne@69
|
562 #ifndef CYTHON_UNUSED
|
jpayne@69
|
563 # if defined(__GNUC__)
|
jpayne@69
|
564 # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
|
jpayne@69
|
565 # define CYTHON_UNUSED __attribute__ ((__unused__))
|
jpayne@69
|
566 # else
|
jpayne@69
|
567 # define CYTHON_UNUSED
|
jpayne@69
|
568 # endif
|
jpayne@69
|
569 # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
|
jpayne@69
|
570 # define CYTHON_UNUSED __attribute__ ((__unused__))
|
jpayne@69
|
571 # else
|
jpayne@69
|
572 # define CYTHON_UNUSED
|
jpayne@69
|
573 # endif
|
jpayne@69
|
574 #endif
|
jpayne@69
|
575 #ifndef CYTHON_UNUSED_VAR
|
jpayne@69
|
576 # if defined(__cplusplus)
|
jpayne@69
|
577 template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
|
jpayne@69
|
578 # else
|
jpayne@69
|
579 # define CYTHON_UNUSED_VAR(x) (void)(x)
|
jpayne@69
|
580 # endif
|
jpayne@69
|
581 #endif
|
jpayne@69
|
582 #ifndef CYTHON_MAYBE_UNUSED_VAR
|
jpayne@69
|
583 #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
|
jpayne@69
|
584 #endif
|
jpayne@69
|
585 #ifndef CYTHON_NCP_UNUSED
|
jpayne@69
|
586 # if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
587 # define CYTHON_NCP_UNUSED
|
jpayne@69
|
588 # else
|
jpayne@69
|
589 # define CYTHON_NCP_UNUSED CYTHON_UNUSED
|
jpayne@69
|
590 # endif
|
jpayne@69
|
591 #endif
|
jpayne@69
|
592 #ifndef CYTHON_USE_CPP_STD_MOVE
|
jpayne@69
|
593 #if defined(__cplusplus) && (\
|
jpayne@69
|
594 __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
|
jpayne@69
|
595 #define CYTHON_USE_CPP_STD_MOVE 1
|
jpayne@69
|
596 #else
|
jpayne@69
|
597 #define CYTHON_USE_CPP_STD_MOVE 0
|
jpayne@69
|
598 #endif
|
jpayne@69
|
599 #endif
|
jpayne@69
|
600 #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
|
jpayne@69
|
601 #ifdef _MSC_VER
|
jpayne@69
|
602 #ifndef _MSC_STDINT_H_
|
jpayne@69
|
603 #if _MSC_VER < 1300
|
jpayne@69
|
604 typedef unsigned char uint8_t;
|
jpayne@69
|
605 typedef unsigned short uint16_t;
|
jpayne@69
|
606 typedef unsigned int uint32_t;
|
jpayne@69
|
607 #else
|
jpayne@69
|
608 typedef unsigned __int8 uint8_t;
|
jpayne@69
|
609 typedef unsigned __int16 uint16_t;
|
jpayne@69
|
610 typedef unsigned __int32 uint32_t;
|
jpayne@69
|
611 #endif
|
jpayne@69
|
612 #endif
|
jpayne@69
|
613 #if _MSC_VER < 1300
|
jpayne@69
|
614 #ifdef _WIN64
|
jpayne@69
|
615 typedef unsigned long long __pyx_uintptr_t;
|
jpayne@69
|
616 #else
|
jpayne@69
|
617 typedef unsigned int __pyx_uintptr_t;
|
jpayne@69
|
618 #endif
|
jpayne@69
|
619 #else
|
jpayne@69
|
620 #ifdef _WIN64
|
jpayne@69
|
621 typedef unsigned __int64 __pyx_uintptr_t;
|
jpayne@69
|
622 #else
|
jpayne@69
|
623 typedef unsigned __int32 __pyx_uintptr_t;
|
jpayne@69
|
624 #endif
|
jpayne@69
|
625 #endif
|
jpayne@69
|
626 #else
|
jpayne@69
|
627 #include <stdint.h>
|
jpayne@69
|
628 typedef uintptr_t __pyx_uintptr_t;
|
jpayne@69
|
629 #endif
|
jpayne@69
|
630 #ifndef CYTHON_FALLTHROUGH
|
jpayne@69
|
631 #if defined(__cplusplus)
|
jpayne@69
|
632 /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
|
jpayne@69
|
633 * but leads to warnings with -pedantic, since it is a C++17 feature */
|
jpayne@69
|
634 #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
|
jpayne@69
|
635 #if __has_cpp_attribute(fallthrough)
|
jpayne@69
|
636 #define CYTHON_FALLTHROUGH [[fallthrough]]
|
jpayne@69
|
637 #endif
|
jpayne@69
|
638 #endif
|
jpayne@69
|
639 #ifndef CYTHON_FALLTHROUGH
|
jpayne@69
|
640 #if __has_cpp_attribute(clang::fallthrough)
|
jpayne@69
|
641 #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
|
jpayne@69
|
642 #elif __has_cpp_attribute(gnu::fallthrough)
|
jpayne@69
|
643 #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
|
jpayne@69
|
644 #endif
|
jpayne@69
|
645 #endif
|
jpayne@69
|
646 #endif
|
jpayne@69
|
647 #ifndef CYTHON_FALLTHROUGH
|
jpayne@69
|
648 #if __has_attribute(fallthrough)
|
jpayne@69
|
649 #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
|
jpayne@69
|
650 #else
|
jpayne@69
|
651 #define CYTHON_FALLTHROUGH
|
jpayne@69
|
652 #endif
|
jpayne@69
|
653 #endif
|
jpayne@69
|
654 #if defined(__clang__) && defined(__apple_build_version__)
|
jpayne@69
|
655 #if __apple_build_version__ < 7000000
|
jpayne@69
|
656 #undef CYTHON_FALLTHROUGH
|
jpayne@69
|
657 #define CYTHON_FALLTHROUGH
|
jpayne@69
|
658 #endif
|
jpayne@69
|
659 #endif
|
jpayne@69
|
660 #endif
|
jpayne@69
|
661 #ifdef __cplusplus
|
jpayne@69
|
662 template <typename T>
|
jpayne@69
|
663 struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
|
jpayne@69
|
664 #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
|
jpayne@69
|
665 #else
|
jpayne@69
|
666 #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
|
jpayne@69
|
667 #endif
|
jpayne@69
|
668 #if CYTHON_COMPILING_IN_PYPY == 1
|
jpayne@69
|
669 #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x030A0000)
|
jpayne@69
|
670 #else
|
jpayne@69
|
671 #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000)
|
jpayne@69
|
672 #endif
|
jpayne@69
|
673 #define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))
|
jpayne@69
|
674
|
jpayne@69
|
675 #ifndef CYTHON_INLINE
|
jpayne@69
|
676 #if defined(__clang__)
|
jpayne@69
|
677 #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
|
jpayne@69
|
678 #elif defined(__GNUC__)
|
jpayne@69
|
679 #define CYTHON_INLINE __inline__
|
jpayne@69
|
680 #elif defined(_MSC_VER)
|
jpayne@69
|
681 #define CYTHON_INLINE __inline
|
jpayne@69
|
682 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
jpayne@69
|
683 #define CYTHON_INLINE inline
|
jpayne@69
|
684 #else
|
jpayne@69
|
685 #define CYTHON_INLINE
|
jpayne@69
|
686 #endif
|
jpayne@69
|
687 #endif
|
jpayne@69
|
688
|
jpayne@69
|
689 #define __PYX_BUILD_PY_SSIZE_T "n"
|
jpayne@69
|
690 #define CYTHON_FORMAT_SSIZE_T "z"
|
jpayne@69
|
691 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
692 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
|
jpayne@69
|
693 #define __Pyx_DefaultClassType PyClass_Type
|
jpayne@69
|
694 #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
jpayne@69
|
695 PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
jpayne@69
|
696 #else
|
jpayne@69
|
697 #define __Pyx_BUILTIN_MODULE_NAME "builtins"
|
jpayne@69
|
698 #define __Pyx_DefaultClassType PyType_Type
|
jpayne@69
|
699 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
700 static CYTHON_INLINE PyObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
|
jpayne@69
|
701 PyObject *code, PyObject *c, PyObject* n, PyObject *v,
|
jpayne@69
|
702 PyObject *fv, PyObject *cell, PyObject* fn,
|
jpayne@69
|
703 PyObject *name, int fline, PyObject *lnos) {
|
jpayne@69
|
704 PyObject *exception_table = NULL;
|
jpayne@69
|
705 PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
|
jpayne@69
|
706 #if __PYX_LIMITED_VERSION_HEX < 0x030B0000
|
jpayne@69
|
707 PyObject *version_info;
|
jpayne@69
|
708 PyObject *py_minor_version = NULL;
|
jpayne@69
|
709 #endif
|
jpayne@69
|
710 long minor_version = 0;
|
jpayne@69
|
711 PyObject *type, *value, *traceback;
|
jpayne@69
|
712 PyErr_Fetch(&type, &value, &traceback);
|
jpayne@69
|
713 #if __PYX_LIMITED_VERSION_HEX >= 0x030B0000
|
jpayne@69
|
714 minor_version = 11;
|
jpayne@69
|
715 #else
|
jpayne@69
|
716 if (!(version_info = PySys_GetObject("version_info"))) goto end;
|
jpayne@69
|
717 if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
|
jpayne@69
|
718 minor_version = PyLong_AsLong(py_minor_version);
|
jpayne@69
|
719 Py_DECREF(py_minor_version);
|
jpayne@69
|
720 if (minor_version == -1 && PyErr_Occurred()) goto end;
|
jpayne@69
|
721 #endif
|
jpayne@69
|
722 if (!(types_module = PyImport_ImportModule("types"))) goto end;
|
jpayne@69
|
723 if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
|
jpayne@69
|
724 if (minor_version <= 7) {
|
jpayne@69
|
725 (void)p;
|
jpayne@69
|
726 result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOO", a, k, l, s, f, code,
|
jpayne@69
|
727 c, n, v, fn, name, fline, lnos, fv, cell);
|
jpayne@69
|
728 } else if (minor_version <= 10) {
|
jpayne@69
|
729 result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOO", a,p, k, l, s, f, code,
|
jpayne@69
|
730 c, n, v, fn, name, fline, lnos, fv, cell);
|
jpayne@69
|
731 } else {
|
jpayne@69
|
732 if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
|
jpayne@69
|
733 result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOO", a,p, k, l, s, f, code,
|
jpayne@69
|
734 c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
|
jpayne@69
|
735 }
|
jpayne@69
|
736 end:
|
jpayne@69
|
737 Py_XDECREF(code_type);
|
jpayne@69
|
738 Py_XDECREF(exception_table);
|
jpayne@69
|
739 Py_XDECREF(types_module);
|
jpayne@69
|
740 if (type) {
|
jpayne@69
|
741 PyErr_Restore(type, value, traceback);
|
jpayne@69
|
742 }
|
jpayne@69
|
743 return result;
|
jpayne@69
|
744 }
|
jpayne@69
|
745 #ifndef CO_OPTIMIZED
|
jpayne@69
|
746 #define CO_OPTIMIZED 0x0001
|
jpayne@69
|
747 #endif
|
jpayne@69
|
748 #ifndef CO_NEWLOCALS
|
jpayne@69
|
749 #define CO_NEWLOCALS 0x0002
|
jpayne@69
|
750 #endif
|
jpayne@69
|
751 #ifndef CO_VARARGS
|
jpayne@69
|
752 #define CO_VARARGS 0x0004
|
jpayne@69
|
753 #endif
|
jpayne@69
|
754 #ifndef CO_VARKEYWORDS
|
jpayne@69
|
755 #define CO_VARKEYWORDS 0x0008
|
jpayne@69
|
756 #endif
|
jpayne@69
|
757 #ifndef CO_ASYNC_GENERATOR
|
jpayne@69
|
758 #define CO_ASYNC_GENERATOR 0x0200
|
jpayne@69
|
759 #endif
|
jpayne@69
|
760 #ifndef CO_GENERATOR
|
jpayne@69
|
761 #define CO_GENERATOR 0x0020
|
jpayne@69
|
762 #endif
|
jpayne@69
|
763 #ifndef CO_COROUTINE
|
jpayne@69
|
764 #define CO_COROUTINE 0x0080
|
jpayne@69
|
765 #endif
|
jpayne@69
|
766 #elif PY_VERSION_HEX >= 0x030B0000
|
jpayne@69
|
767 static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
|
jpayne@69
|
768 PyObject *code, PyObject *c, PyObject* n, PyObject *v,
|
jpayne@69
|
769 PyObject *fv, PyObject *cell, PyObject* fn,
|
jpayne@69
|
770 PyObject *name, int fline, PyObject *lnos) {
|
jpayne@69
|
771 PyCodeObject *result;
|
jpayne@69
|
772 PyObject *empty_bytes = PyBytes_FromStringAndSize("", 0);
|
jpayne@69
|
773 if (!empty_bytes) return NULL;
|
jpayne@69
|
774 result =
|
jpayne@69
|
775 #if PY_VERSION_HEX >= 0x030C0000
|
jpayne@69
|
776 PyUnstable_Code_NewWithPosOnlyArgs
|
jpayne@69
|
777 #else
|
jpayne@69
|
778 PyCode_NewWithPosOnlyArgs
|
jpayne@69
|
779 #endif
|
jpayne@69
|
780 (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, empty_bytes);
|
jpayne@69
|
781 Py_DECREF(empty_bytes);
|
jpayne@69
|
782 return result;
|
jpayne@69
|
783 }
|
jpayne@69
|
784 #elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY
|
jpayne@69
|
785 #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
jpayne@69
|
786 PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
jpayne@69
|
787 #else
|
jpayne@69
|
788 #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
jpayne@69
|
789 PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
|
jpayne@69
|
790 #endif
|
jpayne@69
|
791 #endif
|
jpayne@69
|
792 #if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE)
|
jpayne@69
|
793 #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type)
|
jpayne@69
|
794 #else
|
jpayne@69
|
795 #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type))
|
jpayne@69
|
796 #endif
|
jpayne@69
|
797 #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
|
jpayne@69
|
798 #define __Pyx_Py_Is(x, y) Py_Is(x, y)
|
jpayne@69
|
799 #else
|
jpayne@69
|
800 #define __Pyx_Py_Is(x, y) ((x) == (y))
|
jpayne@69
|
801 #endif
|
jpayne@69
|
802 #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
|
jpayne@69
|
803 #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
|
jpayne@69
|
804 #else
|
jpayne@69
|
805 #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
|
jpayne@69
|
806 #endif
|
jpayne@69
|
807 #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
|
jpayne@69
|
808 #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
|
jpayne@69
|
809 #else
|
jpayne@69
|
810 #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
|
jpayne@69
|
811 #endif
|
jpayne@69
|
812 #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
|
jpayne@69
|
813 #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
|
jpayne@69
|
814 #else
|
jpayne@69
|
815 #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
|
jpayne@69
|
816 #endif
|
jpayne@69
|
817 #define __Pyx_NoneAsNull(obj) (__Pyx_Py_IsNone(obj) ? NULL : (obj))
|
jpayne@69
|
818 #if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY
|
jpayne@69
|
819 #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
|
jpayne@69
|
820 #else
|
jpayne@69
|
821 #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
|
jpayne@69
|
822 #endif
|
jpayne@69
|
823 #ifndef CO_COROUTINE
|
jpayne@69
|
824 #define CO_COROUTINE 0x80
|
jpayne@69
|
825 #endif
|
jpayne@69
|
826 #ifndef CO_ASYNC_GENERATOR
|
jpayne@69
|
827 #define CO_ASYNC_GENERATOR 0x200
|
jpayne@69
|
828 #endif
|
jpayne@69
|
829 #ifndef Py_TPFLAGS_CHECKTYPES
|
jpayne@69
|
830 #define Py_TPFLAGS_CHECKTYPES 0
|
jpayne@69
|
831 #endif
|
jpayne@69
|
832 #ifndef Py_TPFLAGS_HAVE_INDEX
|
jpayne@69
|
833 #define Py_TPFLAGS_HAVE_INDEX 0
|
jpayne@69
|
834 #endif
|
jpayne@69
|
835 #ifndef Py_TPFLAGS_HAVE_NEWBUFFER
|
jpayne@69
|
836 #define Py_TPFLAGS_HAVE_NEWBUFFER 0
|
jpayne@69
|
837 #endif
|
jpayne@69
|
838 #ifndef Py_TPFLAGS_HAVE_FINALIZE
|
jpayne@69
|
839 #define Py_TPFLAGS_HAVE_FINALIZE 0
|
jpayne@69
|
840 #endif
|
jpayne@69
|
841 #ifndef Py_TPFLAGS_SEQUENCE
|
jpayne@69
|
842 #define Py_TPFLAGS_SEQUENCE 0
|
jpayne@69
|
843 #endif
|
jpayne@69
|
844 #ifndef Py_TPFLAGS_MAPPING
|
jpayne@69
|
845 #define Py_TPFLAGS_MAPPING 0
|
jpayne@69
|
846 #endif
|
jpayne@69
|
847 #ifndef METH_STACKLESS
|
jpayne@69
|
848 #define METH_STACKLESS 0
|
jpayne@69
|
849 #endif
|
jpayne@69
|
850 #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
|
jpayne@69
|
851 #ifndef METH_FASTCALL
|
jpayne@69
|
852 #define METH_FASTCALL 0x80
|
jpayne@69
|
853 #endif
|
jpayne@69
|
854 typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
|
jpayne@69
|
855 typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
|
jpayne@69
|
856 Py_ssize_t nargs, PyObject *kwnames);
|
jpayne@69
|
857 #else
|
jpayne@69
|
858 #if PY_VERSION_HEX >= 0x030d00A4
|
jpayne@69
|
859 # define __Pyx_PyCFunctionFast PyCFunctionFast
|
jpayne@69
|
860 # define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords
|
jpayne@69
|
861 #else
|
jpayne@69
|
862 # define __Pyx_PyCFunctionFast _PyCFunctionFast
|
jpayne@69
|
863 # define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
|
jpayne@69
|
864 #endif
|
jpayne@69
|
865 #endif
|
jpayne@69
|
866 #if CYTHON_METH_FASTCALL
|
jpayne@69
|
867 #define __Pyx_METH_FASTCALL METH_FASTCALL
|
jpayne@69
|
868 #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
|
jpayne@69
|
869 #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
|
jpayne@69
|
870 #else
|
jpayne@69
|
871 #define __Pyx_METH_FASTCALL METH_VARARGS
|
jpayne@69
|
872 #define __Pyx_PyCFunction_FastCall PyCFunction
|
jpayne@69
|
873 #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
|
jpayne@69
|
874 #endif
|
jpayne@69
|
875 #if CYTHON_VECTORCALL
|
jpayne@69
|
876 #define __pyx_vectorcallfunc vectorcallfunc
|
jpayne@69
|
877 #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET PY_VECTORCALL_ARGUMENTS_OFFSET
|
jpayne@69
|
878 #define __Pyx_PyVectorcall_NARGS(n) PyVectorcall_NARGS((size_t)(n))
|
jpayne@69
|
879 #elif CYTHON_BACKPORT_VECTORCALL
|
jpayne@69
|
880 typedef PyObject *(*__pyx_vectorcallfunc)(PyObject *callable, PyObject *const *args,
|
jpayne@69
|
881 size_t nargsf, PyObject *kwnames);
|
jpayne@69
|
882 #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET ((size_t)1 << (8 * sizeof(size_t) - 1))
|
jpayne@69
|
883 #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(((size_t)(n)) & ~__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET))
|
jpayne@69
|
884 #else
|
jpayne@69
|
885 #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET 0
|
jpayne@69
|
886 #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(n))
|
jpayne@69
|
887 #endif
|
jpayne@69
|
888 #if PY_MAJOR_VERSION >= 0x030900B1
|
jpayne@69
|
889 #define __Pyx_PyCFunction_CheckExact(func) PyCFunction_CheckExact(func)
|
jpayne@69
|
890 #else
|
jpayne@69
|
891 #define __Pyx_PyCFunction_CheckExact(func) PyCFunction_Check(func)
|
jpayne@69
|
892 #endif
|
jpayne@69
|
893 #define __Pyx_CyOrPyCFunction_Check(func) PyCFunction_Check(func)
|
jpayne@69
|
894 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
895 #define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) (((PyCFunctionObject*)(func))->m_ml->ml_meth)
|
jpayne@69
|
896 #elif !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
897 #define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(func)
|
jpayne@69
|
898 #endif
|
jpayne@69
|
899 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
900 #define __Pyx_CyOrPyCFunction_GET_FLAGS(func) (((PyCFunctionObject*)(func))->m_ml->ml_flags)
|
jpayne@69
|
901 static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
|
jpayne@69
|
902 return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
|
jpayne@69
|
903 }
|
jpayne@69
|
904 #endif
|
jpayne@69
|
905 static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void *cfunc) {
|
jpayne@69
|
906 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
907 return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
|
jpayne@69
|
908 #else
|
jpayne@69
|
909 return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
|
jpayne@69
|
910 #endif
|
jpayne@69
|
911 }
|
jpayne@69
|
912 #define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCFunction(func, cfunc)
|
jpayne@69
|
913 #if __PYX_LIMITED_VERSION_HEX < 0x030900B1
|
jpayne@69
|
914 #define __Pyx_PyType_FromModuleAndSpec(m, s, b) ((void)m, PyType_FromSpecWithBases(s, b))
|
jpayne@69
|
915 typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
|
jpayne@69
|
916 #else
|
jpayne@69
|
917 #define __Pyx_PyType_FromModuleAndSpec(m, s, b) PyType_FromModuleAndSpec(m, s, b)
|
jpayne@69
|
918 #define __Pyx_PyCMethod PyCMethod
|
jpayne@69
|
919 #endif
|
jpayne@69
|
920 #ifndef METH_METHOD
|
jpayne@69
|
921 #define METH_METHOD 0x200
|
jpayne@69
|
922 #endif
|
jpayne@69
|
923 #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
|
jpayne@69
|
924 #define PyObject_Malloc(s) PyMem_Malloc(s)
|
jpayne@69
|
925 #define PyObject_Free(p) PyMem_Free(p)
|
jpayne@69
|
926 #define PyObject_Realloc(p) PyMem_Realloc(p)
|
jpayne@69
|
927 #endif
|
jpayne@69
|
928 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
929 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
|
jpayne@69
|
930 #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
|
jpayne@69
|
931 #else
|
jpayne@69
|
932 #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
|
jpayne@69
|
933 #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno)
|
jpayne@69
|
934 #endif
|
jpayne@69
|
935 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
936 #define __Pyx_PyThreadState_Current PyThreadState_Get()
|
jpayne@69
|
937 #elif !CYTHON_FAST_THREAD_STATE
|
jpayne@69
|
938 #define __Pyx_PyThreadState_Current PyThreadState_GET()
|
jpayne@69
|
939 #elif PY_VERSION_HEX >= 0x030d00A1
|
jpayne@69
|
940 #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
|
jpayne@69
|
941 #elif PY_VERSION_HEX >= 0x03060000
|
jpayne@69
|
942 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
|
jpayne@69
|
943 #elif PY_VERSION_HEX >= 0x03000000
|
jpayne@69
|
944 #define __Pyx_PyThreadState_Current PyThreadState_GET()
|
jpayne@69
|
945 #else
|
jpayne@69
|
946 #define __Pyx_PyThreadState_Current _PyThreadState_Current
|
jpayne@69
|
947 #endif
|
jpayne@69
|
948 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
949 static CYTHON_INLINE void *__Pyx_PyModule_GetState(PyObject *op)
|
jpayne@69
|
950 {
|
jpayne@69
|
951 void *result;
|
jpayne@69
|
952 result = PyModule_GetState(op);
|
jpayne@69
|
953 if (!result)
|
jpayne@69
|
954 Py_FatalError("Couldn't find the module state");
|
jpayne@69
|
955 return result;
|
jpayne@69
|
956 }
|
jpayne@69
|
957 #endif
|
jpayne@69
|
958 #define __Pyx_PyObject_GetSlot(obj, name, func_ctype) __Pyx_PyType_GetSlot(Py_TYPE(obj), name, func_ctype)
|
jpayne@69
|
959 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
960 #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((func_ctype) PyType_GetSlot((type), Py_##name))
|
jpayne@69
|
961 #else
|
jpayne@69
|
962 #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((type)->name)
|
jpayne@69
|
963 #endif
|
jpayne@69
|
964 #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
|
jpayne@69
|
965 #include "pythread.h"
|
jpayne@69
|
966 #define Py_tss_NEEDS_INIT 0
|
jpayne@69
|
967 typedef int Py_tss_t;
|
jpayne@69
|
968 static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
|
jpayne@69
|
969 *key = PyThread_create_key();
|
jpayne@69
|
970 return 0;
|
jpayne@69
|
971 }
|
jpayne@69
|
972 static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
|
jpayne@69
|
973 Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
|
jpayne@69
|
974 *key = Py_tss_NEEDS_INIT;
|
jpayne@69
|
975 return key;
|
jpayne@69
|
976 }
|
jpayne@69
|
977 static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
|
jpayne@69
|
978 PyObject_Free(key);
|
jpayne@69
|
979 }
|
jpayne@69
|
980 static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
|
jpayne@69
|
981 return *key != Py_tss_NEEDS_INIT;
|
jpayne@69
|
982 }
|
jpayne@69
|
983 static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
|
jpayne@69
|
984 PyThread_delete_key(*key);
|
jpayne@69
|
985 *key = Py_tss_NEEDS_INIT;
|
jpayne@69
|
986 }
|
jpayne@69
|
987 static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
|
jpayne@69
|
988 return PyThread_set_key_value(*key, value);
|
jpayne@69
|
989 }
|
jpayne@69
|
990 static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
|
jpayne@69
|
991 return PyThread_get_key_value(*key);
|
jpayne@69
|
992 }
|
jpayne@69
|
993 #endif
|
jpayne@69
|
994 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
995 #if CYTHON_COMPILING_IN_PYPY
|
jpayne@69
|
996 #if PYPY_VERSION_NUM < 0x07030600
|
jpayne@69
|
997 #if defined(__cplusplus) && __cplusplus >= 201402L
|
jpayne@69
|
998 [[deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")]]
|
jpayne@69
|
999 #elif defined(__GNUC__) || defined(__clang__)
|
jpayne@69
|
1000 __attribute__ ((__deprecated__("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")))
|
jpayne@69
|
1001 #elif defined(_MSC_VER)
|
jpayne@69
|
1002 __declspec(deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6"))
|
jpayne@69
|
1003 #endif
|
jpayne@69
|
1004 static CYTHON_INLINE int PyGILState_Check(void) {
|
jpayne@69
|
1005 return 0;
|
jpayne@69
|
1006 }
|
jpayne@69
|
1007 #else // PYPY_VERSION_NUM < 0x07030600
|
jpayne@69
|
1008 #endif // PYPY_VERSION_NUM < 0x07030600
|
jpayne@69
|
1009 #else
|
jpayne@69
|
1010 static CYTHON_INLINE int PyGILState_Check(void) {
|
jpayne@69
|
1011 PyThreadState * tstate = _PyThreadState_Current;
|
jpayne@69
|
1012 return tstate && (tstate == PyGILState_GetThisThreadState());
|
jpayne@69
|
1013 }
|
jpayne@69
|
1014 #endif
|
jpayne@69
|
1015 #endif
|
jpayne@69
|
1016 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000 || defined(_PyDict_NewPresized)
|
jpayne@69
|
1017 #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
|
jpayne@69
|
1018 #else
|
jpayne@69
|
1019 #define __Pyx_PyDict_NewPresized(n) PyDict_New()
|
jpayne@69
|
1020 #endif
|
jpayne@69
|
1021 #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
|
jpayne@69
|
1022 #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
|
jpayne@69
|
1023 #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
|
jpayne@69
|
1024 #else
|
jpayne@69
|
1025 #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
|
jpayne@69
|
1026 #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
|
jpayne@69
|
1027 #endif
|
jpayne@69
|
1028 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030600B4 && PY_VERSION_HEX < 0x030d0000 && CYTHON_USE_UNICODE_INTERNALS
|
jpayne@69
|
1029 #define __Pyx_PyDict_GetItemStrWithError(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
|
jpayne@69
|
1030 static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
|
jpayne@69
|
1031 PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
|
jpayne@69
|
1032 if (res == NULL) PyErr_Clear();
|
jpayne@69
|
1033 return res;
|
jpayne@69
|
1034 }
|
jpayne@69
|
1035 #elif PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000)
|
jpayne@69
|
1036 #define __Pyx_PyDict_GetItemStrWithError PyDict_GetItemWithError
|
jpayne@69
|
1037 #define __Pyx_PyDict_GetItemStr PyDict_GetItem
|
jpayne@69
|
1038 #else
|
jpayne@69
|
1039 static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
|
jpayne@69
|
1040 #if CYTHON_COMPILING_IN_PYPY
|
jpayne@69
|
1041 return PyDict_GetItem(dict, name);
|
jpayne@69
|
1042 #else
|
jpayne@69
|
1043 PyDictEntry *ep;
|
jpayne@69
|
1044 PyDictObject *mp = (PyDictObject*) dict;
|
jpayne@69
|
1045 long hash = ((PyStringObject *) name)->ob_shash;
|
jpayne@69
|
1046 assert(hash != -1);
|
jpayne@69
|
1047 ep = (mp->ma_lookup)(mp, name, hash);
|
jpayne@69
|
1048 if (ep == NULL) {
|
jpayne@69
|
1049 return NULL;
|
jpayne@69
|
1050 }
|
jpayne@69
|
1051 return ep->me_value;
|
jpayne@69
|
1052 #endif
|
jpayne@69
|
1053 }
|
jpayne@69
|
1054 #define __Pyx_PyDict_GetItemStr PyDict_GetItem
|
jpayne@69
|
1055 #endif
|
jpayne@69
|
1056 #if CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
1057 #define __Pyx_PyType_GetFlags(tp) (((PyTypeObject *)tp)->tp_flags)
|
jpayne@69
|
1058 #define __Pyx_PyType_HasFeature(type, feature) ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
|
jpayne@69
|
1059 #define __Pyx_PyObject_GetIterNextFunc(obj) (Py_TYPE(obj)->tp_iternext)
|
jpayne@69
|
1060 #else
|
jpayne@69
|
1061 #define __Pyx_PyType_GetFlags(tp) (PyType_GetFlags((PyTypeObject *)tp))
|
jpayne@69
|
1062 #define __Pyx_PyType_HasFeature(type, feature) PyType_HasFeature(type, feature)
|
jpayne@69
|
1063 #define __Pyx_PyObject_GetIterNextFunc(obj) PyIter_Next
|
jpayne@69
|
1064 #endif
|
jpayne@69
|
1065 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
1066 #define __Pyx_SetItemOnTypeDict(tp, k, v) PyObject_GenericSetAttr((PyObject*)tp, k, v)
|
jpayne@69
|
1067 #else
|
jpayne@69
|
1068 #define __Pyx_SetItemOnTypeDict(tp, k, v) PyDict_SetItem(tp->tp_dict, k, v)
|
jpayne@69
|
1069 #endif
|
jpayne@69
|
1070 #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX >= 0x03080000
|
jpayne@69
|
1071 #define __Pyx_PyHeapTypeObject_GC_Del(obj) {\
|
jpayne@69
|
1072 PyTypeObject *type = Py_TYPE((PyObject*)obj);\
|
jpayne@69
|
1073 assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
|
jpayne@69
|
1074 PyObject_GC_Del(obj);\
|
jpayne@69
|
1075 Py_DECREF(type);\
|
jpayne@69
|
1076 }
|
jpayne@69
|
1077 #else
|
jpayne@69
|
1078 #define __Pyx_PyHeapTypeObject_GC_Del(obj) PyObject_GC_Del(obj)
|
jpayne@69
|
1079 #endif
|
jpayne@69
|
1080 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
1081 #define CYTHON_PEP393_ENABLED 1
|
jpayne@69
|
1082 #define __Pyx_PyUnicode_READY(op) (0)
|
jpayne@69
|
1083 #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GetLength(u)
|
jpayne@69
|
1084 #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
|
jpayne@69
|
1085 #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((void)u, 1114111U)
|
jpayne@69
|
1086 #define __Pyx_PyUnicode_KIND(u) ((void)u, (0))
|
jpayne@69
|
1087 #define __Pyx_PyUnicode_DATA(u) ((void*)u)
|
jpayne@69
|
1088 #define __Pyx_PyUnicode_READ(k, d, i) ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
|
jpayne@69
|
1089 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GetLength(u))
|
jpayne@69
|
1090 #elif PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
|
jpayne@69
|
1091 #define CYTHON_PEP393_ENABLED 1
|
jpayne@69
|
1092 #if PY_VERSION_HEX >= 0x030C0000
|
jpayne@69
|
1093 #define __Pyx_PyUnicode_READY(op) (0)
|
jpayne@69
|
1094 #else
|
jpayne@69
|
1095 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
|
jpayne@69
|
1096 0 : _PyUnicode_Ready((PyObject *)(op)))
|
jpayne@69
|
1097 #endif
|
jpayne@69
|
1098 #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u)
|
jpayne@69
|
1099 #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
|
jpayne@69
|
1100 #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u)
|
jpayne@69
|
1101 #define __Pyx_PyUnicode_KIND(u) ((int)PyUnicode_KIND(u))
|
jpayne@69
|
1102 #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u)
|
jpayne@69
|
1103 #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
|
jpayne@69
|
1104 #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
|
jpayne@69
|
1105 #if PY_VERSION_HEX >= 0x030C0000
|
jpayne@69
|
1106 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
|
jpayne@69
|
1107 #else
|
jpayne@69
|
1108 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
|
jpayne@69
|
1109 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
|
jpayne@69
|
1110 #else
|
jpayne@69
|
1111 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
|
jpayne@69
|
1112 #endif
|
jpayne@69
|
1113 #endif
|
jpayne@69
|
1114 #else
|
jpayne@69
|
1115 #define CYTHON_PEP393_ENABLED 0
|
jpayne@69
|
1116 #define PyUnicode_1BYTE_KIND 1
|
jpayne@69
|
1117 #define PyUnicode_2BYTE_KIND 2
|
jpayne@69
|
1118 #define PyUnicode_4BYTE_KIND 4
|
jpayne@69
|
1119 #define __Pyx_PyUnicode_READY(op) (0)
|
jpayne@69
|
1120 #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u)
|
jpayne@69
|
1121 #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
|
jpayne@69
|
1122 #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535U : 1114111U)
|
jpayne@69
|
1123 #define __Pyx_PyUnicode_KIND(u) ((int)sizeof(Py_UNICODE))
|
jpayne@69
|
1124 #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u))
|
jpayne@69
|
1125 #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
|
jpayne@69
|
1126 #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = (Py_UNICODE) ch)
|
jpayne@69
|
1127 #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u))
|
jpayne@69
|
1128 #endif
|
jpayne@69
|
1129 #if CYTHON_COMPILING_IN_PYPY
|
jpayne@69
|
1130 #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b)
|
jpayne@69
|
1131 #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b)
|
jpayne@69
|
1132 #else
|
jpayne@69
|
1133 #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b)
|
jpayne@69
|
1134 #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
|
jpayne@69
|
1135 PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
|
jpayne@69
|
1136 #endif
|
jpayne@69
|
1137 #if CYTHON_COMPILING_IN_PYPY
|
jpayne@69
|
1138 #if !defined(PyUnicode_DecodeUnicodeEscape)
|
jpayne@69
|
1139 #define PyUnicode_DecodeUnicodeEscape(s, size, errors) PyUnicode_Decode(s, size, "unicode_escape", errors)
|
jpayne@69
|
1140 #endif
|
jpayne@69
|
1141 #if !defined(PyUnicode_Contains) || (PY_MAJOR_VERSION == 2 && PYPY_VERSION_NUM < 0x07030500)
|
jpayne@69
|
1142 #undef PyUnicode_Contains
|
jpayne@69
|
1143 #define PyUnicode_Contains(u, s) PySequence_Contains(u, s)
|
jpayne@69
|
1144 #endif
|
jpayne@69
|
1145 #if !defined(PyByteArray_Check)
|
jpayne@69
|
1146 #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type)
|
jpayne@69
|
1147 #endif
|
jpayne@69
|
1148 #if !defined(PyObject_Format)
|
jpayne@69
|
1149 #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt)
|
jpayne@69
|
1150 #endif
|
jpayne@69
|
1151 #endif
|
jpayne@69
|
1152 #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))
|
jpayne@69
|
1153 #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
|
jpayne@69
|
1154 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
1155 #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b)
|
jpayne@69
|
1156 #else
|
jpayne@69
|
1157 #define __Pyx_PyString_Format(a, b) PyString_Format(a, b)
|
jpayne@69
|
1158 #endif
|
jpayne@69
|
1159 #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
|
jpayne@69
|
1160 #define PyObject_ASCII(o) PyObject_Repr(o)
|
jpayne@69
|
1161 #endif
|
jpayne@69
|
1162 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
1163 #define PyBaseString_Type PyUnicode_Type
|
jpayne@69
|
1164 #define PyStringObject PyUnicodeObject
|
jpayne@69
|
1165 #define PyString_Type PyUnicode_Type
|
jpayne@69
|
1166 #define PyString_Check PyUnicode_Check
|
jpayne@69
|
1167 #define PyString_CheckExact PyUnicode_CheckExact
|
jpayne@69
|
1168 #ifndef PyObject_Unicode
|
jpayne@69
|
1169 #define PyObject_Unicode PyObject_Str
|
jpayne@69
|
1170 #endif
|
jpayne@69
|
1171 #endif
|
jpayne@69
|
1172 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
1173 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
|
jpayne@69
|
1174 #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
|
jpayne@69
|
1175 #else
|
jpayne@69
|
1176 #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
|
jpayne@69
|
1177 #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
|
jpayne@69
|
1178 #endif
|
jpayne@69
|
1179 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
1180 #define __Pyx_PySequence_ListKeepNew(obj)\
|
jpayne@69
|
1181 (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
|
jpayne@69
|
1182 #else
|
jpayne@69
|
1183 #define __Pyx_PySequence_ListKeepNew(obj) PySequence_List(obj)
|
jpayne@69
|
1184 #endif
|
jpayne@69
|
1185 #ifndef PySet_CheckExact
|
jpayne@69
|
1186 #define PySet_CheckExact(obj) __Pyx_IS_TYPE(obj, &PySet_Type)
|
jpayne@69
|
1187 #endif
|
jpayne@69
|
1188 #if PY_VERSION_HEX >= 0x030900A4
|
jpayne@69
|
1189 #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
|
jpayne@69
|
1190 #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
|
jpayne@69
|
1191 #else
|
jpayne@69
|
1192 #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
|
jpayne@69
|
1193 #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
|
jpayne@69
|
1194 #endif
|
jpayne@69
|
1195 #if CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
1196 #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
|
jpayne@69
|
1197 #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq)
|
jpayne@69
|
1198 #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
|
jpayne@69
|
1199 #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
|
jpayne@69
|
1200 #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
|
jpayne@69
|
1201 #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
|
jpayne@69
|
1202 #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
|
jpayne@69
|
1203 #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
|
jpayne@69
|
1204 #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
|
jpayne@69
|
1205 #else
|
jpayne@69
|
1206 #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
|
jpayne@69
|
1207 #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq)
|
jpayne@69
|
1208 #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
|
jpayne@69
|
1209 #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
|
jpayne@69
|
1210 #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
|
jpayne@69
|
1211 #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
|
jpayne@69
|
1212 #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
|
jpayne@69
|
1213 #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
|
jpayne@69
|
1214 #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
|
jpayne@69
|
1215 #endif
|
jpayne@69
|
1216 #if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
|
jpayne@69
|
1217 #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
|
jpayne@69
|
1218 #else
|
jpayne@69
|
1219 static CYTHON_INLINE PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
|
jpayne@69
|
1220 PyObject *module = PyImport_AddModule(name);
|
jpayne@69
|
1221 Py_XINCREF(module);
|
jpayne@69
|
1222 return module;
|
jpayne@69
|
1223 }
|
jpayne@69
|
1224 #endif
|
jpayne@69
|
1225 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
1226 #define PyIntObject PyLongObject
|
jpayne@69
|
1227 #define PyInt_Type PyLong_Type
|
jpayne@69
|
1228 #define PyInt_Check(op) PyLong_Check(op)
|
jpayne@69
|
1229 #define PyInt_CheckExact(op) PyLong_CheckExact(op)
|
jpayne@69
|
1230 #define __Pyx_Py3Int_Check(op) PyLong_Check(op)
|
jpayne@69
|
1231 #define __Pyx_Py3Int_CheckExact(op) PyLong_CheckExact(op)
|
jpayne@69
|
1232 #define PyInt_FromString PyLong_FromString
|
jpayne@69
|
1233 #define PyInt_FromUnicode PyLong_FromUnicode
|
jpayne@69
|
1234 #define PyInt_FromLong PyLong_FromLong
|
jpayne@69
|
1235 #define PyInt_FromSize_t PyLong_FromSize_t
|
jpayne@69
|
1236 #define PyInt_FromSsize_t PyLong_FromSsize_t
|
jpayne@69
|
1237 #define PyInt_AsLong PyLong_AsLong
|
jpayne@69
|
1238 #define PyInt_AS_LONG PyLong_AS_LONG
|
jpayne@69
|
1239 #define PyInt_AsSsize_t PyLong_AsSsize_t
|
jpayne@69
|
1240 #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
|
jpayne@69
|
1241 #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
|
jpayne@69
|
1242 #define PyNumber_Int PyNumber_Long
|
jpayne@69
|
1243 #else
|
jpayne@69
|
1244 #define __Pyx_Py3Int_Check(op) (PyLong_Check(op) || PyInt_Check(op))
|
jpayne@69
|
1245 #define __Pyx_Py3Int_CheckExact(op) (PyLong_CheckExact(op) || PyInt_CheckExact(op))
|
jpayne@69
|
1246 #endif
|
jpayne@69
|
1247 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
1248 #define PyBoolObject PyLongObject
|
jpayne@69
|
1249 #endif
|
jpayne@69
|
1250 #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
|
jpayne@69
|
1251 #ifndef PyUnicode_InternFromString
|
jpayne@69
|
1252 #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
|
jpayne@69
|
1253 #endif
|
jpayne@69
|
1254 #endif
|
jpayne@69
|
1255 #if PY_VERSION_HEX < 0x030200A4
|
jpayne@69
|
1256 typedef long Py_hash_t;
|
jpayne@69
|
1257 #define __Pyx_PyInt_FromHash_t PyInt_FromLong
|
jpayne@69
|
1258 #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
|
jpayne@69
|
1259 #else
|
jpayne@69
|
1260 #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
|
jpayne@69
|
1261 #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
|
jpayne@69
|
1262 #endif
|
jpayne@69
|
1263 #if CYTHON_USE_ASYNC_SLOTS
|
jpayne@69
|
1264 #if PY_VERSION_HEX >= 0x030500B1
|
jpayne@69
|
1265 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
|
jpayne@69
|
1266 #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
|
jpayne@69
|
1267 #else
|
jpayne@69
|
1268 #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
|
jpayne@69
|
1269 #endif
|
jpayne@69
|
1270 #else
|
jpayne@69
|
1271 #define __Pyx_PyType_AsAsync(obj) NULL
|
jpayne@69
|
1272 #endif
|
jpayne@69
|
1273 #ifndef __Pyx_PyAsyncMethodsStruct
|
jpayne@69
|
1274 typedef struct {
|
jpayne@69
|
1275 unaryfunc am_await;
|
jpayne@69
|
1276 unaryfunc am_aiter;
|
jpayne@69
|
1277 unaryfunc am_anext;
|
jpayne@69
|
1278 } __Pyx_PyAsyncMethodsStruct;
|
jpayne@69
|
1279 #endif
|
jpayne@69
|
1280
|
jpayne@69
|
1281 #if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
|
jpayne@69
|
1282 #if !defined(_USE_MATH_DEFINES)
|
jpayne@69
|
1283 #define _USE_MATH_DEFINES
|
jpayne@69
|
1284 #endif
|
jpayne@69
|
1285 #endif
|
jpayne@69
|
1286 #include <math.h>
|
jpayne@69
|
1287 #ifdef NAN
|
jpayne@69
|
1288 #define __PYX_NAN() ((float) NAN)
|
jpayne@69
|
1289 #else
|
jpayne@69
|
1290 static CYTHON_INLINE float __PYX_NAN() {
|
jpayne@69
|
1291 float value;
|
jpayne@69
|
1292 memset(&value, 0xFF, sizeof(value));
|
jpayne@69
|
1293 return value;
|
jpayne@69
|
1294 }
|
jpayne@69
|
1295 #endif
|
jpayne@69
|
1296 #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
|
jpayne@69
|
1297 #define __Pyx_truncl trunc
|
jpayne@69
|
1298 #else
|
jpayne@69
|
1299 #define __Pyx_truncl truncl
|
jpayne@69
|
1300 #endif
|
jpayne@69
|
1301
|
jpayne@69
|
1302 #define __PYX_MARK_ERR_POS(f_index, lineno) \
|
jpayne@69
|
1303 { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
|
jpayne@69
|
1304 #define __PYX_ERR(f_index, lineno, Ln_error) \
|
jpayne@69
|
1305 { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }
|
jpayne@69
|
1306
|
jpayne@69
|
1307 #ifdef CYTHON_EXTERN_C
|
jpayne@69
|
1308 #undef __PYX_EXTERN_C
|
jpayne@69
|
1309 #define __PYX_EXTERN_C CYTHON_EXTERN_C
|
jpayne@69
|
1310 #elif defined(__PYX_EXTERN_C)
|
jpayne@69
|
1311 #ifdef _MSC_VER
|
jpayne@69
|
1312 #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
|
jpayne@69
|
1313 #else
|
jpayne@69
|
1314 #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
|
jpayne@69
|
1315 #endif
|
jpayne@69
|
1316 #else
|
jpayne@69
|
1317 #ifdef __cplusplus
|
jpayne@69
|
1318 #define __PYX_EXTERN_C extern "C"
|
jpayne@69
|
1319 #else
|
jpayne@69
|
1320 #define __PYX_EXTERN_C extern
|
jpayne@69
|
1321 #endif
|
jpayne@69
|
1322 #endif
|
jpayne@69
|
1323
|
jpayne@69
|
1324 #define __PYX_HAVE__pysam__libcsamtools
|
jpayne@69
|
1325 #define __PYX_HAVE_API__pysam__libcsamtools
|
jpayne@69
|
1326 /* Early includes */
|
jpayne@69
|
1327 #include "samtools.pysam.h"
|
jpayne@69
|
1328 #ifdef _OPENMP
|
jpayne@69
|
1329 #include <omp.h>
|
jpayne@69
|
1330 #endif /* _OPENMP */
|
jpayne@69
|
1331
|
jpayne@69
|
1332 #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
|
jpayne@69
|
1333 #define CYTHON_WITHOUT_ASSERTIONS
|
jpayne@69
|
1334 #endif
|
jpayne@69
|
1335
|
jpayne@69
|
1336 typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
|
jpayne@69
|
1337 const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
|
jpayne@69
|
1338
|
jpayne@69
|
1339 #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
|
jpayne@69
|
1340 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
|
jpayne@69
|
1341 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
|
jpayne@69
|
1342 #define __PYX_DEFAULT_STRING_ENCODING ""
|
jpayne@69
|
1343 #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
|
jpayne@69
|
1344 #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
|
jpayne@69
|
1345 #define __Pyx_uchar_cast(c) ((unsigned char)c)
|
jpayne@69
|
1346 #define __Pyx_long_cast(x) ((long)x)
|
jpayne@69
|
1347 #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\
|
jpayne@69
|
1348 (sizeof(type) < sizeof(Py_ssize_t)) ||\
|
jpayne@69
|
1349 (sizeof(type) > sizeof(Py_ssize_t) &&\
|
jpayne@69
|
1350 likely(v < (type)PY_SSIZE_T_MAX ||\
|
jpayne@69
|
1351 v == (type)PY_SSIZE_T_MAX) &&\
|
jpayne@69
|
1352 (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
|
jpayne@69
|
1353 v == (type)PY_SSIZE_T_MIN))) ||\
|
jpayne@69
|
1354 (sizeof(type) == sizeof(Py_ssize_t) &&\
|
jpayne@69
|
1355 (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
|
jpayne@69
|
1356 v == (type)PY_SSIZE_T_MAX))) )
|
jpayne@69
|
1357 static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
|
jpayne@69
|
1358 return (size_t) i < (size_t) limit;
|
jpayne@69
|
1359 }
|
jpayne@69
|
1360 #if defined (__cplusplus) && __cplusplus >= 201103L
|
jpayne@69
|
1361 #include <cstdlib>
|
jpayne@69
|
1362 #define __Pyx_sst_abs(value) std::abs(value)
|
jpayne@69
|
1363 #elif SIZEOF_INT >= SIZEOF_SIZE_T
|
jpayne@69
|
1364 #define __Pyx_sst_abs(value) abs(value)
|
jpayne@69
|
1365 #elif SIZEOF_LONG >= SIZEOF_SIZE_T
|
jpayne@69
|
1366 #define __Pyx_sst_abs(value) labs(value)
|
jpayne@69
|
1367 #elif defined (_MSC_VER)
|
jpayne@69
|
1368 #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
|
jpayne@69
|
1369 #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
jpayne@69
|
1370 #define __Pyx_sst_abs(value) llabs(value)
|
jpayne@69
|
1371 #elif defined (__GNUC__)
|
jpayne@69
|
1372 #define __Pyx_sst_abs(value) __builtin_llabs(value)
|
jpayne@69
|
1373 #else
|
jpayne@69
|
1374 #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
|
jpayne@69
|
1375 #endif
|
jpayne@69
|
1376 static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
|
jpayne@69
|
1377 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
|
jpayne@69
|
1378 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
|
jpayne@69
|
1379 static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
|
jpayne@69
|
1380 #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
|
jpayne@69
|
1381 #define __Pyx_PyBytes_FromString PyBytes_FromString
|
jpayne@69
|
1382 #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
|
jpayne@69
|
1383 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
|
jpayne@69
|
1384 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
1385 #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString
|
jpayne@69
|
1386 #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
|
jpayne@69
|
1387 #else
|
jpayne@69
|
1388 #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString
|
jpayne@69
|
1389 #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
|
jpayne@69
|
1390 #endif
|
jpayne@69
|
1391 #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s))
|
jpayne@69
|
1392 #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s))
|
jpayne@69
|
1393 #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s))
|
jpayne@69
|
1394 #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s))
|
jpayne@69
|
1395 #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s))
|
jpayne@69
|
1396 #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s))
|
jpayne@69
|
1397 #define __Pyx_PyObject_AsWritableString(s) ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
|
jpayne@69
|
1398 #define __Pyx_PyObject_AsWritableSString(s) ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
|
jpayne@69
|
1399 #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
|
jpayne@69
|
1400 #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s))
|
jpayne@69
|
1401 #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s))
|
jpayne@69
|
1402 #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s)
|
jpayne@69
|
1403 #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s)
|
jpayne@69
|
1404 #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s)
|
jpayne@69
|
1405 #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s)
|
jpayne@69
|
1406 #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
|
jpayne@69
|
1407 #define __Pyx_PyUnicode_FromOrdinal(o) PyUnicode_FromOrdinal((int)o)
|
jpayne@69
|
1408 #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode
|
jpayne@69
|
1409 #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
|
jpayne@69
|
1410 #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
|
jpayne@69
|
1411 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
|
jpayne@69
|
1412 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
|
jpayne@69
|
1413 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
|
jpayne@69
|
1414 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
|
jpayne@69
|
1415 #define __Pyx_PySequence_Tuple(obj)\
|
jpayne@69
|
1416 (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
|
jpayne@69
|
1417 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
|
jpayne@69
|
1418 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
|
jpayne@69
|
1419 static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
|
jpayne@69
|
1420 #if CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
1421 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
|
jpayne@69
|
1422 #else
|
jpayne@69
|
1423 #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
|
jpayne@69
|
1424 #endif
|
jpayne@69
|
1425 #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
|
jpayne@69
|
1426 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
1427 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
|
jpayne@69
|
1428 #else
|
jpayne@69
|
1429 #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
|
jpayne@69
|
1430 #endif
|
jpayne@69
|
1431 #if CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
1432 #if PY_VERSION_HEX >= 0x030C00A7
|
jpayne@69
|
1433 #ifndef _PyLong_SIGN_MASK
|
jpayne@69
|
1434 #define _PyLong_SIGN_MASK 3
|
jpayne@69
|
1435 #endif
|
jpayne@69
|
1436 #ifndef _PyLong_NON_SIZE_BITS
|
jpayne@69
|
1437 #define _PyLong_NON_SIZE_BITS 3
|
jpayne@69
|
1438 #endif
|
jpayne@69
|
1439 #define __Pyx_PyLong_Sign(x) (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK)
|
jpayne@69
|
1440 #define __Pyx_PyLong_IsNeg(x) ((__Pyx_PyLong_Sign(x) & 2) != 0)
|
jpayne@69
|
1441 #define __Pyx_PyLong_IsNonNeg(x) (!__Pyx_PyLong_IsNeg(x))
|
jpayne@69
|
1442 #define __Pyx_PyLong_IsZero(x) (__Pyx_PyLong_Sign(x) & 1)
|
jpayne@69
|
1443 #define __Pyx_PyLong_IsPos(x) (__Pyx_PyLong_Sign(x) == 0)
|
jpayne@69
|
1444 #define __Pyx_PyLong_CompactValueUnsigned(x) (__Pyx_PyLong_Digits(x)[0])
|
jpayne@69
|
1445 #define __Pyx_PyLong_DigitCount(x) ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
|
jpayne@69
|
1446 #define __Pyx_PyLong_SignedDigitCount(x)\
|
jpayne@69
|
1447 ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
|
jpayne@69
|
1448 #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
|
jpayne@69
|
1449 #define __Pyx_PyLong_IsCompact(x) PyUnstable_Long_IsCompact((PyLongObject*) x)
|
jpayne@69
|
1450 #define __Pyx_PyLong_CompactValue(x) PyUnstable_Long_CompactValue((PyLongObject*) x)
|
jpayne@69
|
1451 #else
|
jpayne@69
|
1452 #define __Pyx_PyLong_IsCompact(x) (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
|
jpayne@69
|
1453 #define __Pyx_PyLong_CompactValue(x) ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
|
jpayne@69
|
1454 #endif
|
jpayne@69
|
1455 typedef Py_ssize_t __Pyx_compact_pylong;
|
jpayne@69
|
1456 typedef size_t __Pyx_compact_upylong;
|
jpayne@69
|
1457 #else
|
jpayne@69
|
1458 #define __Pyx_PyLong_IsNeg(x) (Py_SIZE(x) < 0)
|
jpayne@69
|
1459 #define __Pyx_PyLong_IsNonNeg(x) (Py_SIZE(x) >= 0)
|
jpayne@69
|
1460 #define __Pyx_PyLong_IsZero(x) (Py_SIZE(x) == 0)
|
jpayne@69
|
1461 #define __Pyx_PyLong_IsPos(x) (Py_SIZE(x) > 0)
|
jpayne@69
|
1462 #define __Pyx_PyLong_CompactValueUnsigned(x) ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
|
jpayne@69
|
1463 #define __Pyx_PyLong_DigitCount(x) __Pyx_sst_abs(Py_SIZE(x))
|
jpayne@69
|
1464 #define __Pyx_PyLong_SignedDigitCount(x) Py_SIZE(x)
|
jpayne@69
|
1465 #define __Pyx_PyLong_IsCompact(x) (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
|
jpayne@69
|
1466 #define __Pyx_PyLong_CompactValue(x)\
|
jpayne@69
|
1467 ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
|
jpayne@69
|
1468 typedef sdigit __Pyx_compact_pylong;
|
jpayne@69
|
1469 typedef digit __Pyx_compact_upylong;
|
jpayne@69
|
1470 #endif
|
jpayne@69
|
1471 #if PY_VERSION_HEX >= 0x030C00A5
|
jpayne@69
|
1472 #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->long_value.ob_digit)
|
jpayne@69
|
1473 #else
|
jpayne@69
|
1474 #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->ob_digit)
|
jpayne@69
|
1475 #endif
|
jpayne@69
|
1476 #endif
|
jpayne@69
|
1477 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
|
jpayne@69
|
1478 #include <string.h>
|
jpayne@69
|
1479 static int __Pyx_sys_getdefaultencoding_not_ascii;
|
jpayne@69
|
1480 static int __Pyx_init_sys_getdefaultencoding_params(void) {
|
jpayne@69
|
1481 PyObject* sys;
|
jpayne@69
|
1482 PyObject* default_encoding = NULL;
|
jpayne@69
|
1483 PyObject* ascii_chars_u = NULL;
|
jpayne@69
|
1484 PyObject* ascii_chars_b = NULL;
|
jpayne@69
|
1485 const char* default_encoding_c;
|
jpayne@69
|
1486 sys = PyImport_ImportModule("sys");
|
jpayne@69
|
1487 if (!sys) goto bad;
|
jpayne@69
|
1488 default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
|
jpayne@69
|
1489 Py_DECREF(sys);
|
jpayne@69
|
1490 if (!default_encoding) goto bad;
|
jpayne@69
|
1491 default_encoding_c = PyBytes_AsString(default_encoding);
|
jpayne@69
|
1492 if (!default_encoding_c) goto bad;
|
jpayne@69
|
1493 if (strcmp(default_encoding_c, "ascii") == 0) {
|
jpayne@69
|
1494 __Pyx_sys_getdefaultencoding_not_ascii = 0;
|
jpayne@69
|
1495 } else {
|
jpayne@69
|
1496 char ascii_chars[128];
|
jpayne@69
|
1497 int c;
|
jpayne@69
|
1498 for (c = 0; c < 128; c++) {
|
jpayne@69
|
1499 ascii_chars[c] = (char) c;
|
jpayne@69
|
1500 }
|
jpayne@69
|
1501 __Pyx_sys_getdefaultencoding_not_ascii = 1;
|
jpayne@69
|
1502 ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
|
jpayne@69
|
1503 if (!ascii_chars_u) goto bad;
|
jpayne@69
|
1504 ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
|
jpayne@69
|
1505 if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
|
jpayne@69
|
1506 PyErr_Format(
|
jpayne@69
|
1507 PyExc_ValueError,
|
jpayne@69
|
1508 "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
|
jpayne@69
|
1509 default_encoding_c);
|
jpayne@69
|
1510 goto bad;
|
jpayne@69
|
1511 }
|
jpayne@69
|
1512 Py_DECREF(ascii_chars_u);
|
jpayne@69
|
1513 Py_DECREF(ascii_chars_b);
|
jpayne@69
|
1514 }
|
jpayne@69
|
1515 Py_DECREF(default_encoding);
|
jpayne@69
|
1516 return 0;
|
jpayne@69
|
1517 bad:
|
jpayne@69
|
1518 Py_XDECREF(default_encoding);
|
jpayne@69
|
1519 Py_XDECREF(ascii_chars_u);
|
jpayne@69
|
1520 Py_XDECREF(ascii_chars_b);
|
jpayne@69
|
1521 return -1;
|
jpayne@69
|
1522 }
|
jpayne@69
|
1523 #endif
|
jpayne@69
|
1524 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
|
jpayne@69
|
1525 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
|
jpayne@69
|
1526 #else
|
jpayne@69
|
1527 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
|
jpayne@69
|
1528 #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
|
jpayne@69
|
1529 #include <string.h>
|
jpayne@69
|
1530 static char* __PYX_DEFAULT_STRING_ENCODING;
|
jpayne@69
|
1531 static int __Pyx_init_sys_getdefaultencoding_params(void) {
|
jpayne@69
|
1532 PyObject* sys;
|
jpayne@69
|
1533 PyObject* default_encoding = NULL;
|
jpayne@69
|
1534 char* default_encoding_c;
|
jpayne@69
|
1535 sys = PyImport_ImportModule("sys");
|
jpayne@69
|
1536 if (!sys) goto bad;
|
jpayne@69
|
1537 default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
|
jpayne@69
|
1538 Py_DECREF(sys);
|
jpayne@69
|
1539 if (!default_encoding) goto bad;
|
jpayne@69
|
1540 default_encoding_c = PyBytes_AsString(default_encoding);
|
jpayne@69
|
1541 if (!default_encoding_c) goto bad;
|
jpayne@69
|
1542 __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
|
jpayne@69
|
1543 if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
|
jpayne@69
|
1544 strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
|
jpayne@69
|
1545 Py_DECREF(default_encoding);
|
jpayne@69
|
1546 return 0;
|
jpayne@69
|
1547 bad:
|
jpayne@69
|
1548 Py_XDECREF(default_encoding);
|
jpayne@69
|
1549 return -1;
|
jpayne@69
|
1550 }
|
jpayne@69
|
1551 #endif
|
jpayne@69
|
1552 #endif
|
jpayne@69
|
1553
|
jpayne@69
|
1554
|
jpayne@69
|
1555 /* Test for GCC > 2.95 */
|
jpayne@69
|
1556 #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
|
jpayne@69
|
1557 #define likely(x) __builtin_expect(!!(x), 1)
|
jpayne@69
|
1558 #define unlikely(x) __builtin_expect(!!(x), 0)
|
jpayne@69
|
1559 #else /* !__GNUC__ or GCC < 2.95 */
|
jpayne@69
|
1560 #define likely(x) (x)
|
jpayne@69
|
1561 #define unlikely(x) (x)
|
jpayne@69
|
1562 #endif /* __GNUC__ */
|
jpayne@69
|
1563 static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
|
jpayne@69
|
1564
|
jpayne@69
|
1565 #if !CYTHON_USE_MODULE_STATE
|
jpayne@69
|
1566 static PyObject *__pyx_m = NULL;
|
jpayne@69
|
1567 #endif
|
jpayne@69
|
1568 static int __pyx_lineno;
|
jpayne@69
|
1569 static int __pyx_clineno = 0;
|
jpayne@69
|
1570 static const char * __pyx_cfilenm = __FILE__;
|
jpayne@69
|
1571 static const char *__pyx_filename;
|
jpayne@69
|
1572
|
jpayne@69
|
1573 /* #### Code section: filename_table ### */
|
jpayne@69
|
1574
|
jpayne@69
|
1575 static const char *__pyx_f[] = {
|
jpayne@69
|
1576 "pysam/libcsamtools.pyx",
|
jpayne@69
|
1577 };
|
jpayne@69
|
1578 /* #### Code section: utility_code_proto_before_types ### */
|
jpayne@69
|
1579 /* ForceInitThreads.proto */
|
jpayne@69
|
1580 #ifndef __PYX_FORCE_INIT_THREADS
|
jpayne@69
|
1581 #define __PYX_FORCE_INIT_THREADS 0
|
jpayne@69
|
1582 #endif
|
jpayne@69
|
1583
|
jpayne@69
|
1584 /* #### Code section: numeric_typedefs ### */
|
jpayne@69
|
1585 /* #### Code section: complex_type_declarations ### */
|
jpayne@69
|
1586 /* #### Code section: type_declarations ### */
|
jpayne@69
|
1587
|
jpayne@69
|
1588 /*--- Type declarations ---*/
|
jpayne@69
|
1589 /* #### Code section: utility_code_proto ### */
|
jpayne@69
|
1590
|
jpayne@69
|
1591 /* --- Runtime support code (head) --- */
|
jpayne@69
|
1592 /* Refnanny.proto */
|
jpayne@69
|
1593 #ifndef CYTHON_REFNANNY
|
jpayne@69
|
1594 #define CYTHON_REFNANNY 0
|
jpayne@69
|
1595 #endif
|
jpayne@69
|
1596 #if CYTHON_REFNANNY
|
jpayne@69
|
1597 typedef struct {
|
jpayne@69
|
1598 void (*INCREF)(void*, PyObject*, Py_ssize_t);
|
jpayne@69
|
1599 void (*DECREF)(void*, PyObject*, Py_ssize_t);
|
jpayne@69
|
1600 void (*GOTREF)(void*, PyObject*, Py_ssize_t);
|
jpayne@69
|
1601 void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
|
jpayne@69
|
1602 void* (*SetupContext)(const char*, Py_ssize_t, const char*);
|
jpayne@69
|
1603 void (*FinishContext)(void**);
|
jpayne@69
|
1604 } __Pyx_RefNannyAPIStruct;
|
jpayne@69
|
1605 static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
|
jpayne@69
|
1606 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
|
jpayne@69
|
1607 #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
|
jpayne@69
|
1608 #ifdef WITH_THREAD
|
jpayne@69
|
1609 #define __Pyx_RefNannySetupContext(name, acquire_gil)\
|
jpayne@69
|
1610 if (acquire_gil) {\
|
jpayne@69
|
1611 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
|
jpayne@69
|
1612 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
|
jpayne@69
|
1613 PyGILState_Release(__pyx_gilstate_save);\
|
jpayne@69
|
1614 } else {\
|
jpayne@69
|
1615 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
|
jpayne@69
|
1616 }
|
jpayne@69
|
1617 #define __Pyx_RefNannyFinishContextNogil() {\
|
jpayne@69
|
1618 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
|
jpayne@69
|
1619 __Pyx_RefNannyFinishContext();\
|
jpayne@69
|
1620 PyGILState_Release(__pyx_gilstate_save);\
|
jpayne@69
|
1621 }
|
jpayne@69
|
1622 #else
|
jpayne@69
|
1623 #define __Pyx_RefNannySetupContext(name, acquire_gil)\
|
jpayne@69
|
1624 __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__))
|
jpayne@69
|
1625 #define __Pyx_RefNannyFinishContextNogil() __Pyx_RefNannyFinishContext()
|
jpayne@69
|
1626 #endif
|
jpayne@69
|
1627 #define __Pyx_RefNannyFinishContextNogil() {\
|
jpayne@69
|
1628 PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
|
jpayne@69
|
1629 __Pyx_RefNannyFinishContext();\
|
jpayne@69
|
1630 PyGILState_Release(__pyx_gilstate_save);\
|
jpayne@69
|
1631 }
|
jpayne@69
|
1632 #define __Pyx_RefNannyFinishContext()\
|
jpayne@69
|
1633 __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
|
jpayne@69
|
1634 #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
|
jpayne@69
|
1635 #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
|
jpayne@69
|
1636 #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
|
jpayne@69
|
1637 #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
|
jpayne@69
|
1638 #define __Pyx_XINCREF(r) do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
|
jpayne@69
|
1639 #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
|
jpayne@69
|
1640 #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
|
jpayne@69
|
1641 #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
|
jpayne@69
|
1642 #else
|
jpayne@69
|
1643 #define __Pyx_RefNannyDeclarations
|
jpayne@69
|
1644 #define __Pyx_RefNannySetupContext(name, acquire_gil)
|
jpayne@69
|
1645 #define __Pyx_RefNannyFinishContextNogil()
|
jpayne@69
|
1646 #define __Pyx_RefNannyFinishContext()
|
jpayne@69
|
1647 #define __Pyx_INCREF(r) Py_INCREF(r)
|
jpayne@69
|
1648 #define __Pyx_DECREF(r) Py_DECREF(r)
|
jpayne@69
|
1649 #define __Pyx_GOTREF(r)
|
jpayne@69
|
1650 #define __Pyx_GIVEREF(r)
|
jpayne@69
|
1651 #define __Pyx_XINCREF(r) Py_XINCREF(r)
|
jpayne@69
|
1652 #define __Pyx_XDECREF(r) Py_XDECREF(r)
|
jpayne@69
|
1653 #define __Pyx_XGOTREF(r)
|
jpayne@69
|
1654 #define __Pyx_XGIVEREF(r)
|
jpayne@69
|
1655 #endif
|
jpayne@69
|
1656 #define __Pyx_Py_XDECREF_SET(r, v) do {\
|
jpayne@69
|
1657 PyObject *tmp = (PyObject *) r;\
|
jpayne@69
|
1658 r = v; Py_XDECREF(tmp);\
|
jpayne@69
|
1659 } while (0)
|
jpayne@69
|
1660 #define __Pyx_XDECREF_SET(r, v) do {\
|
jpayne@69
|
1661 PyObject *tmp = (PyObject *) r;\
|
jpayne@69
|
1662 r = v; __Pyx_XDECREF(tmp);\
|
jpayne@69
|
1663 } while (0)
|
jpayne@69
|
1664 #define __Pyx_DECREF_SET(r, v) do {\
|
jpayne@69
|
1665 PyObject *tmp = (PyObject *) r;\
|
jpayne@69
|
1666 r = v; __Pyx_DECREF(tmp);\
|
jpayne@69
|
1667 } while (0)
|
jpayne@69
|
1668 #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
|
jpayne@69
|
1669 #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
|
jpayne@69
|
1670
|
jpayne@69
|
1671 /* TupleAndListFromArray.proto */
|
jpayne@69
|
1672 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
1673 static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
|
jpayne@69
|
1674 static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
|
jpayne@69
|
1675 #endif
|
jpayne@69
|
1676
|
jpayne@69
|
1677 /* IncludeStringH.proto */
|
jpayne@69
|
1678 #include <string.h>
|
jpayne@69
|
1679
|
jpayne@69
|
1680 /* BytesEquals.proto */
|
jpayne@69
|
1681 static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);
|
jpayne@69
|
1682
|
jpayne@69
|
1683 /* UnicodeEquals.proto */
|
jpayne@69
|
1684 static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);
|
jpayne@69
|
1685
|
jpayne@69
|
1686 /* fastcall.proto */
|
jpayne@69
|
1687 #if CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
1688 #define __Pyx_Arg_VARARGS(args, i) PySequence_GetItem(args, i)
|
jpayne@69
|
1689 #elif CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
1690 #define __Pyx_Arg_VARARGS(args, i) PyTuple_GET_ITEM(args, i)
|
jpayne@69
|
1691 #else
|
jpayne@69
|
1692 #define __Pyx_Arg_VARARGS(args, i) PyTuple_GetItem(args, i)
|
jpayne@69
|
1693 #endif
|
jpayne@69
|
1694 #if CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
1695 #define __Pyx_Arg_NewRef_VARARGS(arg) __Pyx_NewRef(arg)
|
jpayne@69
|
1696 #define __Pyx_Arg_XDECREF_VARARGS(arg) Py_XDECREF(arg)
|
jpayne@69
|
1697 #else
|
jpayne@69
|
1698 #define __Pyx_Arg_NewRef_VARARGS(arg) arg
|
jpayne@69
|
1699 #define __Pyx_Arg_XDECREF_VARARGS(arg)
|
jpayne@69
|
1700 #endif
|
jpayne@69
|
1701 #define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
|
jpayne@69
|
1702 #define __Pyx_KwValues_VARARGS(args, nargs) NULL
|
jpayne@69
|
1703 #define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
|
jpayne@69
|
1704 #define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
|
jpayne@69
|
1705 #if CYTHON_METH_FASTCALL
|
jpayne@69
|
1706 #define __Pyx_Arg_FASTCALL(args, i) args[i]
|
jpayne@69
|
1707 #define __Pyx_NumKwargs_FASTCALL(kwds) PyTuple_GET_SIZE(kwds)
|
jpayne@69
|
1708 #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
|
jpayne@69
|
1709 static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
|
jpayne@69
|
1710 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
|
jpayne@69
|
1711 CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
|
jpayne@69
|
1712 #else
|
jpayne@69
|
1713 #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
|
jpayne@69
|
1714 #endif
|
jpayne@69
|
1715 #define __Pyx_Arg_NewRef_FASTCALL(arg) arg /* no-op, __Pyx_Arg_FASTCALL is direct and this needs
|
jpayne@69
|
1716 to have the same reference counting */
|
jpayne@69
|
1717 #define __Pyx_Arg_XDECREF_FASTCALL(arg)
|
jpayne@69
|
1718 #else
|
jpayne@69
|
1719 #define __Pyx_Arg_FASTCALL __Pyx_Arg_VARARGS
|
jpayne@69
|
1720 #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
|
jpayne@69
|
1721 #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
|
jpayne@69
|
1722 #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
|
jpayne@69
|
1723 #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
|
jpayne@69
|
1724 #define __Pyx_Arg_NewRef_FASTCALL(arg) __Pyx_Arg_NewRef_VARARGS(arg)
|
jpayne@69
|
1725 #define __Pyx_Arg_XDECREF_FASTCALL(arg) __Pyx_Arg_XDECREF_VARARGS(arg)
|
jpayne@69
|
1726 #endif
|
jpayne@69
|
1727 #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
1728 #define __Pyx_ArgsSlice_VARARGS(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_VARARGS(args, start), stop - start)
|
jpayne@69
|
1729 #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_FASTCALL(args, start), stop - start)
|
jpayne@69
|
1730 #else
|
jpayne@69
|
1731 #define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
|
jpayne@69
|
1732 #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop)
|
jpayne@69
|
1733 #endif
|
jpayne@69
|
1734
|
jpayne@69
|
1735 /* IncludeStructmemberH.proto */
|
jpayne@69
|
1736 #include <structmember.h>
|
jpayne@69
|
1737
|
jpayne@69
|
1738 /* FixUpExtensionType.proto */
|
jpayne@69
|
1739 #if CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
1740 static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);
|
jpayne@69
|
1741 #endif
|
jpayne@69
|
1742
|
jpayne@69
|
1743 /* FetchSharedCythonModule.proto */
|
jpayne@69
|
1744 static PyObject *__Pyx_FetchSharedCythonABIModule(void);
|
jpayne@69
|
1745
|
jpayne@69
|
1746 /* FetchCommonType.proto */
|
jpayne@69
|
1747 #if !CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
1748 static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);
|
jpayne@69
|
1749 #else
|
jpayne@69
|
1750 static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases);
|
jpayne@69
|
1751 #endif
|
jpayne@69
|
1752
|
jpayne@69
|
1753 /* PyMethodNew.proto */
|
jpayne@69
|
1754 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
1755 static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
|
jpayne@69
|
1756 PyObject *typesModule=NULL, *methodType=NULL, *result=NULL;
|
jpayne@69
|
1757 CYTHON_UNUSED_VAR(typ);
|
jpayne@69
|
1758 if (!self)
|
jpayne@69
|
1759 return __Pyx_NewRef(func);
|
jpayne@69
|
1760 typesModule = PyImport_ImportModule("types");
|
jpayne@69
|
1761 if (!typesModule) return NULL;
|
jpayne@69
|
1762 methodType = PyObject_GetAttrString(typesModule, "MethodType");
|
jpayne@69
|
1763 Py_DECREF(typesModule);
|
jpayne@69
|
1764 if (!methodType) return NULL;
|
jpayne@69
|
1765 result = PyObject_CallFunctionObjArgs(methodType, func, self, NULL);
|
jpayne@69
|
1766 Py_DECREF(methodType);
|
jpayne@69
|
1767 return result;
|
jpayne@69
|
1768 }
|
jpayne@69
|
1769 #elif PY_MAJOR_VERSION >= 3
|
jpayne@69
|
1770 static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
|
jpayne@69
|
1771 CYTHON_UNUSED_VAR(typ);
|
jpayne@69
|
1772 if (!self)
|
jpayne@69
|
1773 return __Pyx_NewRef(func);
|
jpayne@69
|
1774 return PyMethod_New(func, self);
|
jpayne@69
|
1775 }
|
jpayne@69
|
1776 #else
|
jpayne@69
|
1777 #define __Pyx_PyMethod_New PyMethod_New
|
jpayne@69
|
1778 #endif
|
jpayne@69
|
1779
|
jpayne@69
|
1780 /* PyObjectGetAttrStr.proto */
|
jpayne@69
|
1781 #if CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
1782 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
|
jpayne@69
|
1783 #else
|
jpayne@69
|
1784 #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
|
jpayne@69
|
1785 #endif
|
jpayne@69
|
1786
|
jpayne@69
|
1787 /* PyVectorcallFastCallDict.proto */
|
jpayne@69
|
1788 #if CYTHON_METH_FASTCALL
|
jpayne@69
|
1789 static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
|
jpayne@69
|
1790 #endif
|
jpayne@69
|
1791
|
jpayne@69
|
1792 /* CythonFunctionShared.proto */
|
jpayne@69
|
1793 #define __Pyx_CyFunction_USED
|
jpayne@69
|
1794 #define __Pyx_CYFUNCTION_STATICMETHOD 0x01
|
jpayne@69
|
1795 #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02
|
jpayne@69
|
1796 #define __Pyx_CYFUNCTION_CCLASS 0x04
|
jpayne@69
|
1797 #define __Pyx_CYFUNCTION_COROUTINE 0x08
|
jpayne@69
|
1798 #define __Pyx_CyFunction_GetClosure(f)\
|
jpayne@69
|
1799 (((__pyx_CyFunctionObject *) (f))->func_closure)
|
jpayne@69
|
1800 #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
1801 #define __Pyx_CyFunction_GetClassObj(f)\
|
jpayne@69
|
1802 (((__pyx_CyFunctionObject *) (f))->func_classobj)
|
jpayne@69
|
1803 #else
|
jpayne@69
|
1804 #define __Pyx_CyFunction_GetClassObj(f)\
|
jpayne@69
|
1805 ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
|
jpayne@69
|
1806 #endif
|
jpayne@69
|
1807 #define __Pyx_CyFunction_SetClassObj(f, classobj)\
|
jpayne@69
|
1808 __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj))
|
jpayne@69
|
1809 #define __Pyx_CyFunction_Defaults(type, f)\
|
jpayne@69
|
1810 ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
|
jpayne@69
|
1811 #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
|
jpayne@69
|
1812 ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
|
jpayne@69
|
1813 typedef struct {
|
jpayne@69
|
1814 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
1815 PyObject_HEAD
|
jpayne@69
|
1816 PyObject *func;
|
jpayne@69
|
1817 #elif PY_VERSION_HEX < 0x030900B1
|
jpayne@69
|
1818 PyCFunctionObject func;
|
jpayne@69
|
1819 #else
|
jpayne@69
|
1820 PyCMethodObject func;
|
jpayne@69
|
1821 #endif
|
jpayne@69
|
1822 #if CYTHON_BACKPORT_VECTORCALL
|
jpayne@69
|
1823 __pyx_vectorcallfunc func_vectorcall;
|
jpayne@69
|
1824 #endif
|
jpayne@69
|
1825 #if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
1826 PyObject *func_weakreflist;
|
jpayne@69
|
1827 #endif
|
jpayne@69
|
1828 PyObject *func_dict;
|
jpayne@69
|
1829 PyObject *func_name;
|
jpayne@69
|
1830 PyObject *func_qualname;
|
jpayne@69
|
1831 PyObject *func_doc;
|
jpayne@69
|
1832 PyObject *func_globals;
|
jpayne@69
|
1833 PyObject *func_code;
|
jpayne@69
|
1834 PyObject *func_closure;
|
jpayne@69
|
1835 #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
1836 PyObject *func_classobj;
|
jpayne@69
|
1837 #endif
|
jpayne@69
|
1838 void *defaults;
|
jpayne@69
|
1839 int defaults_pyobjects;
|
jpayne@69
|
1840 size_t defaults_size;
|
jpayne@69
|
1841 int flags;
|
jpayne@69
|
1842 PyObject *defaults_tuple;
|
jpayne@69
|
1843 PyObject *defaults_kwdict;
|
jpayne@69
|
1844 PyObject *(*defaults_getter)(PyObject *);
|
jpayne@69
|
1845 PyObject *func_annotations;
|
jpayne@69
|
1846 PyObject *func_is_coroutine;
|
jpayne@69
|
1847 } __pyx_CyFunctionObject;
|
jpayne@69
|
1848 #undef __Pyx_CyOrPyCFunction_Check
|
jpayne@69
|
1849 #define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_CyFunctionType)
|
jpayne@69
|
1850 #define __Pyx_CyOrPyCFunction_Check(obj) __Pyx_TypeCheck2(obj, __pyx_CyFunctionType, &PyCFunction_Type)
|
jpayne@69
|
1851 #define __Pyx_CyFunction_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_CyFunctionType)
|
jpayne@69
|
1852 static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc);
|
jpayne@69
|
1853 #undef __Pyx_IsSameCFunction
|
jpayne@69
|
1854 #define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCyOrCFunction(func, cfunc)
|
jpayne@69
|
1855 static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
|
jpayne@69
|
1856 int flags, PyObject* qualname,
|
jpayne@69
|
1857 PyObject *closure,
|
jpayne@69
|
1858 PyObject *module, PyObject *globals,
|
jpayne@69
|
1859 PyObject* code);
|
jpayne@69
|
1860 static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
|
jpayne@69
|
1861 static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
|
jpayne@69
|
1862 size_t size,
|
jpayne@69
|
1863 int pyobjects);
|
jpayne@69
|
1864 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
|
jpayne@69
|
1865 PyObject *tuple);
|
jpayne@69
|
1866 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
|
jpayne@69
|
1867 PyObject *dict);
|
jpayne@69
|
1868 static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
|
jpayne@69
|
1869 PyObject *dict);
|
jpayne@69
|
1870 static int __pyx_CyFunction_init(PyObject *module);
|
jpayne@69
|
1871 #if CYTHON_METH_FASTCALL
|
jpayne@69
|
1872 static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
|
jpayne@69
|
1873 static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
|
jpayne@69
|
1874 static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
|
jpayne@69
|
1875 static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
|
jpayne@69
|
1876 #if CYTHON_BACKPORT_VECTORCALL
|
jpayne@69
|
1877 #define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall)
|
jpayne@69
|
1878 #else
|
jpayne@69
|
1879 #define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
|
jpayne@69
|
1880 #endif
|
jpayne@69
|
1881 #endif
|
jpayne@69
|
1882
|
jpayne@69
|
1883 /* CythonFunction.proto */
|
jpayne@69
|
1884 static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
|
jpayne@69
|
1885 int flags, PyObject* qualname,
|
jpayne@69
|
1886 PyObject *closure,
|
jpayne@69
|
1887 PyObject *module, PyObject *globals,
|
jpayne@69
|
1888 PyObject* code);
|
jpayne@69
|
1889
|
jpayne@69
|
1890 /* PyDictVersioning.proto */
|
jpayne@69
|
1891 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
1892 #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
|
jpayne@69
|
1893 #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
|
jpayne@69
|
1894 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
|
jpayne@69
|
1895 (version_var) = __PYX_GET_DICT_VERSION(dict);\
|
jpayne@69
|
1896 (cache_var) = (value);
|
jpayne@69
|
1897 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
|
jpayne@69
|
1898 static PY_UINT64_T __pyx_dict_version = 0;\
|
jpayne@69
|
1899 static PyObject *__pyx_dict_cached_value = NULL;\
|
jpayne@69
|
1900 if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
|
jpayne@69
|
1901 (VAR) = __pyx_dict_cached_value;\
|
jpayne@69
|
1902 } else {\
|
jpayne@69
|
1903 (VAR) = __pyx_dict_cached_value = (LOOKUP);\
|
jpayne@69
|
1904 __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
|
jpayne@69
|
1905 }\
|
jpayne@69
|
1906 }
|
jpayne@69
|
1907 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
|
jpayne@69
|
1908 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
|
jpayne@69
|
1909 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
|
jpayne@69
|
1910 #else
|
jpayne@69
|
1911 #define __PYX_GET_DICT_VERSION(dict) (0)
|
jpayne@69
|
1912 #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
|
jpayne@69
|
1913 #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP);
|
jpayne@69
|
1914 #endif
|
jpayne@69
|
1915
|
jpayne@69
|
1916 /* PyErrExceptionMatches.proto */
|
jpayne@69
|
1917 #if CYTHON_FAST_THREAD_STATE
|
jpayne@69
|
1918 #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
|
jpayne@69
|
1919 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
|
jpayne@69
|
1920 #else
|
jpayne@69
|
1921 #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
|
jpayne@69
|
1922 #endif
|
jpayne@69
|
1923
|
jpayne@69
|
1924 /* PyThreadStateGet.proto */
|
jpayne@69
|
1925 #if CYTHON_FAST_THREAD_STATE
|
jpayne@69
|
1926 #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
|
jpayne@69
|
1927 #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current;
|
jpayne@69
|
1928 #if PY_VERSION_HEX >= 0x030C00A6
|
jpayne@69
|
1929 #define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL)
|
jpayne@69
|
1930 #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
|
jpayne@69
|
1931 #else
|
jpayne@69
|
1932 #define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL)
|
jpayne@69
|
1933 #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type)
|
jpayne@69
|
1934 #endif
|
jpayne@69
|
1935 #else
|
jpayne@69
|
1936 #define __Pyx_PyThreadState_declare
|
jpayne@69
|
1937 #define __Pyx_PyThreadState_assign
|
jpayne@69
|
1938 #define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL)
|
jpayne@69
|
1939 #define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred()
|
jpayne@69
|
1940 #endif
|
jpayne@69
|
1941
|
jpayne@69
|
1942 /* PyErrFetchRestore.proto */
|
jpayne@69
|
1943 #if CYTHON_FAST_THREAD_STATE
|
jpayne@69
|
1944 #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
|
jpayne@69
|
1945 #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
|
jpayne@69
|
1946 #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
|
jpayne@69
|
1947 #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
|
jpayne@69
|
1948 #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
|
jpayne@69
|
1949 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
|
jpayne@69
|
1950 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
|
jpayne@69
|
1951 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
|
jpayne@69
|
1952 #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
|
jpayne@69
|
1953 #else
|
jpayne@69
|
1954 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
|
jpayne@69
|
1955 #endif
|
jpayne@69
|
1956 #else
|
jpayne@69
|
1957 #define __Pyx_PyErr_Clear() PyErr_Clear()
|
jpayne@69
|
1958 #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
|
jpayne@69
|
1959 #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
|
jpayne@69
|
1960 #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
|
jpayne@69
|
1961 #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb)
|
jpayne@69
|
1962 #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb)
|
jpayne@69
|
1963 #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
|
jpayne@69
|
1964 #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
|
jpayne@69
|
1965 #endif
|
jpayne@69
|
1966
|
jpayne@69
|
1967 /* PyObjectGetAttrStrNoError.proto */
|
jpayne@69
|
1968 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
|
jpayne@69
|
1969
|
jpayne@69
|
1970 /* CLineInTraceback.proto */
|
jpayne@69
|
1971 #ifdef CYTHON_CLINE_IN_TRACEBACK
|
jpayne@69
|
1972 #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
|
jpayne@69
|
1973 #else
|
jpayne@69
|
1974 static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
|
jpayne@69
|
1975 #endif
|
jpayne@69
|
1976
|
jpayne@69
|
1977 /* CodeObjectCache.proto */
|
jpayne@69
|
1978 #if !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
1979 typedef struct {
|
jpayne@69
|
1980 PyCodeObject* code_object;
|
jpayne@69
|
1981 int code_line;
|
jpayne@69
|
1982 } __Pyx_CodeObjectCacheEntry;
|
jpayne@69
|
1983 struct __Pyx_CodeObjectCache {
|
jpayne@69
|
1984 int count;
|
jpayne@69
|
1985 int max_count;
|
jpayne@69
|
1986 __Pyx_CodeObjectCacheEntry* entries;
|
jpayne@69
|
1987 };
|
jpayne@69
|
1988 static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
|
jpayne@69
|
1989 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
|
jpayne@69
|
1990 static PyCodeObject *__pyx_find_code_object(int code_line);
|
jpayne@69
|
1991 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
|
jpayne@69
|
1992 #endif
|
jpayne@69
|
1993
|
jpayne@69
|
1994 /* AddTraceback.proto */
|
jpayne@69
|
1995 static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
jpayne@69
|
1996 int py_line, const char *filename);
|
jpayne@69
|
1997
|
jpayne@69
|
1998 /* FormatTypeName.proto */
|
jpayne@69
|
1999 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
2000 typedef PyObject *__Pyx_TypeName;
|
jpayne@69
|
2001 #define __Pyx_FMT_TYPENAME "%U"
|
jpayne@69
|
2002 static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp);
|
jpayne@69
|
2003 #define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
|
jpayne@69
|
2004 #else
|
jpayne@69
|
2005 typedef const char *__Pyx_TypeName;
|
jpayne@69
|
2006 #define __Pyx_FMT_TYPENAME "%.200s"
|
jpayne@69
|
2007 #define __Pyx_PyType_GetName(tp) ((tp)->tp_name)
|
jpayne@69
|
2008 #define __Pyx_DECREF_TypeName(obj)
|
jpayne@69
|
2009 #endif
|
jpayne@69
|
2010
|
jpayne@69
|
2011 /* GCCDiagnostics.proto */
|
jpayne@69
|
2012 #if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
|
jpayne@69
|
2013 #define __Pyx_HAS_GCC_DIAGNOSTIC
|
jpayne@69
|
2014 #endif
|
jpayne@69
|
2015
|
jpayne@69
|
2016 /* CIntToPy.proto */
|
jpayne@69
|
2017 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
|
jpayne@69
|
2018
|
jpayne@69
|
2019 /* CIntFromPy.proto */
|
jpayne@69
|
2020 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
|
jpayne@69
|
2021
|
jpayne@69
|
2022 /* CIntFromPy.proto */
|
jpayne@69
|
2023 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
|
jpayne@69
|
2024
|
jpayne@69
|
2025 /* FastTypeChecks.proto */
|
jpayne@69
|
2026 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
2027 #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
|
jpayne@69
|
2028 #define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
|
jpayne@69
|
2029 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
|
jpayne@69
|
2030 static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
|
jpayne@69
|
2031 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
|
jpayne@69
|
2032 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
|
jpayne@69
|
2033 #else
|
jpayne@69
|
2034 #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
|
jpayne@69
|
2035 #define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
|
jpayne@69
|
2036 #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
|
jpayne@69
|
2037 #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
|
jpayne@69
|
2038 #endif
|
jpayne@69
|
2039 #define __Pyx_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
|
jpayne@69
|
2040 #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
|
jpayne@69
|
2041
|
jpayne@69
|
2042 /* CheckBinaryVersion.proto */
|
jpayne@69
|
2043 static unsigned long __Pyx_get_runtime_version(void);
|
jpayne@69
|
2044 static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);
|
jpayne@69
|
2045
|
jpayne@69
|
2046 /* InitStrings.proto */
|
jpayne@69
|
2047 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
|
jpayne@69
|
2048
|
jpayne@69
|
2049 /* #### Code section: module_declarations ### */
|
jpayne@69
|
2050
|
jpayne@69
|
2051 /* Module declarations from "pysam.libcsamtools" */
|
jpayne@69
|
2052 /* #### Code section: typeinfo ### */
|
jpayne@69
|
2053 /* #### Code section: before_global_var ### */
|
jpayne@69
|
2054 #define __Pyx_MODULE_NAME "pysam.libcsamtools"
|
jpayne@69
|
2055 extern int __pyx_module_is_main_pysam__libcsamtools;
|
jpayne@69
|
2056 int __pyx_module_is_main_pysam__libcsamtools = 0;
|
jpayne@69
|
2057
|
jpayne@69
|
2058 /* Implementation of "pysam.libcsamtools" */
|
jpayne@69
|
2059 /* #### Code section: global_var ### */
|
jpayne@69
|
2060 /* #### Code section: string_decls ### */
|
jpayne@69
|
2061 static const char __pyx_k__2[] = "?";
|
jpayne@69
|
2062 static const char __pyx_k_main[] = "__main__";
|
jpayne@69
|
2063 static const char __pyx_k_name[] = "__name__";
|
jpayne@69
|
2064 static const char __pyx_k_test[] = "__test__";
|
jpayne@69
|
2065 static const char __pyx_k_py_samtools[] = "py_samtools";
|
jpayne@69
|
2066 static const char __pyx_k_is_coroutine[] = "_is_coroutine";
|
jpayne@69
|
2067 static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines";
|
jpayne@69
|
2068 static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
|
jpayne@69
|
2069 static const char __pyx_k_pysam_libcsamtools[] = "pysam.libcsamtools";
|
jpayne@69
|
2070 static const char __pyx_k_pysam_libcsamtools_pyx[] = "pysam/libcsamtools.pyx";
|
jpayne@69
|
2071 /* #### Code section: decls ### */
|
jpayne@69
|
2072 static PyObject *__pyx_pf_5pysam_12libcsamtools_py_samtools(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
|
jpayne@69
|
2073 /* #### Code section: late_includes ### */
|
jpayne@69
|
2074 /* #### Code section: module_state ### */
|
jpayne@69
|
2075 typedef struct {
|
jpayne@69
|
2076 PyObject *__pyx_d;
|
jpayne@69
|
2077 PyObject *__pyx_b;
|
jpayne@69
|
2078 PyObject *__pyx_cython_runtime;
|
jpayne@69
|
2079 PyObject *__pyx_empty_tuple;
|
jpayne@69
|
2080 PyObject *__pyx_empty_bytes;
|
jpayne@69
|
2081 PyObject *__pyx_empty_unicode;
|
jpayne@69
|
2082 #ifdef __Pyx_CyFunction_USED
|
jpayne@69
|
2083 PyTypeObject *__pyx_CyFunctionType;
|
jpayne@69
|
2084 #endif
|
jpayne@69
|
2085 #ifdef __Pyx_FusedFunction_USED
|
jpayne@69
|
2086 PyTypeObject *__pyx_FusedFunctionType;
|
jpayne@69
|
2087 #endif
|
jpayne@69
|
2088 #ifdef __Pyx_Generator_USED
|
jpayne@69
|
2089 PyTypeObject *__pyx_GeneratorType;
|
jpayne@69
|
2090 #endif
|
jpayne@69
|
2091 #ifdef __Pyx_IterableCoroutine_USED
|
jpayne@69
|
2092 PyTypeObject *__pyx_IterableCoroutineType;
|
jpayne@69
|
2093 #endif
|
jpayne@69
|
2094 #ifdef __Pyx_Coroutine_USED
|
jpayne@69
|
2095 PyTypeObject *__pyx_CoroutineAwaitType;
|
jpayne@69
|
2096 #endif
|
jpayne@69
|
2097 #ifdef __Pyx_Coroutine_USED
|
jpayne@69
|
2098 PyTypeObject *__pyx_CoroutineType;
|
jpayne@69
|
2099 #endif
|
jpayne@69
|
2100 #if CYTHON_USE_MODULE_STATE
|
jpayne@69
|
2101 #endif
|
jpayne@69
|
2102 PyObject *__pyx_n_s__2;
|
jpayne@69
|
2103 PyObject *__pyx_n_s_asyncio_coroutines;
|
jpayne@69
|
2104 PyObject *__pyx_n_s_cline_in_traceback;
|
jpayne@69
|
2105 PyObject *__pyx_n_s_is_coroutine;
|
jpayne@69
|
2106 PyObject *__pyx_n_s_main;
|
jpayne@69
|
2107 PyObject *__pyx_n_s_name;
|
jpayne@69
|
2108 PyObject *__pyx_n_s_py_samtools;
|
jpayne@69
|
2109 PyObject *__pyx_n_s_pysam_libcsamtools;
|
jpayne@69
|
2110 PyObject *__pyx_kp_s_pysam_libcsamtools_pyx;
|
jpayne@69
|
2111 PyObject *__pyx_n_s_test;
|
jpayne@69
|
2112 PyObject *__pyx_codeobj_;
|
jpayne@69
|
2113 } __pyx_mstate;
|
jpayne@69
|
2114
|
jpayne@69
|
2115 #if CYTHON_USE_MODULE_STATE
|
jpayne@69
|
2116 #ifdef __cplusplus
|
jpayne@69
|
2117 namespace {
|
jpayne@69
|
2118 extern struct PyModuleDef __pyx_moduledef;
|
jpayne@69
|
2119 } /* anonymous namespace */
|
jpayne@69
|
2120 #else
|
jpayne@69
|
2121 static struct PyModuleDef __pyx_moduledef;
|
jpayne@69
|
2122 #endif
|
jpayne@69
|
2123
|
jpayne@69
|
2124 #define __pyx_mstate(o) ((__pyx_mstate *)__Pyx_PyModule_GetState(o))
|
jpayne@69
|
2125
|
jpayne@69
|
2126 #define __pyx_mstate_global (__pyx_mstate(PyState_FindModule(&__pyx_moduledef)))
|
jpayne@69
|
2127
|
jpayne@69
|
2128 #define __pyx_m (PyState_FindModule(&__pyx_moduledef))
|
jpayne@69
|
2129 #else
|
jpayne@69
|
2130 static __pyx_mstate __pyx_mstate_global_static =
|
jpayne@69
|
2131 #ifdef __cplusplus
|
jpayne@69
|
2132 {};
|
jpayne@69
|
2133 #else
|
jpayne@69
|
2134 {0};
|
jpayne@69
|
2135 #endif
|
jpayne@69
|
2136 static __pyx_mstate *__pyx_mstate_global = &__pyx_mstate_global_static;
|
jpayne@69
|
2137 #endif
|
jpayne@69
|
2138 /* #### Code section: module_state_clear ### */
|
jpayne@69
|
2139 #if CYTHON_USE_MODULE_STATE
|
jpayne@69
|
2140 static int __pyx_m_clear(PyObject *m) {
|
jpayne@69
|
2141 __pyx_mstate *clear_module_state = __pyx_mstate(m);
|
jpayne@69
|
2142 if (!clear_module_state) return 0;
|
jpayne@69
|
2143 Py_CLEAR(clear_module_state->__pyx_d);
|
jpayne@69
|
2144 Py_CLEAR(clear_module_state->__pyx_b);
|
jpayne@69
|
2145 Py_CLEAR(clear_module_state->__pyx_cython_runtime);
|
jpayne@69
|
2146 Py_CLEAR(clear_module_state->__pyx_empty_tuple);
|
jpayne@69
|
2147 Py_CLEAR(clear_module_state->__pyx_empty_bytes);
|
jpayne@69
|
2148 Py_CLEAR(clear_module_state->__pyx_empty_unicode);
|
jpayne@69
|
2149 #ifdef __Pyx_CyFunction_USED
|
jpayne@69
|
2150 Py_CLEAR(clear_module_state->__pyx_CyFunctionType);
|
jpayne@69
|
2151 #endif
|
jpayne@69
|
2152 #ifdef __Pyx_FusedFunction_USED
|
jpayne@69
|
2153 Py_CLEAR(clear_module_state->__pyx_FusedFunctionType);
|
jpayne@69
|
2154 #endif
|
jpayne@69
|
2155 Py_CLEAR(clear_module_state->__pyx_n_s__2);
|
jpayne@69
|
2156 Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_coroutines);
|
jpayne@69
|
2157 Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback);
|
jpayne@69
|
2158 Py_CLEAR(clear_module_state->__pyx_n_s_is_coroutine);
|
jpayne@69
|
2159 Py_CLEAR(clear_module_state->__pyx_n_s_main);
|
jpayne@69
|
2160 Py_CLEAR(clear_module_state->__pyx_n_s_name);
|
jpayne@69
|
2161 Py_CLEAR(clear_module_state->__pyx_n_s_py_samtools);
|
jpayne@69
|
2162 Py_CLEAR(clear_module_state->__pyx_n_s_pysam_libcsamtools);
|
jpayne@69
|
2163 Py_CLEAR(clear_module_state->__pyx_kp_s_pysam_libcsamtools_pyx);
|
jpayne@69
|
2164 Py_CLEAR(clear_module_state->__pyx_n_s_test);
|
jpayne@69
|
2165 Py_CLEAR(clear_module_state->__pyx_codeobj_);
|
jpayne@69
|
2166 return 0;
|
jpayne@69
|
2167 }
|
jpayne@69
|
2168 #endif
|
jpayne@69
|
2169 /* #### Code section: module_state_traverse ### */
|
jpayne@69
|
2170 #if CYTHON_USE_MODULE_STATE
|
jpayne@69
|
2171 static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
|
jpayne@69
|
2172 __pyx_mstate *traverse_module_state = __pyx_mstate(m);
|
jpayne@69
|
2173 if (!traverse_module_state) return 0;
|
jpayne@69
|
2174 Py_VISIT(traverse_module_state->__pyx_d);
|
jpayne@69
|
2175 Py_VISIT(traverse_module_state->__pyx_b);
|
jpayne@69
|
2176 Py_VISIT(traverse_module_state->__pyx_cython_runtime);
|
jpayne@69
|
2177 Py_VISIT(traverse_module_state->__pyx_empty_tuple);
|
jpayne@69
|
2178 Py_VISIT(traverse_module_state->__pyx_empty_bytes);
|
jpayne@69
|
2179 Py_VISIT(traverse_module_state->__pyx_empty_unicode);
|
jpayne@69
|
2180 #ifdef __Pyx_CyFunction_USED
|
jpayne@69
|
2181 Py_VISIT(traverse_module_state->__pyx_CyFunctionType);
|
jpayne@69
|
2182 #endif
|
jpayne@69
|
2183 #ifdef __Pyx_FusedFunction_USED
|
jpayne@69
|
2184 Py_VISIT(traverse_module_state->__pyx_FusedFunctionType);
|
jpayne@69
|
2185 #endif
|
jpayne@69
|
2186 Py_VISIT(traverse_module_state->__pyx_n_s__2);
|
jpayne@69
|
2187 Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_coroutines);
|
jpayne@69
|
2188 Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback);
|
jpayne@69
|
2189 Py_VISIT(traverse_module_state->__pyx_n_s_is_coroutine);
|
jpayne@69
|
2190 Py_VISIT(traverse_module_state->__pyx_n_s_main);
|
jpayne@69
|
2191 Py_VISIT(traverse_module_state->__pyx_n_s_name);
|
jpayne@69
|
2192 Py_VISIT(traverse_module_state->__pyx_n_s_py_samtools);
|
jpayne@69
|
2193 Py_VISIT(traverse_module_state->__pyx_n_s_pysam_libcsamtools);
|
jpayne@69
|
2194 Py_VISIT(traverse_module_state->__pyx_kp_s_pysam_libcsamtools_pyx);
|
jpayne@69
|
2195 Py_VISIT(traverse_module_state->__pyx_n_s_test);
|
jpayne@69
|
2196 Py_VISIT(traverse_module_state->__pyx_codeobj_);
|
jpayne@69
|
2197 return 0;
|
jpayne@69
|
2198 }
|
jpayne@69
|
2199 #endif
|
jpayne@69
|
2200 /* #### Code section: module_state_defines ### */
|
jpayne@69
|
2201 #define __pyx_d __pyx_mstate_global->__pyx_d
|
jpayne@69
|
2202 #define __pyx_b __pyx_mstate_global->__pyx_b
|
jpayne@69
|
2203 #define __pyx_cython_runtime __pyx_mstate_global->__pyx_cython_runtime
|
jpayne@69
|
2204 #define __pyx_empty_tuple __pyx_mstate_global->__pyx_empty_tuple
|
jpayne@69
|
2205 #define __pyx_empty_bytes __pyx_mstate_global->__pyx_empty_bytes
|
jpayne@69
|
2206 #define __pyx_empty_unicode __pyx_mstate_global->__pyx_empty_unicode
|
jpayne@69
|
2207 #ifdef __Pyx_CyFunction_USED
|
jpayne@69
|
2208 #define __pyx_CyFunctionType __pyx_mstate_global->__pyx_CyFunctionType
|
jpayne@69
|
2209 #endif
|
jpayne@69
|
2210 #ifdef __Pyx_FusedFunction_USED
|
jpayne@69
|
2211 #define __pyx_FusedFunctionType __pyx_mstate_global->__pyx_FusedFunctionType
|
jpayne@69
|
2212 #endif
|
jpayne@69
|
2213 #ifdef __Pyx_Generator_USED
|
jpayne@69
|
2214 #define __pyx_GeneratorType __pyx_mstate_global->__pyx_GeneratorType
|
jpayne@69
|
2215 #endif
|
jpayne@69
|
2216 #ifdef __Pyx_IterableCoroutine_USED
|
jpayne@69
|
2217 #define __pyx_IterableCoroutineType __pyx_mstate_global->__pyx_IterableCoroutineType
|
jpayne@69
|
2218 #endif
|
jpayne@69
|
2219 #ifdef __Pyx_Coroutine_USED
|
jpayne@69
|
2220 #define __pyx_CoroutineAwaitType __pyx_mstate_global->__pyx_CoroutineAwaitType
|
jpayne@69
|
2221 #endif
|
jpayne@69
|
2222 #ifdef __Pyx_Coroutine_USED
|
jpayne@69
|
2223 #define __pyx_CoroutineType __pyx_mstate_global->__pyx_CoroutineType
|
jpayne@69
|
2224 #endif
|
jpayne@69
|
2225 #if CYTHON_USE_MODULE_STATE
|
jpayne@69
|
2226 #endif
|
jpayne@69
|
2227 #define __pyx_n_s__2 __pyx_mstate_global->__pyx_n_s__2
|
jpayne@69
|
2228 #define __pyx_n_s_asyncio_coroutines __pyx_mstate_global->__pyx_n_s_asyncio_coroutines
|
jpayne@69
|
2229 #define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback
|
jpayne@69
|
2230 #define __pyx_n_s_is_coroutine __pyx_mstate_global->__pyx_n_s_is_coroutine
|
jpayne@69
|
2231 #define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main
|
jpayne@69
|
2232 #define __pyx_n_s_name __pyx_mstate_global->__pyx_n_s_name
|
jpayne@69
|
2233 #define __pyx_n_s_py_samtools __pyx_mstate_global->__pyx_n_s_py_samtools
|
jpayne@69
|
2234 #define __pyx_n_s_pysam_libcsamtools __pyx_mstate_global->__pyx_n_s_pysam_libcsamtools
|
jpayne@69
|
2235 #define __pyx_kp_s_pysam_libcsamtools_pyx __pyx_mstate_global->__pyx_kp_s_pysam_libcsamtools_pyx
|
jpayne@69
|
2236 #define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test
|
jpayne@69
|
2237 #define __pyx_codeobj_ __pyx_mstate_global->__pyx_codeobj_
|
jpayne@69
|
2238 /* #### Code section: module_code ### */
|
jpayne@69
|
2239
|
jpayne@69
|
2240 /* "pysam/libcsamtools.pyx":1
|
jpayne@69
|
2241 * def py_samtools(): # <<<<<<<<<<<<<<
|
jpayne@69
|
2242 * pass
|
jpayne@69
|
2243 */
|
jpayne@69
|
2244
|
jpayne@69
|
2245 /* Python wrapper */
|
jpayne@69
|
2246 static PyObject *__pyx_pw_5pysam_12libcsamtools_1py_samtools(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
|
jpayne@69
|
2247 static PyMethodDef __pyx_mdef_5pysam_12libcsamtools_1py_samtools = {"py_samtools", (PyCFunction)__pyx_pw_5pysam_12libcsamtools_1py_samtools, METH_NOARGS, 0};
|
jpayne@69
|
2248 static PyObject *__pyx_pw_5pysam_12libcsamtools_1py_samtools(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
|
jpayne@69
|
2249 CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
|
jpayne@69
|
2250 PyObject *__pyx_r = 0;
|
jpayne@69
|
2251 __Pyx_RefNannyDeclarations
|
jpayne@69
|
2252 __Pyx_RefNannySetupContext("py_samtools (wrapper)", 0);
|
jpayne@69
|
2253 __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
|
jpayne@69
|
2254 __pyx_r = __pyx_pf_5pysam_12libcsamtools_py_samtools(__pyx_self);
|
jpayne@69
|
2255
|
jpayne@69
|
2256 /* function exit code */
|
jpayne@69
|
2257 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2258 return __pyx_r;
|
jpayne@69
|
2259 }
|
jpayne@69
|
2260
|
jpayne@69
|
2261 static PyObject *__pyx_pf_5pysam_12libcsamtools_py_samtools(CYTHON_UNUSED PyObject *__pyx_self) {
|
jpayne@69
|
2262 PyObject *__pyx_r = NULL;
|
jpayne@69
|
2263 __Pyx_RefNannyDeclarations
|
jpayne@69
|
2264 __Pyx_RefNannySetupContext("py_samtools", 1);
|
jpayne@69
|
2265
|
jpayne@69
|
2266 /* function exit code */
|
jpayne@69
|
2267 __pyx_r = Py_None; __Pyx_INCREF(Py_None);
|
jpayne@69
|
2268 __Pyx_XGIVEREF(__pyx_r);
|
jpayne@69
|
2269 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2270 return __pyx_r;
|
jpayne@69
|
2271 }
|
jpayne@69
|
2272
|
jpayne@69
|
2273 static PyMethodDef __pyx_methods[] = {
|
jpayne@69
|
2274 {0, 0, 0, 0}
|
jpayne@69
|
2275 };
|
jpayne@69
|
2276 #ifndef CYTHON_SMALL_CODE
|
jpayne@69
|
2277 #if defined(__clang__)
|
jpayne@69
|
2278 #define CYTHON_SMALL_CODE
|
jpayne@69
|
2279 #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
|
jpayne@69
|
2280 #define CYTHON_SMALL_CODE __attribute__((cold))
|
jpayne@69
|
2281 #else
|
jpayne@69
|
2282 #define CYTHON_SMALL_CODE
|
jpayne@69
|
2283 #endif
|
jpayne@69
|
2284 #endif
|
jpayne@69
|
2285 /* #### Code section: pystring_table ### */
|
jpayne@69
|
2286
|
jpayne@69
|
2287 static int __Pyx_CreateStringTabAndInitStrings(void) {
|
jpayne@69
|
2288 __Pyx_StringTabEntry __pyx_string_tab[] = {
|
jpayne@69
|
2289 {&__pyx_n_s__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 0, 1, 1},
|
jpayne@69
|
2290 {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1},
|
jpayne@69
|
2291 {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
|
jpayne@69
|
2292 {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1},
|
jpayne@69
|
2293 {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
|
jpayne@69
|
2294 {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
|
jpayne@69
|
2295 {&__pyx_n_s_py_samtools, __pyx_k_py_samtools, sizeof(__pyx_k_py_samtools), 0, 0, 1, 1},
|
jpayne@69
|
2296 {&__pyx_n_s_pysam_libcsamtools, __pyx_k_pysam_libcsamtools, sizeof(__pyx_k_pysam_libcsamtools), 0, 0, 1, 1},
|
jpayne@69
|
2297 {&__pyx_kp_s_pysam_libcsamtools_pyx, __pyx_k_pysam_libcsamtools_pyx, sizeof(__pyx_k_pysam_libcsamtools_pyx), 0, 0, 1, 0},
|
jpayne@69
|
2298 {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
|
jpayne@69
|
2299 {0, 0, 0, 0, 0, 0, 0}
|
jpayne@69
|
2300 };
|
jpayne@69
|
2301 return __Pyx_InitStrings(__pyx_string_tab);
|
jpayne@69
|
2302 }
|
jpayne@69
|
2303 /* #### Code section: cached_builtins ### */
|
jpayne@69
|
2304 static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
|
jpayne@69
|
2305 return 0;
|
jpayne@69
|
2306 }
|
jpayne@69
|
2307 /* #### Code section: cached_constants ### */
|
jpayne@69
|
2308
|
jpayne@69
|
2309 static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
|
jpayne@69
|
2310 __Pyx_RefNannyDeclarations
|
jpayne@69
|
2311 __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
|
jpayne@69
|
2312
|
jpayne@69
|
2313 /* "pysam/libcsamtools.pyx":1
|
jpayne@69
|
2314 * def py_samtools(): # <<<<<<<<<<<<<<
|
jpayne@69
|
2315 * pass
|
jpayne@69
|
2316 */
|
jpayne@69
|
2317 __pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pysam_libcsamtools_pyx, __pyx_n_s_py_samtools, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2318 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2319 return 0;
|
jpayne@69
|
2320 __pyx_L1_error:;
|
jpayne@69
|
2321 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2322 return -1;
|
jpayne@69
|
2323 }
|
jpayne@69
|
2324 /* #### Code section: init_constants ### */
|
jpayne@69
|
2325
|
jpayne@69
|
2326 static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) {
|
jpayne@69
|
2327 if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(0, 1, __pyx_L1_error);
|
jpayne@69
|
2328 return 0;
|
jpayne@69
|
2329 __pyx_L1_error:;
|
jpayne@69
|
2330 return -1;
|
jpayne@69
|
2331 }
|
jpayne@69
|
2332 /* #### Code section: init_globals ### */
|
jpayne@69
|
2333
|
jpayne@69
|
2334 static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
|
jpayne@69
|
2335 return 0;
|
jpayne@69
|
2336 }
|
jpayne@69
|
2337 /* #### Code section: init_module ### */
|
jpayne@69
|
2338
|
jpayne@69
|
2339 static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
|
jpayne@69
|
2340 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
|
jpayne@69
|
2341 static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
|
jpayne@69
|
2342 static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
|
jpayne@69
|
2343 static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
|
jpayne@69
|
2344 static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
|
jpayne@69
|
2345 static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/
|
jpayne@69
|
2346
|
jpayne@69
|
2347 static int __Pyx_modinit_global_init_code(void) {
|
jpayne@69
|
2348 __Pyx_RefNannyDeclarations
|
jpayne@69
|
2349 __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
|
jpayne@69
|
2350 /*--- Global init code ---*/
|
jpayne@69
|
2351 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2352 return 0;
|
jpayne@69
|
2353 }
|
jpayne@69
|
2354
|
jpayne@69
|
2355 static int __Pyx_modinit_variable_export_code(void) {
|
jpayne@69
|
2356 __Pyx_RefNannyDeclarations
|
jpayne@69
|
2357 __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
|
jpayne@69
|
2358 /*--- Variable export code ---*/
|
jpayne@69
|
2359 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2360 return 0;
|
jpayne@69
|
2361 }
|
jpayne@69
|
2362
|
jpayne@69
|
2363 static int __Pyx_modinit_function_export_code(void) {
|
jpayne@69
|
2364 __Pyx_RefNannyDeclarations
|
jpayne@69
|
2365 __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
|
jpayne@69
|
2366 /*--- Function export code ---*/
|
jpayne@69
|
2367 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2368 return 0;
|
jpayne@69
|
2369 }
|
jpayne@69
|
2370
|
jpayne@69
|
2371 static int __Pyx_modinit_type_init_code(void) {
|
jpayne@69
|
2372 __Pyx_RefNannyDeclarations
|
jpayne@69
|
2373 __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
|
jpayne@69
|
2374 /*--- Type init code ---*/
|
jpayne@69
|
2375 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2376 return 0;
|
jpayne@69
|
2377 }
|
jpayne@69
|
2378
|
jpayne@69
|
2379 static int __Pyx_modinit_type_import_code(void) {
|
jpayne@69
|
2380 __Pyx_RefNannyDeclarations
|
jpayne@69
|
2381 __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
|
jpayne@69
|
2382 /*--- Type import code ---*/
|
jpayne@69
|
2383 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2384 return 0;
|
jpayne@69
|
2385 }
|
jpayne@69
|
2386
|
jpayne@69
|
2387 static int __Pyx_modinit_variable_import_code(void) {
|
jpayne@69
|
2388 __Pyx_RefNannyDeclarations
|
jpayne@69
|
2389 __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
|
jpayne@69
|
2390 /*--- Variable import code ---*/
|
jpayne@69
|
2391 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2392 return 0;
|
jpayne@69
|
2393 }
|
jpayne@69
|
2394
|
jpayne@69
|
2395 static int __Pyx_modinit_function_import_code(void) {
|
jpayne@69
|
2396 __Pyx_RefNannyDeclarations
|
jpayne@69
|
2397 __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
|
jpayne@69
|
2398 /*--- Function import code ---*/
|
jpayne@69
|
2399 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2400 return 0;
|
jpayne@69
|
2401 }
|
jpayne@69
|
2402
|
jpayne@69
|
2403
|
jpayne@69
|
2404 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
2405 #if CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
2406 static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
|
jpayne@69
|
2407 static int __pyx_pymod_exec_libcsamtools(PyObject* module); /*proto*/
|
jpayne@69
|
2408 static PyModuleDef_Slot __pyx_moduledef_slots[] = {
|
jpayne@69
|
2409 {Py_mod_create, (void*)__pyx_pymod_create},
|
jpayne@69
|
2410 {Py_mod_exec, (void*)__pyx_pymod_exec_libcsamtools},
|
jpayne@69
|
2411 {0, NULL}
|
jpayne@69
|
2412 };
|
jpayne@69
|
2413 #endif
|
jpayne@69
|
2414
|
jpayne@69
|
2415 #ifdef __cplusplus
|
jpayne@69
|
2416 namespace {
|
jpayne@69
|
2417 struct PyModuleDef __pyx_moduledef =
|
jpayne@69
|
2418 #else
|
jpayne@69
|
2419 static struct PyModuleDef __pyx_moduledef =
|
jpayne@69
|
2420 #endif
|
jpayne@69
|
2421 {
|
jpayne@69
|
2422 PyModuleDef_HEAD_INIT,
|
jpayne@69
|
2423 "libcsamtools",
|
jpayne@69
|
2424 0, /* m_doc */
|
jpayne@69
|
2425 #if CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
2426 0, /* m_size */
|
jpayne@69
|
2427 #elif CYTHON_USE_MODULE_STATE
|
jpayne@69
|
2428 sizeof(__pyx_mstate), /* m_size */
|
jpayne@69
|
2429 #else
|
jpayne@69
|
2430 -1, /* m_size */
|
jpayne@69
|
2431 #endif
|
jpayne@69
|
2432 __pyx_methods /* m_methods */,
|
jpayne@69
|
2433 #if CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
2434 __pyx_moduledef_slots, /* m_slots */
|
jpayne@69
|
2435 #else
|
jpayne@69
|
2436 NULL, /* m_reload */
|
jpayne@69
|
2437 #endif
|
jpayne@69
|
2438 #if CYTHON_USE_MODULE_STATE
|
jpayne@69
|
2439 __pyx_m_traverse, /* m_traverse */
|
jpayne@69
|
2440 __pyx_m_clear, /* m_clear */
|
jpayne@69
|
2441 NULL /* m_free */
|
jpayne@69
|
2442 #else
|
jpayne@69
|
2443 NULL, /* m_traverse */
|
jpayne@69
|
2444 NULL, /* m_clear */
|
jpayne@69
|
2445 NULL /* m_free */
|
jpayne@69
|
2446 #endif
|
jpayne@69
|
2447 };
|
jpayne@69
|
2448 #ifdef __cplusplus
|
jpayne@69
|
2449 } /* anonymous namespace */
|
jpayne@69
|
2450 #endif
|
jpayne@69
|
2451 #endif
|
jpayne@69
|
2452
|
jpayne@69
|
2453 #ifndef CYTHON_NO_PYINIT_EXPORT
|
jpayne@69
|
2454 #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
|
jpayne@69
|
2455 #elif PY_MAJOR_VERSION < 3
|
jpayne@69
|
2456 #ifdef __cplusplus
|
jpayne@69
|
2457 #define __Pyx_PyMODINIT_FUNC extern "C" void
|
jpayne@69
|
2458 #else
|
jpayne@69
|
2459 #define __Pyx_PyMODINIT_FUNC void
|
jpayne@69
|
2460 #endif
|
jpayne@69
|
2461 #else
|
jpayne@69
|
2462 #ifdef __cplusplus
|
jpayne@69
|
2463 #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
|
jpayne@69
|
2464 #else
|
jpayne@69
|
2465 #define __Pyx_PyMODINIT_FUNC PyObject *
|
jpayne@69
|
2466 #endif
|
jpayne@69
|
2467 #endif
|
jpayne@69
|
2468
|
jpayne@69
|
2469
|
jpayne@69
|
2470 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
2471 __Pyx_PyMODINIT_FUNC initlibcsamtools(void) CYTHON_SMALL_CODE; /*proto*/
|
jpayne@69
|
2472 __Pyx_PyMODINIT_FUNC initlibcsamtools(void)
|
jpayne@69
|
2473 #else
|
jpayne@69
|
2474 __Pyx_PyMODINIT_FUNC PyInit_libcsamtools(void) CYTHON_SMALL_CODE; /*proto*/
|
jpayne@69
|
2475 __Pyx_PyMODINIT_FUNC PyInit_libcsamtools(void)
|
jpayne@69
|
2476 #if CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
2477 {
|
jpayne@69
|
2478 return PyModuleDef_Init(&__pyx_moduledef);
|
jpayne@69
|
2479 }
|
jpayne@69
|
2480 static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
|
jpayne@69
|
2481 #if PY_VERSION_HEX >= 0x030700A1
|
jpayne@69
|
2482 static PY_INT64_T main_interpreter_id = -1;
|
jpayne@69
|
2483 PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
|
jpayne@69
|
2484 if (main_interpreter_id == -1) {
|
jpayne@69
|
2485 main_interpreter_id = current_id;
|
jpayne@69
|
2486 return (unlikely(current_id == -1)) ? -1 : 0;
|
jpayne@69
|
2487 } else if (unlikely(main_interpreter_id != current_id))
|
jpayne@69
|
2488 #else
|
jpayne@69
|
2489 static PyInterpreterState *main_interpreter = NULL;
|
jpayne@69
|
2490 PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
|
jpayne@69
|
2491 if (!main_interpreter) {
|
jpayne@69
|
2492 main_interpreter = current_interpreter;
|
jpayne@69
|
2493 } else if (unlikely(main_interpreter != current_interpreter))
|
jpayne@69
|
2494 #endif
|
jpayne@69
|
2495 {
|
jpayne@69
|
2496 PyErr_SetString(
|
jpayne@69
|
2497 PyExc_ImportError,
|
jpayne@69
|
2498 "Interpreter change detected - this module can only be loaded into one interpreter per process.");
|
jpayne@69
|
2499 return -1;
|
jpayne@69
|
2500 }
|
jpayne@69
|
2501 return 0;
|
jpayne@69
|
2502 }
|
jpayne@69
|
2503 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
2504 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)
|
jpayne@69
|
2505 #else
|
jpayne@69
|
2506 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)
|
jpayne@69
|
2507 #endif
|
jpayne@69
|
2508 {
|
jpayne@69
|
2509 PyObject *value = PyObject_GetAttrString(spec, from_name);
|
jpayne@69
|
2510 int result = 0;
|
jpayne@69
|
2511 if (likely(value)) {
|
jpayne@69
|
2512 if (allow_none || value != Py_None) {
|
jpayne@69
|
2513 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
2514 result = PyModule_AddObject(module, to_name, value);
|
jpayne@69
|
2515 #else
|
jpayne@69
|
2516 result = PyDict_SetItemString(moddict, to_name, value);
|
jpayne@69
|
2517 #endif
|
jpayne@69
|
2518 }
|
jpayne@69
|
2519 Py_DECREF(value);
|
jpayne@69
|
2520 } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
|
jpayne@69
|
2521 PyErr_Clear();
|
jpayne@69
|
2522 } else {
|
jpayne@69
|
2523 result = -1;
|
jpayne@69
|
2524 }
|
jpayne@69
|
2525 return result;
|
jpayne@69
|
2526 }
|
jpayne@69
|
2527 static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
|
jpayne@69
|
2528 PyObject *module = NULL, *moddict, *modname;
|
jpayne@69
|
2529 CYTHON_UNUSED_VAR(def);
|
jpayne@69
|
2530 if (__Pyx_check_single_interpreter())
|
jpayne@69
|
2531 return NULL;
|
jpayne@69
|
2532 if (__pyx_m)
|
jpayne@69
|
2533 return __Pyx_NewRef(__pyx_m);
|
jpayne@69
|
2534 modname = PyObject_GetAttrString(spec, "name");
|
jpayne@69
|
2535 if (unlikely(!modname)) goto bad;
|
jpayne@69
|
2536 module = PyModule_NewObject(modname);
|
jpayne@69
|
2537 Py_DECREF(modname);
|
jpayne@69
|
2538 if (unlikely(!module)) goto bad;
|
jpayne@69
|
2539 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
2540 moddict = module;
|
jpayne@69
|
2541 #else
|
jpayne@69
|
2542 moddict = PyModule_GetDict(module);
|
jpayne@69
|
2543 if (unlikely(!moddict)) goto bad;
|
jpayne@69
|
2544 #endif
|
jpayne@69
|
2545 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
|
jpayne@69
|
2546 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
|
jpayne@69
|
2547 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
|
jpayne@69
|
2548 if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
|
jpayne@69
|
2549 return module;
|
jpayne@69
|
2550 bad:
|
jpayne@69
|
2551 Py_XDECREF(module);
|
jpayne@69
|
2552 return NULL;
|
jpayne@69
|
2553 }
|
jpayne@69
|
2554
|
jpayne@69
|
2555
|
jpayne@69
|
2556 static CYTHON_SMALL_CODE int __pyx_pymod_exec_libcsamtools(PyObject *__pyx_pyinit_module)
|
jpayne@69
|
2557 #endif
|
jpayne@69
|
2558 #endif
|
jpayne@69
|
2559 {
|
jpayne@69
|
2560 int stringtab_initialized = 0;
|
jpayne@69
|
2561 #if CYTHON_USE_MODULE_STATE
|
jpayne@69
|
2562 int pystate_addmodule_run = 0;
|
jpayne@69
|
2563 #endif
|
jpayne@69
|
2564 PyObject *__pyx_t_1 = NULL;
|
jpayne@69
|
2565 PyObject *__pyx_t_2 = NULL;
|
jpayne@69
|
2566 int __pyx_lineno = 0;
|
jpayne@69
|
2567 const char *__pyx_filename = NULL;
|
jpayne@69
|
2568 int __pyx_clineno = 0;
|
jpayne@69
|
2569 __Pyx_RefNannyDeclarations
|
jpayne@69
|
2570 #if CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
2571 if (__pyx_m) {
|
jpayne@69
|
2572 if (__pyx_m == __pyx_pyinit_module) return 0;
|
jpayne@69
|
2573 PyErr_SetString(PyExc_RuntimeError, "Module 'libcsamtools' has already been imported. Re-initialisation is not supported.");
|
jpayne@69
|
2574 return -1;
|
jpayne@69
|
2575 }
|
jpayne@69
|
2576 #elif PY_MAJOR_VERSION >= 3
|
jpayne@69
|
2577 if (__pyx_m) return __Pyx_NewRef(__pyx_m);
|
jpayne@69
|
2578 #endif
|
jpayne@69
|
2579 /*--- Module creation code ---*/
|
jpayne@69
|
2580 #if CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
2581 __pyx_m = __pyx_pyinit_module;
|
jpayne@69
|
2582 Py_INCREF(__pyx_m);
|
jpayne@69
|
2583 #else
|
jpayne@69
|
2584 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
2585 __pyx_m = Py_InitModule4("libcsamtools", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
|
jpayne@69
|
2586 if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2587 #elif CYTHON_USE_MODULE_STATE
|
jpayne@69
|
2588 __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2589 {
|
jpayne@69
|
2590 int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef);
|
jpayne@69
|
2591 __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "libcsamtools" pseudovariable */
|
jpayne@69
|
2592 if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2593 pystate_addmodule_run = 1;
|
jpayne@69
|
2594 }
|
jpayne@69
|
2595 #else
|
jpayne@69
|
2596 __pyx_m = PyModule_Create(&__pyx_moduledef);
|
jpayne@69
|
2597 if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2598 #endif
|
jpayne@69
|
2599 #endif
|
jpayne@69
|
2600 CYTHON_UNUSED_VAR(__pyx_t_1);
|
jpayne@69
|
2601 __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2602 Py_INCREF(__pyx_d);
|
jpayne@69
|
2603 __pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2604 __pyx_cython_runtime = __Pyx_PyImport_AddModuleRef((const char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2605 if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2606 #if CYTHON_REFNANNY
|
jpayne@69
|
2607 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
|
jpayne@69
|
2608 if (!__Pyx_RefNanny) {
|
jpayne@69
|
2609 PyErr_Clear();
|
jpayne@69
|
2610 __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
|
jpayne@69
|
2611 if (!__Pyx_RefNanny)
|
jpayne@69
|
2612 Py_FatalError("failed to import 'refnanny' module");
|
jpayne@69
|
2613 }
|
jpayne@69
|
2614 #endif
|
jpayne@69
|
2615 __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_libcsamtools(void)", 0);
|
jpayne@69
|
2616 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)
|
jpayne@69
|
2617 #ifdef __Pxy_PyFrame_Initialize_Offsets
|
jpayne@69
|
2618 __Pxy_PyFrame_Initialize_Offsets();
|
jpayne@69
|
2619 #endif
|
jpayne@69
|
2620 __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2621 __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2622 __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2623 #ifdef __Pyx_CyFunction_USED
|
jpayne@69
|
2624 if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2625 #endif
|
jpayne@69
|
2626 #ifdef __Pyx_FusedFunction_USED
|
jpayne@69
|
2627 if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2628 #endif
|
jpayne@69
|
2629 #ifdef __Pyx_Coroutine_USED
|
jpayne@69
|
2630 if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2631 #endif
|
jpayne@69
|
2632 #ifdef __Pyx_Generator_USED
|
jpayne@69
|
2633 if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2634 #endif
|
jpayne@69
|
2635 #ifdef __Pyx_AsyncGen_USED
|
jpayne@69
|
2636 if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2637 #endif
|
jpayne@69
|
2638 #ifdef __Pyx_StopAsyncIteration_USED
|
jpayne@69
|
2639 if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2640 #endif
|
jpayne@69
|
2641 /*--- Library function declarations ---*/
|
jpayne@69
|
2642 /*--- Threads initialization code ---*/
|
jpayne@69
|
2643 #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
|
jpayne@69
|
2644 PyEval_InitThreads();
|
jpayne@69
|
2645 #endif
|
jpayne@69
|
2646 /*--- Initialize various global constants etc. ---*/
|
jpayne@69
|
2647 if (__Pyx_InitConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2648 stringtab_initialized = 1;
|
jpayne@69
|
2649 if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2650 #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
|
jpayne@69
|
2651 if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2652 #endif
|
jpayne@69
|
2653 if (__pyx_module_is_main_pysam__libcsamtools) {
|
jpayne@69
|
2654 if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2655 }
|
jpayne@69
|
2656 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
2657 {
|
jpayne@69
|
2658 PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2659 if (!PyDict_GetItemString(modules, "pysam.libcsamtools")) {
|
jpayne@69
|
2660 if (unlikely((PyDict_SetItemString(modules, "pysam.libcsamtools", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2661 }
|
jpayne@69
|
2662 }
|
jpayne@69
|
2663 #endif
|
jpayne@69
|
2664 /*--- Builtin init code ---*/
|
jpayne@69
|
2665 if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2666 /*--- Constants init code ---*/
|
jpayne@69
|
2667 if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2668 /*--- Global type/function init code ---*/
|
jpayne@69
|
2669 (void)__Pyx_modinit_global_init_code();
|
jpayne@69
|
2670 (void)__Pyx_modinit_variable_export_code();
|
jpayne@69
|
2671 (void)__Pyx_modinit_function_export_code();
|
jpayne@69
|
2672 (void)__Pyx_modinit_type_init_code();
|
jpayne@69
|
2673 (void)__Pyx_modinit_type_import_code();
|
jpayne@69
|
2674 (void)__Pyx_modinit_variable_import_code();
|
jpayne@69
|
2675 (void)__Pyx_modinit_function_import_code();
|
jpayne@69
|
2676 /*--- Execution code ---*/
|
jpayne@69
|
2677 #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
|
jpayne@69
|
2678 if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2679 #endif
|
jpayne@69
|
2680
|
jpayne@69
|
2681 /* "pysam/libcsamtools.pyx":1
|
jpayne@69
|
2682 * def py_samtools(): # <<<<<<<<<<<<<<
|
jpayne@69
|
2683 * pass
|
jpayne@69
|
2684 */
|
jpayne@69
|
2685 __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5pysam_12libcsamtools_1py_samtools, 0, __pyx_n_s_py_samtools, NULL, __pyx_n_s_pysam_libcsamtools, __pyx_d, ((PyObject *)__pyx_codeobj_)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2686 __Pyx_GOTREF(__pyx_t_2);
|
jpayne@69
|
2687 if (PyDict_SetItem(__pyx_d, __pyx_n_s_py_samtools, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2688 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
jpayne@69
|
2689 __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2690 __Pyx_GOTREF(__pyx_t_2);
|
jpayne@69
|
2691 if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
|
jpayne@69
|
2692 __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
|
jpayne@69
|
2693
|
jpayne@69
|
2694 /*--- Wrapped vars code ---*/
|
jpayne@69
|
2695
|
jpayne@69
|
2696 goto __pyx_L0;
|
jpayne@69
|
2697 __pyx_L1_error:;
|
jpayne@69
|
2698 __Pyx_XDECREF(__pyx_t_2);
|
jpayne@69
|
2699 if (__pyx_m) {
|
jpayne@69
|
2700 if (__pyx_d && stringtab_initialized) {
|
jpayne@69
|
2701 __Pyx_AddTraceback("init pysam.libcsamtools", __pyx_clineno, __pyx_lineno, __pyx_filename);
|
jpayne@69
|
2702 }
|
jpayne@69
|
2703 #if !CYTHON_USE_MODULE_STATE
|
jpayne@69
|
2704 Py_CLEAR(__pyx_m);
|
jpayne@69
|
2705 #else
|
jpayne@69
|
2706 Py_DECREF(__pyx_m);
|
jpayne@69
|
2707 if (pystate_addmodule_run) {
|
jpayne@69
|
2708 PyObject *tp, *value, *tb;
|
jpayne@69
|
2709 PyErr_Fetch(&tp, &value, &tb);
|
jpayne@69
|
2710 PyState_RemoveModule(&__pyx_moduledef);
|
jpayne@69
|
2711 PyErr_Restore(tp, value, tb);
|
jpayne@69
|
2712 }
|
jpayne@69
|
2713 #endif
|
jpayne@69
|
2714 } else if (!PyErr_Occurred()) {
|
jpayne@69
|
2715 PyErr_SetString(PyExc_ImportError, "init pysam.libcsamtools");
|
jpayne@69
|
2716 }
|
jpayne@69
|
2717 __pyx_L0:;
|
jpayne@69
|
2718 __Pyx_RefNannyFinishContext();
|
jpayne@69
|
2719 #if CYTHON_PEP489_MULTI_PHASE_INIT
|
jpayne@69
|
2720 return (__pyx_m != NULL) ? 0 : -1;
|
jpayne@69
|
2721 #elif PY_MAJOR_VERSION >= 3
|
jpayne@69
|
2722 return __pyx_m;
|
jpayne@69
|
2723 #else
|
jpayne@69
|
2724 return;
|
jpayne@69
|
2725 #endif
|
jpayne@69
|
2726 }
|
jpayne@69
|
2727 /* #### Code section: cleanup_globals ### */
|
jpayne@69
|
2728 /* #### Code section: cleanup_module ### */
|
jpayne@69
|
2729 /* #### Code section: main_method ### */
|
jpayne@69
|
2730 /* #### Code section: utility_code_pragmas ### */
|
jpayne@69
|
2731 #ifdef _MSC_VER
|
jpayne@69
|
2732 #pragma warning( push )
|
jpayne@69
|
2733 /* Warning 4127: conditional expression is constant
|
jpayne@69
|
2734 * Cython uses constant conditional expressions to allow in inline functions to be optimized at
|
jpayne@69
|
2735 * compile-time, so this warning is not useful
|
jpayne@69
|
2736 */
|
jpayne@69
|
2737 #pragma warning( disable : 4127 )
|
jpayne@69
|
2738 #endif
|
jpayne@69
|
2739
|
jpayne@69
|
2740
|
jpayne@69
|
2741
|
jpayne@69
|
2742 /* #### Code section: utility_code_def ### */
|
jpayne@69
|
2743
|
jpayne@69
|
2744 /* --- Runtime support code --- */
|
jpayne@69
|
2745 /* Refnanny */
|
jpayne@69
|
2746 #if CYTHON_REFNANNY
|
jpayne@69
|
2747 static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
|
jpayne@69
|
2748 PyObject *m = NULL, *p = NULL;
|
jpayne@69
|
2749 void *r = NULL;
|
jpayne@69
|
2750 m = PyImport_ImportModule(modname);
|
jpayne@69
|
2751 if (!m) goto end;
|
jpayne@69
|
2752 p = PyObject_GetAttrString(m, "RefNannyAPI");
|
jpayne@69
|
2753 if (!p) goto end;
|
jpayne@69
|
2754 r = PyLong_AsVoidPtr(p);
|
jpayne@69
|
2755 end:
|
jpayne@69
|
2756 Py_XDECREF(p);
|
jpayne@69
|
2757 Py_XDECREF(m);
|
jpayne@69
|
2758 return (__Pyx_RefNannyAPIStruct *)r;
|
jpayne@69
|
2759 }
|
jpayne@69
|
2760 #endif
|
jpayne@69
|
2761
|
jpayne@69
|
2762 /* TupleAndListFromArray */
|
jpayne@69
|
2763 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
2764 static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
|
jpayne@69
|
2765 PyObject *v;
|
jpayne@69
|
2766 Py_ssize_t i;
|
jpayne@69
|
2767 for (i = 0; i < length; i++) {
|
jpayne@69
|
2768 v = dest[i] = src[i];
|
jpayne@69
|
2769 Py_INCREF(v);
|
jpayne@69
|
2770 }
|
jpayne@69
|
2771 }
|
jpayne@69
|
2772 static CYTHON_INLINE PyObject *
|
jpayne@69
|
2773 __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
|
jpayne@69
|
2774 {
|
jpayne@69
|
2775 PyObject *res;
|
jpayne@69
|
2776 if (n <= 0) {
|
jpayne@69
|
2777 Py_INCREF(__pyx_empty_tuple);
|
jpayne@69
|
2778 return __pyx_empty_tuple;
|
jpayne@69
|
2779 }
|
jpayne@69
|
2780 res = PyTuple_New(n);
|
jpayne@69
|
2781 if (unlikely(res == NULL)) return NULL;
|
jpayne@69
|
2782 __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
|
jpayne@69
|
2783 return res;
|
jpayne@69
|
2784 }
|
jpayne@69
|
2785 static CYTHON_INLINE PyObject *
|
jpayne@69
|
2786 __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n)
|
jpayne@69
|
2787 {
|
jpayne@69
|
2788 PyObject *res;
|
jpayne@69
|
2789 if (n <= 0) {
|
jpayne@69
|
2790 return PyList_New(0);
|
jpayne@69
|
2791 }
|
jpayne@69
|
2792 res = PyList_New(n);
|
jpayne@69
|
2793 if (unlikely(res == NULL)) return NULL;
|
jpayne@69
|
2794 __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
|
jpayne@69
|
2795 return res;
|
jpayne@69
|
2796 }
|
jpayne@69
|
2797 #endif
|
jpayne@69
|
2798
|
jpayne@69
|
2799 /* BytesEquals */
|
jpayne@69
|
2800 static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
|
jpayne@69
|
2801 #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
2802 return PyObject_RichCompareBool(s1, s2, equals);
|
jpayne@69
|
2803 #else
|
jpayne@69
|
2804 if (s1 == s2) {
|
jpayne@69
|
2805 return (equals == Py_EQ);
|
jpayne@69
|
2806 } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
|
jpayne@69
|
2807 const char *ps1, *ps2;
|
jpayne@69
|
2808 Py_ssize_t length = PyBytes_GET_SIZE(s1);
|
jpayne@69
|
2809 if (length != PyBytes_GET_SIZE(s2))
|
jpayne@69
|
2810 return (equals == Py_NE);
|
jpayne@69
|
2811 ps1 = PyBytes_AS_STRING(s1);
|
jpayne@69
|
2812 ps2 = PyBytes_AS_STRING(s2);
|
jpayne@69
|
2813 if (ps1[0] != ps2[0]) {
|
jpayne@69
|
2814 return (equals == Py_NE);
|
jpayne@69
|
2815 } else if (length == 1) {
|
jpayne@69
|
2816 return (equals == Py_EQ);
|
jpayne@69
|
2817 } else {
|
jpayne@69
|
2818 int result;
|
jpayne@69
|
2819 #if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)
|
jpayne@69
|
2820 Py_hash_t hash1, hash2;
|
jpayne@69
|
2821 hash1 = ((PyBytesObject*)s1)->ob_shash;
|
jpayne@69
|
2822 hash2 = ((PyBytesObject*)s2)->ob_shash;
|
jpayne@69
|
2823 if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
|
jpayne@69
|
2824 return (equals == Py_NE);
|
jpayne@69
|
2825 }
|
jpayne@69
|
2826 #endif
|
jpayne@69
|
2827 result = memcmp(ps1, ps2, (size_t)length);
|
jpayne@69
|
2828 return (equals == Py_EQ) ? (result == 0) : (result != 0);
|
jpayne@69
|
2829 }
|
jpayne@69
|
2830 } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
|
jpayne@69
|
2831 return (equals == Py_NE);
|
jpayne@69
|
2832 } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
|
jpayne@69
|
2833 return (equals == Py_NE);
|
jpayne@69
|
2834 } else {
|
jpayne@69
|
2835 int result;
|
jpayne@69
|
2836 PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
|
jpayne@69
|
2837 if (!py_result)
|
jpayne@69
|
2838 return -1;
|
jpayne@69
|
2839 result = __Pyx_PyObject_IsTrue(py_result);
|
jpayne@69
|
2840 Py_DECREF(py_result);
|
jpayne@69
|
2841 return result;
|
jpayne@69
|
2842 }
|
jpayne@69
|
2843 #endif
|
jpayne@69
|
2844 }
|
jpayne@69
|
2845
|
jpayne@69
|
2846 /* UnicodeEquals */
|
jpayne@69
|
2847 static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
|
jpayne@69
|
2848 #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
2849 return PyObject_RichCompareBool(s1, s2, equals);
|
jpayne@69
|
2850 #else
|
jpayne@69
|
2851 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
2852 PyObject* owned_ref = NULL;
|
jpayne@69
|
2853 #endif
|
jpayne@69
|
2854 int s1_is_unicode, s2_is_unicode;
|
jpayne@69
|
2855 if (s1 == s2) {
|
jpayne@69
|
2856 goto return_eq;
|
jpayne@69
|
2857 }
|
jpayne@69
|
2858 s1_is_unicode = PyUnicode_CheckExact(s1);
|
jpayne@69
|
2859 s2_is_unicode = PyUnicode_CheckExact(s2);
|
jpayne@69
|
2860 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
2861 if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
|
jpayne@69
|
2862 owned_ref = PyUnicode_FromObject(s2);
|
jpayne@69
|
2863 if (unlikely(!owned_ref))
|
jpayne@69
|
2864 return -1;
|
jpayne@69
|
2865 s2 = owned_ref;
|
jpayne@69
|
2866 s2_is_unicode = 1;
|
jpayne@69
|
2867 } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
|
jpayne@69
|
2868 owned_ref = PyUnicode_FromObject(s1);
|
jpayne@69
|
2869 if (unlikely(!owned_ref))
|
jpayne@69
|
2870 return -1;
|
jpayne@69
|
2871 s1 = owned_ref;
|
jpayne@69
|
2872 s1_is_unicode = 1;
|
jpayne@69
|
2873 } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
|
jpayne@69
|
2874 return __Pyx_PyBytes_Equals(s1, s2, equals);
|
jpayne@69
|
2875 }
|
jpayne@69
|
2876 #endif
|
jpayne@69
|
2877 if (s1_is_unicode & s2_is_unicode) {
|
jpayne@69
|
2878 Py_ssize_t length;
|
jpayne@69
|
2879 int kind;
|
jpayne@69
|
2880 void *data1, *data2;
|
jpayne@69
|
2881 if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
|
jpayne@69
|
2882 return -1;
|
jpayne@69
|
2883 length = __Pyx_PyUnicode_GET_LENGTH(s1);
|
jpayne@69
|
2884 if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
|
jpayne@69
|
2885 goto return_ne;
|
jpayne@69
|
2886 }
|
jpayne@69
|
2887 #if CYTHON_USE_UNICODE_INTERNALS
|
jpayne@69
|
2888 {
|
jpayne@69
|
2889 Py_hash_t hash1, hash2;
|
jpayne@69
|
2890 #if CYTHON_PEP393_ENABLED
|
jpayne@69
|
2891 hash1 = ((PyASCIIObject*)s1)->hash;
|
jpayne@69
|
2892 hash2 = ((PyASCIIObject*)s2)->hash;
|
jpayne@69
|
2893 #else
|
jpayne@69
|
2894 hash1 = ((PyUnicodeObject*)s1)->hash;
|
jpayne@69
|
2895 hash2 = ((PyUnicodeObject*)s2)->hash;
|
jpayne@69
|
2896 #endif
|
jpayne@69
|
2897 if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
|
jpayne@69
|
2898 goto return_ne;
|
jpayne@69
|
2899 }
|
jpayne@69
|
2900 }
|
jpayne@69
|
2901 #endif
|
jpayne@69
|
2902 kind = __Pyx_PyUnicode_KIND(s1);
|
jpayne@69
|
2903 if (kind != __Pyx_PyUnicode_KIND(s2)) {
|
jpayne@69
|
2904 goto return_ne;
|
jpayne@69
|
2905 }
|
jpayne@69
|
2906 data1 = __Pyx_PyUnicode_DATA(s1);
|
jpayne@69
|
2907 data2 = __Pyx_PyUnicode_DATA(s2);
|
jpayne@69
|
2908 if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
|
jpayne@69
|
2909 goto return_ne;
|
jpayne@69
|
2910 } else if (length == 1) {
|
jpayne@69
|
2911 goto return_eq;
|
jpayne@69
|
2912 } else {
|
jpayne@69
|
2913 int result = memcmp(data1, data2, (size_t)(length * kind));
|
jpayne@69
|
2914 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
2915 Py_XDECREF(owned_ref);
|
jpayne@69
|
2916 #endif
|
jpayne@69
|
2917 return (equals == Py_EQ) ? (result == 0) : (result != 0);
|
jpayne@69
|
2918 }
|
jpayne@69
|
2919 } else if ((s1 == Py_None) & s2_is_unicode) {
|
jpayne@69
|
2920 goto return_ne;
|
jpayne@69
|
2921 } else if ((s2 == Py_None) & s1_is_unicode) {
|
jpayne@69
|
2922 goto return_ne;
|
jpayne@69
|
2923 } else {
|
jpayne@69
|
2924 int result;
|
jpayne@69
|
2925 PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
|
jpayne@69
|
2926 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
2927 Py_XDECREF(owned_ref);
|
jpayne@69
|
2928 #endif
|
jpayne@69
|
2929 if (!py_result)
|
jpayne@69
|
2930 return -1;
|
jpayne@69
|
2931 result = __Pyx_PyObject_IsTrue(py_result);
|
jpayne@69
|
2932 Py_DECREF(py_result);
|
jpayne@69
|
2933 return result;
|
jpayne@69
|
2934 }
|
jpayne@69
|
2935 return_eq:
|
jpayne@69
|
2936 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
2937 Py_XDECREF(owned_ref);
|
jpayne@69
|
2938 #endif
|
jpayne@69
|
2939 return (equals == Py_EQ);
|
jpayne@69
|
2940 return_ne:
|
jpayne@69
|
2941 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
2942 Py_XDECREF(owned_ref);
|
jpayne@69
|
2943 #endif
|
jpayne@69
|
2944 return (equals == Py_NE);
|
jpayne@69
|
2945 #endif
|
jpayne@69
|
2946 }
|
jpayne@69
|
2947
|
jpayne@69
|
2948 /* fastcall */
|
jpayne@69
|
2949 #if CYTHON_METH_FASTCALL
|
jpayne@69
|
2950 static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
|
jpayne@69
|
2951 {
|
jpayne@69
|
2952 Py_ssize_t i, n = PyTuple_GET_SIZE(kwnames);
|
jpayne@69
|
2953 for (i = 0; i < n; i++)
|
jpayne@69
|
2954 {
|
jpayne@69
|
2955 if (s == PyTuple_GET_ITEM(kwnames, i)) return kwvalues[i];
|
jpayne@69
|
2956 }
|
jpayne@69
|
2957 for (i = 0; i < n; i++)
|
jpayne@69
|
2958 {
|
jpayne@69
|
2959 int eq = __Pyx_PyUnicode_Equals(s, PyTuple_GET_ITEM(kwnames, i), Py_EQ);
|
jpayne@69
|
2960 if (unlikely(eq != 0)) {
|
jpayne@69
|
2961 if (unlikely(eq < 0)) return NULL;
|
jpayne@69
|
2962 return kwvalues[i];
|
jpayne@69
|
2963 }
|
jpayne@69
|
2964 }
|
jpayne@69
|
2965 return NULL;
|
jpayne@69
|
2966 }
|
jpayne@69
|
2967 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
|
jpayne@69
|
2968 CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
|
jpayne@69
|
2969 Py_ssize_t i, nkwargs = PyTuple_GET_SIZE(kwnames);
|
jpayne@69
|
2970 PyObject *dict;
|
jpayne@69
|
2971 dict = PyDict_New();
|
jpayne@69
|
2972 if (unlikely(!dict))
|
jpayne@69
|
2973 return NULL;
|
jpayne@69
|
2974 for (i=0; i<nkwargs; i++) {
|
jpayne@69
|
2975 PyObject *key = PyTuple_GET_ITEM(kwnames, i);
|
jpayne@69
|
2976 if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
|
jpayne@69
|
2977 goto bad;
|
jpayne@69
|
2978 }
|
jpayne@69
|
2979 return dict;
|
jpayne@69
|
2980 bad:
|
jpayne@69
|
2981 Py_DECREF(dict);
|
jpayne@69
|
2982 return NULL;
|
jpayne@69
|
2983 }
|
jpayne@69
|
2984 #endif
|
jpayne@69
|
2985 #endif
|
jpayne@69
|
2986
|
jpayne@69
|
2987 /* FixUpExtensionType */
|
jpayne@69
|
2988 #if CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
2989 static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {
|
jpayne@69
|
2990 #if PY_VERSION_HEX > 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
2991 CYTHON_UNUSED_VAR(spec);
|
jpayne@69
|
2992 CYTHON_UNUSED_VAR(type);
|
jpayne@69
|
2993 #else
|
jpayne@69
|
2994 const PyType_Slot *slot = spec->slots;
|
jpayne@69
|
2995 while (slot && slot->slot && slot->slot != Py_tp_members)
|
jpayne@69
|
2996 slot++;
|
jpayne@69
|
2997 if (slot && slot->slot == Py_tp_members) {
|
jpayne@69
|
2998 int changed = 0;
|
jpayne@69
|
2999 #if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON)
|
jpayne@69
|
3000 const
|
jpayne@69
|
3001 #endif
|
jpayne@69
|
3002 PyMemberDef *memb = (PyMemberDef*) slot->pfunc;
|
jpayne@69
|
3003 while (memb && memb->name) {
|
jpayne@69
|
3004 if (memb->name[0] == '_' && memb->name[1] == '_') {
|
jpayne@69
|
3005 #if PY_VERSION_HEX < 0x030900b1
|
jpayne@69
|
3006 if (strcmp(memb->name, "__weaklistoffset__") == 0) {
|
jpayne@69
|
3007 assert(memb->type == T_PYSSIZET);
|
jpayne@69
|
3008 assert(memb->flags == READONLY);
|
jpayne@69
|
3009 type->tp_weaklistoffset = memb->offset;
|
jpayne@69
|
3010 changed = 1;
|
jpayne@69
|
3011 }
|
jpayne@69
|
3012 else if (strcmp(memb->name, "__dictoffset__") == 0) {
|
jpayne@69
|
3013 assert(memb->type == T_PYSSIZET);
|
jpayne@69
|
3014 assert(memb->flags == READONLY);
|
jpayne@69
|
3015 type->tp_dictoffset = memb->offset;
|
jpayne@69
|
3016 changed = 1;
|
jpayne@69
|
3017 }
|
jpayne@69
|
3018 #if CYTHON_METH_FASTCALL
|
jpayne@69
|
3019 else if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
|
jpayne@69
|
3020 assert(memb->type == T_PYSSIZET);
|
jpayne@69
|
3021 assert(memb->flags == READONLY);
|
jpayne@69
|
3022 #if PY_VERSION_HEX >= 0x030800b4
|
jpayne@69
|
3023 type->tp_vectorcall_offset = memb->offset;
|
jpayne@69
|
3024 #else
|
jpayne@69
|
3025 type->tp_print = (printfunc) memb->offset;
|
jpayne@69
|
3026 #endif
|
jpayne@69
|
3027 changed = 1;
|
jpayne@69
|
3028 }
|
jpayne@69
|
3029 #endif
|
jpayne@69
|
3030 #else
|
jpayne@69
|
3031 if ((0));
|
jpayne@69
|
3032 #endif
|
jpayne@69
|
3033 #if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
3034 else if (strcmp(memb->name, "__module__") == 0) {
|
jpayne@69
|
3035 PyObject *descr;
|
jpayne@69
|
3036 assert(memb->type == T_OBJECT);
|
jpayne@69
|
3037 assert(memb->flags == 0 || memb->flags == READONLY);
|
jpayne@69
|
3038 descr = PyDescr_NewMember(type, memb);
|
jpayne@69
|
3039 if (unlikely(!descr))
|
jpayne@69
|
3040 return -1;
|
jpayne@69
|
3041 if (unlikely(PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr) < 0)) {
|
jpayne@69
|
3042 Py_DECREF(descr);
|
jpayne@69
|
3043 return -1;
|
jpayne@69
|
3044 }
|
jpayne@69
|
3045 Py_DECREF(descr);
|
jpayne@69
|
3046 changed = 1;
|
jpayne@69
|
3047 }
|
jpayne@69
|
3048 #endif
|
jpayne@69
|
3049 }
|
jpayne@69
|
3050 memb++;
|
jpayne@69
|
3051 }
|
jpayne@69
|
3052 if (changed)
|
jpayne@69
|
3053 PyType_Modified(type);
|
jpayne@69
|
3054 }
|
jpayne@69
|
3055 #endif
|
jpayne@69
|
3056 return 0;
|
jpayne@69
|
3057 }
|
jpayne@69
|
3058 #endif
|
jpayne@69
|
3059
|
jpayne@69
|
3060 /* FetchSharedCythonModule */
|
jpayne@69
|
3061 static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
|
jpayne@69
|
3062 return __Pyx_PyImport_AddModuleRef((char*) __PYX_ABI_MODULE_NAME);
|
jpayne@69
|
3063 }
|
jpayne@69
|
3064
|
jpayne@69
|
3065 /* FetchCommonType */
|
jpayne@69
|
3066 static int __Pyx_VerifyCachedType(PyObject *cached_type,
|
jpayne@69
|
3067 const char *name,
|
jpayne@69
|
3068 Py_ssize_t basicsize,
|
jpayne@69
|
3069 Py_ssize_t expected_basicsize) {
|
jpayne@69
|
3070 if (!PyType_Check(cached_type)) {
|
jpayne@69
|
3071 PyErr_Format(PyExc_TypeError,
|
jpayne@69
|
3072 "Shared Cython type %.200s is not a type object", name);
|
jpayne@69
|
3073 return -1;
|
jpayne@69
|
3074 }
|
jpayne@69
|
3075 if (basicsize != expected_basicsize) {
|
jpayne@69
|
3076 PyErr_Format(PyExc_TypeError,
|
jpayne@69
|
3077 "Shared Cython type %.200s has the wrong size, try recompiling",
|
jpayne@69
|
3078 name);
|
jpayne@69
|
3079 return -1;
|
jpayne@69
|
3080 }
|
jpayne@69
|
3081 return 0;
|
jpayne@69
|
3082 }
|
jpayne@69
|
3083 #if !CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
3084 static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
|
jpayne@69
|
3085 PyObject* abi_module;
|
jpayne@69
|
3086 const char* object_name;
|
jpayne@69
|
3087 PyTypeObject *cached_type = NULL;
|
jpayne@69
|
3088 abi_module = __Pyx_FetchSharedCythonABIModule();
|
jpayne@69
|
3089 if (!abi_module) return NULL;
|
jpayne@69
|
3090 object_name = strrchr(type->tp_name, '.');
|
jpayne@69
|
3091 object_name = object_name ? object_name+1 : type->tp_name;
|
jpayne@69
|
3092 cached_type = (PyTypeObject*) PyObject_GetAttrString(abi_module, object_name);
|
jpayne@69
|
3093 if (cached_type) {
|
jpayne@69
|
3094 if (__Pyx_VerifyCachedType(
|
jpayne@69
|
3095 (PyObject *)cached_type,
|
jpayne@69
|
3096 object_name,
|
jpayne@69
|
3097 cached_type->tp_basicsize,
|
jpayne@69
|
3098 type->tp_basicsize) < 0) {
|
jpayne@69
|
3099 goto bad;
|
jpayne@69
|
3100 }
|
jpayne@69
|
3101 goto done;
|
jpayne@69
|
3102 }
|
jpayne@69
|
3103 if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
|
jpayne@69
|
3104 PyErr_Clear();
|
jpayne@69
|
3105 if (PyType_Ready(type) < 0) goto bad;
|
jpayne@69
|
3106 if (PyObject_SetAttrString(abi_module, object_name, (PyObject *)type) < 0)
|
jpayne@69
|
3107 goto bad;
|
jpayne@69
|
3108 Py_INCREF(type);
|
jpayne@69
|
3109 cached_type = type;
|
jpayne@69
|
3110 done:
|
jpayne@69
|
3111 Py_DECREF(abi_module);
|
jpayne@69
|
3112 return cached_type;
|
jpayne@69
|
3113 bad:
|
jpayne@69
|
3114 Py_XDECREF(cached_type);
|
jpayne@69
|
3115 cached_type = NULL;
|
jpayne@69
|
3116 goto done;
|
jpayne@69
|
3117 }
|
jpayne@69
|
3118 #else
|
jpayne@69
|
3119 static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) {
|
jpayne@69
|
3120 PyObject *abi_module, *cached_type = NULL;
|
jpayne@69
|
3121 const char* object_name = strrchr(spec->name, '.');
|
jpayne@69
|
3122 object_name = object_name ? object_name+1 : spec->name;
|
jpayne@69
|
3123 abi_module = __Pyx_FetchSharedCythonABIModule();
|
jpayne@69
|
3124 if (!abi_module) return NULL;
|
jpayne@69
|
3125 cached_type = PyObject_GetAttrString(abi_module, object_name);
|
jpayne@69
|
3126 if (cached_type) {
|
jpayne@69
|
3127 Py_ssize_t basicsize;
|
jpayne@69
|
3128 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3129 PyObject *py_basicsize;
|
jpayne@69
|
3130 py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
|
jpayne@69
|
3131 if (unlikely(!py_basicsize)) goto bad;
|
jpayne@69
|
3132 basicsize = PyLong_AsSsize_t(py_basicsize);
|
jpayne@69
|
3133 Py_DECREF(py_basicsize);
|
jpayne@69
|
3134 py_basicsize = 0;
|
jpayne@69
|
3135 if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
|
jpayne@69
|
3136 #else
|
jpayne@69
|
3137 basicsize = likely(PyType_Check(cached_type)) ? ((PyTypeObject*) cached_type)->tp_basicsize : -1;
|
jpayne@69
|
3138 #endif
|
jpayne@69
|
3139 if (__Pyx_VerifyCachedType(
|
jpayne@69
|
3140 cached_type,
|
jpayne@69
|
3141 object_name,
|
jpayne@69
|
3142 basicsize,
|
jpayne@69
|
3143 spec->basicsize) < 0) {
|
jpayne@69
|
3144 goto bad;
|
jpayne@69
|
3145 }
|
jpayne@69
|
3146 goto done;
|
jpayne@69
|
3147 }
|
jpayne@69
|
3148 if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
|
jpayne@69
|
3149 PyErr_Clear();
|
jpayne@69
|
3150 CYTHON_UNUSED_VAR(module);
|
jpayne@69
|
3151 cached_type = __Pyx_PyType_FromModuleAndSpec(abi_module, spec, bases);
|
jpayne@69
|
3152 if (unlikely(!cached_type)) goto bad;
|
jpayne@69
|
3153 if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
|
jpayne@69
|
3154 if (PyObject_SetAttrString(abi_module, object_name, cached_type) < 0) goto bad;
|
jpayne@69
|
3155 done:
|
jpayne@69
|
3156 Py_DECREF(abi_module);
|
jpayne@69
|
3157 assert(cached_type == NULL || PyType_Check(cached_type));
|
jpayne@69
|
3158 return (PyTypeObject *) cached_type;
|
jpayne@69
|
3159 bad:
|
jpayne@69
|
3160 Py_XDECREF(cached_type);
|
jpayne@69
|
3161 cached_type = NULL;
|
jpayne@69
|
3162 goto done;
|
jpayne@69
|
3163 }
|
jpayne@69
|
3164 #endif
|
jpayne@69
|
3165
|
jpayne@69
|
3166 /* PyObjectGetAttrStr */
|
jpayne@69
|
3167 #if CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
3168 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
|
jpayne@69
|
3169 PyTypeObject* tp = Py_TYPE(obj);
|
jpayne@69
|
3170 if (likely(tp->tp_getattro))
|
jpayne@69
|
3171 return tp->tp_getattro(obj, attr_name);
|
jpayne@69
|
3172 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
3173 if (likely(tp->tp_getattr))
|
jpayne@69
|
3174 return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
|
jpayne@69
|
3175 #endif
|
jpayne@69
|
3176 return PyObject_GetAttr(obj, attr_name);
|
jpayne@69
|
3177 }
|
jpayne@69
|
3178 #endif
|
jpayne@69
|
3179
|
jpayne@69
|
3180 /* PyVectorcallFastCallDict */
|
jpayne@69
|
3181 #if CYTHON_METH_FASTCALL
|
jpayne@69
|
3182 static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
|
jpayne@69
|
3183 {
|
jpayne@69
|
3184 PyObject *res = NULL;
|
jpayne@69
|
3185 PyObject *kwnames;
|
jpayne@69
|
3186 PyObject **newargs;
|
jpayne@69
|
3187 PyObject **kwvalues;
|
jpayne@69
|
3188 Py_ssize_t i, pos;
|
jpayne@69
|
3189 size_t j;
|
jpayne@69
|
3190 PyObject *key, *value;
|
jpayne@69
|
3191 unsigned long keys_are_strings;
|
jpayne@69
|
3192 Py_ssize_t nkw = PyDict_GET_SIZE(kw);
|
jpayne@69
|
3193 newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
|
jpayne@69
|
3194 if (unlikely(newargs == NULL)) {
|
jpayne@69
|
3195 PyErr_NoMemory();
|
jpayne@69
|
3196 return NULL;
|
jpayne@69
|
3197 }
|
jpayne@69
|
3198 for (j = 0; j < nargs; j++) newargs[j] = args[j];
|
jpayne@69
|
3199 kwnames = PyTuple_New(nkw);
|
jpayne@69
|
3200 if (unlikely(kwnames == NULL)) {
|
jpayne@69
|
3201 PyMem_Free(newargs);
|
jpayne@69
|
3202 return NULL;
|
jpayne@69
|
3203 }
|
jpayne@69
|
3204 kwvalues = newargs + nargs;
|
jpayne@69
|
3205 pos = i = 0;
|
jpayne@69
|
3206 keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
|
jpayne@69
|
3207 while (PyDict_Next(kw, &pos, &key, &value)) {
|
jpayne@69
|
3208 keys_are_strings &= Py_TYPE(key)->tp_flags;
|
jpayne@69
|
3209 Py_INCREF(key);
|
jpayne@69
|
3210 Py_INCREF(value);
|
jpayne@69
|
3211 PyTuple_SET_ITEM(kwnames, i, key);
|
jpayne@69
|
3212 kwvalues[i] = value;
|
jpayne@69
|
3213 i++;
|
jpayne@69
|
3214 }
|
jpayne@69
|
3215 if (unlikely(!keys_are_strings)) {
|
jpayne@69
|
3216 PyErr_SetString(PyExc_TypeError, "keywords must be strings");
|
jpayne@69
|
3217 goto cleanup;
|
jpayne@69
|
3218 }
|
jpayne@69
|
3219 res = vc(func, newargs, nargs, kwnames);
|
jpayne@69
|
3220 cleanup:
|
jpayne@69
|
3221 Py_DECREF(kwnames);
|
jpayne@69
|
3222 for (i = 0; i < nkw; i++)
|
jpayne@69
|
3223 Py_DECREF(kwvalues[i]);
|
jpayne@69
|
3224 PyMem_Free(newargs);
|
jpayne@69
|
3225 return res;
|
jpayne@69
|
3226 }
|
jpayne@69
|
3227 static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
|
jpayne@69
|
3228 {
|
jpayne@69
|
3229 if (likely(kw == NULL) || PyDict_GET_SIZE(kw) == 0) {
|
jpayne@69
|
3230 return vc(func, args, nargs, NULL);
|
jpayne@69
|
3231 }
|
jpayne@69
|
3232 return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
|
jpayne@69
|
3233 }
|
jpayne@69
|
3234 #endif
|
jpayne@69
|
3235
|
jpayne@69
|
3236 /* CythonFunctionShared */
|
jpayne@69
|
3237 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3238 static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
|
jpayne@69
|
3239 if (__Pyx_CyFunction_Check(func)) {
|
jpayne@69
|
3240 return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc;
|
jpayne@69
|
3241 } else if (PyCFunction_Check(func)) {
|
jpayne@69
|
3242 return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
|
jpayne@69
|
3243 }
|
jpayne@69
|
3244 return 0;
|
jpayne@69
|
3245 }
|
jpayne@69
|
3246 #else
|
jpayne@69
|
3247 static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
|
jpayne@69
|
3248 return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
|
jpayne@69
|
3249 }
|
jpayne@69
|
3250 #endif
|
jpayne@69
|
3251 static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
|
jpayne@69
|
3252 #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3253 __Pyx_Py_XDECREF_SET(
|
jpayne@69
|
3254 __Pyx_CyFunction_GetClassObj(f),
|
jpayne@69
|
3255 ((classobj) ? __Pyx_NewRef(classobj) : NULL));
|
jpayne@69
|
3256 #else
|
jpayne@69
|
3257 __Pyx_Py_XDECREF_SET(
|
jpayne@69
|
3258 ((PyCMethodObject *) (f))->mm_class,
|
jpayne@69
|
3259 (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
|
jpayne@69
|
3260 #endif
|
jpayne@69
|
3261 }
|
jpayne@69
|
3262 static PyObject *
|
jpayne@69
|
3263 __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure)
|
jpayne@69
|
3264 {
|
jpayne@69
|
3265 CYTHON_UNUSED_VAR(closure);
|
jpayne@69
|
3266 if (unlikely(op->func_doc == NULL)) {
|
jpayne@69
|
3267 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3268 op->func_doc = PyObject_GetAttrString(op->func, "__doc__");
|
jpayne@69
|
3269 if (unlikely(!op->func_doc)) return NULL;
|
jpayne@69
|
3270 #else
|
jpayne@69
|
3271 if (((PyCFunctionObject*)op)->m_ml->ml_doc) {
|
jpayne@69
|
3272 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
3273 op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
|
jpayne@69
|
3274 #else
|
jpayne@69
|
3275 op->func_doc = PyString_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
|
jpayne@69
|
3276 #endif
|
jpayne@69
|
3277 if (unlikely(op->func_doc == NULL))
|
jpayne@69
|
3278 return NULL;
|
jpayne@69
|
3279 } else {
|
jpayne@69
|
3280 Py_INCREF(Py_None);
|
jpayne@69
|
3281 return Py_None;
|
jpayne@69
|
3282 }
|
jpayne@69
|
3283 #endif
|
jpayne@69
|
3284 }
|
jpayne@69
|
3285 Py_INCREF(op->func_doc);
|
jpayne@69
|
3286 return op->func_doc;
|
jpayne@69
|
3287 }
|
jpayne@69
|
3288 static int
|
jpayne@69
|
3289 __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context)
|
jpayne@69
|
3290 {
|
jpayne@69
|
3291 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3292 if (value == NULL) {
|
jpayne@69
|
3293 value = Py_None;
|
jpayne@69
|
3294 }
|
jpayne@69
|
3295 Py_INCREF(value);
|
jpayne@69
|
3296 __Pyx_Py_XDECREF_SET(op->func_doc, value);
|
jpayne@69
|
3297 return 0;
|
jpayne@69
|
3298 }
|
jpayne@69
|
3299 static PyObject *
|
jpayne@69
|
3300 __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context)
|
jpayne@69
|
3301 {
|
jpayne@69
|
3302 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3303 if (unlikely(op->func_name == NULL)) {
|
jpayne@69
|
3304 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3305 op->func_name = PyObject_GetAttrString(op->func, "__name__");
|
jpayne@69
|
3306 #elif PY_MAJOR_VERSION >= 3
|
jpayne@69
|
3307 op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
|
jpayne@69
|
3308 #else
|
jpayne@69
|
3309 op->func_name = PyString_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
|
jpayne@69
|
3310 #endif
|
jpayne@69
|
3311 if (unlikely(op->func_name == NULL))
|
jpayne@69
|
3312 return NULL;
|
jpayne@69
|
3313 }
|
jpayne@69
|
3314 Py_INCREF(op->func_name);
|
jpayne@69
|
3315 return op->func_name;
|
jpayne@69
|
3316 }
|
jpayne@69
|
3317 static int
|
jpayne@69
|
3318 __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context)
|
jpayne@69
|
3319 {
|
jpayne@69
|
3320 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3321 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
3322 if (unlikely(value == NULL || !PyUnicode_Check(value)))
|
jpayne@69
|
3323 #else
|
jpayne@69
|
3324 if (unlikely(value == NULL || !PyString_Check(value)))
|
jpayne@69
|
3325 #endif
|
jpayne@69
|
3326 {
|
jpayne@69
|
3327 PyErr_SetString(PyExc_TypeError,
|
jpayne@69
|
3328 "__name__ must be set to a string object");
|
jpayne@69
|
3329 return -1;
|
jpayne@69
|
3330 }
|
jpayne@69
|
3331 Py_INCREF(value);
|
jpayne@69
|
3332 __Pyx_Py_XDECREF_SET(op->func_name, value);
|
jpayne@69
|
3333 return 0;
|
jpayne@69
|
3334 }
|
jpayne@69
|
3335 static PyObject *
|
jpayne@69
|
3336 __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context)
|
jpayne@69
|
3337 {
|
jpayne@69
|
3338 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3339 Py_INCREF(op->func_qualname);
|
jpayne@69
|
3340 return op->func_qualname;
|
jpayne@69
|
3341 }
|
jpayne@69
|
3342 static int
|
jpayne@69
|
3343 __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context)
|
jpayne@69
|
3344 {
|
jpayne@69
|
3345 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3346 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
3347 if (unlikely(value == NULL || !PyUnicode_Check(value)))
|
jpayne@69
|
3348 #else
|
jpayne@69
|
3349 if (unlikely(value == NULL || !PyString_Check(value)))
|
jpayne@69
|
3350 #endif
|
jpayne@69
|
3351 {
|
jpayne@69
|
3352 PyErr_SetString(PyExc_TypeError,
|
jpayne@69
|
3353 "__qualname__ must be set to a string object");
|
jpayne@69
|
3354 return -1;
|
jpayne@69
|
3355 }
|
jpayne@69
|
3356 Py_INCREF(value);
|
jpayne@69
|
3357 __Pyx_Py_XDECREF_SET(op->func_qualname, value);
|
jpayne@69
|
3358 return 0;
|
jpayne@69
|
3359 }
|
jpayne@69
|
3360 static PyObject *
|
jpayne@69
|
3361 __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
|
jpayne@69
|
3362 {
|
jpayne@69
|
3363 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3364 if (unlikely(op->func_dict == NULL)) {
|
jpayne@69
|
3365 op->func_dict = PyDict_New();
|
jpayne@69
|
3366 if (unlikely(op->func_dict == NULL))
|
jpayne@69
|
3367 return NULL;
|
jpayne@69
|
3368 }
|
jpayne@69
|
3369 Py_INCREF(op->func_dict);
|
jpayne@69
|
3370 return op->func_dict;
|
jpayne@69
|
3371 }
|
jpayne@69
|
3372 static int
|
jpayne@69
|
3373 __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, void *context)
|
jpayne@69
|
3374 {
|
jpayne@69
|
3375 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3376 if (unlikely(value == NULL)) {
|
jpayne@69
|
3377 PyErr_SetString(PyExc_TypeError,
|
jpayne@69
|
3378 "function's dictionary may not be deleted");
|
jpayne@69
|
3379 return -1;
|
jpayne@69
|
3380 }
|
jpayne@69
|
3381 if (unlikely(!PyDict_Check(value))) {
|
jpayne@69
|
3382 PyErr_SetString(PyExc_TypeError,
|
jpayne@69
|
3383 "setting function's dictionary to a non-dict");
|
jpayne@69
|
3384 return -1;
|
jpayne@69
|
3385 }
|
jpayne@69
|
3386 Py_INCREF(value);
|
jpayne@69
|
3387 __Pyx_Py_XDECREF_SET(op->func_dict, value);
|
jpayne@69
|
3388 return 0;
|
jpayne@69
|
3389 }
|
jpayne@69
|
3390 static PyObject *
|
jpayne@69
|
3391 __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context)
|
jpayne@69
|
3392 {
|
jpayne@69
|
3393 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3394 Py_INCREF(op->func_globals);
|
jpayne@69
|
3395 return op->func_globals;
|
jpayne@69
|
3396 }
|
jpayne@69
|
3397 static PyObject *
|
jpayne@69
|
3398 __Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context)
|
jpayne@69
|
3399 {
|
jpayne@69
|
3400 CYTHON_UNUSED_VAR(op);
|
jpayne@69
|
3401 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3402 Py_INCREF(Py_None);
|
jpayne@69
|
3403 return Py_None;
|
jpayne@69
|
3404 }
|
jpayne@69
|
3405 static PyObject *
|
jpayne@69
|
3406 __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context)
|
jpayne@69
|
3407 {
|
jpayne@69
|
3408 PyObject* result = (op->func_code) ? op->func_code : Py_None;
|
jpayne@69
|
3409 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3410 Py_INCREF(result);
|
jpayne@69
|
3411 return result;
|
jpayne@69
|
3412 }
|
jpayne@69
|
3413 static int
|
jpayne@69
|
3414 __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
|
jpayne@69
|
3415 int result = 0;
|
jpayne@69
|
3416 PyObject *res = op->defaults_getter((PyObject *) op);
|
jpayne@69
|
3417 if (unlikely(!res))
|
jpayne@69
|
3418 return -1;
|
jpayne@69
|
3419 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
3420 op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
|
jpayne@69
|
3421 Py_INCREF(op->defaults_tuple);
|
jpayne@69
|
3422 op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
|
jpayne@69
|
3423 Py_INCREF(op->defaults_kwdict);
|
jpayne@69
|
3424 #else
|
jpayne@69
|
3425 op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
|
jpayne@69
|
3426 if (unlikely(!op->defaults_tuple)) result = -1;
|
jpayne@69
|
3427 else {
|
jpayne@69
|
3428 op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
|
jpayne@69
|
3429 if (unlikely(!op->defaults_kwdict)) result = -1;
|
jpayne@69
|
3430 }
|
jpayne@69
|
3431 #endif
|
jpayne@69
|
3432 Py_DECREF(res);
|
jpayne@69
|
3433 return result;
|
jpayne@69
|
3434 }
|
jpayne@69
|
3435 static int
|
jpayne@69
|
3436 __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
|
jpayne@69
|
3437 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3438 if (!value) {
|
jpayne@69
|
3439 value = Py_None;
|
jpayne@69
|
3440 } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
|
jpayne@69
|
3441 PyErr_SetString(PyExc_TypeError,
|
jpayne@69
|
3442 "__defaults__ must be set to a tuple object");
|
jpayne@69
|
3443 return -1;
|
jpayne@69
|
3444 }
|
jpayne@69
|
3445 PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
|
jpayne@69
|
3446 "currently affect the values used in function calls", 1);
|
jpayne@69
|
3447 Py_INCREF(value);
|
jpayne@69
|
3448 __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
|
jpayne@69
|
3449 return 0;
|
jpayne@69
|
3450 }
|
jpayne@69
|
3451 static PyObject *
|
jpayne@69
|
3452 __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) {
|
jpayne@69
|
3453 PyObject* result = op->defaults_tuple;
|
jpayne@69
|
3454 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3455 if (unlikely(!result)) {
|
jpayne@69
|
3456 if (op->defaults_getter) {
|
jpayne@69
|
3457 if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
|
jpayne@69
|
3458 result = op->defaults_tuple;
|
jpayne@69
|
3459 } else {
|
jpayne@69
|
3460 result = Py_None;
|
jpayne@69
|
3461 }
|
jpayne@69
|
3462 }
|
jpayne@69
|
3463 Py_INCREF(result);
|
jpayne@69
|
3464 return result;
|
jpayne@69
|
3465 }
|
jpayne@69
|
3466 static int
|
jpayne@69
|
3467 __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
|
jpayne@69
|
3468 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3469 if (!value) {
|
jpayne@69
|
3470 value = Py_None;
|
jpayne@69
|
3471 } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
|
jpayne@69
|
3472 PyErr_SetString(PyExc_TypeError,
|
jpayne@69
|
3473 "__kwdefaults__ must be set to a dict object");
|
jpayne@69
|
3474 return -1;
|
jpayne@69
|
3475 }
|
jpayne@69
|
3476 PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
|
jpayne@69
|
3477 "currently affect the values used in function calls", 1);
|
jpayne@69
|
3478 Py_INCREF(value);
|
jpayne@69
|
3479 __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
|
jpayne@69
|
3480 return 0;
|
jpayne@69
|
3481 }
|
jpayne@69
|
3482 static PyObject *
|
jpayne@69
|
3483 __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) {
|
jpayne@69
|
3484 PyObject* result = op->defaults_kwdict;
|
jpayne@69
|
3485 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3486 if (unlikely(!result)) {
|
jpayne@69
|
3487 if (op->defaults_getter) {
|
jpayne@69
|
3488 if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
|
jpayne@69
|
3489 result = op->defaults_kwdict;
|
jpayne@69
|
3490 } else {
|
jpayne@69
|
3491 result = Py_None;
|
jpayne@69
|
3492 }
|
jpayne@69
|
3493 }
|
jpayne@69
|
3494 Py_INCREF(result);
|
jpayne@69
|
3495 return result;
|
jpayne@69
|
3496 }
|
jpayne@69
|
3497 static int
|
jpayne@69
|
3498 __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
|
jpayne@69
|
3499 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3500 if (!value || value == Py_None) {
|
jpayne@69
|
3501 value = NULL;
|
jpayne@69
|
3502 } else if (unlikely(!PyDict_Check(value))) {
|
jpayne@69
|
3503 PyErr_SetString(PyExc_TypeError,
|
jpayne@69
|
3504 "__annotations__ must be set to a dict object");
|
jpayne@69
|
3505 return -1;
|
jpayne@69
|
3506 }
|
jpayne@69
|
3507 Py_XINCREF(value);
|
jpayne@69
|
3508 __Pyx_Py_XDECREF_SET(op->func_annotations, value);
|
jpayne@69
|
3509 return 0;
|
jpayne@69
|
3510 }
|
jpayne@69
|
3511 static PyObject *
|
jpayne@69
|
3512 __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) {
|
jpayne@69
|
3513 PyObject* result = op->func_annotations;
|
jpayne@69
|
3514 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3515 if (unlikely(!result)) {
|
jpayne@69
|
3516 result = PyDict_New();
|
jpayne@69
|
3517 if (unlikely(!result)) return NULL;
|
jpayne@69
|
3518 op->func_annotations = result;
|
jpayne@69
|
3519 }
|
jpayne@69
|
3520 Py_INCREF(result);
|
jpayne@69
|
3521 return result;
|
jpayne@69
|
3522 }
|
jpayne@69
|
3523 static PyObject *
|
jpayne@69
|
3524 __Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) {
|
jpayne@69
|
3525 int is_coroutine;
|
jpayne@69
|
3526 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3527 if (op->func_is_coroutine) {
|
jpayne@69
|
3528 return __Pyx_NewRef(op->func_is_coroutine);
|
jpayne@69
|
3529 }
|
jpayne@69
|
3530 is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
|
jpayne@69
|
3531 #if PY_VERSION_HEX >= 0x03050000
|
jpayne@69
|
3532 if (is_coroutine) {
|
jpayne@69
|
3533 PyObject *module, *fromlist, *marker = __pyx_n_s_is_coroutine;
|
jpayne@69
|
3534 fromlist = PyList_New(1);
|
jpayne@69
|
3535 if (unlikely(!fromlist)) return NULL;
|
jpayne@69
|
3536 Py_INCREF(marker);
|
jpayne@69
|
3537 #if CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
3538 PyList_SET_ITEM(fromlist, 0, marker);
|
jpayne@69
|
3539 #else
|
jpayne@69
|
3540 if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
|
jpayne@69
|
3541 Py_DECREF(marker);
|
jpayne@69
|
3542 Py_DECREF(fromlist);
|
jpayne@69
|
3543 return NULL;
|
jpayne@69
|
3544 }
|
jpayne@69
|
3545 #endif
|
jpayne@69
|
3546 module = PyImport_ImportModuleLevelObject(__pyx_n_s_asyncio_coroutines, NULL, NULL, fromlist, 0);
|
jpayne@69
|
3547 Py_DECREF(fromlist);
|
jpayne@69
|
3548 if (unlikely(!module)) goto ignore;
|
jpayne@69
|
3549 op->func_is_coroutine = __Pyx_PyObject_GetAttrStr(module, marker);
|
jpayne@69
|
3550 Py_DECREF(module);
|
jpayne@69
|
3551 if (likely(op->func_is_coroutine)) {
|
jpayne@69
|
3552 return __Pyx_NewRef(op->func_is_coroutine);
|
jpayne@69
|
3553 }
|
jpayne@69
|
3554 ignore:
|
jpayne@69
|
3555 PyErr_Clear();
|
jpayne@69
|
3556 }
|
jpayne@69
|
3557 #endif
|
jpayne@69
|
3558 op->func_is_coroutine = __Pyx_PyBool_FromLong(is_coroutine);
|
jpayne@69
|
3559 return __Pyx_NewRef(op->func_is_coroutine);
|
jpayne@69
|
3560 }
|
jpayne@69
|
3561 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3562 static PyObject *
|
jpayne@69
|
3563 __Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) {
|
jpayne@69
|
3564 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3565 return PyObject_GetAttrString(op->func, "__module__");
|
jpayne@69
|
3566 }
|
jpayne@69
|
3567 static int
|
jpayne@69
|
3568 __Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
|
jpayne@69
|
3569 CYTHON_UNUSED_VAR(context);
|
jpayne@69
|
3570 return PyObject_SetAttrString(op->func, "__module__", value);
|
jpayne@69
|
3571 }
|
jpayne@69
|
3572 #endif
|
jpayne@69
|
3573 static PyGetSetDef __pyx_CyFunction_getsets[] = {
|
jpayne@69
|
3574 {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
|
jpayne@69
|
3575 {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
|
jpayne@69
|
3576 {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
|
jpayne@69
|
3577 {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
|
jpayne@69
|
3578 {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
|
jpayne@69
|
3579 {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
|
jpayne@69
|
3580 {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
|
jpayne@69
|
3581 {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
|
jpayne@69
|
3582 {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
|
jpayne@69
|
3583 {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
|
jpayne@69
|
3584 {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
|
jpayne@69
|
3585 {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
|
jpayne@69
|
3586 {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
|
jpayne@69
|
3587 {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
|
jpayne@69
|
3588 {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
|
jpayne@69
|
3589 {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
|
jpayne@69
|
3590 {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
|
jpayne@69
|
3591 {(char *) "_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
|
jpayne@69
|
3592 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3593 {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
|
jpayne@69
|
3594 #endif
|
jpayne@69
|
3595 {0, 0, 0, 0, 0}
|
jpayne@69
|
3596 };
|
jpayne@69
|
3597 static PyMemberDef __pyx_CyFunction_members[] = {
|
jpayne@69
|
3598 #if !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3599 {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
|
jpayne@69
|
3600 #endif
|
jpayne@69
|
3601 #if CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
3602 {(char *) "__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0},
|
jpayne@69
|
3603 #if CYTHON_METH_FASTCALL
|
jpayne@69
|
3604 #if CYTHON_BACKPORT_VECTORCALL
|
jpayne@69
|
3605 {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0},
|
jpayne@69
|
3606 #else
|
jpayne@69
|
3607 #if !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3608 {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
|
jpayne@69
|
3609 #endif
|
jpayne@69
|
3610 #endif
|
jpayne@69
|
3611 #endif
|
jpayne@69
|
3612 #if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3613 {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0},
|
jpayne@69
|
3614 #else
|
jpayne@69
|
3615 {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
|
jpayne@69
|
3616 #endif
|
jpayne@69
|
3617 #endif
|
jpayne@69
|
3618 {0, 0, 0, 0, 0}
|
jpayne@69
|
3619 };
|
jpayne@69
|
3620 static PyObject *
|
jpayne@69
|
3621 __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args)
|
jpayne@69
|
3622 {
|
jpayne@69
|
3623 CYTHON_UNUSED_VAR(args);
|
jpayne@69
|
3624 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
3625 Py_INCREF(m->func_qualname);
|
jpayne@69
|
3626 return m->func_qualname;
|
jpayne@69
|
3627 #else
|
jpayne@69
|
3628 return PyString_FromString(((PyCFunctionObject*)m)->m_ml->ml_name);
|
jpayne@69
|
3629 #endif
|
jpayne@69
|
3630 }
|
jpayne@69
|
3631 static PyMethodDef __pyx_CyFunction_methods[] = {
|
jpayne@69
|
3632 {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
|
jpayne@69
|
3633 {0, 0, 0, 0}
|
jpayne@69
|
3634 };
|
jpayne@69
|
3635 #if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3636 #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
|
jpayne@69
|
3637 #else
|
jpayne@69
|
3638 #define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
|
jpayne@69
|
3639 #endif
|
jpayne@69
|
3640 static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
|
jpayne@69
|
3641 PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
|
jpayne@69
|
3642 #if !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3643 PyCFunctionObject *cf = (PyCFunctionObject*) op;
|
jpayne@69
|
3644 #endif
|
jpayne@69
|
3645 if (unlikely(op == NULL))
|
jpayne@69
|
3646 return NULL;
|
jpayne@69
|
3647 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3648 op->func = PyCFunction_NewEx(ml, (PyObject*)op, module);
|
jpayne@69
|
3649 if (unlikely(!op->func)) return NULL;
|
jpayne@69
|
3650 #endif
|
jpayne@69
|
3651 op->flags = flags;
|
jpayne@69
|
3652 __Pyx_CyFunction_weakreflist(op) = NULL;
|
jpayne@69
|
3653 #if !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3654 cf->m_ml = ml;
|
jpayne@69
|
3655 cf->m_self = (PyObject *) op;
|
jpayne@69
|
3656 #endif
|
jpayne@69
|
3657 Py_XINCREF(closure);
|
jpayne@69
|
3658 op->func_closure = closure;
|
jpayne@69
|
3659 #if !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3660 Py_XINCREF(module);
|
jpayne@69
|
3661 cf->m_module = module;
|
jpayne@69
|
3662 #endif
|
jpayne@69
|
3663 op->func_dict = NULL;
|
jpayne@69
|
3664 op->func_name = NULL;
|
jpayne@69
|
3665 Py_INCREF(qualname);
|
jpayne@69
|
3666 op->func_qualname = qualname;
|
jpayne@69
|
3667 op->func_doc = NULL;
|
jpayne@69
|
3668 #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3669 op->func_classobj = NULL;
|
jpayne@69
|
3670 #else
|
jpayne@69
|
3671 ((PyCMethodObject*)op)->mm_class = NULL;
|
jpayne@69
|
3672 #endif
|
jpayne@69
|
3673 op->func_globals = globals;
|
jpayne@69
|
3674 Py_INCREF(op->func_globals);
|
jpayne@69
|
3675 Py_XINCREF(code);
|
jpayne@69
|
3676 op->func_code = code;
|
jpayne@69
|
3677 op->defaults_pyobjects = 0;
|
jpayne@69
|
3678 op->defaults_size = 0;
|
jpayne@69
|
3679 op->defaults = NULL;
|
jpayne@69
|
3680 op->defaults_tuple = NULL;
|
jpayne@69
|
3681 op->defaults_kwdict = NULL;
|
jpayne@69
|
3682 op->defaults_getter = NULL;
|
jpayne@69
|
3683 op->func_annotations = NULL;
|
jpayne@69
|
3684 op->func_is_coroutine = NULL;
|
jpayne@69
|
3685 #if CYTHON_METH_FASTCALL
|
jpayne@69
|
3686 switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
|
jpayne@69
|
3687 case METH_NOARGS:
|
jpayne@69
|
3688 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
|
jpayne@69
|
3689 break;
|
jpayne@69
|
3690 case METH_O:
|
jpayne@69
|
3691 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
|
jpayne@69
|
3692 break;
|
jpayne@69
|
3693 case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
|
jpayne@69
|
3694 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
|
jpayne@69
|
3695 break;
|
jpayne@69
|
3696 case METH_FASTCALL | METH_KEYWORDS:
|
jpayne@69
|
3697 __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
|
jpayne@69
|
3698 break;
|
jpayne@69
|
3699 case METH_VARARGS | METH_KEYWORDS:
|
jpayne@69
|
3700 __Pyx_CyFunction_func_vectorcall(op) = NULL;
|
jpayne@69
|
3701 break;
|
jpayne@69
|
3702 default:
|
jpayne@69
|
3703 PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
|
jpayne@69
|
3704 Py_DECREF(op);
|
jpayne@69
|
3705 return NULL;
|
jpayne@69
|
3706 }
|
jpayne@69
|
3707 #endif
|
jpayne@69
|
3708 return (PyObject *) op;
|
jpayne@69
|
3709 }
|
jpayne@69
|
3710 static int
|
jpayne@69
|
3711 __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
|
jpayne@69
|
3712 {
|
jpayne@69
|
3713 Py_CLEAR(m->func_closure);
|
jpayne@69
|
3714 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3715 Py_CLEAR(m->func);
|
jpayne@69
|
3716 #else
|
jpayne@69
|
3717 Py_CLEAR(((PyCFunctionObject*)m)->m_module);
|
jpayne@69
|
3718 #endif
|
jpayne@69
|
3719 Py_CLEAR(m->func_dict);
|
jpayne@69
|
3720 Py_CLEAR(m->func_name);
|
jpayne@69
|
3721 Py_CLEAR(m->func_qualname);
|
jpayne@69
|
3722 Py_CLEAR(m->func_doc);
|
jpayne@69
|
3723 Py_CLEAR(m->func_globals);
|
jpayne@69
|
3724 Py_CLEAR(m->func_code);
|
jpayne@69
|
3725 #if !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3726 #if PY_VERSION_HEX < 0x030900B1
|
jpayne@69
|
3727 Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
|
jpayne@69
|
3728 #else
|
jpayne@69
|
3729 {
|
jpayne@69
|
3730 PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
|
jpayne@69
|
3731 ((PyCMethodObject *) (m))->mm_class = NULL;
|
jpayne@69
|
3732 Py_XDECREF(cls);
|
jpayne@69
|
3733 }
|
jpayne@69
|
3734 #endif
|
jpayne@69
|
3735 #endif
|
jpayne@69
|
3736 Py_CLEAR(m->defaults_tuple);
|
jpayne@69
|
3737 Py_CLEAR(m->defaults_kwdict);
|
jpayne@69
|
3738 Py_CLEAR(m->func_annotations);
|
jpayne@69
|
3739 Py_CLEAR(m->func_is_coroutine);
|
jpayne@69
|
3740 if (m->defaults) {
|
jpayne@69
|
3741 PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
|
jpayne@69
|
3742 int i;
|
jpayne@69
|
3743 for (i = 0; i < m->defaults_pyobjects; i++)
|
jpayne@69
|
3744 Py_XDECREF(pydefaults[i]);
|
jpayne@69
|
3745 PyObject_Free(m->defaults);
|
jpayne@69
|
3746 m->defaults = NULL;
|
jpayne@69
|
3747 }
|
jpayne@69
|
3748 return 0;
|
jpayne@69
|
3749 }
|
jpayne@69
|
3750 static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
|
jpayne@69
|
3751 {
|
jpayne@69
|
3752 if (__Pyx_CyFunction_weakreflist(m) != NULL)
|
jpayne@69
|
3753 PyObject_ClearWeakRefs((PyObject *) m);
|
jpayne@69
|
3754 __Pyx_CyFunction_clear(m);
|
jpayne@69
|
3755 __Pyx_PyHeapTypeObject_GC_Del(m);
|
jpayne@69
|
3756 }
|
jpayne@69
|
3757 static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
|
jpayne@69
|
3758 {
|
jpayne@69
|
3759 PyObject_GC_UnTrack(m);
|
jpayne@69
|
3760 __Pyx__CyFunction_dealloc(m);
|
jpayne@69
|
3761 }
|
jpayne@69
|
3762 static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
|
jpayne@69
|
3763 {
|
jpayne@69
|
3764 Py_VISIT(m->func_closure);
|
jpayne@69
|
3765 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3766 Py_VISIT(m->func);
|
jpayne@69
|
3767 #else
|
jpayne@69
|
3768 Py_VISIT(((PyCFunctionObject*)m)->m_module);
|
jpayne@69
|
3769 #endif
|
jpayne@69
|
3770 Py_VISIT(m->func_dict);
|
jpayne@69
|
3771 Py_VISIT(m->func_name);
|
jpayne@69
|
3772 Py_VISIT(m->func_qualname);
|
jpayne@69
|
3773 Py_VISIT(m->func_doc);
|
jpayne@69
|
3774 Py_VISIT(m->func_globals);
|
jpayne@69
|
3775 Py_VISIT(m->func_code);
|
jpayne@69
|
3776 #if !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3777 Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
|
jpayne@69
|
3778 #endif
|
jpayne@69
|
3779 Py_VISIT(m->defaults_tuple);
|
jpayne@69
|
3780 Py_VISIT(m->defaults_kwdict);
|
jpayne@69
|
3781 Py_VISIT(m->func_is_coroutine);
|
jpayne@69
|
3782 if (m->defaults) {
|
jpayne@69
|
3783 PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
|
jpayne@69
|
3784 int i;
|
jpayne@69
|
3785 for (i = 0; i < m->defaults_pyobjects; i++)
|
jpayne@69
|
3786 Py_VISIT(pydefaults[i]);
|
jpayne@69
|
3787 }
|
jpayne@69
|
3788 return 0;
|
jpayne@69
|
3789 }
|
jpayne@69
|
3790 static PyObject*
|
jpayne@69
|
3791 __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
|
jpayne@69
|
3792 {
|
jpayne@69
|
3793 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
3794 return PyUnicode_FromFormat("<cyfunction %U at %p>",
|
jpayne@69
|
3795 op->func_qualname, (void *)op);
|
jpayne@69
|
3796 #else
|
jpayne@69
|
3797 return PyString_FromFormat("<cyfunction %s at %p>",
|
jpayne@69
|
3798 PyString_AsString(op->func_qualname), (void *)op);
|
jpayne@69
|
3799 #endif
|
jpayne@69
|
3800 }
|
jpayne@69
|
3801 static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
|
jpayne@69
|
3802 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3803 PyObject *f = ((__pyx_CyFunctionObject*)func)->func;
|
jpayne@69
|
3804 PyObject *py_name = NULL;
|
jpayne@69
|
3805 PyCFunction meth;
|
jpayne@69
|
3806 int flags;
|
jpayne@69
|
3807 meth = PyCFunction_GetFunction(f);
|
jpayne@69
|
3808 if (unlikely(!meth)) return NULL;
|
jpayne@69
|
3809 flags = PyCFunction_GetFlags(f);
|
jpayne@69
|
3810 if (unlikely(flags < 0)) return NULL;
|
jpayne@69
|
3811 #else
|
jpayne@69
|
3812 PyCFunctionObject* f = (PyCFunctionObject*)func;
|
jpayne@69
|
3813 PyCFunction meth = f->m_ml->ml_meth;
|
jpayne@69
|
3814 int flags = f->m_ml->ml_flags;
|
jpayne@69
|
3815 #endif
|
jpayne@69
|
3816 Py_ssize_t size;
|
jpayne@69
|
3817 switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
|
jpayne@69
|
3818 case METH_VARARGS:
|
jpayne@69
|
3819 if (likely(kw == NULL || PyDict_Size(kw) == 0))
|
jpayne@69
|
3820 return (*meth)(self, arg);
|
jpayne@69
|
3821 break;
|
jpayne@69
|
3822 case METH_VARARGS | METH_KEYWORDS:
|
jpayne@69
|
3823 return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
|
jpayne@69
|
3824 case METH_NOARGS:
|
jpayne@69
|
3825 if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
|
jpayne@69
|
3826 #if CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
3827 size = PyTuple_GET_SIZE(arg);
|
jpayne@69
|
3828 #else
|
jpayne@69
|
3829 size = PyTuple_Size(arg);
|
jpayne@69
|
3830 if (unlikely(size < 0)) return NULL;
|
jpayne@69
|
3831 #endif
|
jpayne@69
|
3832 if (likely(size == 0))
|
jpayne@69
|
3833 return (*meth)(self, NULL);
|
jpayne@69
|
3834 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3835 py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
|
jpayne@69
|
3836 if (!py_name) return NULL;
|
jpayne@69
|
3837 PyErr_Format(PyExc_TypeError,
|
jpayne@69
|
3838 "%.200S() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
|
jpayne@69
|
3839 py_name, size);
|
jpayne@69
|
3840 Py_DECREF(py_name);
|
jpayne@69
|
3841 #else
|
jpayne@69
|
3842 PyErr_Format(PyExc_TypeError,
|
jpayne@69
|
3843 "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
|
jpayne@69
|
3844 f->m_ml->ml_name, size);
|
jpayne@69
|
3845 #endif
|
jpayne@69
|
3846 return NULL;
|
jpayne@69
|
3847 }
|
jpayne@69
|
3848 break;
|
jpayne@69
|
3849 case METH_O:
|
jpayne@69
|
3850 if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
|
jpayne@69
|
3851 #if CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
3852 size = PyTuple_GET_SIZE(arg);
|
jpayne@69
|
3853 #else
|
jpayne@69
|
3854 size = PyTuple_Size(arg);
|
jpayne@69
|
3855 if (unlikely(size < 0)) return NULL;
|
jpayne@69
|
3856 #endif
|
jpayne@69
|
3857 if (likely(size == 1)) {
|
jpayne@69
|
3858 PyObject *result, *arg0;
|
jpayne@69
|
3859 #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
3860 arg0 = PyTuple_GET_ITEM(arg, 0);
|
jpayne@69
|
3861 #else
|
jpayne@69
|
3862 arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
|
jpayne@69
|
3863 #endif
|
jpayne@69
|
3864 result = (*meth)(self, arg0);
|
jpayne@69
|
3865 #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
|
jpayne@69
|
3866 Py_DECREF(arg0);
|
jpayne@69
|
3867 #endif
|
jpayne@69
|
3868 return result;
|
jpayne@69
|
3869 }
|
jpayne@69
|
3870 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3871 py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
|
jpayne@69
|
3872 if (!py_name) return NULL;
|
jpayne@69
|
3873 PyErr_Format(PyExc_TypeError,
|
jpayne@69
|
3874 "%.200S() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
|
jpayne@69
|
3875 py_name, size);
|
jpayne@69
|
3876 Py_DECREF(py_name);
|
jpayne@69
|
3877 #else
|
jpayne@69
|
3878 PyErr_Format(PyExc_TypeError,
|
jpayne@69
|
3879 "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
|
jpayne@69
|
3880 f->m_ml->ml_name, size);
|
jpayne@69
|
3881 #endif
|
jpayne@69
|
3882 return NULL;
|
jpayne@69
|
3883 }
|
jpayne@69
|
3884 break;
|
jpayne@69
|
3885 default:
|
jpayne@69
|
3886 PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
|
jpayne@69
|
3887 return NULL;
|
jpayne@69
|
3888 }
|
jpayne@69
|
3889 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3890 py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
|
jpayne@69
|
3891 if (!py_name) return NULL;
|
jpayne@69
|
3892 PyErr_Format(PyExc_TypeError, "%.200S() takes no keyword arguments",
|
jpayne@69
|
3893 py_name);
|
jpayne@69
|
3894 Py_DECREF(py_name);
|
jpayne@69
|
3895 #else
|
jpayne@69
|
3896 PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
|
jpayne@69
|
3897 f->m_ml->ml_name);
|
jpayne@69
|
3898 #endif
|
jpayne@69
|
3899 return NULL;
|
jpayne@69
|
3900 }
|
jpayne@69
|
3901 static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
|
jpayne@69
|
3902 PyObject *self, *result;
|
jpayne@69
|
3903 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
3904 self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func);
|
jpayne@69
|
3905 if (unlikely(!self) && PyErr_Occurred()) return NULL;
|
jpayne@69
|
3906 #else
|
jpayne@69
|
3907 self = ((PyCFunctionObject*)func)->m_self;
|
jpayne@69
|
3908 #endif
|
jpayne@69
|
3909 result = __Pyx_CyFunction_CallMethod(func, self, arg, kw);
|
jpayne@69
|
3910 return result;
|
jpayne@69
|
3911 }
|
jpayne@69
|
3912 static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
|
jpayne@69
|
3913 PyObject *result;
|
jpayne@69
|
3914 __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
|
jpayne@69
|
3915 #if CYTHON_METH_FASTCALL
|
jpayne@69
|
3916 __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
|
jpayne@69
|
3917 if (vc) {
|
jpayne@69
|
3918 #if CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
3919 return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
|
jpayne@69
|
3920 #else
|
jpayne@69
|
3921 (void) &__Pyx_PyVectorcall_FastCallDict;
|
jpayne@69
|
3922 return PyVectorcall_Call(func, args, kw);
|
jpayne@69
|
3923 #endif
|
jpayne@69
|
3924 }
|
jpayne@69
|
3925 #endif
|
jpayne@69
|
3926 if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
|
jpayne@69
|
3927 Py_ssize_t argc;
|
jpayne@69
|
3928 PyObject *new_args;
|
jpayne@69
|
3929 PyObject *self;
|
jpayne@69
|
3930 #if CYTHON_ASSUME_SAFE_MACROS
|
jpayne@69
|
3931 argc = PyTuple_GET_SIZE(args);
|
jpayne@69
|
3932 #else
|
jpayne@69
|
3933 argc = PyTuple_Size(args);
|
jpayne@69
|
3934 if (unlikely(!argc) < 0) return NULL;
|
jpayne@69
|
3935 #endif
|
jpayne@69
|
3936 new_args = PyTuple_GetSlice(args, 1, argc);
|
jpayne@69
|
3937 if (unlikely(!new_args))
|
jpayne@69
|
3938 return NULL;
|
jpayne@69
|
3939 self = PyTuple_GetItem(args, 0);
|
jpayne@69
|
3940 if (unlikely(!self)) {
|
jpayne@69
|
3941 Py_DECREF(new_args);
|
jpayne@69
|
3942 #if PY_MAJOR_VERSION > 2
|
jpayne@69
|
3943 PyErr_Format(PyExc_TypeError,
|
jpayne@69
|
3944 "unbound method %.200S() needs an argument",
|
jpayne@69
|
3945 cyfunc->func_qualname);
|
jpayne@69
|
3946 #else
|
jpayne@69
|
3947 PyErr_SetString(PyExc_TypeError,
|
jpayne@69
|
3948 "unbound method needs an argument");
|
jpayne@69
|
3949 #endif
|
jpayne@69
|
3950 return NULL;
|
jpayne@69
|
3951 }
|
jpayne@69
|
3952 result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
|
jpayne@69
|
3953 Py_DECREF(new_args);
|
jpayne@69
|
3954 } else {
|
jpayne@69
|
3955 result = __Pyx_CyFunction_Call(func, args, kw);
|
jpayne@69
|
3956 }
|
jpayne@69
|
3957 return result;
|
jpayne@69
|
3958 }
|
jpayne@69
|
3959 #if CYTHON_METH_FASTCALL
|
jpayne@69
|
3960 static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
|
jpayne@69
|
3961 {
|
jpayne@69
|
3962 int ret = 0;
|
jpayne@69
|
3963 if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
|
jpayne@69
|
3964 if (unlikely(nargs < 1)) {
|
jpayne@69
|
3965 PyErr_Format(PyExc_TypeError, "%.200s() needs an argument",
|
jpayne@69
|
3966 ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
|
jpayne@69
|
3967 return -1;
|
jpayne@69
|
3968 }
|
jpayne@69
|
3969 ret = 1;
|
jpayne@69
|
3970 }
|
jpayne@69
|
3971 if (unlikely(kwnames) && unlikely(PyTuple_GET_SIZE(kwnames))) {
|
jpayne@69
|
3972 PyErr_Format(PyExc_TypeError,
|
jpayne@69
|
3973 "%.200s() takes no keyword arguments", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
|
jpayne@69
|
3974 return -1;
|
jpayne@69
|
3975 }
|
jpayne@69
|
3976 return ret;
|
jpayne@69
|
3977 }
|
jpayne@69
|
3978 static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
|
jpayne@69
|
3979 {
|
jpayne@69
|
3980 __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
|
jpayne@69
|
3981 PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
|
jpayne@69
|
3982 #if CYTHON_BACKPORT_VECTORCALL
|
jpayne@69
|
3983 Py_ssize_t nargs = (Py_ssize_t)nargsf;
|
jpayne@69
|
3984 #else
|
jpayne@69
|
3985 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
|
jpayne@69
|
3986 #endif
|
jpayne@69
|
3987 PyObject *self;
|
jpayne@69
|
3988 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
|
jpayne@69
|
3989 case 1:
|
jpayne@69
|
3990 self = args[0];
|
jpayne@69
|
3991 args += 1;
|
jpayne@69
|
3992 nargs -= 1;
|
jpayne@69
|
3993 break;
|
jpayne@69
|
3994 case 0:
|
jpayne@69
|
3995 self = ((PyCFunctionObject*)cyfunc)->m_self;
|
jpayne@69
|
3996 break;
|
jpayne@69
|
3997 default:
|
jpayne@69
|
3998 return NULL;
|
jpayne@69
|
3999 }
|
jpayne@69
|
4000 if (unlikely(nargs != 0)) {
|
jpayne@69
|
4001 PyErr_Format(PyExc_TypeError,
|
jpayne@69
|
4002 "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
|
jpayne@69
|
4003 def->ml_name, nargs);
|
jpayne@69
|
4004 return NULL;
|
jpayne@69
|
4005 }
|
jpayne@69
|
4006 return def->ml_meth(self, NULL);
|
jpayne@69
|
4007 }
|
jpayne@69
|
4008 static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
|
jpayne@69
|
4009 {
|
jpayne@69
|
4010 __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
|
jpayne@69
|
4011 PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
|
jpayne@69
|
4012 #if CYTHON_BACKPORT_VECTORCALL
|
jpayne@69
|
4013 Py_ssize_t nargs = (Py_ssize_t)nargsf;
|
jpayne@69
|
4014 #else
|
jpayne@69
|
4015 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
|
jpayne@69
|
4016 #endif
|
jpayne@69
|
4017 PyObject *self;
|
jpayne@69
|
4018 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
|
jpayne@69
|
4019 case 1:
|
jpayne@69
|
4020 self = args[0];
|
jpayne@69
|
4021 args += 1;
|
jpayne@69
|
4022 nargs -= 1;
|
jpayne@69
|
4023 break;
|
jpayne@69
|
4024 case 0:
|
jpayne@69
|
4025 self = ((PyCFunctionObject*)cyfunc)->m_self;
|
jpayne@69
|
4026 break;
|
jpayne@69
|
4027 default:
|
jpayne@69
|
4028 return NULL;
|
jpayne@69
|
4029 }
|
jpayne@69
|
4030 if (unlikely(nargs != 1)) {
|
jpayne@69
|
4031 PyErr_Format(PyExc_TypeError,
|
jpayne@69
|
4032 "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
|
jpayne@69
|
4033 def->ml_name, nargs);
|
jpayne@69
|
4034 return NULL;
|
jpayne@69
|
4035 }
|
jpayne@69
|
4036 return def->ml_meth(self, args[0]);
|
jpayne@69
|
4037 }
|
jpayne@69
|
4038 static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
|
jpayne@69
|
4039 {
|
jpayne@69
|
4040 __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
|
jpayne@69
|
4041 PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
|
jpayne@69
|
4042 #if CYTHON_BACKPORT_VECTORCALL
|
jpayne@69
|
4043 Py_ssize_t nargs = (Py_ssize_t)nargsf;
|
jpayne@69
|
4044 #else
|
jpayne@69
|
4045 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
|
jpayne@69
|
4046 #endif
|
jpayne@69
|
4047 PyObject *self;
|
jpayne@69
|
4048 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
|
jpayne@69
|
4049 case 1:
|
jpayne@69
|
4050 self = args[0];
|
jpayne@69
|
4051 args += 1;
|
jpayne@69
|
4052 nargs -= 1;
|
jpayne@69
|
4053 break;
|
jpayne@69
|
4054 case 0:
|
jpayne@69
|
4055 self = ((PyCFunctionObject*)cyfunc)->m_self;
|
jpayne@69
|
4056 break;
|
jpayne@69
|
4057 default:
|
jpayne@69
|
4058 return NULL;
|
jpayne@69
|
4059 }
|
jpayne@69
|
4060 return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))def->ml_meth)(self, args, nargs, kwnames);
|
jpayne@69
|
4061 }
|
jpayne@69
|
4062 static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
|
jpayne@69
|
4063 {
|
jpayne@69
|
4064 __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
|
jpayne@69
|
4065 PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
|
jpayne@69
|
4066 PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc);
|
jpayne@69
|
4067 #if CYTHON_BACKPORT_VECTORCALL
|
jpayne@69
|
4068 Py_ssize_t nargs = (Py_ssize_t)nargsf;
|
jpayne@69
|
4069 #else
|
jpayne@69
|
4070 Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
|
jpayne@69
|
4071 #endif
|
jpayne@69
|
4072 PyObject *self;
|
jpayne@69
|
4073 switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
|
jpayne@69
|
4074 case 1:
|
jpayne@69
|
4075 self = args[0];
|
jpayne@69
|
4076 args += 1;
|
jpayne@69
|
4077 nargs -= 1;
|
jpayne@69
|
4078 break;
|
jpayne@69
|
4079 case 0:
|
jpayne@69
|
4080 self = ((PyCFunctionObject*)cyfunc)->m_self;
|
jpayne@69
|
4081 break;
|
jpayne@69
|
4082 default:
|
jpayne@69
|
4083 return NULL;
|
jpayne@69
|
4084 }
|
jpayne@69
|
4085 return ((__Pyx_PyCMethod)(void(*)(void))def->ml_meth)(self, cls, args, (size_t)nargs, kwnames);
|
jpayne@69
|
4086 }
|
jpayne@69
|
4087 #endif
|
jpayne@69
|
4088 #if CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
4089 static PyType_Slot __pyx_CyFunctionType_slots[] = {
|
jpayne@69
|
4090 {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
|
jpayne@69
|
4091 {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
|
jpayne@69
|
4092 {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
|
jpayne@69
|
4093 {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
|
jpayne@69
|
4094 {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
|
jpayne@69
|
4095 {Py_tp_methods, (void *)__pyx_CyFunction_methods},
|
jpayne@69
|
4096 {Py_tp_members, (void *)__pyx_CyFunction_members},
|
jpayne@69
|
4097 {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
|
jpayne@69
|
4098 {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
|
jpayne@69
|
4099 {0, 0},
|
jpayne@69
|
4100 };
|
jpayne@69
|
4101 static PyType_Spec __pyx_CyFunctionType_spec = {
|
jpayne@69
|
4102 __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
|
jpayne@69
|
4103 sizeof(__pyx_CyFunctionObject),
|
jpayne@69
|
4104 0,
|
jpayne@69
|
4105 #ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
|
jpayne@69
|
4106 Py_TPFLAGS_METHOD_DESCRIPTOR |
|
jpayne@69
|
4107 #endif
|
jpayne@69
|
4108 #if (defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL)
|
jpayne@69
|
4109 _Py_TPFLAGS_HAVE_VECTORCALL |
|
jpayne@69
|
4110 #endif
|
jpayne@69
|
4111 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
|
jpayne@69
|
4112 __pyx_CyFunctionType_slots
|
jpayne@69
|
4113 };
|
jpayne@69
|
4114 #else
|
jpayne@69
|
4115 static PyTypeObject __pyx_CyFunctionType_type = {
|
jpayne@69
|
4116 PyVarObject_HEAD_INIT(0, 0)
|
jpayne@69
|
4117 __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
|
jpayne@69
|
4118 sizeof(__pyx_CyFunctionObject),
|
jpayne@69
|
4119 0,
|
jpayne@69
|
4120 (destructor) __Pyx_CyFunction_dealloc,
|
jpayne@69
|
4121 #if !CYTHON_METH_FASTCALL
|
jpayne@69
|
4122 0,
|
jpayne@69
|
4123 #elif CYTHON_BACKPORT_VECTORCALL
|
jpayne@69
|
4124 (printfunc)offsetof(__pyx_CyFunctionObject, func_vectorcall),
|
jpayne@69
|
4125 #else
|
jpayne@69
|
4126 offsetof(PyCFunctionObject, vectorcall),
|
jpayne@69
|
4127 #endif
|
jpayne@69
|
4128 0,
|
jpayne@69
|
4129 0,
|
jpayne@69
|
4130 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
4131 0,
|
jpayne@69
|
4132 #else
|
jpayne@69
|
4133 0,
|
jpayne@69
|
4134 #endif
|
jpayne@69
|
4135 (reprfunc) __Pyx_CyFunction_repr,
|
jpayne@69
|
4136 0,
|
jpayne@69
|
4137 0,
|
jpayne@69
|
4138 0,
|
jpayne@69
|
4139 0,
|
jpayne@69
|
4140 __Pyx_CyFunction_CallAsMethod,
|
jpayne@69
|
4141 0,
|
jpayne@69
|
4142 0,
|
jpayne@69
|
4143 0,
|
jpayne@69
|
4144 0,
|
jpayne@69
|
4145 #ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
|
jpayne@69
|
4146 Py_TPFLAGS_METHOD_DESCRIPTOR |
|
jpayne@69
|
4147 #endif
|
jpayne@69
|
4148 #if defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL
|
jpayne@69
|
4149 _Py_TPFLAGS_HAVE_VECTORCALL |
|
jpayne@69
|
4150 #endif
|
jpayne@69
|
4151 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
|
jpayne@69
|
4152 0,
|
jpayne@69
|
4153 (traverseproc) __Pyx_CyFunction_traverse,
|
jpayne@69
|
4154 (inquiry) __Pyx_CyFunction_clear,
|
jpayne@69
|
4155 0,
|
jpayne@69
|
4156 #if PY_VERSION_HEX < 0x030500A0
|
jpayne@69
|
4157 offsetof(__pyx_CyFunctionObject, func_weakreflist),
|
jpayne@69
|
4158 #else
|
jpayne@69
|
4159 offsetof(PyCFunctionObject, m_weakreflist),
|
jpayne@69
|
4160 #endif
|
jpayne@69
|
4161 0,
|
jpayne@69
|
4162 0,
|
jpayne@69
|
4163 __pyx_CyFunction_methods,
|
jpayne@69
|
4164 __pyx_CyFunction_members,
|
jpayne@69
|
4165 __pyx_CyFunction_getsets,
|
jpayne@69
|
4166 0,
|
jpayne@69
|
4167 0,
|
jpayne@69
|
4168 __Pyx_PyMethod_New,
|
jpayne@69
|
4169 0,
|
jpayne@69
|
4170 offsetof(__pyx_CyFunctionObject, func_dict),
|
jpayne@69
|
4171 0,
|
jpayne@69
|
4172 0,
|
jpayne@69
|
4173 0,
|
jpayne@69
|
4174 0,
|
jpayne@69
|
4175 0,
|
jpayne@69
|
4176 0,
|
jpayne@69
|
4177 0,
|
jpayne@69
|
4178 0,
|
jpayne@69
|
4179 0,
|
jpayne@69
|
4180 0,
|
jpayne@69
|
4181 0,
|
jpayne@69
|
4182 0,
|
jpayne@69
|
4183 #if PY_VERSION_HEX >= 0x030400a1
|
jpayne@69
|
4184 0,
|
jpayne@69
|
4185 #endif
|
jpayne@69
|
4186 #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
|
jpayne@69
|
4187 0,
|
jpayne@69
|
4188 #endif
|
jpayne@69
|
4189 #if __PYX_NEED_TP_PRINT_SLOT
|
jpayne@69
|
4190 0,
|
jpayne@69
|
4191 #endif
|
jpayne@69
|
4192 #if PY_VERSION_HEX >= 0x030C0000
|
jpayne@69
|
4193 0,
|
jpayne@69
|
4194 #endif
|
jpayne@69
|
4195 #if PY_VERSION_HEX >= 0x030d00A4
|
jpayne@69
|
4196 0,
|
jpayne@69
|
4197 #endif
|
jpayne@69
|
4198 #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
|
jpayne@69
|
4199 0,
|
jpayne@69
|
4200 #endif
|
jpayne@69
|
4201 };
|
jpayne@69
|
4202 #endif
|
jpayne@69
|
4203 static int __pyx_CyFunction_init(PyObject *module) {
|
jpayne@69
|
4204 #if CYTHON_USE_TYPE_SPECS
|
jpayne@69
|
4205 __pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CyFunctionType_spec, NULL);
|
jpayne@69
|
4206 #else
|
jpayne@69
|
4207 CYTHON_UNUSED_VAR(module);
|
jpayne@69
|
4208 __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
|
jpayne@69
|
4209 #endif
|
jpayne@69
|
4210 if (unlikely(__pyx_CyFunctionType == NULL)) {
|
jpayne@69
|
4211 return -1;
|
jpayne@69
|
4212 }
|
jpayne@69
|
4213 return 0;
|
jpayne@69
|
4214 }
|
jpayne@69
|
4215 static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
|
jpayne@69
|
4216 __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
|
jpayne@69
|
4217 m->defaults = PyObject_Malloc(size);
|
jpayne@69
|
4218 if (unlikely(!m->defaults))
|
jpayne@69
|
4219 return PyErr_NoMemory();
|
jpayne@69
|
4220 memset(m->defaults, 0, size);
|
jpayne@69
|
4221 m->defaults_pyobjects = pyobjects;
|
jpayne@69
|
4222 m->defaults_size = size;
|
jpayne@69
|
4223 return m->defaults;
|
jpayne@69
|
4224 }
|
jpayne@69
|
4225 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
|
jpayne@69
|
4226 __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
|
jpayne@69
|
4227 m->defaults_tuple = tuple;
|
jpayne@69
|
4228 Py_INCREF(tuple);
|
jpayne@69
|
4229 }
|
jpayne@69
|
4230 static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
|
jpayne@69
|
4231 __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
|
jpayne@69
|
4232 m->defaults_kwdict = dict;
|
jpayne@69
|
4233 Py_INCREF(dict);
|
jpayne@69
|
4234 }
|
jpayne@69
|
4235 static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
|
jpayne@69
|
4236 __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
|
jpayne@69
|
4237 m->func_annotations = dict;
|
jpayne@69
|
4238 Py_INCREF(dict);
|
jpayne@69
|
4239 }
|
jpayne@69
|
4240
|
jpayne@69
|
4241 /* CythonFunction */
|
jpayne@69
|
4242 static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
|
jpayne@69
|
4243 PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
|
jpayne@69
|
4244 PyObject *op = __Pyx_CyFunction_Init(
|
jpayne@69
|
4245 PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
|
jpayne@69
|
4246 ml, flags, qualname, closure, module, globals, code
|
jpayne@69
|
4247 );
|
jpayne@69
|
4248 if (likely(op)) {
|
jpayne@69
|
4249 PyObject_GC_Track(op);
|
jpayne@69
|
4250 }
|
jpayne@69
|
4251 return op;
|
jpayne@69
|
4252 }
|
jpayne@69
|
4253
|
jpayne@69
|
4254 /* PyDictVersioning */
|
jpayne@69
|
4255 #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
4256 static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
|
jpayne@69
|
4257 PyObject *dict = Py_TYPE(obj)->tp_dict;
|
jpayne@69
|
4258 return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
|
jpayne@69
|
4259 }
|
jpayne@69
|
4260 static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
|
jpayne@69
|
4261 PyObject **dictptr = NULL;
|
jpayne@69
|
4262 Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
|
jpayne@69
|
4263 if (offset) {
|
jpayne@69
|
4264 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
4265 dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
|
jpayne@69
|
4266 #else
|
jpayne@69
|
4267 dictptr = _PyObject_GetDictPtr(obj);
|
jpayne@69
|
4268 #endif
|
jpayne@69
|
4269 }
|
jpayne@69
|
4270 return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
|
jpayne@69
|
4271 }
|
jpayne@69
|
4272 static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
|
jpayne@69
|
4273 PyObject *dict = Py_TYPE(obj)->tp_dict;
|
jpayne@69
|
4274 if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
|
jpayne@69
|
4275 return 0;
|
jpayne@69
|
4276 return obj_dict_version == __Pyx_get_object_dict_version(obj);
|
jpayne@69
|
4277 }
|
jpayne@69
|
4278 #endif
|
jpayne@69
|
4279
|
jpayne@69
|
4280 /* PyErrExceptionMatches */
|
jpayne@69
|
4281 #if CYTHON_FAST_THREAD_STATE
|
jpayne@69
|
4282 static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
|
jpayne@69
|
4283 Py_ssize_t i, n;
|
jpayne@69
|
4284 n = PyTuple_GET_SIZE(tuple);
|
jpayne@69
|
4285 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
4286 for (i=0; i<n; i++) {
|
jpayne@69
|
4287 if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
|
jpayne@69
|
4288 }
|
jpayne@69
|
4289 #endif
|
jpayne@69
|
4290 for (i=0; i<n; i++) {
|
jpayne@69
|
4291 if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
|
jpayne@69
|
4292 }
|
jpayne@69
|
4293 return 0;
|
jpayne@69
|
4294 }
|
jpayne@69
|
4295 static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
|
jpayne@69
|
4296 int result;
|
jpayne@69
|
4297 PyObject *exc_type;
|
jpayne@69
|
4298 #if PY_VERSION_HEX >= 0x030C00A6
|
jpayne@69
|
4299 PyObject *current_exception = tstate->current_exception;
|
jpayne@69
|
4300 if (unlikely(!current_exception)) return 0;
|
jpayne@69
|
4301 exc_type = (PyObject*) Py_TYPE(current_exception);
|
jpayne@69
|
4302 if (exc_type == err) return 1;
|
jpayne@69
|
4303 #else
|
jpayne@69
|
4304 exc_type = tstate->curexc_type;
|
jpayne@69
|
4305 if (exc_type == err) return 1;
|
jpayne@69
|
4306 if (unlikely(!exc_type)) return 0;
|
jpayne@69
|
4307 #endif
|
jpayne@69
|
4308 #if CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
4309 Py_INCREF(exc_type);
|
jpayne@69
|
4310 #endif
|
jpayne@69
|
4311 if (unlikely(PyTuple_Check(err))) {
|
jpayne@69
|
4312 result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
|
jpayne@69
|
4313 } else {
|
jpayne@69
|
4314 result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
|
jpayne@69
|
4315 }
|
jpayne@69
|
4316 #if CYTHON_AVOID_BORROWED_REFS
|
jpayne@69
|
4317 Py_DECREF(exc_type);
|
jpayne@69
|
4318 #endif
|
jpayne@69
|
4319 return result;
|
jpayne@69
|
4320 }
|
jpayne@69
|
4321 #endif
|
jpayne@69
|
4322
|
jpayne@69
|
4323 /* PyErrFetchRestore */
|
jpayne@69
|
4324 #if CYTHON_FAST_THREAD_STATE
|
jpayne@69
|
4325 static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
|
jpayne@69
|
4326 #if PY_VERSION_HEX >= 0x030C00A6
|
jpayne@69
|
4327 PyObject *tmp_value;
|
jpayne@69
|
4328 assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
|
jpayne@69
|
4329 if (value) {
|
jpayne@69
|
4330 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
4331 if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
|
jpayne@69
|
4332 #endif
|
jpayne@69
|
4333 PyException_SetTraceback(value, tb);
|
jpayne@69
|
4334 }
|
jpayne@69
|
4335 tmp_value = tstate->current_exception;
|
jpayne@69
|
4336 tstate->current_exception = value;
|
jpayne@69
|
4337 Py_XDECREF(tmp_value);
|
jpayne@69
|
4338 Py_XDECREF(type);
|
jpayne@69
|
4339 Py_XDECREF(tb);
|
jpayne@69
|
4340 #else
|
jpayne@69
|
4341 PyObject *tmp_type, *tmp_value, *tmp_tb;
|
jpayne@69
|
4342 tmp_type = tstate->curexc_type;
|
jpayne@69
|
4343 tmp_value = tstate->curexc_value;
|
jpayne@69
|
4344 tmp_tb = tstate->curexc_traceback;
|
jpayne@69
|
4345 tstate->curexc_type = type;
|
jpayne@69
|
4346 tstate->curexc_value = value;
|
jpayne@69
|
4347 tstate->curexc_traceback = tb;
|
jpayne@69
|
4348 Py_XDECREF(tmp_type);
|
jpayne@69
|
4349 Py_XDECREF(tmp_value);
|
jpayne@69
|
4350 Py_XDECREF(tmp_tb);
|
jpayne@69
|
4351 #endif
|
jpayne@69
|
4352 }
|
jpayne@69
|
4353 static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
|
jpayne@69
|
4354 #if PY_VERSION_HEX >= 0x030C00A6
|
jpayne@69
|
4355 PyObject* exc_value;
|
jpayne@69
|
4356 exc_value = tstate->current_exception;
|
jpayne@69
|
4357 tstate->current_exception = 0;
|
jpayne@69
|
4358 *value = exc_value;
|
jpayne@69
|
4359 *type = NULL;
|
jpayne@69
|
4360 *tb = NULL;
|
jpayne@69
|
4361 if (exc_value) {
|
jpayne@69
|
4362 *type = (PyObject*) Py_TYPE(exc_value);
|
jpayne@69
|
4363 Py_INCREF(*type);
|
jpayne@69
|
4364 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
4365 *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
|
jpayne@69
|
4366 Py_XINCREF(*tb);
|
jpayne@69
|
4367 #else
|
jpayne@69
|
4368 *tb = PyException_GetTraceback(exc_value);
|
jpayne@69
|
4369 #endif
|
jpayne@69
|
4370 }
|
jpayne@69
|
4371 #else
|
jpayne@69
|
4372 *type = tstate->curexc_type;
|
jpayne@69
|
4373 *value = tstate->curexc_value;
|
jpayne@69
|
4374 *tb = tstate->curexc_traceback;
|
jpayne@69
|
4375 tstate->curexc_type = 0;
|
jpayne@69
|
4376 tstate->curexc_value = 0;
|
jpayne@69
|
4377 tstate->curexc_traceback = 0;
|
jpayne@69
|
4378 #endif
|
jpayne@69
|
4379 }
|
jpayne@69
|
4380 #endif
|
jpayne@69
|
4381
|
jpayne@69
|
4382 /* PyObjectGetAttrStrNoError */
|
jpayne@69
|
4383 #if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
|
jpayne@69
|
4384 static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
|
jpayne@69
|
4385 __Pyx_PyThreadState_declare
|
jpayne@69
|
4386 __Pyx_PyThreadState_assign
|
jpayne@69
|
4387 if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
|
jpayne@69
|
4388 __Pyx_PyErr_Clear();
|
jpayne@69
|
4389 }
|
jpayne@69
|
4390 #endif
|
jpayne@69
|
4391 static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
|
jpayne@69
|
4392 PyObject *result;
|
jpayne@69
|
4393 #if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
|
jpayne@69
|
4394 (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
|
jpayne@69
|
4395 return result;
|
jpayne@69
|
4396 #else
|
jpayne@69
|
4397 #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
|
jpayne@69
|
4398 PyTypeObject* tp = Py_TYPE(obj);
|
jpayne@69
|
4399 if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
|
jpayne@69
|
4400 return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
|
jpayne@69
|
4401 }
|
jpayne@69
|
4402 #endif
|
jpayne@69
|
4403 result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
|
jpayne@69
|
4404 if (unlikely(!result)) {
|
jpayne@69
|
4405 __Pyx_PyObject_GetAttrStr_ClearAttributeError();
|
jpayne@69
|
4406 }
|
jpayne@69
|
4407 return result;
|
jpayne@69
|
4408 #endif
|
jpayne@69
|
4409 }
|
jpayne@69
|
4410
|
jpayne@69
|
4411 /* CLineInTraceback */
|
jpayne@69
|
4412 #ifndef CYTHON_CLINE_IN_TRACEBACK
|
jpayne@69
|
4413 static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
|
jpayne@69
|
4414 PyObject *use_cline;
|
jpayne@69
|
4415 PyObject *ptype, *pvalue, *ptraceback;
|
jpayne@69
|
4416 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
4417 PyObject **cython_runtime_dict;
|
jpayne@69
|
4418 #endif
|
jpayne@69
|
4419 CYTHON_MAYBE_UNUSED_VAR(tstate);
|
jpayne@69
|
4420 if (unlikely(!__pyx_cython_runtime)) {
|
jpayne@69
|
4421 return c_line;
|
jpayne@69
|
4422 }
|
jpayne@69
|
4423 __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
|
jpayne@69
|
4424 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
4425 cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
|
jpayne@69
|
4426 if (likely(cython_runtime_dict)) {
|
jpayne@69
|
4427 __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
|
jpayne@69
|
4428 use_cline, *cython_runtime_dict,
|
jpayne@69
|
4429 __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
|
jpayne@69
|
4430 } else
|
jpayne@69
|
4431 #endif
|
jpayne@69
|
4432 {
|
jpayne@69
|
4433 PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStrNoError(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
|
jpayne@69
|
4434 if (use_cline_obj) {
|
jpayne@69
|
4435 use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
|
jpayne@69
|
4436 Py_DECREF(use_cline_obj);
|
jpayne@69
|
4437 } else {
|
jpayne@69
|
4438 PyErr_Clear();
|
jpayne@69
|
4439 use_cline = NULL;
|
jpayne@69
|
4440 }
|
jpayne@69
|
4441 }
|
jpayne@69
|
4442 if (!use_cline) {
|
jpayne@69
|
4443 c_line = 0;
|
jpayne@69
|
4444 (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
|
jpayne@69
|
4445 }
|
jpayne@69
|
4446 else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
|
jpayne@69
|
4447 c_line = 0;
|
jpayne@69
|
4448 }
|
jpayne@69
|
4449 __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
|
jpayne@69
|
4450 return c_line;
|
jpayne@69
|
4451 }
|
jpayne@69
|
4452 #endif
|
jpayne@69
|
4453
|
jpayne@69
|
4454 /* CodeObjectCache */
|
jpayne@69
|
4455 #if !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
4456 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
|
jpayne@69
|
4457 int start = 0, mid = 0, end = count - 1;
|
jpayne@69
|
4458 if (end >= 0 && code_line > entries[end].code_line) {
|
jpayne@69
|
4459 return count;
|
jpayne@69
|
4460 }
|
jpayne@69
|
4461 while (start < end) {
|
jpayne@69
|
4462 mid = start + (end - start) / 2;
|
jpayne@69
|
4463 if (code_line < entries[mid].code_line) {
|
jpayne@69
|
4464 end = mid;
|
jpayne@69
|
4465 } else if (code_line > entries[mid].code_line) {
|
jpayne@69
|
4466 start = mid + 1;
|
jpayne@69
|
4467 } else {
|
jpayne@69
|
4468 return mid;
|
jpayne@69
|
4469 }
|
jpayne@69
|
4470 }
|
jpayne@69
|
4471 if (code_line <= entries[mid].code_line) {
|
jpayne@69
|
4472 return mid;
|
jpayne@69
|
4473 } else {
|
jpayne@69
|
4474 return mid + 1;
|
jpayne@69
|
4475 }
|
jpayne@69
|
4476 }
|
jpayne@69
|
4477 static PyCodeObject *__pyx_find_code_object(int code_line) {
|
jpayne@69
|
4478 PyCodeObject* code_object;
|
jpayne@69
|
4479 int pos;
|
jpayne@69
|
4480 if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
|
jpayne@69
|
4481 return NULL;
|
jpayne@69
|
4482 }
|
jpayne@69
|
4483 pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
|
jpayne@69
|
4484 if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
|
jpayne@69
|
4485 return NULL;
|
jpayne@69
|
4486 }
|
jpayne@69
|
4487 code_object = __pyx_code_cache.entries[pos].code_object;
|
jpayne@69
|
4488 Py_INCREF(code_object);
|
jpayne@69
|
4489 return code_object;
|
jpayne@69
|
4490 }
|
jpayne@69
|
4491 static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
|
jpayne@69
|
4492 int pos, i;
|
jpayne@69
|
4493 __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
|
jpayne@69
|
4494 if (unlikely(!code_line)) {
|
jpayne@69
|
4495 return;
|
jpayne@69
|
4496 }
|
jpayne@69
|
4497 if (unlikely(!entries)) {
|
jpayne@69
|
4498 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
|
jpayne@69
|
4499 if (likely(entries)) {
|
jpayne@69
|
4500 __pyx_code_cache.entries = entries;
|
jpayne@69
|
4501 __pyx_code_cache.max_count = 64;
|
jpayne@69
|
4502 __pyx_code_cache.count = 1;
|
jpayne@69
|
4503 entries[0].code_line = code_line;
|
jpayne@69
|
4504 entries[0].code_object = code_object;
|
jpayne@69
|
4505 Py_INCREF(code_object);
|
jpayne@69
|
4506 }
|
jpayne@69
|
4507 return;
|
jpayne@69
|
4508 }
|
jpayne@69
|
4509 pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
|
jpayne@69
|
4510 if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
|
jpayne@69
|
4511 PyCodeObject* tmp = entries[pos].code_object;
|
jpayne@69
|
4512 entries[pos].code_object = code_object;
|
jpayne@69
|
4513 Py_DECREF(tmp);
|
jpayne@69
|
4514 return;
|
jpayne@69
|
4515 }
|
jpayne@69
|
4516 if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
|
jpayne@69
|
4517 int new_max = __pyx_code_cache.max_count + 64;
|
jpayne@69
|
4518 entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
|
jpayne@69
|
4519 __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
|
jpayne@69
|
4520 if (unlikely(!entries)) {
|
jpayne@69
|
4521 return;
|
jpayne@69
|
4522 }
|
jpayne@69
|
4523 __pyx_code_cache.entries = entries;
|
jpayne@69
|
4524 __pyx_code_cache.max_count = new_max;
|
jpayne@69
|
4525 }
|
jpayne@69
|
4526 for (i=__pyx_code_cache.count; i>pos; i--) {
|
jpayne@69
|
4527 entries[i] = entries[i-1];
|
jpayne@69
|
4528 }
|
jpayne@69
|
4529 entries[pos].code_line = code_line;
|
jpayne@69
|
4530 entries[pos].code_object = code_object;
|
jpayne@69
|
4531 __pyx_code_cache.count++;
|
jpayne@69
|
4532 Py_INCREF(code_object);
|
jpayne@69
|
4533 }
|
jpayne@69
|
4534 #endif
|
jpayne@69
|
4535
|
jpayne@69
|
4536 /* AddTraceback */
|
jpayne@69
|
4537 #include "compile.h"
|
jpayne@69
|
4538 #include "frameobject.h"
|
jpayne@69
|
4539 #include "traceback.h"
|
jpayne@69
|
4540 #if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
4541 #ifndef Py_BUILD_CORE
|
jpayne@69
|
4542 #define Py_BUILD_CORE 1
|
jpayne@69
|
4543 #endif
|
jpayne@69
|
4544 #include "internal/pycore_frame.h"
|
jpayne@69
|
4545 #endif
|
jpayne@69
|
4546 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
4547 static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
|
jpayne@69
|
4548 PyObject *firstlineno, PyObject *name) {
|
jpayne@69
|
4549 PyObject *replace = NULL;
|
jpayne@69
|
4550 if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
|
jpayne@69
|
4551 if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
|
jpayne@69
|
4552 replace = PyObject_GetAttrString(code, "replace");
|
jpayne@69
|
4553 if (likely(replace)) {
|
jpayne@69
|
4554 PyObject *result;
|
jpayne@69
|
4555 result = PyObject_Call(replace, __pyx_empty_tuple, scratch_dict);
|
jpayne@69
|
4556 Py_DECREF(replace);
|
jpayne@69
|
4557 return result;
|
jpayne@69
|
4558 }
|
jpayne@69
|
4559 PyErr_Clear();
|
jpayne@69
|
4560 #if __PYX_LIMITED_VERSION_HEX < 0x030780000
|
jpayne@69
|
4561 {
|
jpayne@69
|
4562 PyObject *compiled = NULL, *result = NULL;
|
jpayne@69
|
4563 if (unlikely(PyDict_SetItemString(scratch_dict, "code", code))) return NULL;
|
jpayne@69
|
4564 if (unlikely(PyDict_SetItemString(scratch_dict, "type", (PyObject*)(&PyType_Type)))) return NULL;
|
jpayne@69
|
4565 compiled = Py_CompileString(
|
jpayne@69
|
4566 "out = type(code)(\n"
|
jpayne@69
|
4567 " code.co_argcount, code.co_kwonlyargcount, code.co_nlocals, code.co_stacksize,\n"
|
jpayne@69
|
4568 " code.co_flags, code.co_code, code.co_consts, code.co_names,\n"
|
jpayne@69
|
4569 " code.co_varnames, code.co_filename, co_name, co_firstlineno,\n"
|
jpayne@69
|
4570 " code.co_lnotab)\n", "<dummy>", Py_file_input);
|
jpayne@69
|
4571 if (!compiled) return NULL;
|
jpayne@69
|
4572 result = PyEval_EvalCode(compiled, scratch_dict, scratch_dict);
|
jpayne@69
|
4573 Py_DECREF(compiled);
|
jpayne@69
|
4574 if (!result) PyErr_Print();
|
jpayne@69
|
4575 Py_DECREF(result);
|
jpayne@69
|
4576 result = PyDict_GetItemString(scratch_dict, "out");
|
jpayne@69
|
4577 if (result) Py_INCREF(result);
|
jpayne@69
|
4578 return result;
|
jpayne@69
|
4579 }
|
jpayne@69
|
4580 #else
|
jpayne@69
|
4581 return NULL;
|
jpayne@69
|
4582 #endif
|
jpayne@69
|
4583 }
|
jpayne@69
|
4584 static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
jpayne@69
|
4585 int py_line, const char *filename) {
|
jpayne@69
|
4586 PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
|
jpayne@69
|
4587 PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
|
jpayne@69
|
4588 PyObject *exc_type, *exc_value, *exc_traceback;
|
jpayne@69
|
4589 int success = 0;
|
jpayne@69
|
4590 if (c_line) {
|
jpayne@69
|
4591 (void) __pyx_cfilenm;
|
jpayne@69
|
4592 (void) __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
|
jpayne@69
|
4593 }
|
jpayne@69
|
4594 PyErr_Fetch(&exc_type, &exc_value, &exc_traceback);
|
jpayne@69
|
4595 code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
|
jpayne@69
|
4596 if (unlikely(!code_object)) goto bad;
|
jpayne@69
|
4597 py_py_line = PyLong_FromLong(py_line);
|
jpayne@69
|
4598 if (unlikely(!py_py_line)) goto bad;
|
jpayne@69
|
4599 py_funcname = PyUnicode_FromString(funcname);
|
jpayne@69
|
4600 if (unlikely(!py_funcname)) goto bad;
|
jpayne@69
|
4601 dict = PyDict_New();
|
jpayne@69
|
4602 if (unlikely(!dict)) goto bad;
|
jpayne@69
|
4603 {
|
jpayne@69
|
4604 PyObject *old_code_object = code_object;
|
jpayne@69
|
4605 code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
|
jpayne@69
|
4606 Py_DECREF(old_code_object);
|
jpayne@69
|
4607 }
|
jpayne@69
|
4608 if (unlikely(!code_object)) goto bad;
|
jpayne@69
|
4609 getframe = PySys_GetObject("_getframe");
|
jpayne@69
|
4610 if (unlikely(!getframe)) goto bad;
|
jpayne@69
|
4611 if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
|
jpayne@69
|
4612 frame = PyEval_EvalCode(code_object, dict, dict);
|
jpayne@69
|
4613 if (unlikely(!frame) || frame == Py_None) goto bad;
|
jpayne@69
|
4614 success = 1;
|
jpayne@69
|
4615 bad:
|
jpayne@69
|
4616 PyErr_Restore(exc_type, exc_value, exc_traceback);
|
jpayne@69
|
4617 Py_XDECREF(code_object);
|
jpayne@69
|
4618 Py_XDECREF(py_py_line);
|
jpayne@69
|
4619 Py_XDECREF(py_funcname);
|
jpayne@69
|
4620 Py_XDECREF(dict);
|
jpayne@69
|
4621 Py_XDECREF(replace);
|
jpayne@69
|
4622 if (success) {
|
jpayne@69
|
4623 PyTraceBack_Here(
|
jpayne@69
|
4624 (struct _frame*)frame);
|
jpayne@69
|
4625 }
|
jpayne@69
|
4626 Py_XDECREF(frame);
|
jpayne@69
|
4627 }
|
jpayne@69
|
4628 #else
|
jpayne@69
|
4629 static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
|
jpayne@69
|
4630 const char *funcname, int c_line,
|
jpayne@69
|
4631 int py_line, const char *filename) {
|
jpayne@69
|
4632 PyCodeObject *py_code = NULL;
|
jpayne@69
|
4633 PyObject *py_funcname = NULL;
|
jpayne@69
|
4634 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
4635 PyObject *py_srcfile = NULL;
|
jpayne@69
|
4636 py_srcfile = PyString_FromString(filename);
|
jpayne@69
|
4637 if (!py_srcfile) goto bad;
|
jpayne@69
|
4638 #endif
|
jpayne@69
|
4639 if (c_line) {
|
jpayne@69
|
4640 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
4641 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
jpayne@69
|
4642 if (!py_funcname) goto bad;
|
jpayne@69
|
4643 #else
|
jpayne@69
|
4644 py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
|
jpayne@69
|
4645 if (!py_funcname) goto bad;
|
jpayne@69
|
4646 funcname = PyUnicode_AsUTF8(py_funcname);
|
jpayne@69
|
4647 if (!funcname) goto bad;
|
jpayne@69
|
4648 #endif
|
jpayne@69
|
4649 }
|
jpayne@69
|
4650 else {
|
jpayne@69
|
4651 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
4652 py_funcname = PyString_FromString(funcname);
|
jpayne@69
|
4653 if (!py_funcname) goto bad;
|
jpayne@69
|
4654 #endif
|
jpayne@69
|
4655 }
|
jpayne@69
|
4656 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
4657 py_code = __Pyx_PyCode_New(
|
jpayne@69
|
4658 0,
|
jpayne@69
|
4659 0,
|
jpayne@69
|
4660 0,
|
jpayne@69
|
4661 0,
|
jpayne@69
|
4662 0,
|
jpayne@69
|
4663 0,
|
jpayne@69
|
4664 __pyx_empty_bytes, /*PyObject *code,*/
|
jpayne@69
|
4665 __pyx_empty_tuple, /*PyObject *consts,*/
|
jpayne@69
|
4666 __pyx_empty_tuple, /*PyObject *names,*/
|
jpayne@69
|
4667 __pyx_empty_tuple, /*PyObject *varnames,*/
|
jpayne@69
|
4668 __pyx_empty_tuple, /*PyObject *freevars,*/
|
jpayne@69
|
4669 __pyx_empty_tuple, /*PyObject *cellvars,*/
|
jpayne@69
|
4670 py_srcfile, /*PyObject *filename,*/
|
jpayne@69
|
4671 py_funcname, /*PyObject *name,*/
|
jpayne@69
|
4672 py_line,
|
jpayne@69
|
4673 __pyx_empty_bytes /*PyObject *lnotab*/
|
jpayne@69
|
4674 );
|
jpayne@69
|
4675 Py_DECREF(py_srcfile);
|
jpayne@69
|
4676 #else
|
jpayne@69
|
4677 py_code = PyCode_NewEmpty(filename, funcname, py_line);
|
jpayne@69
|
4678 #endif
|
jpayne@69
|
4679 Py_XDECREF(py_funcname);
|
jpayne@69
|
4680 return py_code;
|
jpayne@69
|
4681 bad:
|
jpayne@69
|
4682 Py_XDECREF(py_funcname);
|
jpayne@69
|
4683 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
4684 Py_XDECREF(py_srcfile);
|
jpayne@69
|
4685 #endif
|
jpayne@69
|
4686 return NULL;
|
jpayne@69
|
4687 }
|
jpayne@69
|
4688 static void __Pyx_AddTraceback(const char *funcname, int c_line,
|
jpayne@69
|
4689 int py_line, const char *filename) {
|
jpayne@69
|
4690 PyCodeObject *py_code = 0;
|
jpayne@69
|
4691 PyFrameObject *py_frame = 0;
|
jpayne@69
|
4692 PyThreadState *tstate = __Pyx_PyThreadState_Current;
|
jpayne@69
|
4693 PyObject *ptype, *pvalue, *ptraceback;
|
jpayne@69
|
4694 if (c_line) {
|
jpayne@69
|
4695 c_line = __Pyx_CLineForTraceback(tstate, c_line);
|
jpayne@69
|
4696 }
|
jpayne@69
|
4697 py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
|
jpayne@69
|
4698 if (!py_code) {
|
jpayne@69
|
4699 __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
|
jpayne@69
|
4700 py_code = __Pyx_CreateCodeObjectForTraceback(
|
jpayne@69
|
4701 funcname, c_line, py_line, filename);
|
jpayne@69
|
4702 if (!py_code) {
|
jpayne@69
|
4703 /* If the code object creation fails, then we should clear the
|
jpayne@69
|
4704 fetched exception references and propagate the new exception */
|
jpayne@69
|
4705 Py_XDECREF(ptype);
|
jpayne@69
|
4706 Py_XDECREF(pvalue);
|
jpayne@69
|
4707 Py_XDECREF(ptraceback);
|
jpayne@69
|
4708 goto bad;
|
jpayne@69
|
4709 }
|
jpayne@69
|
4710 __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
|
jpayne@69
|
4711 __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
|
jpayne@69
|
4712 }
|
jpayne@69
|
4713 py_frame = PyFrame_New(
|
jpayne@69
|
4714 tstate, /*PyThreadState *tstate,*/
|
jpayne@69
|
4715 py_code, /*PyCodeObject *code,*/
|
jpayne@69
|
4716 __pyx_d, /*PyObject *globals,*/
|
jpayne@69
|
4717 0 /*PyObject *locals*/
|
jpayne@69
|
4718 );
|
jpayne@69
|
4719 if (!py_frame) goto bad;
|
jpayne@69
|
4720 __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
|
jpayne@69
|
4721 PyTraceBack_Here(py_frame);
|
jpayne@69
|
4722 bad:
|
jpayne@69
|
4723 Py_XDECREF(py_code);
|
jpayne@69
|
4724 Py_XDECREF(py_frame);
|
jpayne@69
|
4725 }
|
jpayne@69
|
4726 #endif
|
jpayne@69
|
4727
|
jpayne@69
|
4728 /* FormatTypeName */
|
jpayne@69
|
4729 #if CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
4730 static __Pyx_TypeName
|
jpayne@69
|
4731 __Pyx_PyType_GetName(PyTypeObject* tp)
|
jpayne@69
|
4732 {
|
jpayne@69
|
4733 PyObject *name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
|
jpayne@69
|
4734 __pyx_n_s_name);
|
jpayne@69
|
4735 if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) {
|
jpayne@69
|
4736 PyErr_Clear();
|
jpayne@69
|
4737 Py_XDECREF(name);
|
jpayne@69
|
4738 name = __Pyx_NewRef(__pyx_n_s__2);
|
jpayne@69
|
4739 }
|
jpayne@69
|
4740 return name;
|
jpayne@69
|
4741 }
|
jpayne@69
|
4742 #endif
|
jpayne@69
|
4743
|
jpayne@69
|
4744 /* CIntToPy */
|
jpayne@69
|
4745 static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
|
jpayne@69
|
4746 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
jpayne@69
|
4747 #pragma GCC diagnostic push
|
jpayne@69
|
4748 #pragma GCC diagnostic ignored "-Wconversion"
|
jpayne@69
|
4749 #endif
|
jpayne@69
|
4750 const long neg_one = (long) -1, const_zero = (long) 0;
|
jpayne@69
|
4751 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
jpayne@69
|
4752 #pragma GCC diagnostic pop
|
jpayne@69
|
4753 #endif
|
jpayne@69
|
4754 const int is_unsigned = neg_one > const_zero;
|
jpayne@69
|
4755 if (is_unsigned) {
|
jpayne@69
|
4756 if (sizeof(long) < sizeof(long)) {
|
jpayne@69
|
4757 return PyInt_FromLong((long) value);
|
jpayne@69
|
4758 } else if (sizeof(long) <= sizeof(unsigned long)) {
|
jpayne@69
|
4759 return PyLong_FromUnsignedLong((unsigned long) value);
|
jpayne@69
|
4760 #ifdef HAVE_LONG_LONG
|
jpayne@69
|
4761 } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
|
jpayne@69
|
4762 return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
|
jpayne@69
|
4763 #endif
|
jpayne@69
|
4764 }
|
jpayne@69
|
4765 } else {
|
jpayne@69
|
4766 if (sizeof(long) <= sizeof(long)) {
|
jpayne@69
|
4767 return PyInt_FromLong((long) value);
|
jpayne@69
|
4768 #ifdef HAVE_LONG_LONG
|
jpayne@69
|
4769 } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
|
jpayne@69
|
4770 return PyLong_FromLongLong((PY_LONG_LONG) value);
|
jpayne@69
|
4771 #endif
|
jpayne@69
|
4772 }
|
jpayne@69
|
4773 }
|
jpayne@69
|
4774 {
|
jpayne@69
|
4775 unsigned char *bytes = (unsigned char *)&value;
|
jpayne@69
|
4776 #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
|
jpayne@69
|
4777 if (is_unsigned) {
|
jpayne@69
|
4778 return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
|
jpayne@69
|
4779 } else {
|
jpayne@69
|
4780 return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
|
jpayne@69
|
4781 }
|
jpayne@69
|
4782 #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
|
jpayne@69
|
4783 int one = 1; int little = (int)*(unsigned char *)&one;
|
jpayne@69
|
4784 return _PyLong_FromByteArray(bytes, sizeof(long),
|
jpayne@69
|
4785 little, !is_unsigned);
|
jpayne@69
|
4786 #else
|
jpayne@69
|
4787 int one = 1; int little = (int)*(unsigned char *)&one;
|
jpayne@69
|
4788 PyObject *from_bytes, *result = NULL;
|
jpayne@69
|
4789 PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
|
jpayne@69
|
4790 from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
|
jpayne@69
|
4791 if (!from_bytes) return NULL;
|
jpayne@69
|
4792 py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
|
jpayne@69
|
4793 if (!py_bytes) goto limited_bad;
|
jpayne@69
|
4794 order_str = PyUnicode_FromString(little ? "little" : "big");
|
jpayne@69
|
4795 if (!order_str) goto limited_bad;
|
jpayne@69
|
4796 arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
|
jpayne@69
|
4797 if (!arg_tuple) goto limited_bad;
|
jpayne@69
|
4798 if (!is_unsigned) {
|
jpayne@69
|
4799 kwds = PyDict_New();
|
jpayne@69
|
4800 if (!kwds) goto limited_bad;
|
jpayne@69
|
4801 if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
|
jpayne@69
|
4802 }
|
jpayne@69
|
4803 result = PyObject_Call(from_bytes, arg_tuple, kwds);
|
jpayne@69
|
4804 limited_bad:
|
jpayne@69
|
4805 Py_XDECREF(kwds);
|
jpayne@69
|
4806 Py_XDECREF(arg_tuple);
|
jpayne@69
|
4807 Py_XDECREF(order_str);
|
jpayne@69
|
4808 Py_XDECREF(py_bytes);
|
jpayne@69
|
4809 Py_XDECREF(from_bytes);
|
jpayne@69
|
4810 return result;
|
jpayne@69
|
4811 #endif
|
jpayne@69
|
4812 }
|
jpayne@69
|
4813 }
|
jpayne@69
|
4814
|
jpayne@69
|
4815 /* CIntFromPyVerify */
|
jpayne@69
|
4816 #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
|
jpayne@69
|
4817 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
|
jpayne@69
|
4818 #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
|
jpayne@69
|
4819 __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
|
jpayne@69
|
4820 #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
|
jpayne@69
|
4821 {\
|
jpayne@69
|
4822 func_type value = func_value;\
|
jpayne@69
|
4823 if (sizeof(target_type) < sizeof(func_type)) {\
|
jpayne@69
|
4824 if (unlikely(value != (func_type) (target_type) value)) {\
|
jpayne@69
|
4825 func_type zero = 0;\
|
jpayne@69
|
4826 if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
|
jpayne@69
|
4827 return (target_type) -1;\
|
jpayne@69
|
4828 if (is_unsigned && unlikely(value < zero))\
|
jpayne@69
|
4829 goto raise_neg_overflow;\
|
jpayne@69
|
4830 else\
|
jpayne@69
|
4831 goto raise_overflow;\
|
jpayne@69
|
4832 }\
|
jpayne@69
|
4833 }\
|
jpayne@69
|
4834 return (target_type) value;\
|
jpayne@69
|
4835 }
|
jpayne@69
|
4836
|
jpayne@69
|
4837 /* CIntFromPy */
|
jpayne@69
|
4838 static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
|
jpayne@69
|
4839 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
jpayne@69
|
4840 #pragma GCC diagnostic push
|
jpayne@69
|
4841 #pragma GCC diagnostic ignored "-Wconversion"
|
jpayne@69
|
4842 #endif
|
jpayne@69
|
4843 const long neg_one = (long) -1, const_zero = (long) 0;
|
jpayne@69
|
4844 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
jpayne@69
|
4845 #pragma GCC diagnostic pop
|
jpayne@69
|
4846 #endif
|
jpayne@69
|
4847 const int is_unsigned = neg_one > const_zero;
|
jpayne@69
|
4848 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
4849 if (likely(PyInt_Check(x))) {
|
jpayne@69
|
4850 if ((sizeof(long) < sizeof(long))) {
|
jpayne@69
|
4851 __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
|
jpayne@69
|
4852 } else {
|
jpayne@69
|
4853 long val = PyInt_AS_LONG(x);
|
jpayne@69
|
4854 if (is_unsigned && unlikely(val < 0)) {
|
jpayne@69
|
4855 goto raise_neg_overflow;
|
jpayne@69
|
4856 }
|
jpayne@69
|
4857 return (long) val;
|
jpayne@69
|
4858 }
|
jpayne@69
|
4859 }
|
jpayne@69
|
4860 #endif
|
jpayne@69
|
4861 if (unlikely(!PyLong_Check(x))) {
|
jpayne@69
|
4862 long val;
|
jpayne@69
|
4863 PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
|
jpayne@69
|
4864 if (!tmp) return (long) -1;
|
jpayne@69
|
4865 val = __Pyx_PyInt_As_long(tmp);
|
jpayne@69
|
4866 Py_DECREF(tmp);
|
jpayne@69
|
4867 return val;
|
jpayne@69
|
4868 }
|
jpayne@69
|
4869 if (is_unsigned) {
|
jpayne@69
|
4870 #if CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
4871 if (unlikely(__Pyx_PyLong_IsNeg(x))) {
|
jpayne@69
|
4872 goto raise_neg_overflow;
|
jpayne@69
|
4873 } else if (__Pyx_PyLong_IsCompact(x)) {
|
jpayne@69
|
4874 __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
|
jpayne@69
|
4875 } else {
|
jpayne@69
|
4876 const digit* digits = __Pyx_PyLong_Digits(x);
|
jpayne@69
|
4877 assert(__Pyx_PyLong_DigitCount(x) > 1);
|
jpayne@69
|
4878 switch (__Pyx_PyLong_DigitCount(x)) {
|
jpayne@69
|
4879 case 2:
|
jpayne@69
|
4880 if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
|
jpayne@69
|
4881 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
4882 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
4883 } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
|
jpayne@69
|
4884 return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
|
jpayne@69
|
4885 }
|
jpayne@69
|
4886 }
|
jpayne@69
|
4887 break;
|
jpayne@69
|
4888 case 3:
|
jpayne@69
|
4889 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
4890 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
4891 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
4892 } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
|
jpayne@69
|
4893 return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
|
jpayne@69
|
4894 }
|
jpayne@69
|
4895 }
|
jpayne@69
|
4896 break;
|
jpayne@69
|
4897 case 4:
|
jpayne@69
|
4898 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
4899 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
jpayne@69
|
4900 __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])))
|
jpayne@69
|
4901 } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
|
jpayne@69
|
4902 return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
|
jpayne@69
|
4903 }
|
jpayne@69
|
4904 }
|
jpayne@69
|
4905 break;
|
jpayne@69
|
4906 }
|
jpayne@69
|
4907 }
|
jpayne@69
|
4908 #endif
|
jpayne@69
|
4909 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
|
jpayne@69
|
4910 if (unlikely(Py_SIZE(x) < 0)) {
|
jpayne@69
|
4911 goto raise_neg_overflow;
|
jpayne@69
|
4912 }
|
jpayne@69
|
4913 #else
|
jpayne@69
|
4914 {
|
jpayne@69
|
4915 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
|
jpayne@69
|
4916 if (unlikely(result < 0))
|
jpayne@69
|
4917 return (long) -1;
|
jpayne@69
|
4918 if (unlikely(result == 1))
|
jpayne@69
|
4919 goto raise_neg_overflow;
|
jpayne@69
|
4920 }
|
jpayne@69
|
4921 #endif
|
jpayne@69
|
4922 if ((sizeof(long) <= sizeof(unsigned long))) {
|
jpayne@69
|
4923 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
|
jpayne@69
|
4924 #ifdef HAVE_LONG_LONG
|
jpayne@69
|
4925 } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
|
jpayne@69
|
4926 __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
|
jpayne@69
|
4927 #endif
|
jpayne@69
|
4928 }
|
jpayne@69
|
4929 } else {
|
jpayne@69
|
4930 #if CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
4931 if (__Pyx_PyLong_IsCompact(x)) {
|
jpayne@69
|
4932 __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
|
jpayne@69
|
4933 } else {
|
jpayne@69
|
4934 const digit* digits = __Pyx_PyLong_Digits(x);
|
jpayne@69
|
4935 assert(__Pyx_PyLong_DigitCount(x) > 1);
|
jpayne@69
|
4936 switch (__Pyx_PyLong_SignedDigitCount(x)) {
|
jpayne@69
|
4937 case -2:
|
jpayne@69
|
4938 if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) {
|
jpayne@69
|
4939 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
4940 __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
4941 } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
4942 return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
|
jpayne@69
|
4943 }
|
jpayne@69
|
4944 }
|
jpayne@69
|
4945 break;
|
jpayne@69
|
4946 case 2:
|
jpayne@69
|
4947 if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
|
jpayne@69
|
4948 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
4949 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
4950 } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
4951 return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
|
jpayne@69
|
4952 }
|
jpayne@69
|
4953 }
|
jpayne@69
|
4954 break;
|
jpayne@69
|
4955 case -3:
|
jpayne@69
|
4956 if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
4957 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
4958 __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
4959 } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
4960 return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
|
jpayne@69
|
4961 }
|
jpayne@69
|
4962 }
|
jpayne@69
|
4963 break;
|
jpayne@69
|
4964 case 3:
|
jpayne@69
|
4965 if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
4966 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
4967 __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
4968 } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
4969 return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
|
jpayne@69
|
4970 }
|
jpayne@69
|
4971 }
|
jpayne@69
|
4972 break;
|
jpayne@69
|
4973 case -4:
|
jpayne@69
|
4974 if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
4975 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
jpayne@69
|
4976 __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])))
|
jpayne@69
|
4977 } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
|
jpayne@69
|
4978 return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
|
jpayne@69
|
4979 }
|
jpayne@69
|
4980 }
|
jpayne@69
|
4981 break;
|
jpayne@69
|
4982 case 4:
|
jpayne@69
|
4983 if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
4984 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
jpayne@69
|
4985 __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])))
|
jpayne@69
|
4986 } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
|
jpayne@69
|
4987 return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
|
jpayne@69
|
4988 }
|
jpayne@69
|
4989 }
|
jpayne@69
|
4990 break;
|
jpayne@69
|
4991 }
|
jpayne@69
|
4992 }
|
jpayne@69
|
4993 #endif
|
jpayne@69
|
4994 if ((sizeof(long) <= sizeof(long))) {
|
jpayne@69
|
4995 __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
|
jpayne@69
|
4996 #ifdef HAVE_LONG_LONG
|
jpayne@69
|
4997 } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
|
jpayne@69
|
4998 __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
|
jpayne@69
|
4999 #endif
|
jpayne@69
|
5000 }
|
jpayne@69
|
5001 }
|
jpayne@69
|
5002 {
|
jpayne@69
|
5003 long val;
|
jpayne@69
|
5004 int ret = -1;
|
jpayne@69
|
5005 #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
5006 Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
|
jpayne@69
|
5007 x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
|
jpayne@69
|
5008 if (unlikely(bytes_copied == -1)) {
|
jpayne@69
|
5009 } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
|
jpayne@69
|
5010 goto raise_overflow;
|
jpayne@69
|
5011 } else {
|
jpayne@69
|
5012 ret = 0;
|
jpayne@69
|
5013 }
|
jpayne@69
|
5014 #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
|
jpayne@69
|
5015 int one = 1; int is_little = (int)*(unsigned char *)&one;
|
jpayne@69
|
5016 unsigned char *bytes = (unsigned char *)&val;
|
jpayne@69
|
5017 ret = _PyLong_AsByteArray((PyLongObject *)x,
|
jpayne@69
|
5018 bytes, sizeof(val),
|
jpayne@69
|
5019 is_little, !is_unsigned);
|
jpayne@69
|
5020 #else
|
jpayne@69
|
5021 PyObject *v;
|
jpayne@69
|
5022 PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
|
jpayne@69
|
5023 int bits, remaining_bits, is_negative = 0;
|
jpayne@69
|
5024 int chunk_size = (sizeof(long) < 8) ? 30 : 62;
|
jpayne@69
|
5025 if (likely(PyLong_CheckExact(x))) {
|
jpayne@69
|
5026 v = __Pyx_NewRef(x);
|
jpayne@69
|
5027 } else {
|
jpayne@69
|
5028 v = PyNumber_Long(x);
|
jpayne@69
|
5029 if (unlikely(!v)) return (long) -1;
|
jpayne@69
|
5030 assert(PyLong_CheckExact(v));
|
jpayne@69
|
5031 }
|
jpayne@69
|
5032 {
|
jpayne@69
|
5033 int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
|
jpayne@69
|
5034 if (unlikely(result < 0)) {
|
jpayne@69
|
5035 Py_DECREF(v);
|
jpayne@69
|
5036 return (long) -1;
|
jpayne@69
|
5037 }
|
jpayne@69
|
5038 is_negative = result == 1;
|
jpayne@69
|
5039 }
|
jpayne@69
|
5040 if (is_unsigned && unlikely(is_negative)) {
|
jpayne@69
|
5041 Py_DECREF(v);
|
jpayne@69
|
5042 goto raise_neg_overflow;
|
jpayne@69
|
5043 } else if (is_negative) {
|
jpayne@69
|
5044 stepval = PyNumber_Invert(v);
|
jpayne@69
|
5045 Py_DECREF(v);
|
jpayne@69
|
5046 if (unlikely(!stepval))
|
jpayne@69
|
5047 return (long) -1;
|
jpayne@69
|
5048 } else {
|
jpayne@69
|
5049 stepval = v;
|
jpayne@69
|
5050 }
|
jpayne@69
|
5051 v = NULL;
|
jpayne@69
|
5052 val = (long) 0;
|
jpayne@69
|
5053 mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
|
jpayne@69
|
5054 shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
|
jpayne@69
|
5055 for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
|
jpayne@69
|
5056 PyObject *tmp, *digit;
|
jpayne@69
|
5057 long idigit;
|
jpayne@69
|
5058 digit = PyNumber_And(stepval, mask);
|
jpayne@69
|
5059 if (unlikely(!digit)) goto done;
|
jpayne@69
|
5060 idigit = PyLong_AsLong(digit);
|
jpayne@69
|
5061 Py_DECREF(digit);
|
jpayne@69
|
5062 if (unlikely(idigit < 0)) goto done;
|
jpayne@69
|
5063 val |= ((long) idigit) << bits;
|
jpayne@69
|
5064 tmp = PyNumber_Rshift(stepval, shift);
|
jpayne@69
|
5065 if (unlikely(!tmp)) goto done;
|
jpayne@69
|
5066 Py_DECREF(stepval); stepval = tmp;
|
jpayne@69
|
5067 }
|
jpayne@69
|
5068 Py_DECREF(shift); shift = NULL;
|
jpayne@69
|
5069 Py_DECREF(mask); mask = NULL;
|
jpayne@69
|
5070 {
|
jpayne@69
|
5071 long idigit = PyLong_AsLong(stepval);
|
jpayne@69
|
5072 if (unlikely(idigit < 0)) goto done;
|
jpayne@69
|
5073 remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
|
jpayne@69
|
5074 if (unlikely(idigit >= (1L << remaining_bits)))
|
jpayne@69
|
5075 goto raise_overflow;
|
jpayne@69
|
5076 val |= ((long) idigit) << bits;
|
jpayne@69
|
5077 }
|
jpayne@69
|
5078 if (!is_unsigned) {
|
jpayne@69
|
5079 if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
|
jpayne@69
|
5080 goto raise_overflow;
|
jpayne@69
|
5081 if (is_negative)
|
jpayne@69
|
5082 val = ~val;
|
jpayne@69
|
5083 }
|
jpayne@69
|
5084 ret = 0;
|
jpayne@69
|
5085 done:
|
jpayne@69
|
5086 Py_XDECREF(shift);
|
jpayne@69
|
5087 Py_XDECREF(mask);
|
jpayne@69
|
5088 Py_XDECREF(stepval);
|
jpayne@69
|
5089 #endif
|
jpayne@69
|
5090 if (unlikely(ret))
|
jpayne@69
|
5091 return (long) -1;
|
jpayne@69
|
5092 return val;
|
jpayne@69
|
5093 }
|
jpayne@69
|
5094 raise_overflow:
|
jpayne@69
|
5095 PyErr_SetString(PyExc_OverflowError,
|
jpayne@69
|
5096 "value too large to convert to long");
|
jpayne@69
|
5097 return (long) -1;
|
jpayne@69
|
5098 raise_neg_overflow:
|
jpayne@69
|
5099 PyErr_SetString(PyExc_OverflowError,
|
jpayne@69
|
5100 "can't convert negative value to long");
|
jpayne@69
|
5101 return (long) -1;
|
jpayne@69
|
5102 }
|
jpayne@69
|
5103
|
jpayne@69
|
5104 /* CIntFromPy */
|
jpayne@69
|
5105 static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
|
jpayne@69
|
5106 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
jpayne@69
|
5107 #pragma GCC diagnostic push
|
jpayne@69
|
5108 #pragma GCC diagnostic ignored "-Wconversion"
|
jpayne@69
|
5109 #endif
|
jpayne@69
|
5110 const int neg_one = (int) -1, const_zero = (int) 0;
|
jpayne@69
|
5111 #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
|
jpayne@69
|
5112 #pragma GCC diagnostic pop
|
jpayne@69
|
5113 #endif
|
jpayne@69
|
5114 const int is_unsigned = neg_one > const_zero;
|
jpayne@69
|
5115 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
5116 if (likely(PyInt_Check(x))) {
|
jpayne@69
|
5117 if ((sizeof(int) < sizeof(long))) {
|
jpayne@69
|
5118 __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
|
jpayne@69
|
5119 } else {
|
jpayne@69
|
5120 long val = PyInt_AS_LONG(x);
|
jpayne@69
|
5121 if (is_unsigned && unlikely(val < 0)) {
|
jpayne@69
|
5122 goto raise_neg_overflow;
|
jpayne@69
|
5123 }
|
jpayne@69
|
5124 return (int) val;
|
jpayne@69
|
5125 }
|
jpayne@69
|
5126 }
|
jpayne@69
|
5127 #endif
|
jpayne@69
|
5128 if (unlikely(!PyLong_Check(x))) {
|
jpayne@69
|
5129 int val;
|
jpayne@69
|
5130 PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
|
jpayne@69
|
5131 if (!tmp) return (int) -1;
|
jpayne@69
|
5132 val = __Pyx_PyInt_As_int(tmp);
|
jpayne@69
|
5133 Py_DECREF(tmp);
|
jpayne@69
|
5134 return val;
|
jpayne@69
|
5135 }
|
jpayne@69
|
5136 if (is_unsigned) {
|
jpayne@69
|
5137 #if CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
5138 if (unlikely(__Pyx_PyLong_IsNeg(x))) {
|
jpayne@69
|
5139 goto raise_neg_overflow;
|
jpayne@69
|
5140 } else if (__Pyx_PyLong_IsCompact(x)) {
|
jpayne@69
|
5141 __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
|
jpayne@69
|
5142 } else {
|
jpayne@69
|
5143 const digit* digits = __Pyx_PyLong_Digits(x);
|
jpayne@69
|
5144 assert(__Pyx_PyLong_DigitCount(x) > 1);
|
jpayne@69
|
5145 switch (__Pyx_PyLong_DigitCount(x)) {
|
jpayne@69
|
5146 case 2:
|
jpayne@69
|
5147 if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
|
jpayne@69
|
5148 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
5149 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
5150 } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
|
jpayne@69
|
5151 return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
|
jpayne@69
|
5152 }
|
jpayne@69
|
5153 }
|
jpayne@69
|
5154 break;
|
jpayne@69
|
5155 case 3:
|
jpayne@69
|
5156 if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
5157 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
5158 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
5159 } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
|
jpayne@69
|
5160 return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
|
jpayne@69
|
5161 }
|
jpayne@69
|
5162 }
|
jpayne@69
|
5163 break;
|
jpayne@69
|
5164 case 4:
|
jpayne@69
|
5165 if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
5166 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
jpayne@69
|
5167 __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])))
|
jpayne@69
|
5168 } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
|
jpayne@69
|
5169 return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
|
jpayne@69
|
5170 }
|
jpayne@69
|
5171 }
|
jpayne@69
|
5172 break;
|
jpayne@69
|
5173 }
|
jpayne@69
|
5174 }
|
jpayne@69
|
5175 #endif
|
jpayne@69
|
5176 #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
|
jpayne@69
|
5177 if (unlikely(Py_SIZE(x) < 0)) {
|
jpayne@69
|
5178 goto raise_neg_overflow;
|
jpayne@69
|
5179 }
|
jpayne@69
|
5180 #else
|
jpayne@69
|
5181 {
|
jpayne@69
|
5182 int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
|
jpayne@69
|
5183 if (unlikely(result < 0))
|
jpayne@69
|
5184 return (int) -1;
|
jpayne@69
|
5185 if (unlikely(result == 1))
|
jpayne@69
|
5186 goto raise_neg_overflow;
|
jpayne@69
|
5187 }
|
jpayne@69
|
5188 #endif
|
jpayne@69
|
5189 if ((sizeof(int) <= sizeof(unsigned long))) {
|
jpayne@69
|
5190 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
|
jpayne@69
|
5191 #ifdef HAVE_LONG_LONG
|
jpayne@69
|
5192 } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
|
jpayne@69
|
5193 __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
|
jpayne@69
|
5194 #endif
|
jpayne@69
|
5195 }
|
jpayne@69
|
5196 } else {
|
jpayne@69
|
5197 #if CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
5198 if (__Pyx_PyLong_IsCompact(x)) {
|
jpayne@69
|
5199 __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
|
jpayne@69
|
5200 } else {
|
jpayne@69
|
5201 const digit* digits = __Pyx_PyLong_Digits(x);
|
jpayne@69
|
5202 assert(__Pyx_PyLong_DigitCount(x) > 1);
|
jpayne@69
|
5203 switch (__Pyx_PyLong_SignedDigitCount(x)) {
|
jpayne@69
|
5204 case -2:
|
jpayne@69
|
5205 if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
|
jpayne@69
|
5206 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
5207 __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
5208 } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
5209 return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
jpayne@69
|
5210 }
|
jpayne@69
|
5211 }
|
jpayne@69
|
5212 break;
|
jpayne@69
|
5213 case 2:
|
jpayne@69
|
5214 if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
|
jpayne@69
|
5215 if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
5216 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
5217 } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
5218 return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
jpayne@69
|
5219 }
|
jpayne@69
|
5220 }
|
jpayne@69
|
5221 break;
|
jpayne@69
|
5222 case -3:
|
jpayne@69
|
5223 if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
5224 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
5225 __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
5226 } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
5227 return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
jpayne@69
|
5228 }
|
jpayne@69
|
5229 }
|
jpayne@69
|
5230 break;
|
jpayne@69
|
5231 case 3:
|
jpayne@69
|
5232 if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
|
jpayne@69
|
5233 if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
5234 __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
|
jpayne@69
|
5235 } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
5236 return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
jpayne@69
|
5237 }
|
jpayne@69
|
5238 }
|
jpayne@69
|
5239 break;
|
jpayne@69
|
5240 case -4:
|
jpayne@69
|
5241 if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
5242 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
jpayne@69
|
5243 __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])))
|
jpayne@69
|
5244 } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
|
jpayne@69
|
5245 return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
jpayne@69
|
5246 }
|
jpayne@69
|
5247 }
|
jpayne@69
|
5248 break;
|
jpayne@69
|
5249 case 4:
|
jpayne@69
|
5250 if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
|
jpayne@69
|
5251 if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
|
jpayne@69
|
5252 __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])))
|
jpayne@69
|
5253 } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
|
jpayne@69
|
5254 return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
|
jpayne@69
|
5255 }
|
jpayne@69
|
5256 }
|
jpayne@69
|
5257 break;
|
jpayne@69
|
5258 }
|
jpayne@69
|
5259 }
|
jpayne@69
|
5260 #endif
|
jpayne@69
|
5261 if ((sizeof(int) <= sizeof(long))) {
|
jpayne@69
|
5262 __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
|
jpayne@69
|
5263 #ifdef HAVE_LONG_LONG
|
jpayne@69
|
5264 } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
|
jpayne@69
|
5265 __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
|
jpayne@69
|
5266 #endif
|
jpayne@69
|
5267 }
|
jpayne@69
|
5268 }
|
jpayne@69
|
5269 {
|
jpayne@69
|
5270 int val;
|
jpayne@69
|
5271 int ret = -1;
|
jpayne@69
|
5272 #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
|
jpayne@69
|
5273 Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
|
jpayne@69
|
5274 x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
|
jpayne@69
|
5275 if (unlikely(bytes_copied == -1)) {
|
jpayne@69
|
5276 } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
|
jpayne@69
|
5277 goto raise_overflow;
|
jpayne@69
|
5278 } else {
|
jpayne@69
|
5279 ret = 0;
|
jpayne@69
|
5280 }
|
jpayne@69
|
5281 #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
|
jpayne@69
|
5282 int one = 1; int is_little = (int)*(unsigned char *)&one;
|
jpayne@69
|
5283 unsigned char *bytes = (unsigned char *)&val;
|
jpayne@69
|
5284 ret = _PyLong_AsByteArray((PyLongObject *)x,
|
jpayne@69
|
5285 bytes, sizeof(val),
|
jpayne@69
|
5286 is_little, !is_unsigned);
|
jpayne@69
|
5287 #else
|
jpayne@69
|
5288 PyObject *v;
|
jpayne@69
|
5289 PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
|
jpayne@69
|
5290 int bits, remaining_bits, is_negative = 0;
|
jpayne@69
|
5291 int chunk_size = (sizeof(long) < 8) ? 30 : 62;
|
jpayne@69
|
5292 if (likely(PyLong_CheckExact(x))) {
|
jpayne@69
|
5293 v = __Pyx_NewRef(x);
|
jpayne@69
|
5294 } else {
|
jpayne@69
|
5295 v = PyNumber_Long(x);
|
jpayne@69
|
5296 if (unlikely(!v)) return (int) -1;
|
jpayne@69
|
5297 assert(PyLong_CheckExact(v));
|
jpayne@69
|
5298 }
|
jpayne@69
|
5299 {
|
jpayne@69
|
5300 int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
|
jpayne@69
|
5301 if (unlikely(result < 0)) {
|
jpayne@69
|
5302 Py_DECREF(v);
|
jpayne@69
|
5303 return (int) -1;
|
jpayne@69
|
5304 }
|
jpayne@69
|
5305 is_negative = result == 1;
|
jpayne@69
|
5306 }
|
jpayne@69
|
5307 if (is_unsigned && unlikely(is_negative)) {
|
jpayne@69
|
5308 Py_DECREF(v);
|
jpayne@69
|
5309 goto raise_neg_overflow;
|
jpayne@69
|
5310 } else if (is_negative) {
|
jpayne@69
|
5311 stepval = PyNumber_Invert(v);
|
jpayne@69
|
5312 Py_DECREF(v);
|
jpayne@69
|
5313 if (unlikely(!stepval))
|
jpayne@69
|
5314 return (int) -1;
|
jpayne@69
|
5315 } else {
|
jpayne@69
|
5316 stepval = v;
|
jpayne@69
|
5317 }
|
jpayne@69
|
5318 v = NULL;
|
jpayne@69
|
5319 val = (int) 0;
|
jpayne@69
|
5320 mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
|
jpayne@69
|
5321 shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
|
jpayne@69
|
5322 for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
|
jpayne@69
|
5323 PyObject *tmp, *digit;
|
jpayne@69
|
5324 long idigit;
|
jpayne@69
|
5325 digit = PyNumber_And(stepval, mask);
|
jpayne@69
|
5326 if (unlikely(!digit)) goto done;
|
jpayne@69
|
5327 idigit = PyLong_AsLong(digit);
|
jpayne@69
|
5328 Py_DECREF(digit);
|
jpayne@69
|
5329 if (unlikely(idigit < 0)) goto done;
|
jpayne@69
|
5330 val |= ((int) idigit) << bits;
|
jpayne@69
|
5331 tmp = PyNumber_Rshift(stepval, shift);
|
jpayne@69
|
5332 if (unlikely(!tmp)) goto done;
|
jpayne@69
|
5333 Py_DECREF(stepval); stepval = tmp;
|
jpayne@69
|
5334 }
|
jpayne@69
|
5335 Py_DECREF(shift); shift = NULL;
|
jpayne@69
|
5336 Py_DECREF(mask); mask = NULL;
|
jpayne@69
|
5337 {
|
jpayne@69
|
5338 long idigit = PyLong_AsLong(stepval);
|
jpayne@69
|
5339 if (unlikely(idigit < 0)) goto done;
|
jpayne@69
|
5340 remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
|
jpayne@69
|
5341 if (unlikely(idigit >= (1L << remaining_bits)))
|
jpayne@69
|
5342 goto raise_overflow;
|
jpayne@69
|
5343 val |= ((int) idigit) << bits;
|
jpayne@69
|
5344 }
|
jpayne@69
|
5345 if (!is_unsigned) {
|
jpayne@69
|
5346 if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
|
jpayne@69
|
5347 goto raise_overflow;
|
jpayne@69
|
5348 if (is_negative)
|
jpayne@69
|
5349 val = ~val;
|
jpayne@69
|
5350 }
|
jpayne@69
|
5351 ret = 0;
|
jpayne@69
|
5352 done:
|
jpayne@69
|
5353 Py_XDECREF(shift);
|
jpayne@69
|
5354 Py_XDECREF(mask);
|
jpayne@69
|
5355 Py_XDECREF(stepval);
|
jpayne@69
|
5356 #endif
|
jpayne@69
|
5357 if (unlikely(ret))
|
jpayne@69
|
5358 return (int) -1;
|
jpayne@69
|
5359 return val;
|
jpayne@69
|
5360 }
|
jpayne@69
|
5361 raise_overflow:
|
jpayne@69
|
5362 PyErr_SetString(PyExc_OverflowError,
|
jpayne@69
|
5363 "value too large to convert to int");
|
jpayne@69
|
5364 return (int) -1;
|
jpayne@69
|
5365 raise_neg_overflow:
|
jpayne@69
|
5366 PyErr_SetString(PyExc_OverflowError,
|
jpayne@69
|
5367 "can't convert negative value to int");
|
jpayne@69
|
5368 return (int) -1;
|
jpayne@69
|
5369 }
|
jpayne@69
|
5370
|
jpayne@69
|
5371 /* FastTypeChecks */
|
jpayne@69
|
5372 #if CYTHON_COMPILING_IN_CPYTHON
|
jpayne@69
|
5373 static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
|
jpayne@69
|
5374 while (a) {
|
jpayne@69
|
5375 a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
|
jpayne@69
|
5376 if (a == b)
|
jpayne@69
|
5377 return 1;
|
jpayne@69
|
5378 }
|
jpayne@69
|
5379 return b == &PyBaseObject_Type;
|
jpayne@69
|
5380 }
|
jpayne@69
|
5381 static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
|
jpayne@69
|
5382 PyObject *mro;
|
jpayne@69
|
5383 if (a == b) return 1;
|
jpayne@69
|
5384 mro = a->tp_mro;
|
jpayne@69
|
5385 if (likely(mro)) {
|
jpayne@69
|
5386 Py_ssize_t i, n;
|
jpayne@69
|
5387 n = PyTuple_GET_SIZE(mro);
|
jpayne@69
|
5388 for (i = 0; i < n; i++) {
|
jpayne@69
|
5389 if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
|
jpayne@69
|
5390 return 1;
|
jpayne@69
|
5391 }
|
jpayne@69
|
5392 return 0;
|
jpayne@69
|
5393 }
|
jpayne@69
|
5394 return __Pyx_InBases(a, b);
|
jpayne@69
|
5395 }
|
jpayne@69
|
5396 static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
|
jpayne@69
|
5397 PyObject *mro;
|
jpayne@69
|
5398 if (cls == a || cls == b) return 1;
|
jpayne@69
|
5399 mro = cls->tp_mro;
|
jpayne@69
|
5400 if (likely(mro)) {
|
jpayne@69
|
5401 Py_ssize_t i, n;
|
jpayne@69
|
5402 n = PyTuple_GET_SIZE(mro);
|
jpayne@69
|
5403 for (i = 0; i < n; i++) {
|
jpayne@69
|
5404 PyObject *base = PyTuple_GET_ITEM(mro, i);
|
jpayne@69
|
5405 if (base == (PyObject *)a || base == (PyObject *)b)
|
jpayne@69
|
5406 return 1;
|
jpayne@69
|
5407 }
|
jpayne@69
|
5408 return 0;
|
jpayne@69
|
5409 }
|
jpayne@69
|
5410 return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
|
jpayne@69
|
5411 }
|
jpayne@69
|
5412 #if PY_MAJOR_VERSION == 2
|
jpayne@69
|
5413 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
|
jpayne@69
|
5414 PyObject *exception, *value, *tb;
|
jpayne@69
|
5415 int res;
|
jpayne@69
|
5416 __Pyx_PyThreadState_declare
|
jpayne@69
|
5417 __Pyx_PyThreadState_assign
|
jpayne@69
|
5418 __Pyx_ErrFetch(&exception, &value, &tb);
|
jpayne@69
|
5419 res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
|
jpayne@69
|
5420 if (unlikely(res == -1)) {
|
jpayne@69
|
5421 PyErr_WriteUnraisable(err);
|
jpayne@69
|
5422 res = 0;
|
jpayne@69
|
5423 }
|
jpayne@69
|
5424 if (!res) {
|
jpayne@69
|
5425 res = PyObject_IsSubclass(err, exc_type2);
|
jpayne@69
|
5426 if (unlikely(res == -1)) {
|
jpayne@69
|
5427 PyErr_WriteUnraisable(err);
|
jpayne@69
|
5428 res = 0;
|
jpayne@69
|
5429 }
|
jpayne@69
|
5430 }
|
jpayne@69
|
5431 __Pyx_ErrRestore(exception, value, tb);
|
jpayne@69
|
5432 return res;
|
jpayne@69
|
5433 }
|
jpayne@69
|
5434 #else
|
jpayne@69
|
5435 static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
|
jpayne@69
|
5436 if (exc_type1) {
|
jpayne@69
|
5437 return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
|
jpayne@69
|
5438 } else {
|
jpayne@69
|
5439 return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
|
jpayne@69
|
5440 }
|
jpayne@69
|
5441 }
|
jpayne@69
|
5442 #endif
|
jpayne@69
|
5443 static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
|
jpayne@69
|
5444 Py_ssize_t i, n;
|
jpayne@69
|
5445 assert(PyExceptionClass_Check(exc_type));
|
jpayne@69
|
5446 n = PyTuple_GET_SIZE(tuple);
|
jpayne@69
|
5447 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
5448 for (i=0; i<n; i++) {
|
jpayne@69
|
5449 if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
|
jpayne@69
|
5450 }
|
jpayne@69
|
5451 #endif
|
jpayne@69
|
5452 for (i=0; i<n; i++) {
|
jpayne@69
|
5453 PyObject *t = PyTuple_GET_ITEM(tuple, i);
|
jpayne@69
|
5454 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
5455 if (likely(exc_type == t)) return 1;
|
jpayne@69
|
5456 #endif
|
jpayne@69
|
5457 if (likely(PyExceptionClass_Check(t))) {
|
jpayne@69
|
5458 if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
|
jpayne@69
|
5459 } else {
|
jpayne@69
|
5460 }
|
jpayne@69
|
5461 }
|
jpayne@69
|
5462 return 0;
|
jpayne@69
|
5463 }
|
jpayne@69
|
5464 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
|
jpayne@69
|
5465 if (likely(err == exc_type)) return 1;
|
jpayne@69
|
5466 if (likely(PyExceptionClass_Check(err))) {
|
jpayne@69
|
5467 if (likely(PyExceptionClass_Check(exc_type))) {
|
jpayne@69
|
5468 return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
|
jpayne@69
|
5469 } else if (likely(PyTuple_Check(exc_type))) {
|
jpayne@69
|
5470 return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
|
jpayne@69
|
5471 } else {
|
jpayne@69
|
5472 }
|
jpayne@69
|
5473 }
|
jpayne@69
|
5474 return PyErr_GivenExceptionMatches(err, exc_type);
|
jpayne@69
|
5475 }
|
jpayne@69
|
5476 static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
|
jpayne@69
|
5477 assert(PyExceptionClass_Check(exc_type1));
|
jpayne@69
|
5478 assert(PyExceptionClass_Check(exc_type2));
|
jpayne@69
|
5479 if (likely(err == exc_type1 || err == exc_type2)) return 1;
|
jpayne@69
|
5480 if (likely(PyExceptionClass_Check(err))) {
|
jpayne@69
|
5481 return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
|
jpayne@69
|
5482 }
|
jpayne@69
|
5483 return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
|
jpayne@69
|
5484 }
|
jpayne@69
|
5485 #endif
|
jpayne@69
|
5486
|
jpayne@69
|
5487 /* CheckBinaryVersion */
|
jpayne@69
|
5488 static unsigned long __Pyx_get_runtime_version(void) {
|
jpayne@69
|
5489 #if __PYX_LIMITED_VERSION_HEX >= 0x030B00A4
|
jpayne@69
|
5490 return Py_Version & ~0xFFUL;
|
jpayne@69
|
5491 #else
|
jpayne@69
|
5492 const char* rt_version = Py_GetVersion();
|
jpayne@69
|
5493 unsigned long version = 0;
|
jpayne@69
|
5494 unsigned long factor = 0x01000000UL;
|
jpayne@69
|
5495 unsigned int digit = 0;
|
jpayne@69
|
5496 int i = 0;
|
jpayne@69
|
5497 while (factor) {
|
jpayne@69
|
5498 while ('0' <= rt_version[i] && rt_version[i] <= '9') {
|
jpayne@69
|
5499 digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
|
jpayne@69
|
5500 ++i;
|
jpayne@69
|
5501 }
|
jpayne@69
|
5502 version += factor * digit;
|
jpayne@69
|
5503 if (rt_version[i] != '.')
|
jpayne@69
|
5504 break;
|
jpayne@69
|
5505 digit = 0;
|
jpayne@69
|
5506 factor >>= 8;
|
jpayne@69
|
5507 ++i;
|
jpayne@69
|
5508 }
|
jpayne@69
|
5509 return version;
|
jpayne@69
|
5510 #endif
|
jpayne@69
|
5511 }
|
jpayne@69
|
5512 static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
|
jpayne@69
|
5513 const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
|
jpayne@69
|
5514 if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
|
jpayne@69
|
5515 return 0;
|
jpayne@69
|
5516 if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
|
jpayne@69
|
5517 return 1;
|
jpayne@69
|
5518 {
|
jpayne@69
|
5519 char message[200];
|
jpayne@69
|
5520 PyOS_snprintf(message, sizeof(message),
|
jpayne@69
|
5521 "compile time Python version %d.%d "
|
jpayne@69
|
5522 "of module '%.100s' "
|
jpayne@69
|
5523 "%s "
|
jpayne@69
|
5524 "runtime version %d.%d",
|
jpayne@69
|
5525 (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
|
jpayne@69
|
5526 __Pyx_MODULE_NAME,
|
jpayne@69
|
5527 (allow_newer) ? "was newer than" : "does not match",
|
jpayne@69
|
5528 (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
|
jpayne@69
|
5529 );
|
jpayne@69
|
5530 return PyErr_WarnEx(NULL, message, 1);
|
jpayne@69
|
5531 }
|
jpayne@69
|
5532 }
|
jpayne@69
|
5533
|
jpayne@69
|
5534 /* InitStrings */
|
jpayne@69
|
5535 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
5536 static int __Pyx_InitString(__Pyx_StringTabEntry t, PyObject **str) {
|
jpayne@69
|
5537 if (t.is_unicode | t.is_str) {
|
jpayne@69
|
5538 if (t.intern) {
|
jpayne@69
|
5539 *str = PyUnicode_InternFromString(t.s);
|
jpayne@69
|
5540 } else if (t.encoding) {
|
jpayne@69
|
5541 *str = PyUnicode_Decode(t.s, t.n - 1, t.encoding, NULL);
|
jpayne@69
|
5542 } else {
|
jpayne@69
|
5543 *str = PyUnicode_FromStringAndSize(t.s, t.n - 1);
|
jpayne@69
|
5544 }
|
jpayne@69
|
5545 } else {
|
jpayne@69
|
5546 *str = PyBytes_FromStringAndSize(t.s, t.n - 1);
|
jpayne@69
|
5547 }
|
jpayne@69
|
5548 if (!*str)
|
jpayne@69
|
5549 return -1;
|
jpayne@69
|
5550 if (PyObject_Hash(*str) == -1)
|
jpayne@69
|
5551 return -1;
|
jpayne@69
|
5552 return 0;
|
jpayne@69
|
5553 }
|
jpayne@69
|
5554 #endif
|
jpayne@69
|
5555 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
|
jpayne@69
|
5556 while (t->p) {
|
jpayne@69
|
5557 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
5558 __Pyx_InitString(*t, t->p);
|
jpayne@69
|
5559 #else
|
jpayne@69
|
5560 if (t->is_unicode) {
|
jpayne@69
|
5561 *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
|
jpayne@69
|
5562 } else if (t->intern) {
|
jpayne@69
|
5563 *t->p = PyString_InternFromString(t->s);
|
jpayne@69
|
5564 } else {
|
jpayne@69
|
5565 *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
|
jpayne@69
|
5566 }
|
jpayne@69
|
5567 if (!*t->p)
|
jpayne@69
|
5568 return -1;
|
jpayne@69
|
5569 if (PyObject_Hash(*t->p) == -1)
|
jpayne@69
|
5570 return -1;
|
jpayne@69
|
5571 #endif
|
jpayne@69
|
5572 ++t;
|
jpayne@69
|
5573 }
|
jpayne@69
|
5574 return 0;
|
jpayne@69
|
5575 }
|
jpayne@69
|
5576
|
jpayne@69
|
5577 #include <string.h>
|
jpayne@69
|
5578 static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
|
jpayne@69
|
5579 size_t len = strlen(s);
|
jpayne@69
|
5580 if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
|
jpayne@69
|
5581 PyErr_SetString(PyExc_OverflowError, "byte string is too long");
|
jpayne@69
|
5582 return -1;
|
jpayne@69
|
5583 }
|
jpayne@69
|
5584 return (Py_ssize_t) len;
|
jpayne@69
|
5585 }
|
jpayne@69
|
5586 static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
|
jpayne@69
|
5587 Py_ssize_t len = __Pyx_ssize_strlen(c_str);
|
jpayne@69
|
5588 if (unlikely(len < 0)) return NULL;
|
jpayne@69
|
5589 return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
|
jpayne@69
|
5590 }
|
jpayne@69
|
5591 static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
|
jpayne@69
|
5592 Py_ssize_t len = __Pyx_ssize_strlen(c_str);
|
jpayne@69
|
5593 if (unlikely(len < 0)) return NULL;
|
jpayne@69
|
5594 return PyByteArray_FromStringAndSize(c_str, len);
|
jpayne@69
|
5595 }
|
jpayne@69
|
5596 static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
|
jpayne@69
|
5597 Py_ssize_t ignore;
|
jpayne@69
|
5598 return __Pyx_PyObject_AsStringAndSize(o, &ignore);
|
jpayne@69
|
5599 }
|
jpayne@69
|
5600 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
|
jpayne@69
|
5601 #if !CYTHON_PEP393_ENABLED
|
jpayne@69
|
5602 static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
|
jpayne@69
|
5603 char* defenc_c;
|
jpayne@69
|
5604 PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
|
jpayne@69
|
5605 if (!defenc) return NULL;
|
jpayne@69
|
5606 defenc_c = PyBytes_AS_STRING(defenc);
|
jpayne@69
|
5607 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
|
jpayne@69
|
5608 {
|
jpayne@69
|
5609 char* end = defenc_c + PyBytes_GET_SIZE(defenc);
|
jpayne@69
|
5610 char* c;
|
jpayne@69
|
5611 for (c = defenc_c; c < end; c++) {
|
jpayne@69
|
5612 if ((unsigned char) (*c) >= 128) {
|
jpayne@69
|
5613 PyUnicode_AsASCIIString(o);
|
jpayne@69
|
5614 return NULL;
|
jpayne@69
|
5615 }
|
jpayne@69
|
5616 }
|
jpayne@69
|
5617 }
|
jpayne@69
|
5618 #endif
|
jpayne@69
|
5619 *length = PyBytes_GET_SIZE(defenc);
|
jpayne@69
|
5620 return defenc_c;
|
jpayne@69
|
5621 }
|
jpayne@69
|
5622 #else
|
jpayne@69
|
5623 static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
|
jpayne@69
|
5624 if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
|
jpayne@69
|
5625 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
|
jpayne@69
|
5626 if (likely(PyUnicode_IS_ASCII(o))) {
|
jpayne@69
|
5627 *length = PyUnicode_GET_LENGTH(o);
|
jpayne@69
|
5628 return PyUnicode_AsUTF8(o);
|
jpayne@69
|
5629 } else {
|
jpayne@69
|
5630 PyUnicode_AsASCIIString(o);
|
jpayne@69
|
5631 return NULL;
|
jpayne@69
|
5632 }
|
jpayne@69
|
5633 #else
|
jpayne@69
|
5634 return PyUnicode_AsUTF8AndSize(o, length);
|
jpayne@69
|
5635 #endif
|
jpayne@69
|
5636 }
|
jpayne@69
|
5637 #endif
|
jpayne@69
|
5638 #endif
|
jpayne@69
|
5639 static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
|
jpayne@69
|
5640 #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
|
jpayne@69
|
5641 if (
|
jpayne@69
|
5642 #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
|
jpayne@69
|
5643 __Pyx_sys_getdefaultencoding_not_ascii &&
|
jpayne@69
|
5644 #endif
|
jpayne@69
|
5645 PyUnicode_Check(o)) {
|
jpayne@69
|
5646 return __Pyx_PyUnicode_AsStringAndSize(o, length);
|
jpayne@69
|
5647 } else
|
jpayne@69
|
5648 #endif
|
jpayne@69
|
5649 #if (!CYTHON_COMPILING_IN_PYPY && !CYTHON_COMPILING_IN_LIMITED_API) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
|
jpayne@69
|
5650 if (PyByteArray_Check(o)) {
|
jpayne@69
|
5651 *length = PyByteArray_GET_SIZE(o);
|
jpayne@69
|
5652 return PyByteArray_AS_STRING(o);
|
jpayne@69
|
5653 } else
|
jpayne@69
|
5654 #endif
|
jpayne@69
|
5655 {
|
jpayne@69
|
5656 char* result;
|
jpayne@69
|
5657 int r = PyBytes_AsStringAndSize(o, &result, length);
|
jpayne@69
|
5658 if (unlikely(r < 0)) {
|
jpayne@69
|
5659 return NULL;
|
jpayne@69
|
5660 } else {
|
jpayne@69
|
5661 return result;
|
jpayne@69
|
5662 }
|
jpayne@69
|
5663 }
|
jpayne@69
|
5664 }
|
jpayne@69
|
5665 static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
|
jpayne@69
|
5666 int is_true = x == Py_True;
|
jpayne@69
|
5667 if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
|
jpayne@69
|
5668 else return PyObject_IsTrue(x);
|
jpayne@69
|
5669 }
|
jpayne@69
|
5670 static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
|
jpayne@69
|
5671 int retval;
|
jpayne@69
|
5672 if (unlikely(!x)) return -1;
|
jpayne@69
|
5673 retval = __Pyx_PyObject_IsTrue(x);
|
jpayne@69
|
5674 Py_DECREF(x);
|
jpayne@69
|
5675 return retval;
|
jpayne@69
|
5676 }
|
jpayne@69
|
5677 static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
|
jpayne@69
|
5678 __Pyx_TypeName result_type_name = __Pyx_PyType_GetName(Py_TYPE(result));
|
jpayne@69
|
5679 #if PY_MAJOR_VERSION >= 3
|
jpayne@69
|
5680 if (PyLong_Check(result)) {
|
jpayne@69
|
5681 if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
|
jpayne@69
|
5682 "__int__ returned non-int (type " __Pyx_FMT_TYPENAME "). "
|
jpayne@69
|
5683 "The ability to return an instance of a strict subclass of int is deprecated, "
|
jpayne@69
|
5684 "and may be removed in a future version of Python.",
|
jpayne@69
|
5685 result_type_name)) {
|
jpayne@69
|
5686 __Pyx_DECREF_TypeName(result_type_name);
|
jpayne@69
|
5687 Py_DECREF(result);
|
jpayne@69
|
5688 return NULL;
|
jpayne@69
|
5689 }
|
jpayne@69
|
5690 __Pyx_DECREF_TypeName(result_type_name);
|
jpayne@69
|
5691 return result;
|
jpayne@69
|
5692 }
|
jpayne@69
|
5693 #endif
|
jpayne@69
|
5694 PyErr_Format(PyExc_TypeError,
|
jpayne@69
|
5695 "__%.4s__ returned non-%.4s (type " __Pyx_FMT_TYPENAME ")",
|
jpayne@69
|
5696 type_name, type_name, result_type_name);
|
jpayne@69
|
5697 __Pyx_DECREF_TypeName(result_type_name);
|
jpayne@69
|
5698 Py_DECREF(result);
|
jpayne@69
|
5699 return NULL;
|
jpayne@69
|
5700 }
|
jpayne@69
|
5701 static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
|
jpayne@69
|
5702 #if CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
5703 PyNumberMethods *m;
|
jpayne@69
|
5704 #endif
|
jpayne@69
|
5705 const char *name = NULL;
|
jpayne@69
|
5706 PyObject *res = NULL;
|
jpayne@69
|
5707 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
5708 if (likely(PyInt_Check(x) || PyLong_Check(x)))
|
jpayne@69
|
5709 #else
|
jpayne@69
|
5710 if (likely(PyLong_Check(x)))
|
jpayne@69
|
5711 #endif
|
jpayne@69
|
5712 return __Pyx_NewRef(x);
|
jpayne@69
|
5713 #if CYTHON_USE_TYPE_SLOTS
|
jpayne@69
|
5714 m = Py_TYPE(x)->tp_as_number;
|
jpayne@69
|
5715 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
5716 if (m && m->nb_int) {
|
jpayne@69
|
5717 name = "int";
|
jpayne@69
|
5718 res = m->nb_int(x);
|
jpayne@69
|
5719 }
|
jpayne@69
|
5720 else if (m && m->nb_long) {
|
jpayne@69
|
5721 name = "long";
|
jpayne@69
|
5722 res = m->nb_long(x);
|
jpayne@69
|
5723 }
|
jpayne@69
|
5724 #else
|
jpayne@69
|
5725 if (likely(m && m->nb_int)) {
|
jpayne@69
|
5726 name = "int";
|
jpayne@69
|
5727 res = m->nb_int(x);
|
jpayne@69
|
5728 }
|
jpayne@69
|
5729 #endif
|
jpayne@69
|
5730 #else
|
jpayne@69
|
5731 if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
|
jpayne@69
|
5732 res = PyNumber_Int(x);
|
jpayne@69
|
5733 }
|
jpayne@69
|
5734 #endif
|
jpayne@69
|
5735 if (likely(res)) {
|
jpayne@69
|
5736 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
5737 if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
|
jpayne@69
|
5738 #else
|
jpayne@69
|
5739 if (unlikely(!PyLong_CheckExact(res))) {
|
jpayne@69
|
5740 #endif
|
jpayne@69
|
5741 return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
|
jpayne@69
|
5742 }
|
jpayne@69
|
5743 }
|
jpayne@69
|
5744 else if (!PyErr_Occurred()) {
|
jpayne@69
|
5745 PyErr_SetString(PyExc_TypeError,
|
jpayne@69
|
5746 "an integer is required");
|
jpayne@69
|
5747 }
|
jpayne@69
|
5748 return res;
|
jpayne@69
|
5749 }
|
jpayne@69
|
5750 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
|
jpayne@69
|
5751 Py_ssize_t ival;
|
jpayne@69
|
5752 PyObject *x;
|
jpayne@69
|
5753 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
5754 if (likely(PyInt_CheckExact(b))) {
|
jpayne@69
|
5755 if (sizeof(Py_ssize_t) >= sizeof(long))
|
jpayne@69
|
5756 return PyInt_AS_LONG(b);
|
jpayne@69
|
5757 else
|
jpayne@69
|
5758 return PyInt_AsSsize_t(b);
|
jpayne@69
|
5759 }
|
jpayne@69
|
5760 #endif
|
jpayne@69
|
5761 if (likely(PyLong_CheckExact(b))) {
|
jpayne@69
|
5762 #if CYTHON_USE_PYLONG_INTERNALS
|
jpayne@69
|
5763 if (likely(__Pyx_PyLong_IsCompact(b))) {
|
jpayne@69
|
5764 return __Pyx_PyLong_CompactValue(b);
|
jpayne@69
|
5765 } else {
|
jpayne@69
|
5766 const digit* digits = __Pyx_PyLong_Digits(b);
|
jpayne@69
|
5767 const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);
|
jpayne@69
|
5768 switch (size) {
|
jpayne@69
|
5769 case 2:
|
jpayne@69
|
5770 if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
|
jpayne@69
|
5771 return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
|
jpayne@69
|
5772 }
|
jpayne@69
|
5773 break;
|
jpayne@69
|
5774 case -2:
|
jpayne@69
|
5775 if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
|
jpayne@69
|
5776 return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
|
jpayne@69
|
5777 }
|
jpayne@69
|
5778 break;
|
jpayne@69
|
5779 case 3:
|
jpayne@69
|
5780 if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
|
jpayne@69
|
5781 return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
|
jpayne@69
|
5782 }
|
jpayne@69
|
5783 break;
|
jpayne@69
|
5784 case -3:
|
jpayne@69
|
5785 if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
|
jpayne@69
|
5786 return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
|
jpayne@69
|
5787 }
|
jpayne@69
|
5788 break;
|
jpayne@69
|
5789 case 4:
|
jpayne@69
|
5790 if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
|
jpayne@69
|
5791 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]));
|
jpayne@69
|
5792 }
|
jpayne@69
|
5793 break;
|
jpayne@69
|
5794 case -4:
|
jpayne@69
|
5795 if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
|
jpayne@69
|
5796 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]));
|
jpayne@69
|
5797 }
|
jpayne@69
|
5798 break;
|
jpayne@69
|
5799 }
|
jpayne@69
|
5800 }
|
jpayne@69
|
5801 #endif
|
jpayne@69
|
5802 return PyLong_AsSsize_t(b);
|
jpayne@69
|
5803 }
|
jpayne@69
|
5804 x = PyNumber_Index(b);
|
jpayne@69
|
5805 if (!x) return -1;
|
jpayne@69
|
5806 ival = PyInt_AsSsize_t(x);
|
jpayne@69
|
5807 Py_DECREF(x);
|
jpayne@69
|
5808 return ival;
|
jpayne@69
|
5809 }
|
jpayne@69
|
5810 static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
|
jpayne@69
|
5811 if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
|
jpayne@69
|
5812 return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
|
jpayne@69
|
5813 #if PY_MAJOR_VERSION < 3
|
jpayne@69
|
5814 } else if (likely(PyInt_CheckExact(o))) {
|
jpayne@69
|
5815 return PyInt_AS_LONG(o);
|
jpayne@69
|
5816 #endif
|
jpayne@69
|
5817 } else {
|
jpayne@69
|
5818 Py_ssize_t ival;
|
jpayne@69
|
5819 PyObject *x;
|
jpayne@69
|
5820 x = PyNumber_Index(o);
|
jpayne@69
|
5821 if (!x) return -1;
|
jpayne@69
|
5822 ival = PyInt_AsLong(x);
|
jpayne@69
|
5823 Py_DECREF(x);
|
jpayne@69
|
5824 return ival;
|
jpayne@69
|
5825 }
|
jpayne@69
|
5826 }
|
jpayne@69
|
5827 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
|
jpayne@69
|
5828 return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
|
jpayne@69
|
5829 }
|
jpayne@69
|
5830 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
|
jpayne@69
|
5831 return PyInt_FromSize_t(ival);
|
jpayne@69
|
5832 }
|
jpayne@69
|
5833
|
jpayne@69
|
5834
|
jpayne@69
|
5835 /* #### Code section: utility_code_pragmas_end ### */
|
jpayne@69
|
5836 #ifdef _MSC_VER
|
jpayne@69
|
5837 #pragma warning( pop )
|
jpayne@69
|
5838 #endif
|
jpayne@69
|
5839
|
jpayne@69
|
5840
|
jpayne@69
|
5841
|
jpayne@69
|
5842 /* #### Code section: end ### */
|
jpayne@69
|
5843 #endif /* Py_PYTHON_H */
|