annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/site-packages/pysam/libcbcftools.c @ 69:33d812a61356

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