msgpack-python-0.3.0/0000755000076700000240000000000012107551405015112 5ustar inada-nstaff00000000000000msgpack-python-0.3.0/COPYING0000644000076700000240000000114612032347250016145 0ustar inada-nstaff00000000000000Copyright (C) 2008-2011 INADA Naoki Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. msgpack-python-0.3.0/msgpack/0000755000076700000240000000000012107551405016537 5ustar inada-nstaff00000000000000msgpack-python-0.3.0/msgpack/__init__.py0000644000076700000240000000110012101664064020640 0ustar inada-nstaff00000000000000# coding: utf-8 from msgpack._version import version from msgpack.exceptions import * import os if os.environ.get('MSGPACK_PUREPYTHON'): from msgpack.fallback import pack, packb, Packer, unpack, unpackb, Unpacker else: try: from msgpack._packer import pack, packb, Packer from msgpack._unpacker import unpack, unpackb, Unpacker except ImportError: from msgpack.fallback import pack, packb, Packer, unpack, unpackb, Unpacker # alias for compatibility to simplejson/marshal/pickle. load = unpack loads = unpackb dump = pack dumps = packb msgpack-python-0.3.0/msgpack/_packer.cpp0000644000076700000240000105514612107551404020662 0ustar inada-nstaff00000000000000/* Generated by Cython 0.18 on Sat Feb 16 09:29:56 2013 */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02040000 #error Cython requires Python 2.4+. #else #include /* For offsetof */ #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #ifdef PYPY_VERSION #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #endif #if PY_VERSION_HEX < 0x02050000 typedef int Py_ssize_t; #define PY_SSIZE_T_MAX INT_MAX #define PY_SSIZE_T_MIN INT_MIN #define PY_FORMAT_SIZE_T "" #define CYTHON_FORMAT_SSIZE_T "" #define PyInt_FromSsize_t(z) PyInt_FromLong(z) #define PyInt_AsSsize_t(o) __Pyx_PyInt_AsInt(o) #define PyNumber_Index(o) ((PyNumber_Check(o) && !PyFloat_Check(o)) ? PyNumber_Int(o) : \ (PyErr_Format(PyExc_TypeError, \ "expected index value, got %.200s", Py_TYPE(o)->tp_name), \ (PyObject*)0)) #define __Pyx_PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && \ !PyComplex_Check(o)) #define PyIndex_Check __Pyx_PyIndex_Check #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message) #define __PYX_BUILD_PY_SSIZE_T "i" #else #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #define __Pyx_PyIndex_Check PyIndex_Check #endif #if PY_VERSION_HEX < 0x02060000 #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt) #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) #define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size) #define PyVarObject_HEAD_INIT(type, size) \ PyObject_HEAD_INIT(type) size, #define PyType_Modified(t) typedef struct { void *buf; PyObject *obj; Py_ssize_t len; Py_ssize_t itemsize; int readonly; int ndim; char *format; Py_ssize_t *shape; Py_ssize_t *strides; Py_ssize_t *suboffsets; void *internal; } Py_buffer; #define PyBUF_SIMPLE 0 #define PyBUF_WRITABLE 0x0001 #define PyBUF_FORMAT 0x0004 #define PyBUF_ND 0x0008 #define PyBUF_STRIDES (0x0010 | PyBUF_ND) #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES) #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES) #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES) #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES) #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_FORMAT | PyBUF_WRITABLE) #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_FORMAT | PyBUF_WRITABLE) typedef int (*getbufferproc)(PyObject *, Py_buffer *, int); typedef void (*releasebufferproc)(PyObject *, Py_buffer *); #endif #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ PyCode_New(a, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #if PY_MAJOR_VERSION < 3 && PY_MINOR_VERSION < 6 #define PyUnicode_FromString(s) PyUnicode_Decode(s, strlen(s), "UTF-8", "strict") #endif #if PY_MAJOR_VERSION >= 3 #define Py_TPFLAGS_CHECKTYPES 0 #define Py_TPFLAGS_HAVE_INDEX 0 #endif #if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3) #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ? \ 0 : _PyUnicode_Ready((PyObject *)(op))) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #else #define CYTHON_PEP393_ENABLED 0 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) #define __Pyx_PyUnicode_READ(k, d, i) ((k=k), (Py_UCS4)(((Py_UNICODE*)d)[i])) #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #endif #if PY_VERSION_HEX < 0x02060000 #define PyBytesObject PyStringObject #define PyBytes_Type PyString_Type #define PyBytes_Check PyString_Check #define PyBytes_CheckExact PyString_CheckExact #define PyBytes_FromString PyString_FromString #define PyBytes_FromStringAndSize PyString_FromStringAndSize #define PyBytes_FromFormat PyString_FromFormat #define PyBytes_DecodeEscape PyString_DecodeEscape #define PyBytes_AsString PyString_AsString #define PyBytes_AsStringAndSize PyString_AsStringAndSize #define PyBytes_Size PyString_Size #define PyBytes_AS_STRING PyString_AS_STRING #define PyBytes_GET_SIZE PyString_GET_SIZE #define PyBytes_Repr PyString_Repr #define PyBytes_Concat PyString_Concat #define PyBytes_ConcatAndDel PyString_ConcatAndDel #endif #if PY_VERSION_HEX < 0x02060000 #define PySet_Check(obj) PyObject_TypeCheck(obj, &PySet_Type) #define PyFrozenSet_Check(obj) PyObject_TypeCheck(obj, &PyFrozenSet_Type) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_VERSION_HEX < 0x03020000 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t PyInt_AsLong #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300) #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b) #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value) #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b) #else #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \ (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0))) #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \ (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1))) #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \ (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1))) #endif #if PY_MAJOR_VERSION >= 3 #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func)) #endif #if PY_VERSION_HEX < 0x02050000 #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n))) #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a)) #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),((char *)(n))) #else #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n)) #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a)) #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n)) #endif #if PY_VERSION_HEX < 0x02050000 #define __Pyx_NAMESTR(n) ((char *)(n)) #define __Pyx_DOCSTR(n) ((char *)(n)) #else #define __Pyx_NAMESTR(n) (n) #define __Pyx_DOCSTR(n) (n) #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES #endif #include #define __PYX_HAVE__msgpack___packer #define __PYX_HAVE_API__msgpack___packer #include "string.h" #include "stdio.h" #include "pythread.h" #include "stdlib.h" #include "limits.h" #include "pack.h" #ifdef _OPENMP #include #endif /* _OPENMP */ #ifdef PYREX_WITHOUT_ASSERTIONS #define CYTHON_WITHOUT_ASSERTIONS #endif #ifndef CYTHON_INLINE #if defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/ #define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s) #define __Pyx_PyBytes_AsUString(s) ((unsigned char*) PyBytes_AsString(s)) #define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None) #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False)) static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x); static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*); #if CYTHON_COMPILING_IN_CPYTHON #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #endif #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) #ifdef __GNUC__ /* Test for GCC > 2.95 */ #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* __GNUC__ > 2 ... */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ > 2 ... */ #else /* __GNUC__ */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static PyObject *__pyx_m; static PyObject *__pyx_b; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm= __FILE__; static const char *__pyx_filename; static const char *__pyx_f[] = { "_packer.pyx", "type.pxd", "bool.pxd", "complex.pxd", }; /*--- Type declarations ---*/ struct __pyx_obj_7msgpack_7_packer_Packer; struct __pyx_opt_args_7msgpack_7_packer_6Packer__pack; /* "msgpack/_packer.pyx":102 * free(self.pk.buf); * * cdef int _pack(self, object o, int nest_limit=DEFAULT_RECURSE_LIMIT) except -1: # <<<<<<<<<<<<<< * cdef long long llval * cdef unsigned long long ullval */ #line 102 "msgpack/_packer.pyx" struct __pyx_opt_args_7msgpack_7_packer_6Packer__pack { #line 102 "msgpack/_packer.pyx" int __pyx_n; #line 102 "msgpack/_packer.pyx" int nest_limit; #line 102 "msgpack/_packer.pyx" }; /* "msgpack/_packer.pyx":41 * * * cdef class Packer(object): # <<<<<<<<<<<<<< * """MessagePack Packer * */ #line 41 "msgpack/_packer.pyx" struct __pyx_obj_7msgpack_7_packer_Packer { #line 41 "msgpack/_packer.pyx" PyObject_HEAD #line 41 "msgpack/_packer.pyx" struct __pyx_vtabstruct_7msgpack_7_packer_Packer *__pyx_vtab; #line 41 "msgpack/_packer.pyx" struct msgpack_packer pk; #line 41 "msgpack/_packer.pyx" PyObject *_default; #line 41 "msgpack/_packer.pyx" PyObject *_bencoding; #line 41 "msgpack/_packer.pyx" PyObject *_berrors; #line 41 "msgpack/_packer.pyx" char *encoding; #line 41 "msgpack/_packer.pyx" char *unicode_errors; #line 41 "msgpack/_packer.pyx" PyBoolObject *use_float; #line 41 "msgpack/_packer.pyx" int autoreset; #line 41 "msgpack/_packer.pyx" }; #line 41 "msgpack/_packer.pyx" #line 41 "msgpack/_packer.pyx" #line 41 "msgpack/_packer.pyx" #line 41 "msgpack/_packer.pyx" struct __pyx_vtabstruct_7msgpack_7_packer_Packer { #line 41 "msgpack/_packer.pyx" int (*_pack)(struct __pyx_obj_7msgpack_7_packer_Packer *, PyObject *, struct __pyx_opt_args_7msgpack_7_packer_6Packer__pack *__pyx_optional_args); #line 41 "msgpack/_packer.pyx" PyObject *(*pack)(struct __pyx_obj_7msgpack_7_packer_Packer *, PyObject *, int __pyx_skip_dispatch); #line 41 "msgpack/_packer.pyx" }; #line 41 "msgpack/_packer.pyx" static struct __pyx_vtabstruct_7msgpack_7_packer_Packer *__pyx_vtabptr_7msgpack_7_packer_Packer; #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, int); void (*DECREF)(void*, PyObject*, int); void (*GOTREF)(void*, PyObject*, int); void (*GIVEREF)(void*, PyObject*, int); void* (*SetupContext)(const char*, int, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/ #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #ifdef WITH_THREAD #define __Pyx_RefNannySetupContext(name, acquire_gil) \ if (acquire_gil) { \ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ PyGILState_Release(__pyx_gilstate_save); \ } else { \ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ } #else #define __Pyx_RefNannySetupContext(name, acquire_gil) \ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) #endif #define __Pyx_RefNannyFinishContext() \ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif /* CYTHON_REFNANNY */ #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/ static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /*proto*/ static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /*proto*/ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \ PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \ const char* function_name); /*proto*/ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/ static CYTHON_INLINE int __Pyx_IterFinish(void); /*proto*/ static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index); /*proto*/ static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /*proto*/ static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** value1, PyObject** value2, int is_tuple, int has_known_size, int decref_tuple); static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_is_dict); static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict); static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /*proto*/ static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name); static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *); static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *); static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *); static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *); static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *); static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *); static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *); static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *); static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *); static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *); static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *); static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *); static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *); static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *); static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *); static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *); static int __Pyx_check_binary_version(void); static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/ #if !defined(__Pyx_PyIdentifier_FromString) #if PY_MAJOR_VERSION < 3 #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) #else #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) #endif #endif static PyObject *__Pyx_ImportModule(const char *name); /*proto*/ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); /*proto*/ typedef struct { int code_line; PyCodeObject* code_object; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; }; static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static PyCodeObject *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); /*proto*/ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ /* Module declarations from 'cpython.version' */ /* Module declarations from 'cpython.ref' */ /* Module declarations from 'cpython.exc' */ /* Module declarations from 'cpython.module' */ /* Module declarations from 'cpython.mem' */ /* Module declarations from 'cpython.tuple' */ /* Module declarations from 'cpython.list' */ /* Module declarations from 'libc.string' */ /* Module declarations from 'libc.stdio' */ /* Module declarations from 'cpython.object' */ /* Module declarations from 'cpython.sequence' */ /* Module declarations from 'cpython.mapping' */ /* Module declarations from 'cpython.iterator' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.type' */ static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0; /* Module declarations from 'cpython.number' */ /* Module declarations from 'cpython.int' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.bool' */ static PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0; /* Module declarations from 'cpython.long' */ /* Module declarations from 'cpython.float' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.complex' */ static PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0; /* Module declarations from 'cpython.string' */ /* Module declarations from 'cpython.unicode' */ /* Module declarations from 'cpython.dict' */ /* Module declarations from 'cpython.instance' */ /* Module declarations from 'cpython.function' */ /* Module declarations from 'cpython.method' */ /* Module declarations from 'cpython.weakref' */ /* Module declarations from 'cpython.getargs' */ /* Module declarations from 'cpython.pythread' */ /* Module declarations from 'cpython.pystate' */ /* Module declarations from 'cpython.cobject' */ /* Module declarations from 'cpython.oldbuffer' */ /* Module declarations from 'cpython.set' */ /* Module declarations from 'cpython.buffer' */ /* Module declarations from 'cpython.bytes' */ /* Module declarations from 'cpython.pycapsule' */ /* Module declarations from 'cpython' */ /* Module declarations from 'libc.stdlib' */ /* Module declarations from 'libc.limits' */ /* Module declarations from 'msgpack._packer' */ static PyTypeObject *__pyx_ptype_7msgpack_7_packer_Packer = 0; static int __pyx_v_7msgpack_7_packer_DEFAULT_RECURSE_LIMIT; #define __Pyx_MODULE_NAME "msgpack._packer" int __pyx_module_is_main_msgpack___packer = 0; /* Implementation of 'msgpack._packer' */ static PyObject *__pyx_builtin_MemoryError; static PyObject *__pyx_builtin_TypeError; static int __pyx_pf_7msgpack_7_packer_6Packer___cinit__(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self); /* proto */ static int __pyx_pf_7msgpack_7_packer_6Packer_2__init__(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, PyObject *__pyx_v_default, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors, PyObject *__pyx_v_use_single_float, int __pyx_v_autoreset); /* proto */ static void __pyx_pf_7msgpack_7_packer_6Packer_4__dealloc__(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_6pack(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */ static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_8pack_array_header(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, size_t __pyx_v_size); /* proto */ static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_10pack_map_header(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, size_t __pyx_v_size); /* proto */ static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_12pack_map_pairs(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, PyObject *__pyx_v_pairs); /* proto */ static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_14reset(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_16bytes(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7msgpack_7_packer_pack(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_o, PyObject *__pyx_v_stream, PyObject *__pyx_v_default, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors); /* proto */ static PyObject *__pyx_pf_7msgpack_7_packer_2packb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_o, PyObject *__pyx_v_default, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors, PyObject *__pyx_v_use_single_float); /* proto */ static char __pyx_k_1[] = "Unable to allocate internal buffer."; static char __pyx_k_3[] = "utf-8"; static char __pyx_k_5[] = "default must be a callable."; static char __pyx_k_10[] = "recursion limit exceeded."; static char __pyx_k_12[] = "Can't encode unicode string: no encoding is specified"; static char __pyx_k_14[] = "can't serialize %r"; static char __pyx_k_16[] = "msgpack.exceptions"; static char __pyx_k_19[] = "/Users/inada-n/work/msgpack-python/msgpack/_packer.pyx"; static char __pyx_k_20[] = "msgpack._packer"; static char __pyx_k__o[] = "o"; static char __pyx_k__pack[] = "pack"; static char __pyx_k__ascii[] = "ascii"; static char __pyx_k__items[] = "items"; static char __pyx_k__packb[] = "packb"; static char __pyx_k__write[] = "write"; static char __pyx_k__encode[] = "encode"; static char __pyx_k__packer[] = "packer"; static char __pyx_k__stream[] = "stream"; static char __pyx_k__strict[] = "strict"; static char __pyx_k__default[] = "default"; static char __pyx_k____main__[] = "__main__"; static char __pyx_k____test__[] = "__test__"; static char __pyx_k__encoding[] = "encoding"; static char __pyx_k__TypeError[] = "TypeError"; static char __pyx_k__autoreset[] = "autoreset"; static char __pyx_k__iteritems[] = "iteritems"; static char __pyx_k__MemoryError[] = "MemoryError"; static char __pyx_k__PackValueError[] = "PackValueError"; static char __pyx_k__unicode_errors[] = "unicode_errors"; static char __pyx_k__use_single_float[] = "use_single_float"; static PyObject *__pyx_kp_s_1; static PyObject *__pyx_kp_s_10; static PyObject *__pyx_kp_s_12; static PyObject *__pyx_kp_s_14; static PyObject *__pyx_n_s_16; static PyObject *__pyx_kp_s_19; static PyObject *__pyx_n_s_20; static PyObject *__pyx_kp_s_3; static PyObject *__pyx_kp_s_5; static PyObject *__pyx_n_s__MemoryError; static PyObject *__pyx_n_s__PackValueError; static PyObject *__pyx_n_s__TypeError; static PyObject *__pyx_n_s____main__; static PyObject *__pyx_n_s____test__; static PyObject *__pyx_n_s__ascii; static PyObject *__pyx_n_s__autoreset; static PyObject *__pyx_n_s__default; static PyObject *__pyx_n_s__encode; static PyObject *__pyx_n_s__encoding; static PyObject *__pyx_n_s__items; static PyObject *__pyx_n_s__iteritems; static PyObject *__pyx_n_s__o; static PyObject *__pyx_n_s__pack; static PyObject *__pyx_n_s__packb; static PyObject *__pyx_n_s__packer; static PyObject *__pyx_n_s__stream; static PyObject *__pyx_n_s__strict; static PyObject *__pyx_n_s__unicode_errors; static PyObject *__pyx_n_s__use_single_float; static PyObject *__pyx_n_s__write; static PyObject *__pyx_int_0; static PyObject *__pyx_k_4; static int __pyx_k_9; static PyObject *__pyx_k_15; static PyObject *__pyx_k_tuple_2; static PyObject *__pyx_k_tuple_6; static PyObject *__pyx_k_tuple_7; static PyObject *__pyx_k_tuple_8; static PyObject *__pyx_k_tuple_11; static PyObject *__pyx_k_tuple_13; static PyObject *__pyx_k_tuple_17; static PyObject *__pyx_k_tuple_21; static PyObject *__pyx_k_codeobj_18; static PyObject *__pyx_k_codeobj_22; /* Python wrapper */ static int __pyx_pw_7msgpack_7_packer_6Packer_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_7msgpack_7_packer_6Packer_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; __pyx_r = __pyx_pf_7msgpack_7_packer_6Packer___cinit__(((struct __pyx_obj_7msgpack_7_packer_Packer *)__pyx_v_self)); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "msgpack/_packer.pyx":69 * cdef bint autoreset * * def __cinit__(self): # <<<<<<<<<<<<<< * cdef int buf_size = 1024*1024 * self.pk.buf = malloc(buf_size); */ #line 69 "msgpack/_packer.pyx" #line 69 "msgpack/_packer.pyx" static int __pyx_pf_7msgpack_7_packer_6Packer___cinit__(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self) { int __pyx_v_buf_size #line 69 "msgpack/_packer.pyx" ; #line 69 "msgpack/_packer.pyx" int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 69 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("__cinit__", 0); /* "msgpack/_packer.pyx":70 * * def __cinit__(self): * cdef int buf_size = 1024*1024 # <<<<<<<<<<<<<< * self.pk.buf = malloc(buf_size); * if self.pk.buf == NULL: */ #line 70 "msgpack/_packer.pyx" __pyx_v_buf_size = 1048576; /* "msgpack/_packer.pyx":71 * def __cinit__(self): * cdef int buf_size = 1024*1024 * self.pk.buf = malloc(buf_size); # <<<<<<<<<<<<<< * if self.pk.buf == NULL: * raise MemoryError("Unable to allocate internal buffer.") */ #line 71 "msgpack/_packer.pyx" __pyx_v_self->pk.buf = ((char *)malloc(__pyx_v_buf_size)); /* "msgpack/_packer.pyx":72 * cdef int buf_size = 1024*1024 * self.pk.buf = malloc(buf_size); * if self.pk.buf == NULL: # <<<<<<<<<<<<<< * raise MemoryError("Unable to allocate internal buffer.") * self.pk.buf_size = buf_size */ #line 72 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_self->pk.buf == NULL); #line 72 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":73 * self.pk.buf = malloc(buf_size); * if self.pk.buf == NULL: * raise MemoryError("Unable to allocate internal buffer.") # <<<<<<<<<<<<<< * self.pk.buf_size = buf_size * self.pk.length = 0 */ #line 73 "msgpack/_packer.pyx" __pyx_t_2 = PyObject_Call(__pyx_builtin_MemoryError, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 73 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 73 "msgpack/_packer.pyx" __Pyx_Raise(__pyx_t_2, 0, 0, 0); #line 73 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 73 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 73 "msgpack/_packer.pyx" goto __pyx_L3; #line 73 "msgpack/_packer.pyx" } #line 73 "msgpack/_packer.pyx" __pyx_L3:; /* "msgpack/_packer.pyx":74 * if self.pk.buf == NULL: * raise MemoryError("Unable to allocate internal buffer.") * self.pk.buf_size = buf_size # <<<<<<<<<<<<<< * self.pk.length = 0 * */ #line 74 "msgpack/_packer.pyx" __pyx_v_self->pk.buf_size = __pyx_v_buf_size; /* "msgpack/_packer.pyx":75 * raise MemoryError("Unable to allocate internal buffer.") * self.pk.buf_size = buf_size * self.pk.length = 0 # <<<<<<<<<<<<<< * * def __init__(self, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False, bint autoreset=1): */ #line 75 "msgpack/_packer.pyx" __pyx_v_self->pk.length = 0; #line 75 "msgpack/_packer.pyx" #line 75 "msgpack/_packer.pyx" __pyx_r = 0; #line 75 "msgpack/_packer.pyx" goto __pyx_L0; #line 75 "msgpack/_packer.pyx" __pyx_L1_error:; #line 75 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_2); #line 75 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 75 "msgpack/_packer.pyx" __pyx_r = -1; #line 75 "msgpack/_packer.pyx" __pyx_L0:; #line 75 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 75 "msgpack/_packer.pyx" return __pyx_r; #line 75 "msgpack/_packer.pyx" } #line 75 "msgpack/_packer.pyx" #line 75 "msgpack/_packer.pyx" /* Python wrapper */ #line 75 "msgpack/_packer.pyx" static int __pyx_pw_7msgpack_7_packer_6Packer_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ #line 75 "msgpack/_packer.pyx" static int __pyx_pw_7msgpack_7_packer_6Packer_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_default = 0 #line 75 "msgpack/_packer.pyx" ; PyObject *__pyx_v_encoding = 0 #line 75 "msgpack/_packer.pyx" ; PyObject *__pyx_v_unicode_errors = 0 #line 75 "msgpack/_packer.pyx" ; PyObject *__pyx_v_use_single_float = 0 #line 75 "msgpack/_packer.pyx" ; int __pyx_v_autoreset #line 75 "msgpack/_packer.pyx" ; #line 75 "msgpack/_packer.pyx" int __pyx_r; #line 75 "msgpack/_packer.pyx" __Pyx_RefNannyDeclarations #line 75 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); #line 75 "msgpack/_packer.pyx" { #line 75 "msgpack/_packer.pyx" static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__default,&__pyx_n_s__encoding,&__pyx_n_s__unicode_errors,&__pyx_n_s__use_single_float,&__pyx_n_s__autoreset,0}; #line 75 "msgpack/_packer.pyx" PyObject* values[5] = {0,0,0,0,0}; /* "msgpack/_packer.pyx":77 * self.pk.length = 0 * * def __init__(self, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False, bint autoreset=1): # <<<<<<<<<<<<<< * self.use_float = use_single_float * self.autoreset = autoreset */ #line 77 "msgpack/_packer.pyx" values[0] = ((PyObject *)Py_None); #line 77 "msgpack/_packer.pyx" values[1] = ((PyObject *)__pyx_kp_s_3); #line 77 "msgpack/_packer.pyx" values[2] = ((PyObject *)__pyx_n_s__strict); #line 77 "msgpack/_packer.pyx" values[3] = __pyx_k_4; #line 77 "msgpack/_packer.pyx" if (unlikely(__pyx_kwds)) { #line 77 "msgpack/_packer.pyx" Py_ssize_t kw_args; #line 77 "msgpack/_packer.pyx" const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); #line 77 "msgpack/_packer.pyx" switch (pos_args) { case 5: #line 77 "msgpack/_packer.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 77 "msgpack/_packer.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 77 "msgpack/_packer.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 77 "msgpack/_packer.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: #line 77 "msgpack/_packer.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 77 "msgpack/_packer.pyx" case 0: break; default: #line 77 "msgpack/_packer.pyx" goto __pyx_L5_argtuple_error; #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" kw_args = PyDict_Size(__pyx_kwds); #line 77 "msgpack/_packer.pyx" switch (pos_args) { #line 77 "msgpack/_packer.pyx" case 0: #line 77 "msgpack/_packer.pyx" if (kw_args > 0) { #line 77 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default); #line 77 "msgpack/_packer.pyx" if (value) { values[0] = value; kw_args--; } #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" case 1: #line 77 "msgpack/_packer.pyx" if (kw_args > 0) { #line 77 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__encoding); #line 77 "msgpack/_packer.pyx" if (value) { values[1] = value; kw_args--; } #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" case 2: #line 77 "msgpack/_packer.pyx" if (kw_args > 0) { #line 77 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__unicode_errors); #line 77 "msgpack/_packer.pyx" if (value) { values[2] = value; kw_args--; } #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" case 3: #line 77 "msgpack/_packer.pyx" if (kw_args > 0) { #line 77 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__use_single_float); #line 77 "msgpack/_packer.pyx" if (value) { values[3] = value; kw_args--; } #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" case 4: #line 77 "msgpack/_packer.pyx" if (kw_args > 0) { #line 77 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__autoreset); #line 77 "msgpack/_packer.pyx" if (value) { values[4] = value; kw_args--; } #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" if (unlikely(kw_args > 0)) { #line 77 "msgpack/_packer.pyx" if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" } else { #line 77 "msgpack/_packer.pyx" switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: #line 77 "msgpack/_packer.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 77 "msgpack/_packer.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 77 "msgpack/_packer.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 77 "msgpack/_packer.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: #line 77 "msgpack/_packer.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: #line 77 "msgpack/_packer.pyx" break; default: #line 77 "msgpack/_packer.pyx" goto __pyx_L5_argtuple_error; #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" __pyx_v_default = values[0]; #line 77 "msgpack/_packer.pyx" __pyx_v_encoding = values[1]; #line 77 "msgpack/_packer.pyx" __pyx_v_unicode_errors = values[2]; #line 77 "msgpack/_packer.pyx" __pyx_v_use_single_float = values[3]; #line 77 "msgpack/_packer.pyx" if (values[4]) { #line 77 "msgpack/_packer.pyx" __pyx_v_autoreset = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_autoreset == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 77 "msgpack/_packer.pyx" } else { #line 77 "msgpack/_packer.pyx" __pyx_v_autoreset = ((int)1); #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" goto __pyx_L4_argument_unpacking_done; #line 77 "msgpack/_packer.pyx" __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); #line 77 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 77 "msgpack/_packer.pyx" __pyx_L3_error:; #line 77 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 77 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 77 "msgpack/_packer.pyx" return -1; #line 77 "msgpack/_packer.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 77 "msgpack/_packer.pyx" __pyx_pf_7msgpack_7_packer_6Packer_2__init__(((struct __pyx_obj_7msgpack_7_packer_Packer *)__pyx_v_self), __pyx_v_default, __pyx_v_encoding, __pyx_v_unicode_errors, __pyx_v_use_single_float, __pyx_v_autoreset); #line 77 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 77 "msgpack/_packer.pyx" return __pyx_r; #line 77 "msgpack/_packer.pyx" } #line 77 "msgpack/_packer.pyx" #line 77 "msgpack/_packer.pyx" static int __pyx_pf_7msgpack_7_packer_6Packer_2__init__(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, PyObject *__pyx_v_default, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors, PyObject *__pyx_v_use_single_float, int __pyx_v_autoreset) { #line 77 "msgpack/_packer.pyx" int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; char *__pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 77 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("__init__", 0); /* "msgpack/_packer.pyx":78 * * def __init__(self, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False, bint autoreset=1): * self.use_float = use_single_float # <<<<<<<<<<<<<< * self.autoreset = autoreset * if default is not None: */ #line 78 "msgpack/_packer.pyx" if (!(likely(((__pyx_v_use_single_float) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_use_single_float, __pyx_ptype_7cpython_4bool_bool))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 78 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_v_use_single_float); #line 78 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_v_use_single_float); #line 78 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_v_self->use_float); #line 78 "msgpack/_packer.pyx" __Pyx_DECREF(((PyObject *)__pyx_v_self->use_float)); #line 78 "msgpack/_packer.pyx" __pyx_v_self->use_float = ((PyBoolObject *)__pyx_v_use_single_float); /* "msgpack/_packer.pyx":79 * def __init__(self, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False, bint autoreset=1): * self.use_float = use_single_float * self.autoreset = autoreset # <<<<<<<<<<<<<< * if default is not None: * if not PyCallable_Check(default): */ #line 79 "msgpack/_packer.pyx" __pyx_v_self->autoreset = __pyx_v_autoreset; /* "msgpack/_packer.pyx":80 * self.use_float = use_single_float * self.autoreset = autoreset * if default is not None: # <<<<<<<<<<<<<< * if not PyCallable_Check(default): * raise TypeError("default must be a callable.") */ #line 80 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_default != Py_None); #line 80 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":81 * self.autoreset = autoreset * if default is not None: * if not PyCallable_Check(default): # <<<<<<<<<<<<<< * raise TypeError("default must be a callable.") * self._default = default */ #line 81 "msgpack/_packer.pyx" __pyx_t_1 = (!PyCallable_Check(__pyx_v_default)); #line 81 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":82 * if default is not None: * if not PyCallable_Check(default): * raise TypeError("default must be a callable.") # <<<<<<<<<<<<<< * self._default = default * if encoding is None: */ #line 82 "msgpack/_packer.pyx" __pyx_t_2 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 82 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 82 "msgpack/_packer.pyx" __Pyx_Raise(__pyx_t_2, 0, 0, 0); #line 82 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 82 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 82 "msgpack/_packer.pyx" goto __pyx_L4; #line 82 "msgpack/_packer.pyx" } #line 82 "msgpack/_packer.pyx" __pyx_L4:; #line 82 "msgpack/_packer.pyx" goto __pyx_L3; #line 82 "msgpack/_packer.pyx" } #line 82 "msgpack/_packer.pyx" __pyx_L3:; /* "msgpack/_packer.pyx":83 * if not PyCallable_Check(default): * raise TypeError("default must be a callable.") * self._default = default # <<<<<<<<<<<<<< * if encoding is None: * self.encoding = NULL */ #line 83 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_v_default); #line 83 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_v_default); #line 83 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_v_self->_default); #line 83 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_v_self->_default); #line 83 "msgpack/_packer.pyx" __pyx_v_self->_default = __pyx_v_default; /* "msgpack/_packer.pyx":84 * raise TypeError("default must be a callable.") * self._default = default * if encoding is None: # <<<<<<<<<<<<<< * self.encoding = NULL * self.unicode_errors = NULL */ #line 84 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_encoding == Py_None); #line 84 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":85 * self._default = default * if encoding is None: * self.encoding = NULL # <<<<<<<<<<<<<< * self.unicode_errors = NULL * else: */ #line 85 "msgpack/_packer.pyx" __pyx_v_self->encoding = NULL; /* "msgpack/_packer.pyx":86 * if encoding is None: * self.encoding = NULL * self.unicode_errors = NULL # <<<<<<<<<<<<<< * else: * if isinstance(encoding, unicode): */ #line 86 "msgpack/_packer.pyx" __pyx_v_self->unicode_errors = NULL; #line 86 "msgpack/_packer.pyx" goto __pyx_L5; #line 86 "msgpack/_packer.pyx" } #line 86 "msgpack/_packer.pyx" /*else*/ { /* "msgpack/_packer.pyx":88 * self.unicode_errors = NULL * else: * if isinstance(encoding, unicode): # <<<<<<<<<<<<<< * self._bencoding = encoding.encode('ascii') * else: */ #line 88 "msgpack/_packer.pyx" __pyx_t_1 = PyUnicode_Check(__pyx_v_encoding); #line 88 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":89 * else: * if isinstance(encoding, unicode): * self._bencoding = encoding.encode('ascii') # <<<<<<<<<<<<<< * else: * self._bencoding = encoding */ #line 89 "msgpack/_packer.pyx" __pyx_t_2 = PyObject_GetAttr(__pyx_v_encoding, __pyx_n_s__encode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 89 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 89 "msgpack/_packer.pyx" __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_7), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 89 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 89 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 89 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_t_3); #line 89 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_v_self->_bencoding); #line 89 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_v_self->_bencoding); #line 89 "msgpack/_packer.pyx" __pyx_v_self->_bencoding = __pyx_t_3; #line 89 "msgpack/_packer.pyx" __pyx_t_3 = 0; #line 89 "msgpack/_packer.pyx" goto __pyx_L6; #line 89 "msgpack/_packer.pyx" } #line 89 "msgpack/_packer.pyx" /*else*/ { /* "msgpack/_packer.pyx":91 * self._bencoding = encoding.encode('ascii') * else: * self._bencoding = encoding # <<<<<<<<<<<<<< * self.encoding = PyBytes_AsString(self._bencoding) * if isinstance(unicode_errors, unicode): */ #line 91 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_v_encoding); #line 91 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_v_encoding); #line 91 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_v_self->_bencoding); #line 91 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_v_self->_bencoding); #line 91 "msgpack/_packer.pyx" __pyx_v_self->_bencoding = __pyx_v_encoding; #line 91 "msgpack/_packer.pyx" } #line 91 "msgpack/_packer.pyx" __pyx_L6:; /* "msgpack/_packer.pyx":92 * else: * self._bencoding = encoding * self.encoding = PyBytes_AsString(self._bencoding) # <<<<<<<<<<<<<< * if isinstance(unicode_errors, unicode): * self._berrors = unicode_errors.encode('ascii') */ #line 92 "msgpack/_packer.pyx" __pyx_t_3 = __pyx_v_self->_bencoding; #line 92 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_t_3); #line 92 "msgpack/_packer.pyx" __pyx_t_4 = PyBytes_AsString(__pyx_t_3); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 92 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 92 "msgpack/_packer.pyx" __pyx_v_self->encoding = __pyx_t_4; /* "msgpack/_packer.pyx":93 * self._bencoding = encoding * self.encoding = PyBytes_AsString(self._bencoding) * if isinstance(unicode_errors, unicode): # <<<<<<<<<<<<<< * self._berrors = unicode_errors.encode('ascii') * else: */ #line 93 "msgpack/_packer.pyx" __pyx_t_1 = PyUnicode_Check(__pyx_v_unicode_errors); #line 93 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":94 * self.encoding = PyBytes_AsString(self._bencoding) * if isinstance(unicode_errors, unicode): * self._berrors = unicode_errors.encode('ascii') # <<<<<<<<<<<<<< * else: * self._berrors = unicode_errors */ #line 94 "msgpack/_packer.pyx" __pyx_t_3 = PyObject_GetAttr(__pyx_v_unicode_errors, __pyx_n_s__encode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 94 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 94 "msgpack/_packer.pyx" __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_8), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 94 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 94 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 94 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_t_2); #line 94 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_v_self->_berrors); #line 94 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_v_self->_berrors); #line 94 "msgpack/_packer.pyx" __pyx_v_self->_berrors = __pyx_t_2; #line 94 "msgpack/_packer.pyx" __pyx_t_2 = 0; #line 94 "msgpack/_packer.pyx" goto __pyx_L7; #line 94 "msgpack/_packer.pyx" } #line 94 "msgpack/_packer.pyx" /*else*/ { /* "msgpack/_packer.pyx":96 * self._berrors = unicode_errors.encode('ascii') * else: * self._berrors = unicode_errors # <<<<<<<<<<<<<< * self.unicode_errors = PyBytes_AsString(self._berrors) * */ #line 96 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_v_unicode_errors); #line 96 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_v_unicode_errors); #line 96 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_v_self->_berrors); #line 96 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_v_self->_berrors); #line 96 "msgpack/_packer.pyx" __pyx_v_self->_berrors = __pyx_v_unicode_errors; #line 96 "msgpack/_packer.pyx" } #line 96 "msgpack/_packer.pyx" __pyx_L7:; /* "msgpack/_packer.pyx":97 * else: * self._berrors = unicode_errors * self.unicode_errors = PyBytes_AsString(self._berrors) # <<<<<<<<<<<<<< * * def __dealloc__(self): */ #line 97 "msgpack/_packer.pyx" __pyx_t_2 = __pyx_v_self->_berrors; #line 97 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_t_2); #line 97 "msgpack/_packer.pyx" __pyx_t_4 = PyBytes_AsString(__pyx_t_2); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 97 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 97 "msgpack/_packer.pyx" __pyx_v_self->unicode_errors = __pyx_t_4; #line 97 "msgpack/_packer.pyx" } #line 97 "msgpack/_packer.pyx" __pyx_L5:; #line 97 "msgpack/_packer.pyx" #line 97 "msgpack/_packer.pyx" __pyx_r = 0; #line 97 "msgpack/_packer.pyx" goto __pyx_L0; #line 97 "msgpack/_packer.pyx" __pyx_L1_error:; #line 97 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_2); #line 97 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_3); #line 97 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 97 "msgpack/_packer.pyx" __pyx_r = -1; #line 97 "msgpack/_packer.pyx" __pyx_L0:; #line 97 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 97 "msgpack/_packer.pyx" return __pyx_r; #line 97 "msgpack/_packer.pyx" } #line 97 "msgpack/_packer.pyx" #line 97 "msgpack/_packer.pyx" /* Python wrapper */ #line 97 "msgpack/_packer.pyx" static void __pyx_pw_7msgpack_7_packer_6Packer_5__dealloc__(PyObject *__pyx_v_self); /*proto*/ #line 97 "msgpack/_packer.pyx" static void __pyx_pw_7msgpack_7_packer_6Packer_5__dealloc__(PyObject *__pyx_v_self) { #line 97 "msgpack/_packer.pyx" __Pyx_RefNannyDeclarations #line 97 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); #line 97 "msgpack/_packer.pyx" __pyx_pf_7msgpack_7_packer_6Packer_4__dealloc__(((struct __pyx_obj_7msgpack_7_packer_Packer *)__pyx_v_self)); #line 97 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 97 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":99 * self.unicode_errors = PyBytes_AsString(self._berrors) * * def __dealloc__(self): # <<<<<<<<<<<<<< * free(self.pk.buf); * */ #line 99 "msgpack/_packer.pyx" #line 99 "msgpack/_packer.pyx" static void __pyx_pf_7msgpack_7_packer_6Packer_4__dealloc__(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self) { __Pyx_RefNannyDeclarations #line 99 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("__dealloc__", 0); /* "msgpack/_packer.pyx":100 * * def __dealloc__(self): * free(self.pk.buf); # <<<<<<<<<<<<<< * * cdef int _pack(self, object o, int nest_limit=DEFAULT_RECURSE_LIMIT) except -1: */ #line 100 "msgpack/_packer.pyx" free(__pyx_v_self->pk.buf); #line 100 "msgpack/_packer.pyx" #line 100 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 100 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":102 * free(self.pk.buf); * * cdef int _pack(self, object o, int nest_limit=DEFAULT_RECURSE_LIMIT) except -1: # <<<<<<<<<<<<<< * cdef long long llval * cdef unsigned long long ullval */ #line 102 "msgpack/_packer.pyx" #line 102 "msgpack/_packer.pyx" static int __pyx_f_7msgpack_7_packer_6Packer__pack(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, PyObject *__pyx_v_o, struct __pyx_opt_args_7msgpack_7_packer_6Packer__pack *__pyx_optional_args) { #line 102 "msgpack/_packer.pyx" int __pyx_v_nest_limit = __pyx_k_9; PY_LONG_LONG __pyx_v_llval #line 102 "msgpack/_packer.pyx" ; unsigned PY_LONG_LONG __pyx_v_ullval #line 102 "msgpack/_packer.pyx" ; long __pyx_v_longval #line 102 "msgpack/_packer.pyx" ; float __pyx_v_fval #line 102 "msgpack/_packer.pyx" ; double __pyx_v_dval #line 102 "msgpack/_packer.pyx" ; char *__pyx_v_rawval #line 102 "msgpack/_packer.pyx" ; int __pyx_v_ret #line 102 "msgpack/_packer.pyx" ; PyObject *__pyx_v_d = 0 #line 102 "msgpack/_packer.pyx" ; PyObject *__pyx_v_k = NULL #line 102 "msgpack/_packer.pyx" ; PyObject *__pyx_v_v = NULL #line 102 "msgpack/_packer.pyx" ; #line 102 "msgpack/_packer.pyx" int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; unsigned PY_LONG_LONG __pyx_t_4; PY_LONG_LONG __pyx_t_5; long __pyx_t_6; float __pyx_t_7; double __pyx_t_8; char *__pyx_t_9; Py_ssize_t __pyx_t_10; Py_ssize_t __pyx_t_11; int __pyx_t_12; PyObject *__pyx_t_13 = NULL; int __pyx_t_14; struct __pyx_opt_args_7msgpack_7_packer_6Packer__pack __pyx_t_15; PyObject *(*__pyx_t_16)(PyObject *); PyObject *__pyx_t_17 = NULL; PyObject *__pyx_t_18 = NULL; PyObject *(*__pyx_t_19)(PyObject *); int __pyx_t_20; int __pyx_t_21; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 102 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("_pack", 0); #line 102 "msgpack/_packer.pyx" if (__pyx_optional_args) { #line 102 "msgpack/_packer.pyx" if (__pyx_optional_args->__pyx_n > 0) { #line 102 "msgpack/_packer.pyx" __pyx_v_nest_limit = __pyx_optional_args->nest_limit; #line 102 "msgpack/_packer.pyx" } #line 102 "msgpack/_packer.pyx" } #line 102 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_v_o); /* "msgpack/_packer.pyx":112 * cdef dict d * * if nest_limit < 0: # <<<<<<<<<<<<<< * raise PackValueError("recursion limit exceeded.") * */ #line 112 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_nest_limit < 0); #line 112 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":113 * * if nest_limit < 0: * raise PackValueError("recursion limit exceeded.") # <<<<<<<<<<<<<< * * if o is None: */ #line 113 "msgpack/_packer.pyx" __pyx_t_2 = __Pyx_GetName(__pyx_m, __pyx_n_s__PackValueError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 113 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 113 "msgpack/_packer.pyx" __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_11), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 113 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 113 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 113 "msgpack/_packer.pyx" __Pyx_Raise(__pyx_t_3, 0, 0, 0); #line 113 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 113 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 113 "msgpack/_packer.pyx" goto __pyx_L3; #line 113 "msgpack/_packer.pyx" } #line 113 "msgpack/_packer.pyx" __pyx_L3:; /* "msgpack/_packer.pyx":115 * raise PackValueError("recursion limit exceeded.") * * if o is None: # <<<<<<<<<<<<<< * ret = msgpack_pack_nil(&self.pk) * elif isinstance(o, bool): */ #line 115 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_o == Py_None); #line 115 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":116 * * if o is None: * ret = msgpack_pack_nil(&self.pk) # <<<<<<<<<<<<<< * elif isinstance(o, bool): * if o: */ #line 116 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_nil((&__pyx_v_self->pk)); #line 116 "msgpack/_packer.pyx" goto __pyx_L4; #line 116 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":117 * if o is None: * ret = msgpack_pack_nil(&self.pk) * elif isinstance(o, bool): # <<<<<<<<<<<<<< * if o: * ret = msgpack_pack_true(&self.pk) */ #line 117 "msgpack/_packer.pyx" __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, ((PyObject*)__pyx_ptype_7cpython_4bool_bool)); #line 117 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":118 * ret = msgpack_pack_nil(&self.pk) * elif isinstance(o, bool): * if o: # <<<<<<<<<<<<<< * ret = msgpack_pack_true(&self.pk) * else: */ #line 118 "msgpack/_packer.pyx" __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_o); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 118 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":119 * elif isinstance(o, bool): * if o: * ret = msgpack_pack_true(&self.pk) # <<<<<<<<<<<<<< * else: * ret = msgpack_pack_false(&self.pk) */ #line 119 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_true((&__pyx_v_self->pk)); #line 119 "msgpack/_packer.pyx" goto __pyx_L5; #line 119 "msgpack/_packer.pyx" } #line 119 "msgpack/_packer.pyx" /*else*/ { /* "msgpack/_packer.pyx":121 * ret = msgpack_pack_true(&self.pk) * else: * ret = msgpack_pack_false(&self.pk) # <<<<<<<<<<<<<< * elif PyLong_Check(o): * if o > 0: */ #line 121 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_false((&__pyx_v_self->pk)); #line 121 "msgpack/_packer.pyx" } #line 121 "msgpack/_packer.pyx" __pyx_L5:; #line 121 "msgpack/_packer.pyx" goto __pyx_L4; #line 121 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":122 * else: * ret = msgpack_pack_false(&self.pk) * elif PyLong_Check(o): # <<<<<<<<<<<<<< * if o > 0: * ullval = o */ #line 122 "msgpack/_packer.pyx" __pyx_t_1 = PyLong_Check(__pyx_v_o); #line 122 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":123 * ret = msgpack_pack_false(&self.pk) * elif PyLong_Check(o): * if o > 0: # <<<<<<<<<<<<<< * ullval = o * ret = msgpack_pack_unsigned_long_long(&self.pk, ullval) */ #line 123 "msgpack/_packer.pyx" __pyx_t_3 = PyObject_RichCompare(__pyx_v_o, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 123 "msgpack/_packer.pyx" __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 123 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 123 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":124 * elif PyLong_Check(o): * if o > 0: * ullval = o # <<<<<<<<<<<<<< * ret = msgpack_pack_unsigned_long_long(&self.pk, ullval) * else: */ #line 124 "msgpack/_packer.pyx" __pyx_t_4 = __Pyx_PyInt_AsUnsignedLongLong(__pyx_v_o); if (unlikely((__pyx_t_4 == (unsigned PY_LONG_LONG)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 124 "msgpack/_packer.pyx" __pyx_v_ullval = __pyx_t_4; /* "msgpack/_packer.pyx":125 * if o > 0: * ullval = o * ret = msgpack_pack_unsigned_long_long(&self.pk, ullval) # <<<<<<<<<<<<<< * else: * llval = o */ #line 125 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_unsigned_long_long((&__pyx_v_self->pk), __pyx_v_ullval); #line 125 "msgpack/_packer.pyx" goto __pyx_L6; #line 125 "msgpack/_packer.pyx" } #line 125 "msgpack/_packer.pyx" /*else*/ { /* "msgpack/_packer.pyx":127 * ret = msgpack_pack_unsigned_long_long(&self.pk, ullval) * else: * llval = o # <<<<<<<<<<<<<< * ret = msgpack_pack_long_long(&self.pk, llval) * elif PyInt_Check(o): */ #line 127 "msgpack/_packer.pyx" __pyx_t_5 = __Pyx_PyInt_AsLongLong(__pyx_v_o); if (unlikely((__pyx_t_5 == (PY_LONG_LONG)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 127 "msgpack/_packer.pyx" __pyx_v_llval = __pyx_t_5; /* "msgpack/_packer.pyx":128 * else: * llval = o * ret = msgpack_pack_long_long(&self.pk, llval) # <<<<<<<<<<<<<< * elif PyInt_Check(o): * longval = o */ #line 128 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_long_long((&__pyx_v_self->pk), __pyx_v_llval); #line 128 "msgpack/_packer.pyx" } #line 128 "msgpack/_packer.pyx" __pyx_L6:; #line 128 "msgpack/_packer.pyx" goto __pyx_L4; #line 128 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":129 * llval = o * ret = msgpack_pack_long_long(&self.pk, llval) * elif PyInt_Check(o): # <<<<<<<<<<<<<< * longval = o * ret = msgpack_pack_long(&self.pk, longval) */ #line 129 "msgpack/_packer.pyx" __pyx_t_1 = PyInt_Check(__pyx_v_o); #line 129 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":130 * ret = msgpack_pack_long_long(&self.pk, llval) * elif PyInt_Check(o): * longval = o # <<<<<<<<<<<<<< * ret = msgpack_pack_long(&self.pk, longval) * elif PyFloat_Check(o): */ #line 130 "msgpack/_packer.pyx" __pyx_t_6 = __Pyx_PyInt_AsLong(__pyx_v_o); if (unlikely((__pyx_t_6 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 130 "msgpack/_packer.pyx" __pyx_v_longval = __pyx_t_6; /* "msgpack/_packer.pyx":131 * elif PyInt_Check(o): * longval = o * ret = msgpack_pack_long(&self.pk, longval) # <<<<<<<<<<<<<< * elif PyFloat_Check(o): * if self.use_float: */ #line 131 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_long((&__pyx_v_self->pk), __pyx_v_longval); #line 131 "msgpack/_packer.pyx" goto __pyx_L4; #line 131 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":132 * longval = o * ret = msgpack_pack_long(&self.pk, longval) * elif PyFloat_Check(o): # <<<<<<<<<<<<<< * if self.use_float: * fval = o */ #line 132 "msgpack/_packer.pyx" __pyx_t_1 = PyFloat_Check(__pyx_v_o); #line 132 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":133 * ret = msgpack_pack_long(&self.pk, longval) * elif PyFloat_Check(o): * if self.use_float: # <<<<<<<<<<<<<< * fval = o * ret = msgpack_pack_float(&self.pk, fval) */ #line 133 "msgpack/_packer.pyx" __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->use_float)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 133; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 133 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":134 * elif PyFloat_Check(o): * if self.use_float: * fval = o # <<<<<<<<<<<<<< * ret = msgpack_pack_float(&self.pk, fval) * else: */ #line 134 "msgpack/_packer.pyx" __pyx_t_7 = __pyx_PyFloat_AsFloat(__pyx_v_o); if (unlikely((__pyx_t_7 == (float)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 134 "msgpack/_packer.pyx" __pyx_v_fval = __pyx_t_7; /* "msgpack/_packer.pyx":135 * if self.use_float: * fval = o * ret = msgpack_pack_float(&self.pk, fval) # <<<<<<<<<<<<<< * else: * dval = o */ #line 135 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_float((&__pyx_v_self->pk), __pyx_v_fval); #line 135 "msgpack/_packer.pyx" goto __pyx_L7; #line 135 "msgpack/_packer.pyx" } #line 135 "msgpack/_packer.pyx" /*else*/ { /* "msgpack/_packer.pyx":137 * ret = msgpack_pack_float(&self.pk, fval) * else: * dval = o # <<<<<<<<<<<<<< * ret = msgpack_pack_double(&self.pk, dval) * elif PyBytes_Check(o): */ #line 137 "msgpack/_packer.pyx" __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_v_o); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 137 "msgpack/_packer.pyx" __pyx_v_dval = __pyx_t_8; /* "msgpack/_packer.pyx":138 * else: * dval = o * ret = msgpack_pack_double(&self.pk, dval) # <<<<<<<<<<<<<< * elif PyBytes_Check(o): * rawval = o */ #line 138 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_double((&__pyx_v_self->pk), __pyx_v_dval); #line 138 "msgpack/_packer.pyx" } #line 138 "msgpack/_packer.pyx" __pyx_L7:; #line 138 "msgpack/_packer.pyx" goto __pyx_L4; #line 138 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":139 * dval = o * ret = msgpack_pack_double(&self.pk, dval) * elif PyBytes_Check(o): # <<<<<<<<<<<<<< * rawval = o * ret = msgpack_pack_raw(&self.pk, len(o)) */ #line 139 "msgpack/_packer.pyx" __pyx_t_1 = PyBytes_Check(__pyx_v_o); #line 139 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":140 * ret = msgpack_pack_double(&self.pk, dval) * elif PyBytes_Check(o): * rawval = o # <<<<<<<<<<<<<< * ret = msgpack_pack_raw(&self.pk, len(o)) * if ret == 0: */ #line 140 "msgpack/_packer.pyx" __pyx_t_9 = PyBytes_AsString(__pyx_v_o); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 140 "msgpack/_packer.pyx" __pyx_v_rawval = __pyx_t_9; /* "msgpack/_packer.pyx":141 * elif PyBytes_Check(o): * rawval = o * ret = msgpack_pack_raw(&self.pk, len(o)) # <<<<<<<<<<<<<< * if ret == 0: * ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) */ #line 141 "msgpack/_packer.pyx" __pyx_t_10 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 141 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_raw((&__pyx_v_self->pk), __pyx_t_10); /* "msgpack/_packer.pyx":142 * rawval = o * ret = msgpack_pack_raw(&self.pk, len(o)) * if ret == 0: # <<<<<<<<<<<<<< * ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) * elif PyUnicode_Check(o): */ #line 142 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_ret == 0); #line 142 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":143 * ret = msgpack_pack_raw(&self.pk, len(o)) * if ret == 0: * ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) # <<<<<<<<<<<<<< * elif PyUnicode_Check(o): * if not self.encoding: */ #line 143 "msgpack/_packer.pyx" __pyx_t_10 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 143 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_raw_body((&__pyx_v_self->pk), __pyx_v_rawval, __pyx_t_10); #line 143 "msgpack/_packer.pyx" goto __pyx_L8; #line 143 "msgpack/_packer.pyx" } #line 143 "msgpack/_packer.pyx" __pyx_L8:; #line 143 "msgpack/_packer.pyx" goto __pyx_L4; #line 143 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":144 * if ret == 0: * ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) * elif PyUnicode_Check(o): # <<<<<<<<<<<<<< * if not self.encoding: * raise TypeError("Can't encode unicode string: no encoding is specified") */ #line 144 "msgpack/_packer.pyx" __pyx_t_1 = PyUnicode_Check(__pyx_v_o); #line 144 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":145 * ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) * elif PyUnicode_Check(o): * if not self.encoding: # <<<<<<<<<<<<<< * raise TypeError("Can't encode unicode string: no encoding is specified") * o = PyUnicode_AsEncodedString(o, self.encoding, self.unicode_errors) */ #line 145 "msgpack/_packer.pyx" __pyx_t_1 = (!(__pyx_v_self->encoding != 0)); #line 145 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":146 * elif PyUnicode_Check(o): * if not self.encoding: * raise TypeError("Can't encode unicode string: no encoding is specified") # <<<<<<<<<<<<<< * o = PyUnicode_AsEncodedString(o, self.encoding, self.unicode_errors) * rawval = o */ #line 146 "msgpack/_packer.pyx" __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_13), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 146 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 146 "msgpack/_packer.pyx" __Pyx_Raise(__pyx_t_3, 0, 0, 0); #line 146 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 146 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 146 "msgpack/_packer.pyx" goto __pyx_L9; #line 146 "msgpack/_packer.pyx" } #line 146 "msgpack/_packer.pyx" __pyx_L9:; /* "msgpack/_packer.pyx":147 * if not self.encoding: * raise TypeError("Can't encode unicode string: no encoding is specified") * o = PyUnicode_AsEncodedString(o, self.encoding, self.unicode_errors) # <<<<<<<<<<<<<< * rawval = o * ret = msgpack_pack_raw(&self.pk, len(o)) */ #line 147 "msgpack/_packer.pyx" __pyx_t_3 = PyUnicode_AsEncodedString(__pyx_v_o, __pyx_v_self->encoding, __pyx_v_self->unicode_errors); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 147 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 147 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_v_o); #line 147 "msgpack/_packer.pyx" __pyx_v_o = __pyx_t_3; #line 147 "msgpack/_packer.pyx" __pyx_t_3 = 0; /* "msgpack/_packer.pyx":148 * raise TypeError("Can't encode unicode string: no encoding is specified") * o = PyUnicode_AsEncodedString(o, self.encoding, self.unicode_errors) * rawval = o # <<<<<<<<<<<<<< * ret = msgpack_pack_raw(&self.pk, len(o)) * if ret == 0: */ #line 148 "msgpack/_packer.pyx" __pyx_t_9 = PyBytes_AsString(__pyx_v_o); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 148 "msgpack/_packer.pyx" __pyx_v_rawval = __pyx_t_9; /* "msgpack/_packer.pyx":149 * o = PyUnicode_AsEncodedString(o, self.encoding, self.unicode_errors) * rawval = o * ret = msgpack_pack_raw(&self.pk, len(o)) # <<<<<<<<<<<<<< * if ret == 0: * ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) */ #line 149 "msgpack/_packer.pyx" __pyx_t_10 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 149 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_raw((&__pyx_v_self->pk), __pyx_t_10); /* "msgpack/_packer.pyx":150 * rawval = o * ret = msgpack_pack_raw(&self.pk, len(o)) * if ret == 0: # <<<<<<<<<<<<<< * ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) * elif PyDict_CheckExact(o): */ #line 150 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_ret == 0); #line 150 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":151 * ret = msgpack_pack_raw(&self.pk, len(o)) * if ret == 0: * ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) # <<<<<<<<<<<<<< * elif PyDict_CheckExact(o): * d = o */ #line 151 "msgpack/_packer.pyx" __pyx_t_10 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 151 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_raw_body((&__pyx_v_self->pk), __pyx_v_rawval, __pyx_t_10); #line 151 "msgpack/_packer.pyx" goto __pyx_L10; #line 151 "msgpack/_packer.pyx" } #line 151 "msgpack/_packer.pyx" __pyx_L10:; #line 151 "msgpack/_packer.pyx" goto __pyx_L4; #line 151 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":152 * if ret == 0: * ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) * elif PyDict_CheckExact(o): # <<<<<<<<<<<<<< * d = o * ret = msgpack_pack_map(&self.pk, len(d)) */ #line 152 "msgpack/_packer.pyx" __pyx_t_1 = PyDict_CheckExact(__pyx_v_o); #line 152 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":153 * ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) * elif PyDict_CheckExact(o): * d = o # <<<<<<<<<<<<<< * ret = msgpack_pack_map(&self.pk, len(d)) * if ret == 0: */ #line 153 "msgpack/_packer.pyx" __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_v_o))); #line 153 "msgpack/_packer.pyx" __pyx_v_d = ((PyObject*)__pyx_v_o); /* "msgpack/_packer.pyx":154 * elif PyDict_CheckExact(o): * d = o * ret = msgpack_pack_map(&self.pk, len(d)) # <<<<<<<<<<<<<< * if ret == 0: * for k, v in d.iteritems(): */ #line 154 "msgpack/_packer.pyx" if (unlikely(((PyObject *)__pyx_v_d) == Py_None)) { #line 154 "msgpack/_packer.pyx" PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); #line 154 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 154 "msgpack/_packer.pyx" } #line 154 "msgpack/_packer.pyx" __pyx_t_10 = PyDict_Size(((PyObject *)__pyx_v_d)); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 154 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_map((&__pyx_v_self->pk), __pyx_t_10); /* "msgpack/_packer.pyx":155 * d = o * ret = msgpack_pack_map(&self.pk, len(d)) * if ret == 0: # <<<<<<<<<<<<<< * for k, v in d.iteritems(): * ret = self._pack(k, nest_limit-1) */ #line 155 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_ret == 0); #line 155 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":156 * ret = msgpack_pack_map(&self.pk, len(d)) * if ret == 0: * for k, v in d.iteritems(): # <<<<<<<<<<<<<< * ret = self._pack(k, nest_limit-1) * if ret != 0: break */ #line 156 "msgpack/_packer.pyx" __pyx_t_10 = 0; #line 156 "msgpack/_packer.pyx" if (unlikely(((PyObject *)__pyx_v_d) == Py_None)) { #line 156 "msgpack/_packer.pyx" PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iteritems"); #line 156 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 156 "msgpack/_packer.pyx" } #line 156 "msgpack/_packer.pyx" __pyx_t_2 = __Pyx_dict_iterator(((PyObject *)__pyx_v_d), 1, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_11), (&__pyx_t_12)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 156 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 156 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_3); #line 156 "msgpack/_packer.pyx" __pyx_t_3 = __pyx_t_2; #line 156 "msgpack/_packer.pyx" __pyx_t_2 = 0; #line 156 "msgpack/_packer.pyx" while (1) { #line 156 "msgpack/_packer.pyx" __pyx_t_14 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_11, &__pyx_t_10, &__pyx_t_2, &__pyx_t_13, NULL, __pyx_t_12); #line 156 "msgpack/_packer.pyx" if (unlikely(__pyx_t_14 == 0)) break; #line 156 "msgpack/_packer.pyx" if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 156 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 156 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_13); #line 156 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_k); #line 156 "msgpack/_packer.pyx" __pyx_v_k = __pyx_t_2; #line 156 "msgpack/_packer.pyx" __pyx_t_2 = 0; #line 156 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_v); #line 156 "msgpack/_packer.pyx" __pyx_v_v = __pyx_t_13; #line 156 "msgpack/_packer.pyx" __pyx_t_13 = 0; /* "msgpack/_packer.pyx":157 * if ret == 0: * for k, v in d.iteritems(): * ret = self._pack(k, nest_limit-1) # <<<<<<<<<<<<<< * if ret != 0: break * ret = self._pack(v, nest_limit-1) */ #line 157 "msgpack/_packer.pyx" __pyx_t_15.__pyx_n = 1; #line 157 "msgpack/_packer.pyx" __pyx_t_15.nest_limit = (__pyx_v_nest_limit - 1); #line 157 "msgpack/_packer.pyx" __pyx_t_14 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_self->__pyx_vtab)->_pack(__pyx_v_self, __pyx_v_k, &__pyx_t_15); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 157 "msgpack/_packer.pyx" __pyx_v_ret = __pyx_t_14; /* "msgpack/_packer.pyx":158 * for k, v in d.iteritems(): * ret = self._pack(k, nest_limit-1) * if ret != 0: break # <<<<<<<<<<<<<< * ret = self._pack(v, nest_limit-1) * if ret != 0: break */ #line 158 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_ret != 0); #line 158 "msgpack/_packer.pyx" if (__pyx_t_1) { #line 158 "msgpack/_packer.pyx" goto __pyx_L13_break; #line 158 "msgpack/_packer.pyx" goto __pyx_L14; #line 158 "msgpack/_packer.pyx" } #line 158 "msgpack/_packer.pyx" __pyx_L14:; /* "msgpack/_packer.pyx":159 * ret = self._pack(k, nest_limit-1) * if ret != 0: break * ret = self._pack(v, nest_limit-1) # <<<<<<<<<<<<<< * if ret != 0: break * elif PyDict_Check(o): */ #line 159 "msgpack/_packer.pyx" __pyx_t_15.__pyx_n = 1; #line 159 "msgpack/_packer.pyx" __pyx_t_15.nest_limit = (__pyx_v_nest_limit - 1); #line 159 "msgpack/_packer.pyx" __pyx_t_14 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_self->__pyx_vtab)->_pack(__pyx_v_self, __pyx_v_v, &__pyx_t_15); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 159 "msgpack/_packer.pyx" __pyx_v_ret = __pyx_t_14; /* "msgpack/_packer.pyx":160 * if ret != 0: break * ret = self._pack(v, nest_limit-1) * if ret != 0: break # <<<<<<<<<<<<<< * elif PyDict_Check(o): * ret = msgpack_pack_map(&self.pk, len(o)) */ #line 160 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_ret != 0); #line 160 "msgpack/_packer.pyx" if (__pyx_t_1) { #line 160 "msgpack/_packer.pyx" goto __pyx_L13_break; #line 160 "msgpack/_packer.pyx" goto __pyx_L15; #line 160 "msgpack/_packer.pyx" } #line 160 "msgpack/_packer.pyx" __pyx_L15:; #line 160 "msgpack/_packer.pyx" } #line 160 "msgpack/_packer.pyx" __pyx_L13_break:; #line 160 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 160 "msgpack/_packer.pyx" goto __pyx_L11; #line 160 "msgpack/_packer.pyx" } #line 160 "msgpack/_packer.pyx" __pyx_L11:; #line 160 "msgpack/_packer.pyx" goto __pyx_L4; #line 160 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":161 * ret = self._pack(v, nest_limit-1) * if ret != 0: break * elif PyDict_Check(o): # <<<<<<<<<<<<<< * ret = msgpack_pack_map(&self.pk, len(o)) * if ret == 0: */ #line 161 "msgpack/_packer.pyx" __pyx_t_1 = PyDict_Check(__pyx_v_o); #line 161 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":162 * if ret != 0: break * elif PyDict_Check(o): * ret = msgpack_pack_map(&self.pk, len(o)) # <<<<<<<<<<<<<< * if ret == 0: * for k, v in o.items(): */ #line 162 "msgpack/_packer.pyx" __pyx_t_11 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 162 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_map((&__pyx_v_self->pk), __pyx_t_11); /* "msgpack/_packer.pyx":163 * elif PyDict_Check(o): * ret = msgpack_pack_map(&self.pk, len(o)) * if ret == 0: # <<<<<<<<<<<<<< * for k, v in o.items(): * ret = self._pack(k, nest_limit-1) */ #line 163 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_ret == 0); #line 163 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":164 * ret = msgpack_pack_map(&self.pk, len(o)) * if ret == 0: * for k, v in o.items(): # <<<<<<<<<<<<<< * ret = self._pack(k, nest_limit-1) * if ret != 0: break */ #line 164 "msgpack/_packer.pyx" __pyx_t_3 = PyObject_GetAttr(__pyx_v_o, __pyx_n_s__items); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 164 "msgpack/_packer.pyx" __pyx_t_13 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_13); #line 164 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 164 "msgpack/_packer.pyx" if (PyList_CheckExact(__pyx_t_13) || PyTuple_CheckExact(__pyx_t_13)) { #line 164 "msgpack/_packer.pyx" __pyx_t_3 = __pyx_t_13; __Pyx_INCREF(__pyx_t_3); __pyx_t_11 = 0; #line 164 "msgpack/_packer.pyx" __pyx_t_16 = NULL; #line 164 "msgpack/_packer.pyx" } else { __pyx_t_11 = -1; #line 164 "msgpack/_packer.pyx" __pyx_t_3 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 164 "msgpack/_packer.pyx" __pyx_t_16 = Py_TYPE(__pyx_t_3)->tp_iternext; #line 164 "msgpack/_packer.pyx" } #line 164 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; #line 164 "msgpack/_packer.pyx" for (;;) { #line 164 "msgpack/_packer.pyx" if (!__pyx_t_16 && PyList_CheckExact(__pyx_t_3)) { #line 164 "msgpack/_packer.pyx" if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_3)) break; #line 164 "msgpack/_packer.pyx" #if CYTHON_COMPILING_IN_CPYTHON #line 164 "msgpack/_packer.pyx" __pyx_t_13 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_13); __pyx_t_11++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" #else #line 164 "msgpack/_packer.pyx" __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" #endif } else #line 164 "msgpack/_packer.pyx" if (!__pyx_t_16 && PyTuple_CheckExact(__pyx_t_3)) { #line 164 "msgpack/_packer.pyx" if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #line 164 "msgpack/_packer.pyx" #if CYTHON_COMPILING_IN_CPYTHON #line 164 "msgpack/_packer.pyx" __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_13); __pyx_t_11++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" #else #line 164 "msgpack/_packer.pyx" __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" #endif } else #line 164 "msgpack/_packer.pyx" { #line 164 "msgpack/_packer.pyx" __pyx_t_13 = __pyx_t_16(__pyx_t_3); #line 164 "msgpack/_packer.pyx" if (unlikely(!__pyx_t_13)) { #line 164 "msgpack/_packer.pyx" if (PyErr_Occurred()) { #line 164 "msgpack/_packer.pyx" if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); #line 164 "msgpack/_packer.pyx" else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" } #line 164 "msgpack/_packer.pyx" break; #line 164 "msgpack/_packer.pyx" } #line 164 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_13); #line 164 "msgpack/_packer.pyx" } #line 164 "msgpack/_packer.pyx" if ((likely(PyTuple_CheckExact(__pyx_t_13))) || (PyList_CheckExact(__pyx_t_13))) { #line 164 "msgpack/_packer.pyx" PyObject* sequence = __pyx_t_13; #line 164 "msgpack/_packer.pyx" #if CYTHON_COMPILING_IN_CPYTHON #line 164 "msgpack/_packer.pyx" Py_ssize_t size = Py_SIZE(sequence); #line 164 "msgpack/_packer.pyx" #else #line 164 "msgpack/_packer.pyx" Py_ssize_t size = PySequence_Size(sequence); #line 164 "msgpack/_packer.pyx" #endif #line 164 "msgpack/_packer.pyx" if (unlikely(size != 2)) { #line 164 "msgpack/_packer.pyx" if (size > 2) __Pyx_RaiseTooManyValuesError(2); #line 164 "msgpack/_packer.pyx" else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); #line 164 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" } #line 164 "msgpack/_packer.pyx" #if CYTHON_COMPILING_IN_CPYTHON #line 164 "msgpack/_packer.pyx" if (likely(PyTuple_CheckExact(sequence))) { #line 164 "msgpack/_packer.pyx" __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); #line 164 "msgpack/_packer.pyx" __pyx_t_17 = PyTuple_GET_ITEM(sequence, 1); #line 164 "msgpack/_packer.pyx" } else { #line 164 "msgpack/_packer.pyx" __pyx_t_2 = PyList_GET_ITEM(sequence, 0); #line 164 "msgpack/_packer.pyx" __pyx_t_17 = PyList_GET_ITEM(sequence, 1); #line 164 "msgpack/_packer.pyx" } #line 164 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_t_2); #line 164 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_t_17); #line 164 "msgpack/_packer.pyx" #else #line 164 "msgpack/_packer.pyx" __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 164 "msgpack/_packer.pyx" __pyx_t_17 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_17); #line 164 "msgpack/_packer.pyx" #endif #line 164 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; #line 164 "msgpack/_packer.pyx" } else #line 164 "msgpack/_packer.pyx" { #line 164 "msgpack/_packer.pyx" Py_ssize_t index = -1; #line 164 "msgpack/_packer.pyx" __pyx_t_18 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_18); #line 164 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; #line 164 "msgpack/_packer.pyx" __pyx_t_19 = Py_TYPE(__pyx_t_18)->tp_iternext; index = 0; __pyx_t_2 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_2)) #line 164 "msgpack/_packer.pyx" goto __pyx_L19_unpacking_failed; #line 164 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_17 = __pyx_t_19(__pyx_t_18); if (unlikely(!__pyx_t_17)) #line 164 "msgpack/_packer.pyx" goto __pyx_L19_unpacking_failed; #line 164 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_17); #line 164 "msgpack/_packer.pyx" if (__Pyx_IternextUnpackEndCheck(__pyx_t_19(__pyx_t_18), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" __pyx_t_19 = NULL; #line 164 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; #line 164 "msgpack/_packer.pyx" goto __pyx_L20_unpacking_done; #line 164 "msgpack/_packer.pyx" __pyx_L19_unpacking_failed:; #line 164 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; #line 164 "msgpack/_packer.pyx" __pyx_t_19 = NULL; #line 164 "msgpack/_packer.pyx" if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); #line 164 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 164 "msgpack/_packer.pyx" __pyx_L20_unpacking_done:; #line 164 "msgpack/_packer.pyx" } #line 164 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_k); #line 164 "msgpack/_packer.pyx" __pyx_v_k = __pyx_t_2; #line 164 "msgpack/_packer.pyx" __pyx_t_2 = 0; #line 164 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_v); #line 164 "msgpack/_packer.pyx" __pyx_v_v = __pyx_t_17; #line 164 "msgpack/_packer.pyx" __pyx_t_17 = 0; /* "msgpack/_packer.pyx":165 * if ret == 0: * for k, v in o.items(): * ret = self._pack(k, nest_limit-1) # <<<<<<<<<<<<<< * if ret != 0: break * ret = self._pack(v, nest_limit-1) */ #line 165 "msgpack/_packer.pyx" __pyx_t_15.__pyx_n = 1; #line 165 "msgpack/_packer.pyx" __pyx_t_15.nest_limit = (__pyx_v_nest_limit - 1); #line 165 "msgpack/_packer.pyx" __pyx_t_12 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_self->__pyx_vtab)->_pack(__pyx_v_self, __pyx_v_k, &__pyx_t_15); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 165 "msgpack/_packer.pyx" __pyx_v_ret = __pyx_t_12; /* "msgpack/_packer.pyx":166 * for k, v in o.items(): * ret = self._pack(k, nest_limit-1) * if ret != 0: break # <<<<<<<<<<<<<< * ret = self._pack(v, nest_limit-1) * if ret != 0: break */ #line 166 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_ret != 0); #line 166 "msgpack/_packer.pyx" if (__pyx_t_1) { #line 166 "msgpack/_packer.pyx" goto __pyx_L18_break; #line 166 "msgpack/_packer.pyx" goto __pyx_L21; #line 166 "msgpack/_packer.pyx" } #line 166 "msgpack/_packer.pyx" __pyx_L21:; /* "msgpack/_packer.pyx":167 * ret = self._pack(k, nest_limit-1) * if ret != 0: break * ret = self._pack(v, nest_limit-1) # <<<<<<<<<<<<<< * if ret != 0: break * elif PyTuple_Check(o) or PyList_Check(o): */ #line 167 "msgpack/_packer.pyx" __pyx_t_15.__pyx_n = 1; #line 167 "msgpack/_packer.pyx" __pyx_t_15.nest_limit = (__pyx_v_nest_limit - 1); #line 167 "msgpack/_packer.pyx" __pyx_t_12 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_self->__pyx_vtab)->_pack(__pyx_v_self, __pyx_v_v, &__pyx_t_15); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 167 "msgpack/_packer.pyx" __pyx_v_ret = __pyx_t_12; /* "msgpack/_packer.pyx":168 * if ret != 0: break * ret = self._pack(v, nest_limit-1) * if ret != 0: break # <<<<<<<<<<<<<< * elif PyTuple_Check(o) or PyList_Check(o): * ret = msgpack_pack_array(&self.pk, len(o)) */ #line 168 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_ret != 0); #line 168 "msgpack/_packer.pyx" if (__pyx_t_1) { #line 168 "msgpack/_packer.pyx" goto __pyx_L18_break; #line 168 "msgpack/_packer.pyx" goto __pyx_L22; #line 168 "msgpack/_packer.pyx" } #line 168 "msgpack/_packer.pyx" __pyx_L22:; #line 168 "msgpack/_packer.pyx" } #line 168 "msgpack/_packer.pyx" __pyx_L18_break:; #line 168 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 168 "msgpack/_packer.pyx" goto __pyx_L16; #line 168 "msgpack/_packer.pyx" } #line 168 "msgpack/_packer.pyx" __pyx_L16:; #line 168 "msgpack/_packer.pyx" goto __pyx_L4; #line 168 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":169 * ret = self._pack(v, nest_limit-1) * if ret != 0: break * elif PyTuple_Check(o) or PyList_Check(o): # <<<<<<<<<<<<<< * ret = msgpack_pack_array(&self.pk, len(o)) * if ret == 0: */ #line 169 "msgpack/_packer.pyx" __pyx_t_1 = PyTuple_Check(__pyx_v_o); #line 169 "msgpack/_packer.pyx" if (!__pyx_t_1) { #line 169 "msgpack/_packer.pyx" __pyx_t_20 = PyList_Check(__pyx_v_o); #line 169 "msgpack/_packer.pyx" __pyx_t_21 = __pyx_t_20; #line 169 "msgpack/_packer.pyx" } else { #line 169 "msgpack/_packer.pyx" __pyx_t_21 = __pyx_t_1; #line 169 "msgpack/_packer.pyx" } #line 169 "msgpack/_packer.pyx" if (__pyx_t_21) { /* "msgpack/_packer.pyx":170 * if ret != 0: break * elif PyTuple_Check(o) or PyList_Check(o): * ret = msgpack_pack_array(&self.pk, len(o)) # <<<<<<<<<<<<<< * if ret == 0: * for v in o: */ #line 170 "msgpack/_packer.pyx" __pyx_t_11 = PyObject_Length(__pyx_v_o); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 170 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_array((&__pyx_v_self->pk), __pyx_t_11); /* "msgpack/_packer.pyx":171 * elif PyTuple_Check(o) or PyList_Check(o): * ret = msgpack_pack_array(&self.pk, len(o)) * if ret == 0: # <<<<<<<<<<<<<< * for v in o: * ret = self._pack(v, nest_limit-1) */ #line 171 "msgpack/_packer.pyx" __pyx_t_21 = (__pyx_v_ret == 0); #line 171 "msgpack/_packer.pyx" if (__pyx_t_21) { /* "msgpack/_packer.pyx":172 * ret = msgpack_pack_array(&self.pk, len(o)) * if ret == 0: * for v in o: # <<<<<<<<<<<<<< * ret = self._pack(v, nest_limit-1) * if ret != 0: break */ #line 172 "msgpack/_packer.pyx" if (PyList_CheckExact(__pyx_v_o) || PyTuple_CheckExact(__pyx_v_o)) { #line 172 "msgpack/_packer.pyx" __pyx_t_3 = __pyx_v_o; __Pyx_INCREF(__pyx_t_3); __pyx_t_11 = 0; #line 172 "msgpack/_packer.pyx" __pyx_t_16 = NULL; #line 172 "msgpack/_packer.pyx" } else { __pyx_t_11 = -1; #line 172 "msgpack/_packer.pyx" __pyx_t_3 = PyObject_GetIter(__pyx_v_o); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 172 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 172 "msgpack/_packer.pyx" __pyx_t_16 = Py_TYPE(__pyx_t_3)->tp_iternext; #line 172 "msgpack/_packer.pyx" } #line 172 "msgpack/_packer.pyx" for (;;) { #line 172 "msgpack/_packer.pyx" if (!__pyx_t_16 && PyList_CheckExact(__pyx_t_3)) { #line 172 "msgpack/_packer.pyx" if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_3)) break; #line 172 "msgpack/_packer.pyx" #if CYTHON_COMPILING_IN_CPYTHON #line 172 "msgpack/_packer.pyx" __pyx_t_13 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_13); __pyx_t_11++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 172 "msgpack/_packer.pyx" #else #line 172 "msgpack/_packer.pyx" __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 172 "msgpack/_packer.pyx" #endif } else #line 172 "msgpack/_packer.pyx" if (!__pyx_t_16 && PyTuple_CheckExact(__pyx_t_3)) { #line 172 "msgpack/_packer.pyx" if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #line 172 "msgpack/_packer.pyx" #if CYTHON_COMPILING_IN_CPYTHON #line 172 "msgpack/_packer.pyx" __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_13); __pyx_t_11++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 172 "msgpack/_packer.pyx" #else #line 172 "msgpack/_packer.pyx" __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 172 "msgpack/_packer.pyx" #endif } else #line 172 "msgpack/_packer.pyx" { #line 172 "msgpack/_packer.pyx" __pyx_t_13 = __pyx_t_16(__pyx_t_3); #line 172 "msgpack/_packer.pyx" if (unlikely(!__pyx_t_13)) { #line 172 "msgpack/_packer.pyx" if (PyErr_Occurred()) { #line 172 "msgpack/_packer.pyx" if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); #line 172 "msgpack/_packer.pyx" else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 172 "msgpack/_packer.pyx" } #line 172 "msgpack/_packer.pyx" break; #line 172 "msgpack/_packer.pyx" } #line 172 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_13); #line 172 "msgpack/_packer.pyx" } #line 172 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_v); #line 172 "msgpack/_packer.pyx" __pyx_v_v = __pyx_t_13; #line 172 "msgpack/_packer.pyx" __pyx_t_13 = 0; /* "msgpack/_packer.pyx":173 * if ret == 0: * for v in o: * ret = self._pack(v, nest_limit-1) # <<<<<<<<<<<<<< * if ret != 0: break * elif self._default: */ #line 173 "msgpack/_packer.pyx" __pyx_t_15.__pyx_n = 1; #line 173 "msgpack/_packer.pyx" __pyx_t_15.nest_limit = (__pyx_v_nest_limit - 1); #line 173 "msgpack/_packer.pyx" __pyx_t_12 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_self->__pyx_vtab)->_pack(__pyx_v_self, __pyx_v_v, &__pyx_t_15); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 173 "msgpack/_packer.pyx" __pyx_v_ret = __pyx_t_12; /* "msgpack/_packer.pyx":174 * for v in o: * ret = self._pack(v, nest_limit-1) * if ret != 0: break # <<<<<<<<<<<<<< * elif self._default: * o = self._default(o) */ #line 174 "msgpack/_packer.pyx" __pyx_t_21 = (__pyx_v_ret != 0); #line 174 "msgpack/_packer.pyx" if (__pyx_t_21) { #line 174 "msgpack/_packer.pyx" goto __pyx_L25_break; #line 174 "msgpack/_packer.pyx" goto __pyx_L26; #line 174 "msgpack/_packer.pyx" } #line 174 "msgpack/_packer.pyx" __pyx_L26:; #line 174 "msgpack/_packer.pyx" } #line 174 "msgpack/_packer.pyx" __pyx_L25_break:; #line 174 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 174 "msgpack/_packer.pyx" goto __pyx_L23; #line 174 "msgpack/_packer.pyx" } #line 174 "msgpack/_packer.pyx" __pyx_L23:; #line 174 "msgpack/_packer.pyx" goto __pyx_L4; #line 174 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":175 * ret = self._pack(v, nest_limit-1) * if ret != 0: break * elif self._default: # <<<<<<<<<<<<<< * o = self._default(o) * ret = self._pack(o, nest_limit-1) */ #line 175 "msgpack/_packer.pyx" __pyx_t_21 = __Pyx_PyObject_IsTrue(__pyx_v_self->_default); if (unlikely(__pyx_t_21 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 175 "msgpack/_packer.pyx" if (__pyx_t_21) { /* "msgpack/_packer.pyx":176 * if ret != 0: break * elif self._default: * o = self._default(o) # <<<<<<<<<<<<<< * ret = self._pack(o, nest_limit-1) * else: */ #line 176 "msgpack/_packer.pyx" __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 176 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 176 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_v_o); #line 176 "msgpack/_packer.pyx" PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o); #line 176 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_v_o); #line 176 "msgpack/_packer.pyx" __pyx_t_13 = PyObject_Call(__pyx_v_self->_default, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 176 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_13); #line 176 "msgpack/_packer.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; #line 176 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_v_o); #line 176 "msgpack/_packer.pyx" __pyx_v_o = __pyx_t_13; #line 176 "msgpack/_packer.pyx" __pyx_t_13 = 0; /* "msgpack/_packer.pyx":177 * elif self._default: * o = self._default(o) * ret = self._pack(o, nest_limit-1) # <<<<<<<<<<<<<< * else: * raise TypeError("can't serialize %r" % (o,)) */ #line 177 "msgpack/_packer.pyx" __pyx_t_15.__pyx_n = 1; #line 177 "msgpack/_packer.pyx" __pyx_t_15.nest_limit = (__pyx_v_nest_limit - 1); #line 177 "msgpack/_packer.pyx" __pyx_t_12 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_self->__pyx_vtab)->_pack(__pyx_v_self, __pyx_v_o, &__pyx_t_15); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 177 "msgpack/_packer.pyx" __pyx_v_ret = __pyx_t_12; #line 177 "msgpack/_packer.pyx" goto __pyx_L4; #line 177 "msgpack/_packer.pyx" } #line 177 "msgpack/_packer.pyx" /*else*/ { /* "msgpack/_packer.pyx":179 * ret = self._pack(o, nest_limit-1) * else: * raise TypeError("can't serialize %r" % (o,)) # <<<<<<<<<<<<<< * return ret * */ #line 179 "msgpack/_packer.pyx" __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 179 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_13); #line 179 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_v_o); #line 179 "msgpack/_packer.pyx" PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_v_o); #line 179 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_v_o); #line 179 "msgpack/_packer.pyx" __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_14), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 179 "msgpack/_packer.pyx" __Pyx_GOTREF(((PyObject *)__pyx_t_3)); #line 179 "msgpack/_packer.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; #line 179 "msgpack/_packer.pyx" __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 179 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_13); #line 179 "msgpack/_packer.pyx" PyTuple_SET_ITEM(__pyx_t_13, 0, ((PyObject *)__pyx_t_3)); #line 179 "msgpack/_packer.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_t_3)); #line 179 "msgpack/_packer.pyx" __pyx_t_3 = 0; #line 179 "msgpack/_packer.pyx" __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 179 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 179 "msgpack/_packer.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; #line 179 "msgpack/_packer.pyx" __Pyx_Raise(__pyx_t_3, 0, 0, 0); #line 179 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 179 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 179 "msgpack/_packer.pyx" } #line 179 "msgpack/_packer.pyx" __pyx_L4:; /* "msgpack/_packer.pyx":180 * else: * raise TypeError("can't serialize %r" % (o,)) * return ret # <<<<<<<<<<<<<< * * cpdef pack(self, object obj): */ #line 180 "msgpack/_packer.pyx" __pyx_r = __pyx_v_ret; #line 180 "msgpack/_packer.pyx" goto __pyx_L0; #line 180 "msgpack/_packer.pyx" #line 180 "msgpack/_packer.pyx" __pyx_r = 0; #line 180 "msgpack/_packer.pyx" goto __pyx_L0; #line 180 "msgpack/_packer.pyx" __pyx_L1_error:; #line 180 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_2); #line 180 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_3); #line 180 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_13); #line 180 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_17); #line 180 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_18); #line 180 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer._pack", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 180 "msgpack/_packer.pyx" __pyx_r = -1; #line 180 "msgpack/_packer.pyx" __pyx_L0:; #line 180 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_d); #line 180 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_k); #line 180 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_v); #line 180 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_o); #line 180 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 180 "msgpack/_packer.pyx" return __pyx_r; #line 180 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":182 * return ret * * cpdef pack(self, object obj): # <<<<<<<<<<<<<< * cdef int ret * ret = self._pack(obj, DEFAULT_RECURSE_LIMIT) */ #line 182 "msgpack/_packer.pyx" #line 182 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_7pack(PyObject *__pyx_v_self, PyObject *__pyx_v_obj); /*proto*/ #line 182 "msgpack/_packer.pyx" static PyObject *__pyx_f_7msgpack_7_packer_6Packer_pack(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_skip_dispatch) { int __pyx_v_ret #line 182 "msgpack/_packer.pyx" ; PyObject *__pyx_v_buf = NULL #line 182 "msgpack/_packer.pyx" ; #line 182 "msgpack/_packer.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; struct __pyx_opt_args_7msgpack_7_packer_6Packer__pack __pyx_t_5; int __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 182 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("pack", 0); #line 182 "msgpack/_packer.pyx" /* Check if called by wrapper */ #line 182 "msgpack/_packer.pyx" if (unlikely(__pyx_skip_dispatch)) ; #line 182 "msgpack/_packer.pyx" /* Check if overridden in Python */ #line 182 "msgpack/_packer.pyx" else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) { #line 182 "msgpack/_packer.pyx" __pyx_t_1 = PyObject_GetAttr(((PyObject *)__pyx_v_self), __pyx_n_s__pack); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 182 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_1); #line 182 "msgpack/_packer.pyx" if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_7msgpack_7_packer_6Packer_7pack)) { #line 182 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_r); #line 182 "msgpack/_packer.pyx" __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 182 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 182 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_v_obj); #line 182 "msgpack/_packer.pyx" PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_obj); #line 182 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_v_obj); #line 182 "msgpack/_packer.pyx" __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 182 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 182 "msgpack/_packer.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; #line 182 "msgpack/_packer.pyx" __pyx_r = __pyx_t_3; #line 182 "msgpack/_packer.pyx" __pyx_t_3 = 0; #line 182 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #line 182 "msgpack/_packer.pyx" goto __pyx_L0; #line 182 "msgpack/_packer.pyx" } #line 182 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #line 182 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":184 * cpdef pack(self, object obj): * cdef int ret * ret = self._pack(obj, DEFAULT_RECURSE_LIMIT) # <<<<<<<<<<<<<< * if ret == -1: * raise MemoryError */ #line 184 "msgpack/_packer.pyx" __pyx_t_5.__pyx_n = 1; #line 184 "msgpack/_packer.pyx" __pyx_t_5.nest_limit = __pyx_v_7msgpack_7_packer_DEFAULT_RECURSE_LIMIT; #line 184 "msgpack/_packer.pyx" __pyx_t_4 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_self->__pyx_vtab)->_pack(__pyx_v_self, __pyx_v_obj, &__pyx_t_5); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 184 "msgpack/_packer.pyx" __pyx_v_ret = __pyx_t_4; /* "msgpack/_packer.pyx":185 * cdef int ret * ret = self._pack(obj, DEFAULT_RECURSE_LIMIT) * if ret == -1: # <<<<<<<<<<<<<< * raise MemoryError * elif ret: # should not happen. */ #line 185 "msgpack/_packer.pyx" __pyx_t_6 = (__pyx_v_ret == -1); #line 185 "msgpack/_packer.pyx" if (__pyx_t_6) { /* "msgpack/_packer.pyx":186 * ret = self._pack(obj, DEFAULT_RECURSE_LIMIT) * if ret == -1: * raise MemoryError # <<<<<<<<<<<<<< * elif ret: # should not happen. * raise TypeError */ #line 186 "msgpack/_packer.pyx" PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 186 "msgpack/_packer.pyx" goto __pyx_L3; #line 186 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":187 * if ret == -1: * raise MemoryError * elif ret: # should not happen. # <<<<<<<<<<<<<< * raise TypeError * if self.autoreset: */ #line 187 "msgpack/_packer.pyx" if (__pyx_v_ret) { /* "msgpack/_packer.pyx":188 * raise MemoryError * elif ret: # should not happen. * raise TypeError # <<<<<<<<<<<<<< * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) */ #line 188 "msgpack/_packer.pyx" __Pyx_Raise(__pyx_builtin_TypeError, 0, 0, 0); #line 188 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 188 "msgpack/_packer.pyx" goto __pyx_L3; #line 188 "msgpack/_packer.pyx" } #line 188 "msgpack/_packer.pyx" __pyx_L3:; /* "msgpack/_packer.pyx":189 * elif ret: # should not happen. * raise TypeError * if self.autoreset: # <<<<<<<<<<<<<< * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 */ #line 189 "msgpack/_packer.pyx" if (__pyx_v_self->autoreset) { /* "msgpack/_packer.pyx":190 * raise TypeError * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) # <<<<<<<<<<<<<< * self.pk.length = 0 * return buf */ #line 190 "msgpack/_packer.pyx" __pyx_t_1 = ((PyObject *)PyBytes_FromStringAndSize(__pyx_v_self->pk.buf, __pyx_v_self->pk.length)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 190 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_1); #line 190 "msgpack/_packer.pyx" __pyx_v_buf = ((PyObject*)__pyx_t_1); #line 190 "msgpack/_packer.pyx" __pyx_t_1 = 0; /* "msgpack/_packer.pyx":191 * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 # <<<<<<<<<<<<<< * return buf * */ #line 191 "msgpack/_packer.pyx" __pyx_v_self->pk.length = 0; /* "msgpack/_packer.pyx":192 * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 * return buf # <<<<<<<<<<<<<< * * def pack_array_header(self, size_t size): */ #line 192 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_r); #line 192 "msgpack/_packer.pyx" __Pyx_INCREF(((PyObject *)__pyx_v_buf)); #line 192 "msgpack/_packer.pyx" __pyx_r = ((PyObject *)__pyx_v_buf); #line 192 "msgpack/_packer.pyx" goto __pyx_L0; #line 192 "msgpack/_packer.pyx" goto __pyx_L4; #line 192 "msgpack/_packer.pyx" } #line 192 "msgpack/_packer.pyx" __pyx_L4:; #line 192 "msgpack/_packer.pyx" #line 192 "msgpack/_packer.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 192 "msgpack/_packer.pyx" goto __pyx_L0; #line 192 "msgpack/_packer.pyx" __pyx_L1_error:; #line 192 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_1); #line 192 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_2); #line 192 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_3); #line 192 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer.pack", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 192 "msgpack/_packer.pyx" __pyx_r = 0; #line 192 "msgpack/_packer.pyx" __pyx_L0:; #line 192 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_buf); #line 192 "msgpack/_packer.pyx" __Pyx_XGIVEREF(__pyx_r); #line 192 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 192 "msgpack/_packer.pyx" return __pyx_r; #line 192 "msgpack/_packer.pyx" } #line 192 "msgpack/_packer.pyx" #line 192 "msgpack/_packer.pyx" /* Python wrapper */ #line 192 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_7pack(PyObject *__pyx_v_self, PyObject *__pyx_v_obj); /*proto*/ #line 192 "msgpack/_packer.pyx" static char __pyx_doc_7msgpack_7_packer_6Packer_6pack[] = "Packer.pack(self, obj)"; #line 192 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_7pack(PyObject *__pyx_v_self, PyObject *__pyx_v_obj) { #line 192 "msgpack/_packer.pyx" PyObject *__pyx_r = 0; #line 192 "msgpack/_packer.pyx" __Pyx_RefNannyDeclarations #line 192 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("pack (wrapper)", 0); __pyx_r = #line 192 "msgpack/_packer.pyx" __pyx_pf_7msgpack_7_packer_6Packer_6pack(((struct __pyx_obj_7msgpack_7_packer_Packer *)__pyx_v_self), ((PyObject *)__pyx_v_obj)); #line 192 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 192 "msgpack/_packer.pyx" return __pyx_r; #line 192 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":182 * return ret * * cpdef pack(self, object obj): # <<<<<<<<<<<<<< * cdef int ret * ret = self._pack(obj, DEFAULT_RECURSE_LIMIT) */ #line 182 "msgpack/_packer.pyx" #line 182 "msgpack/_packer.pyx" static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_6pack(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, PyObject *__pyx_v_obj) { #line 182 "msgpack/_packer.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 182 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("pack", 0); #line 182 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_r); #line 182 "msgpack/_packer.pyx" __pyx_t_1 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_self->__pyx_vtab)->pack(__pyx_v_self, __pyx_v_obj, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 182 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_1); #line 182 "msgpack/_packer.pyx" __pyx_r = __pyx_t_1; #line 182 "msgpack/_packer.pyx" __pyx_t_1 = 0; #line 182 "msgpack/_packer.pyx" goto __pyx_L0; #line 182 "msgpack/_packer.pyx" #line 182 "msgpack/_packer.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 182 "msgpack/_packer.pyx" goto __pyx_L0; #line 182 "msgpack/_packer.pyx" __pyx_L1_error:; #line 182 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_1); #line 182 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer.pack", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 182 "msgpack/_packer.pyx" __pyx_r = NULL; #line 182 "msgpack/_packer.pyx" __pyx_L0:; #line 182 "msgpack/_packer.pyx" __Pyx_XGIVEREF(__pyx_r); #line 182 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 182 "msgpack/_packer.pyx" return __pyx_r; #line 182 "msgpack/_packer.pyx" } #line 182 "msgpack/_packer.pyx" #line 182 "msgpack/_packer.pyx" /* Python wrapper */ #line 182 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_9pack_array_header(PyObject *__pyx_v_self, PyObject *__pyx_arg_size); /*proto*/ #line 182 "msgpack/_packer.pyx" static char __pyx_doc_7msgpack_7_packer_6Packer_8pack_array_header[] = "Packer.pack_array_header(self, size_t size)"; #line 182 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_9pack_array_header(PyObject *__pyx_v_self, PyObject *__pyx_arg_size) { size_t __pyx_v_size #line 182 "msgpack/_packer.pyx" ; #line 182 "msgpack/_packer.pyx" PyObject *__pyx_r = 0; #line 182 "msgpack/_packer.pyx" __Pyx_RefNannyDeclarations #line 182 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("pack_array_header (wrapper)", 0); #line 182 "msgpack/_packer.pyx" assert(__pyx_arg_size); { #line 182 "msgpack/_packer.pyx" __pyx_v_size = __Pyx_PyInt_AsSize_t(__pyx_arg_size); if (unlikely((__pyx_v_size == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 182 "msgpack/_packer.pyx" } #line 182 "msgpack/_packer.pyx" goto __pyx_L4_argument_unpacking_done; #line 182 "msgpack/_packer.pyx" __pyx_L3_error:; #line 182 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer.pack_array_header", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 182 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 182 "msgpack/_packer.pyx" return NULL; #line 182 "msgpack/_packer.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 182 "msgpack/_packer.pyx" __pyx_pf_7msgpack_7_packer_6Packer_8pack_array_header(((struct __pyx_obj_7msgpack_7_packer_Packer *)__pyx_v_self), ((size_t)__pyx_v_size)); #line 182 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 182 "msgpack/_packer.pyx" return __pyx_r; #line 182 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":194 * return buf * * def pack_array_header(self, size_t size): # <<<<<<<<<<<<<< * cdef int ret = msgpack_pack_array(&self.pk, size) * if ret == -1: */ #line 194 "msgpack/_packer.pyx" #line 194 "msgpack/_packer.pyx" static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_8pack_array_header(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, size_t __pyx_v_size) { int __pyx_v_ret #line 194 "msgpack/_packer.pyx" ; PyObject *__pyx_v_buf = NULL #line 194 "msgpack/_packer.pyx" ; #line 194 "msgpack/_packer.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 194 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("pack_array_header", 0); /* "msgpack/_packer.pyx":195 * * def pack_array_header(self, size_t size): * cdef int ret = msgpack_pack_array(&self.pk, size) # <<<<<<<<<<<<<< * if ret == -1: * raise MemoryError */ #line 195 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_array((&__pyx_v_self->pk), __pyx_v_size); /* "msgpack/_packer.pyx":196 * def pack_array_header(self, size_t size): * cdef int ret = msgpack_pack_array(&self.pk, size) * if ret == -1: # <<<<<<<<<<<<<< * raise MemoryError * elif ret: # should not happen */ #line 196 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_ret == -1); #line 196 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":197 * cdef int ret = msgpack_pack_array(&self.pk, size) * if ret == -1: * raise MemoryError # <<<<<<<<<<<<<< * elif ret: # should not happen * raise TypeError */ #line 197 "msgpack/_packer.pyx" PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 197 "msgpack/_packer.pyx" goto __pyx_L3; #line 197 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":198 * if ret == -1: * raise MemoryError * elif ret: # should not happen # <<<<<<<<<<<<<< * raise TypeError * if self.autoreset: */ #line 198 "msgpack/_packer.pyx" if (__pyx_v_ret) { /* "msgpack/_packer.pyx":199 * raise MemoryError * elif ret: # should not happen * raise TypeError # <<<<<<<<<<<<<< * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) */ #line 199 "msgpack/_packer.pyx" __Pyx_Raise(__pyx_builtin_TypeError, 0, 0, 0); #line 199 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 199 "msgpack/_packer.pyx" goto __pyx_L3; #line 199 "msgpack/_packer.pyx" } #line 199 "msgpack/_packer.pyx" __pyx_L3:; /* "msgpack/_packer.pyx":200 * elif ret: # should not happen * raise TypeError * if self.autoreset: # <<<<<<<<<<<<<< * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 */ #line 200 "msgpack/_packer.pyx" if (__pyx_v_self->autoreset) { /* "msgpack/_packer.pyx":201 * raise TypeError * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) # <<<<<<<<<<<<<< * self.pk.length = 0 * return buf */ #line 201 "msgpack/_packer.pyx" __pyx_t_2 = ((PyObject *)PyBytes_FromStringAndSize(__pyx_v_self->pk.buf, __pyx_v_self->pk.length)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 201 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 201 "msgpack/_packer.pyx" __pyx_v_buf = ((PyObject*)__pyx_t_2); #line 201 "msgpack/_packer.pyx" __pyx_t_2 = 0; /* "msgpack/_packer.pyx":202 * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 # <<<<<<<<<<<<<< * return buf * */ #line 202 "msgpack/_packer.pyx" __pyx_v_self->pk.length = 0; /* "msgpack/_packer.pyx":203 * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 * return buf # <<<<<<<<<<<<<< * * def pack_map_header(self, size_t size): */ #line 203 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_r); #line 203 "msgpack/_packer.pyx" __Pyx_INCREF(((PyObject *)__pyx_v_buf)); #line 203 "msgpack/_packer.pyx" __pyx_r = ((PyObject *)__pyx_v_buf); #line 203 "msgpack/_packer.pyx" goto __pyx_L0; #line 203 "msgpack/_packer.pyx" goto __pyx_L4; #line 203 "msgpack/_packer.pyx" } #line 203 "msgpack/_packer.pyx" __pyx_L4:; #line 203 "msgpack/_packer.pyx" #line 203 "msgpack/_packer.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 203 "msgpack/_packer.pyx" goto __pyx_L0; #line 203 "msgpack/_packer.pyx" __pyx_L1_error:; #line 203 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_2); #line 203 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer.pack_array_header", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 203 "msgpack/_packer.pyx" __pyx_r = NULL; #line 203 "msgpack/_packer.pyx" __pyx_L0:; #line 203 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_buf); #line 203 "msgpack/_packer.pyx" __Pyx_XGIVEREF(__pyx_r); #line 203 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 203 "msgpack/_packer.pyx" return __pyx_r; #line 203 "msgpack/_packer.pyx" } #line 203 "msgpack/_packer.pyx" #line 203 "msgpack/_packer.pyx" /* Python wrapper */ #line 203 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_11pack_map_header(PyObject *__pyx_v_self, PyObject *__pyx_arg_size); /*proto*/ #line 203 "msgpack/_packer.pyx" static char __pyx_doc_7msgpack_7_packer_6Packer_10pack_map_header[] = "Packer.pack_map_header(self, size_t size)"; #line 203 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_11pack_map_header(PyObject *__pyx_v_self, PyObject *__pyx_arg_size) { size_t __pyx_v_size #line 203 "msgpack/_packer.pyx" ; #line 203 "msgpack/_packer.pyx" PyObject *__pyx_r = 0; #line 203 "msgpack/_packer.pyx" __Pyx_RefNannyDeclarations #line 203 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("pack_map_header (wrapper)", 0); #line 203 "msgpack/_packer.pyx" assert(__pyx_arg_size); { #line 203 "msgpack/_packer.pyx" __pyx_v_size = __Pyx_PyInt_AsSize_t(__pyx_arg_size); if (unlikely((__pyx_v_size == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 203 "msgpack/_packer.pyx" } #line 203 "msgpack/_packer.pyx" goto __pyx_L4_argument_unpacking_done; #line 203 "msgpack/_packer.pyx" __pyx_L3_error:; #line 203 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer.pack_map_header", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 203 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 203 "msgpack/_packer.pyx" return NULL; #line 203 "msgpack/_packer.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 203 "msgpack/_packer.pyx" __pyx_pf_7msgpack_7_packer_6Packer_10pack_map_header(((struct __pyx_obj_7msgpack_7_packer_Packer *)__pyx_v_self), ((size_t)__pyx_v_size)); #line 203 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 203 "msgpack/_packer.pyx" return __pyx_r; #line 203 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":205 * return buf * * def pack_map_header(self, size_t size): # <<<<<<<<<<<<<< * cdef int ret = msgpack_pack_map(&self.pk, size) * if ret == -1: */ #line 205 "msgpack/_packer.pyx" #line 205 "msgpack/_packer.pyx" static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_10pack_map_header(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, size_t __pyx_v_size) { int __pyx_v_ret #line 205 "msgpack/_packer.pyx" ; PyObject *__pyx_v_buf = NULL #line 205 "msgpack/_packer.pyx" ; #line 205 "msgpack/_packer.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 205 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("pack_map_header", 0); /* "msgpack/_packer.pyx":206 * * def pack_map_header(self, size_t size): * cdef int ret = msgpack_pack_map(&self.pk, size) # <<<<<<<<<<<<<< * if ret == -1: * raise MemoryError */ #line 206 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_map((&__pyx_v_self->pk), __pyx_v_size); /* "msgpack/_packer.pyx":207 * def pack_map_header(self, size_t size): * cdef int ret = msgpack_pack_map(&self.pk, size) * if ret == -1: # <<<<<<<<<<<<<< * raise MemoryError * elif ret: # should not happen */ #line 207 "msgpack/_packer.pyx" __pyx_t_1 = (__pyx_v_ret == -1); #line 207 "msgpack/_packer.pyx" if (__pyx_t_1) { /* "msgpack/_packer.pyx":208 * cdef int ret = msgpack_pack_map(&self.pk, size) * if ret == -1: * raise MemoryError # <<<<<<<<<<<<<< * elif ret: # should not happen * raise TypeError */ #line 208 "msgpack/_packer.pyx" PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 208 "msgpack/_packer.pyx" goto __pyx_L3; #line 208 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":209 * if ret == -1: * raise MemoryError * elif ret: # should not happen # <<<<<<<<<<<<<< * raise TypeError * if self.autoreset: */ #line 209 "msgpack/_packer.pyx" if (__pyx_v_ret) { /* "msgpack/_packer.pyx":210 * raise MemoryError * elif ret: # should not happen * raise TypeError # <<<<<<<<<<<<<< * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) */ #line 210 "msgpack/_packer.pyx" __Pyx_Raise(__pyx_builtin_TypeError, 0, 0, 0); #line 210 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 210 "msgpack/_packer.pyx" goto __pyx_L3; #line 210 "msgpack/_packer.pyx" } #line 210 "msgpack/_packer.pyx" __pyx_L3:; /* "msgpack/_packer.pyx":211 * elif ret: # should not happen * raise TypeError * if self.autoreset: # <<<<<<<<<<<<<< * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 */ #line 211 "msgpack/_packer.pyx" if (__pyx_v_self->autoreset) { /* "msgpack/_packer.pyx":212 * raise TypeError * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) # <<<<<<<<<<<<<< * self.pk.length = 0 * return buf */ #line 212 "msgpack/_packer.pyx" __pyx_t_2 = ((PyObject *)PyBytes_FromStringAndSize(__pyx_v_self->pk.buf, __pyx_v_self->pk.length)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 212 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 212 "msgpack/_packer.pyx" __pyx_v_buf = ((PyObject*)__pyx_t_2); #line 212 "msgpack/_packer.pyx" __pyx_t_2 = 0; /* "msgpack/_packer.pyx":213 * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 # <<<<<<<<<<<<<< * return buf * */ #line 213 "msgpack/_packer.pyx" __pyx_v_self->pk.length = 0; /* "msgpack/_packer.pyx":214 * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 * return buf # <<<<<<<<<<<<<< * * def pack_map_pairs(self, object pairs): */ #line 214 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_r); #line 214 "msgpack/_packer.pyx" __Pyx_INCREF(((PyObject *)__pyx_v_buf)); #line 214 "msgpack/_packer.pyx" __pyx_r = ((PyObject *)__pyx_v_buf); #line 214 "msgpack/_packer.pyx" goto __pyx_L0; #line 214 "msgpack/_packer.pyx" goto __pyx_L4; #line 214 "msgpack/_packer.pyx" } #line 214 "msgpack/_packer.pyx" __pyx_L4:; #line 214 "msgpack/_packer.pyx" #line 214 "msgpack/_packer.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 214 "msgpack/_packer.pyx" goto __pyx_L0; #line 214 "msgpack/_packer.pyx" __pyx_L1_error:; #line 214 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_2); #line 214 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer.pack_map_header", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 214 "msgpack/_packer.pyx" __pyx_r = NULL; #line 214 "msgpack/_packer.pyx" __pyx_L0:; #line 214 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_buf); #line 214 "msgpack/_packer.pyx" __Pyx_XGIVEREF(__pyx_r); #line 214 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 214 "msgpack/_packer.pyx" return __pyx_r; #line 214 "msgpack/_packer.pyx" } #line 214 "msgpack/_packer.pyx" #line 214 "msgpack/_packer.pyx" /* Python wrapper */ #line 214 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_13pack_map_pairs(PyObject *__pyx_v_self, PyObject *__pyx_v_pairs); /*proto*/ #line 214 "msgpack/_packer.pyx" static char __pyx_doc_7msgpack_7_packer_6Packer_12pack_map_pairs[] = "Packer.pack_map_pairs(self, pairs)\n\n Pack *pairs* as msgpack map type.\n\n *pairs* should sequence of pair.\n (`len(pairs)` and `for k, v in *pairs*:` should be supported.)\n "; #line 214 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_13pack_map_pairs(PyObject *__pyx_v_self, PyObject *__pyx_v_pairs) { #line 214 "msgpack/_packer.pyx" PyObject *__pyx_r = 0; #line 214 "msgpack/_packer.pyx" __Pyx_RefNannyDeclarations #line 214 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("pack_map_pairs (wrapper)", 0); __pyx_r = #line 214 "msgpack/_packer.pyx" __pyx_pf_7msgpack_7_packer_6Packer_12pack_map_pairs(((struct __pyx_obj_7msgpack_7_packer_Packer *)__pyx_v_self), ((PyObject *)__pyx_v_pairs)); #line 214 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 214 "msgpack/_packer.pyx" return __pyx_r; #line 214 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":216 * return buf * * def pack_map_pairs(self, object pairs): # <<<<<<<<<<<<<< * """ * Pack *pairs* as msgpack map type. */ #line 216 "msgpack/_packer.pyx" #line 216 "msgpack/_packer.pyx" static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_12pack_map_pairs(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self, PyObject *__pyx_v_pairs) { int __pyx_v_ret #line 216 "msgpack/_packer.pyx" ; PyObject *__pyx_v_k = NULL #line 216 "msgpack/_packer.pyx" ; PyObject *__pyx_v_v = NULL #line 216 "msgpack/_packer.pyx" ; PyObject *__pyx_v_buf = NULL #line 216 "msgpack/_packer.pyx" ; #line 216 "msgpack/_packer.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *(*__pyx_t_4)(PyObject *); PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; PyObject *__pyx_t_7 = NULL; PyObject *__pyx_t_8 = NULL; PyObject *(*__pyx_t_9)(PyObject *); int __pyx_t_10; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 216 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("pack_map_pairs", 0); /* "msgpack/_packer.pyx":223 * (`len(pairs)` and `for k, v in *pairs*:` should be supported.) * """ * cdef int ret = msgpack_pack_map(&self.pk, len(pairs)) # <<<<<<<<<<<<<< * if ret == 0: * for k, v in pairs: */ #line 223 "msgpack/_packer.pyx" __pyx_t_1 = PyObject_Length(__pyx_v_pairs); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 223 "msgpack/_packer.pyx" __pyx_v_ret = msgpack_pack_map((&__pyx_v_self->pk), __pyx_t_1); /* "msgpack/_packer.pyx":224 * """ * cdef int ret = msgpack_pack_map(&self.pk, len(pairs)) * if ret == 0: # <<<<<<<<<<<<<< * for k, v in pairs: * ret = self._pack(k) */ #line 224 "msgpack/_packer.pyx" __pyx_t_2 = (__pyx_v_ret == 0); #line 224 "msgpack/_packer.pyx" if (__pyx_t_2) { /* "msgpack/_packer.pyx":225 * cdef int ret = msgpack_pack_map(&self.pk, len(pairs)) * if ret == 0: * for k, v in pairs: # <<<<<<<<<<<<<< * ret = self._pack(k) * if ret != 0: break */ #line 225 "msgpack/_packer.pyx" if (PyList_CheckExact(__pyx_v_pairs) || PyTuple_CheckExact(__pyx_v_pairs)) { #line 225 "msgpack/_packer.pyx" __pyx_t_3 = __pyx_v_pairs; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0; #line 225 "msgpack/_packer.pyx" __pyx_t_4 = NULL; #line 225 "msgpack/_packer.pyx" } else { __pyx_t_1 = -1; #line 225 "msgpack/_packer.pyx" __pyx_t_3 = PyObject_GetIter(__pyx_v_pairs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 225 "msgpack/_packer.pyx" __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext; #line 225 "msgpack/_packer.pyx" } #line 225 "msgpack/_packer.pyx" for (;;) { #line 225 "msgpack/_packer.pyx" if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_3)) { #line 225 "msgpack/_packer.pyx" if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_3)) break; #line 225 "msgpack/_packer.pyx" #if CYTHON_COMPILING_IN_CPYTHON #line 225 "msgpack/_packer.pyx" __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" #else #line 225 "msgpack/_packer.pyx" __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" #endif } else #line 225 "msgpack/_packer.pyx" if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_3)) { #line 225 "msgpack/_packer.pyx" if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #line 225 "msgpack/_packer.pyx" #if CYTHON_COMPILING_IN_CPYTHON #line 225 "msgpack/_packer.pyx" __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" #else #line 225 "msgpack/_packer.pyx" __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" #endif } else #line 225 "msgpack/_packer.pyx" { #line 225 "msgpack/_packer.pyx" __pyx_t_5 = __pyx_t_4(__pyx_t_3); #line 225 "msgpack/_packer.pyx" if (unlikely(!__pyx_t_5)) { #line 225 "msgpack/_packer.pyx" if (PyErr_Occurred()) { #line 225 "msgpack/_packer.pyx" if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear(); #line 225 "msgpack/_packer.pyx" else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" } #line 225 "msgpack/_packer.pyx" break; #line 225 "msgpack/_packer.pyx" } #line 225 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_5); #line 225 "msgpack/_packer.pyx" } #line 225 "msgpack/_packer.pyx" if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { #line 225 "msgpack/_packer.pyx" PyObject* sequence = __pyx_t_5; #line 225 "msgpack/_packer.pyx" #if CYTHON_COMPILING_IN_CPYTHON #line 225 "msgpack/_packer.pyx" Py_ssize_t size = Py_SIZE(sequence); #line 225 "msgpack/_packer.pyx" #else #line 225 "msgpack/_packer.pyx" Py_ssize_t size = PySequence_Size(sequence); #line 225 "msgpack/_packer.pyx" #endif #line 225 "msgpack/_packer.pyx" if (unlikely(size != 2)) { #line 225 "msgpack/_packer.pyx" if (size > 2) __Pyx_RaiseTooManyValuesError(2); #line 225 "msgpack/_packer.pyx" else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); #line 225 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" } #line 225 "msgpack/_packer.pyx" #if CYTHON_COMPILING_IN_CPYTHON #line 225 "msgpack/_packer.pyx" if (likely(PyTuple_CheckExact(sequence))) { #line 225 "msgpack/_packer.pyx" __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); #line 225 "msgpack/_packer.pyx" __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); #line 225 "msgpack/_packer.pyx" } else { #line 225 "msgpack/_packer.pyx" __pyx_t_6 = PyList_GET_ITEM(sequence, 0); #line 225 "msgpack/_packer.pyx" __pyx_t_7 = PyList_GET_ITEM(sequence, 1); #line 225 "msgpack/_packer.pyx" } #line 225 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_t_6); #line 225 "msgpack/_packer.pyx" __Pyx_INCREF(__pyx_t_7); #line 225 "msgpack/_packer.pyx" #else #line 225 "msgpack/_packer.pyx" __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_6); #line 225 "msgpack/_packer.pyx" __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_7); #line 225 "msgpack/_packer.pyx" #endif #line 225 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; #line 225 "msgpack/_packer.pyx" } else #line 225 "msgpack/_packer.pyx" { #line 225 "msgpack/_packer.pyx" Py_ssize_t index = -1; #line 225 "msgpack/_packer.pyx" __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_8); #line 225 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; #line 225 "msgpack/_packer.pyx" __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) #line 225 "msgpack/_packer.pyx" goto __pyx_L6_unpacking_failed; #line 225 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_6); index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) #line 225 "msgpack/_packer.pyx" goto __pyx_L6_unpacking_failed; #line 225 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_7); #line 225 "msgpack/_packer.pyx" if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" __pyx_t_9 = NULL; #line 225 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; #line 225 "msgpack/_packer.pyx" goto __pyx_L7_unpacking_done; #line 225 "msgpack/_packer.pyx" __pyx_L6_unpacking_failed:; #line 225 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; #line 225 "msgpack/_packer.pyx" __pyx_t_9 = NULL; #line 225 "msgpack/_packer.pyx" if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); #line 225 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 225 "msgpack/_packer.pyx" __pyx_L7_unpacking_done:; #line 225 "msgpack/_packer.pyx" } #line 225 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_k); #line 225 "msgpack/_packer.pyx" __pyx_v_k = __pyx_t_6; #line 225 "msgpack/_packer.pyx" __pyx_t_6 = 0; #line 225 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_v); #line 225 "msgpack/_packer.pyx" __pyx_v_v = __pyx_t_7; #line 225 "msgpack/_packer.pyx" __pyx_t_7 = 0; /* "msgpack/_packer.pyx":226 * if ret == 0: * for k, v in pairs: * ret = self._pack(k) # <<<<<<<<<<<<<< * if ret != 0: break * ret = self._pack(v) */ #line 226 "msgpack/_packer.pyx" __pyx_t_10 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_self->__pyx_vtab)->_pack(__pyx_v_self, __pyx_v_k, NULL); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 226 "msgpack/_packer.pyx" __pyx_v_ret = __pyx_t_10; /* "msgpack/_packer.pyx":227 * for k, v in pairs: * ret = self._pack(k) * if ret != 0: break # <<<<<<<<<<<<<< * ret = self._pack(v) * if ret != 0: break */ #line 227 "msgpack/_packer.pyx" __pyx_t_2 = (__pyx_v_ret != 0); #line 227 "msgpack/_packer.pyx" if (__pyx_t_2) { #line 227 "msgpack/_packer.pyx" goto __pyx_L5_break; #line 227 "msgpack/_packer.pyx" goto __pyx_L8; #line 227 "msgpack/_packer.pyx" } #line 227 "msgpack/_packer.pyx" __pyx_L8:; /* "msgpack/_packer.pyx":228 * ret = self._pack(k) * if ret != 0: break * ret = self._pack(v) # <<<<<<<<<<<<<< * if ret != 0: break * if ret == -1: */ #line 228 "msgpack/_packer.pyx" __pyx_t_10 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_self->__pyx_vtab)->_pack(__pyx_v_self, __pyx_v_v, NULL); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 228 "msgpack/_packer.pyx" __pyx_v_ret = __pyx_t_10; /* "msgpack/_packer.pyx":229 * if ret != 0: break * ret = self._pack(v) * if ret != 0: break # <<<<<<<<<<<<<< * if ret == -1: * raise MemoryError */ #line 229 "msgpack/_packer.pyx" __pyx_t_2 = (__pyx_v_ret != 0); #line 229 "msgpack/_packer.pyx" if (__pyx_t_2) { #line 229 "msgpack/_packer.pyx" goto __pyx_L5_break; #line 229 "msgpack/_packer.pyx" goto __pyx_L9; #line 229 "msgpack/_packer.pyx" } #line 229 "msgpack/_packer.pyx" __pyx_L9:; #line 229 "msgpack/_packer.pyx" } #line 229 "msgpack/_packer.pyx" __pyx_L5_break:; #line 229 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 229 "msgpack/_packer.pyx" goto __pyx_L3; #line 229 "msgpack/_packer.pyx" } #line 229 "msgpack/_packer.pyx" __pyx_L3:; /* "msgpack/_packer.pyx":230 * ret = self._pack(v) * if ret != 0: break * if ret == -1: # <<<<<<<<<<<<<< * raise MemoryError * elif ret: # should not happen */ #line 230 "msgpack/_packer.pyx" __pyx_t_2 = (__pyx_v_ret == -1); #line 230 "msgpack/_packer.pyx" if (__pyx_t_2) { /* "msgpack/_packer.pyx":231 * if ret != 0: break * if ret == -1: * raise MemoryError # <<<<<<<<<<<<<< * elif ret: # should not happen * raise TypeError */ #line 231 "msgpack/_packer.pyx" PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 231 "msgpack/_packer.pyx" goto __pyx_L10; #line 231 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":232 * if ret == -1: * raise MemoryError * elif ret: # should not happen # <<<<<<<<<<<<<< * raise TypeError * if self.autoreset: */ #line 232 "msgpack/_packer.pyx" if (__pyx_v_ret) { /* "msgpack/_packer.pyx":233 * raise MemoryError * elif ret: # should not happen * raise TypeError # <<<<<<<<<<<<<< * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) */ #line 233 "msgpack/_packer.pyx" __Pyx_Raise(__pyx_builtin_TypeError, 0, 0, 0); #line 233 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 233 "msgpack/_packer.pyx" goto __pyx_L10; #line 233 "msgpack/_packer.pyx" } #line 233 "msgpack/_packer.pyx" __pyx_L10:; /* "msgpack/_packer.pyx":234 * elif ret: # should not happen * raise TypeError * if self.autoreset: # <<<<<<<<<<<<<< * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 */ #line 234 "msgpack/_packer.pyx" if (__pyx_v_self->autoreset) { /* "msgpack/_packer.pyx":235 * raise TypeError * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) # <<<<<<<<<<<<<< * self.pk.length = 0 * return buf */ #line 235 "msgpack/_packer.pyx" __pyx_t_3 = ((PyObject *)PyBytes_FromStringAndSize(__pyx_v_self->pk.buf, __pyx_v_self->pk.length)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 235 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 235 "msgpack/_packer.pyx" __pyx_v_buf = ((PyObject*)__pyx_t_3); #line 235 "msgpack/_packer.pyx" __pyx_t_3 = 0; /* "msgpack/_packer.pyx":236 * if self.autoreset: * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 # <<<<<<<<<<<<<< * return buf * */ #line 236 "msgpack/_packer.pyx" __pyx_v_self->pk.length = 0; /* "msgpack/_packer.pyx":237 * buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) * self.pk.length = 0 * return buf # <<<<<<<<<<<<<< * * def reset(self): */ #line 237 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_r); #line 237 "msgpack/_packer.pyx" __Pyx_INCREF(((PyObject *)__pyx_v_buf)); #line 237 "msgpack/_packer.pyx" __pyx_r = ((PyObject *)__pyx_v_buf); #line 237 "msgpack/_packer.pyx" goto __pyx_L0; #line 237 "msgpack/_packer.pyx" goto __pyx_L11; #line 237 "msgpack/_packer.pyx" } #line 237 "msgpack/_packer.pyx" __pyx_L11:; #line 237 "msgpack/_packer.pyx" #line 237 "msgpack/_packer.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 237 "msgpack/_packer.pyx" goto __pyx_L0; #line 237 "msgpack/_packer.pyx" __pyx_L1_error:; #line 237 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_3); #line 237 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_5); #line 237 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_6); #line 237 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_7); #line 237 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_8); #line 237 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer.pack_map_pairs", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 237 "msgpack/_packer.pyx" __pyx_r = NULL; #line 237 "msgpack/_packer.pyx" __pyx_L0:; #line 237 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_k); #line 237 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_v); #line 237 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_v_buf); #line 237 "msgpack/_packer.pyx" __Pyx_XGIVEREF(__pyx_r); #line 237 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 237 "msgpack/_packer.pyx" return __pyx_r; #line 237 "msgpack/_packer.pyx" } #line 237 "msgpack/_packer.pyx" #line 237 "msgpack/_packer.pyx" /* Python wrapper */ #line 237 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_15reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ #line 237 "msgpack/_packer.pyx" static char __pyx_doc_7msgpack_7_packer_6Packer_14reset[] = "Packer.reset(self)\nClear internal buffer."; #line 237 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_15reset(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { #line 237 "msgpack/_packer.pyx" PyObject *__pyx_r = 0; #line 237 "msgpack/_packer.pyx" __Pyx_RefNannyDeclarations #line 237 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("reset (wrapper)", 0); __pyx_r = #line 237 "msgpack/_packer.pyx" __pyx_pf_7msgpack_7_packer_6Packer_14reset(((struct __pyx_obj_7msgpack_7_packer_Packer *)__pyx_v_self)); #line 237 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 237 "msgpack/_packer.pyx" return __pyx_r; #line 237 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":239 * return buf * * def reset(self): # <<<<<<<<<<<<<< * """Clear internal buffer.""" * self.pk.length = 0 */ #line 239 "msgpack/_packer.pyx" #line 239 "msgpack/_packer.pyx" static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_14reset(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self) { #line 239 "msgpack/_packer.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations #line 239 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("reset", 0); /* "msgpack/_packer.pyx":241 * def reset(self): * """Clear internal buffer.""" * self.pk.length = 0 # <<<<<<<<<<<<<< * * def bytes(self): */ #line 241 "msgpack/_packer.pyx" __pyx_v_self->pk.length = 0; #line 241 "msgpack/_packer.pyx" #line 241 "msgpack/_packer.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 241 "msgpack/_packer.pyx" __Pyx_XGIVEREF(__pyx_r); #line 241 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 241 "msgpack/_packer.pyx" return __pyx_r; #line 241 "msgpack/_packer.pyx" } #line 241 "msgpack/_packer.pyx" #line 241 "msgpack/_packer.pyx" /* Python wrapper */ #line 241 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_17bytes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ #line 241 "msgpack/_packer.pyx" static char __pyx_doc_7msgpack_7_packer_6Packer_16bytes[] = "Packer.bytes(self)\nReturn buffer content."; #line 241 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_6Packer_17bytes(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { #line 241 "msgpack/_packer.pyx" PyObject *__pyx_r = 0; #line 241 "msgpack/_packer.pyx" __Pyx_RefNannyDeclarations #line 241 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("bytes (wrapper)", 0); __pyx_r = #line 241 "msgpack/_packer.pyx" __pyx_pf_7msgpack_7_packer_6Packer_16bytes(((struct __pyx_obj_7msgpack_7_packer_Packer *)__pyx_v_self)); #line 241 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 241 "msgpack/_packer.pyx" return __pyx_r; #line 241 "msgpack/_packer.pyx" } /* "msgpack/_packer.pyx":243 * self.pk.length = 0 * * def bytes(self): # <<<<<<<<<<<<<< * """Return buffer content.""" * return PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) */ #line 243 "msgpack/_packer.pyx" #line 243 "msgpack/_packer.pyx" static PyObject *__pyx_pf_7msgpack_7_packer_6Packer_16bytes(struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_self) { #line 243 "msgpack/_packer.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 243 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("bytes", 0); /* "msgpack/_packer.pyx":245 * def bytes(self): * """Return buffer content.""" * return PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) # <<<<<<<<<<<<<< * * */ #line 245 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_r); #line 245 "msgpack/_packer.pyx" __pyx_t_1 = ((PyObject *)PyBytes_FromStringAndSize(__pyx_v_self->pk.buf, __pyx_v_self->pk.length)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 245 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_1); #line 245 "msgpack/_packer.pyx" __pyx_r = __pyx_t_1; #line 245 "msgpack/_packer.pyx" __pyx_t_1 = 0; #line 245 "msgpack/_packer.pyx" goto __pyx_L0; #line 245 "msgpack/_packer.pyx" #line 245 "msgpack/_packer.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 245 "msgpack/_packer.pyx" goto __pyx_L0; #line 245 "msgpack/_packer.pyx" __pyx_L1_error:; #line 245 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_1); #line 245 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.Packer.bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 245 "msgpack/_packer.pyx" __pyx_r = NULL; #line 245 "msgpack/_packer.pyx" __pyx_L0:; #line 245 "msgpack/_packer.pyx" __Pyx_XGIVEREF(__pyx_r); #line 245 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 245 "msgpack/_packer.pyx" return __pyx_r; #line 245 "msgpack/_packer.pyx" } #line 245 "msgpack/_packer.pyx" #line 245 "msgpack/_packer.pyx" /* Python wrapper */ #line 245 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_1pack(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ #line 245 "msgpack/_packer.pyx" static char __pyx_doc_7msgpack_7_packer_pack[] = "pack(o, stream, default=None, encoding='utf-8', unicode_errors='strict')\n\n pack an object `o` and write it to stream)."; static PyMethodDef __pyx_mdef_7msgpack_7_packer_1pack = #line 245 "msgpack/_packer.pyx" {__Pyx_NAMESTR("pack"), (PyCFunction)__pyx_pw_7msgpack_7_packer_1pack, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_7msgpack_7_packer_pack)}; #line 245 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_1pack(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_o = 0 #line 245 "msgpack/_packer.pyx" ; PyObject *__pyx_v_stream = 0 #line 245 "msgpack/_packer.pyx" ; PyObject *__pyx_v_default = 0 #line 245 "msgpack/_packer.pyx" ; PyObject *__pyx_v_encoding = 0 #line 245 "msgpack/_packer.pyx" ; PyObject *__pyx_v_unicode_errors = 0 #line 245 "msgpack/_packer.pyx" ; #line 245 "msgpack/_packer.pyx" PyObject *__pyx_r = 0; #line 245 "msgpack/_packer.pyx" __Pyx_RefNannyDeclarations #line 245 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("pack (wrapper)", 0); #line 245 "msgpack/_packer.pyx" { #line 245 "msgpack/_packer.pyx" static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__o,&__pyx_n_s__stream,&__pyx_n_s__default,&__pyx_n_s__encoding,&__pyx_n_s__unicode_errors,0}; #line 245 "msgpack/_packer.pyx" PyObject* values[5] = {0,0,0,0,0}; /* "msgpack/_packer.pyx":248 * * * def pack(object o, object stream, default=None, encoding='utf-8', unicode_errors='strict'): # <<<<<<<<<<<<<< * """ * pack an object `o` and write it to stream).""" */ #line 248 "msgpack/_packer.pyx" values[2] = ((PyObject *)Py_None); #line 248 "msgpack/_packer.pyx" values[3] = ((PyObject *)__pyx_kp_s_3); #line 248 "msgpack/_packer.pyx" values[4] = ((PyObject *)__pyx_n_s__strict); #line 248 "msgpack/_packer.pyx" if (unlikely(__pyx_kwds)) { #line 248 "msgpack/_packer.pyx" Py_ssize_t kw_args; #line 248 "msgpack/_packer.pyx" const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); #line 248 "msgpack/_packer.pyx" switch (pos_args) { case 5: #line 248 "msgpack/_packer.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 248 "msgpack/_packer.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 248 "msgpack/_packer.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 248 "msgpack/_packer.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: #line 248 "msgpack/_packer.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 248 "msgpack/_packer.pyx" case 0: break; default: #line 248 "msgpack/_packer.pyx" goto __pyx_L5_argtuple_error; #line 248 "msgpack/_packer.pyx" } #line 248 "msgpack/_packer.pyx" kw_args = PyDict_Size(__pyx_kwds); #line 248 "msgpack/_packer.pyx" switch (pos_args) { #line 248 "msgpack/_packer.pyx" case 0: #line 248 "msgpack/_packer.pyx" if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__o)) != 0)) kw_args--; else #line 248 "msgpack/_packer.pyx" goto __pyx_L5_argtuple_error; #line 248 "msgpack/_packer.pyx" case 1: #line 248 "msgpack/_packer.pyx" if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__stream)) != 0)) kw_args--; #line 248 "msgpack/_packer.pyx" else { __Pyx_RaiseArgtupleInvalid("pack", 0, 2, 5, 1); #line 248 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 248 "msgpack/_packer.pyx" } #line 248 "msgpack/_packer.pyx" case 2: #line 248 "msgpack/_packer.pyx" if (kw_args > 0) { #line 248 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default); #line 248 "msgpack/_packer.pyx" if (value) { values[2] = value; kw_args--; } #line 248 "msgpack/_packer.pyx" } #line 248 "msgpack/_packer.pyx" case 3: #line 248 "msgpack/_packer.pyx" if (kw_args > 0) { #line 248 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__encoding); #line 248 "msgpack/_packer.pyx" if (value) { values[3] = value; kw_args--; } #line 248 "msgpack/_packer.pyx" } #line 248 "msgpack/_packer.pyx" case 4: #line 248 "msgpack/_packer.pyx" if (kw_args > 0) { #line 248 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__unicode_errors); #line 248 "msgpack/_packer.pyx" if (value) { values[4] = value; kw_args--; } #line 248 "msgpack/_packer.pyx" } #line 248 "msgpack/_packer.pyx" } #line 248 "msgpack/_packer.pyx" if (unlikely(kw_args > 0)) { #line 248 "msgpack/_packer.pyx" if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pack") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 248 "msgpack/_packer.pyx" } #line 248 "msgpack/_packer.pyx" } else { #line 248 "msgpack/_packer.pyx" switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: #line 248 "msgpack/_packer.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 248 "msgpack/_packer.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 248 "msgpack/_packer.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 248 "msgpack/_packer.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); #line 248 "msgpack/_packer.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 248 "msgpack/_packer.pyx" break; default: #line 248 "msgpack/_packer.pyx" goto __pyx_L5_argtuple_error; #line 248 "msgpack/_packer.pyx" } #line 248 "msgpack/_packer.pyx" } #line 248 "msgpack/_packer.pyx" __pyx_v_o = values[0]; #line 248 "msgpack/_packer.pyx" __pyx_v_stream = values[1]; #line 248 "msgpack/_packer.pyx" __pyx_v_default = values[2]; #line 248 "msgpack/_packer.pyx" __pyx_v_encoding = values[3]; #line 248 "msgpack/_packer.pyx" __pyx_v_unicode_errors = values[4]; #line 248 "msgpack/_packer.pyx" } #line 248 "msgpack/_packer.pyx" goto __pyx_L4_argument_unpacking_done; #line 248 "msgpack/_packer.pyx" __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("pack", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); #line 248 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 248 "msgpack/_packer.pyx" __pyx_L3_error:; #line 248 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.pack", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 248 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 248 "msgpack/_packer.pyx" return NULL; #line 248 "msgpack/_packer.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 248 "msgpack/_packer.pyx" __pyx_pf_7msgpack_7_packer_pack(__pyx_self, __pyx_v_o, __pyx_v_stream, __pyx_v_default, __pyx_v_encoding, __pyx_v_unicode_errors); #line 248 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 248 "msgpack/_packer.pyx" return __pyx_r; #line 248 "msgpack/_packer.pyx" } #line 248 "msgpack/_packer.pyx" #line 248 "msgpack/_packer.pyx" static PyObject *__pyx_pf_7msgpack_7_packer_pack(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_o, PyObject *__pyx_v_stream, PyObject *__pyx_v_default, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors) { struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_packer = NULL #line 248 "msgpack/_packer.pyx" ; #line 248 "msgpack/_packer.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 248 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("pack", 0); /* "msgpack/_packer.pyx":251 * """ * pack an object `o` and write it to stream).""" * packer = Packer(default=default, encoding=encoding, unicode_errors=unicode_errors) # <<<<<<<<<<<<<< * stream.write(packer.pack(o)) * */ #line 251 "msgpack/_packer.pyx" __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 251 "msgpack/_packer.pyx" __Pyx_GOTREF(((PyObject *)__pyx_t_1)); #line 251 "msgpack/_packer.pyx" if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__default), __pyx_v_default) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 251 "msgpack/_packer.pyx" if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__encoding), __pyx_v_encoding) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 251 "msgpack/_packer.pyx" if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__unicode_errors), __pyx_v_unicode_errors) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 251 "msgpack/_packer.pyx" __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_7msgpack_7_packer_Packer)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 251 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 251 "msgpack/_packer.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; #line 251 "msgpack/_packer.pyx" __pyx_v_packer = ((struct __pyx_obj_7msgpack_7_packer_Packer *)__pyx_t_2); #line 251 "msgpack/_packer.pyx" __pyx_t_2 = 0; /* "msgpack/_packer.pyx":252 * pack an object `o` and write it to stream).""" * packer = Packer(default=default, encoding=encoding, unicode_errors=unicode_errors) * stream.write(packer.pack(o)) # <<<<<<<<<<<<<< * * def packb(object o, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False): */ #line 252 "msgpack/_packer.pyx" __pyx_t_2 = PyObject_GetAttr(__pyx_v_stream, __pyx_n_s__write); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 252 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 252 "msgpack/_packer.pyx" __pyx_t_1 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_packer->__pyx_vtab)->pack(__pyx_v_packer, __pyx_v_o, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 252 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_1); #line 252 "msgpack/_packer.pyx" __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 252 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_3); #line 252 "msgpack/_packer.pyx" PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); #line 252 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_t_1); #line 252 "msgpack/_packer.pyx" __pyx_t_1 = 0; #line 252 "msgpack/_packer.pyx" __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 252 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_1); #line 252 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 252 "msgpack/_packer.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; #line 252 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #line 252 "msgpack/_packer.pyx" #line 252 "msgpack/_packer.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 252 "msgpack/_packer.pyx" goto __pyx_L0; #line 252 "msgpack/_packer.pyx" __pyx_L1_error:; #line 252 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_1); #line 252 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_2); #line 252 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_3); #line 252 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.pack", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 252 "msgpack/_packer.pyx" __pyx_r = NULL; #line 252 "msgpack/_packer.pyx" __pyx_L0:; #line 252 "msgpack/_packer.pyx" __Pyx_XDECREF((PyObject *)__pyx_v_packer); #line 252 "msgpack/_packer.pyx" __Pyx_XGIVEREF(__pyx_r); #line 252 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 252 "msgpack/_packer.pyx" return __pyx_r; #line 252 "msgpack/_packer.pyx" } #line 252 "msgpack/_packer.pyx" #line 252 "msgpack/_packer.pyx" /* Python wrapper */ #line 252 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_3packb(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ #line 252 "msgpack/_packer.pyx" static char __pyx_doc_7msgpack_7_packer_2packb[] = "packb(o, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False)\n\n pack o and return packed bytes."; static PyMethodDef __pyx_mdef_7msgpack_7_packer_3packb = #line 252 "msgpack/_packer.pyx" {__Pyx_NAMESTR("packb"), (PyCFunction)__pyx_pw_7msgpack_7_packer_3packb, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_7msgpack_7_packer_2packb)}; #line 252 "msgpack/_packer.pyx" static PyObject *__pyx_pw_7msgpack_7_packer_3packb(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_o = 0 #line 252 "msgpack/_packer.pyx" ; PyObject *__pyx_v_default = 0 #line 252 "msgpack/_packer.pyx" ; PyObject *__pyx_v_encoding = 0 #line 252 "msgpack/_packer.pyx" ; PyObject *__pyx_v_unicode_errors = 0 #line 252 "msgpack/_packer.pyx" ; PyObject *__pyx_v_use_single_float = 0 #line 252 "msgpack/_packer.pyx" ; #line 252 "msgpack/_packer.pyx" PyObject *__pyx_r = 0; #line 252 "msgpack/_packer.pyx" __Pyx_RefNannyDeclarations #line 252 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("packb (wrapper)", 0); #line 252 "msgpack/_packer.pyx" { #line 252 "msgpack/_packer.pyx" static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__o,&__pyx_n_s__default,&__pyx_n_s__encoding,&__pyx_n_s__unicode_errors,&__pyx_n_s__use_single_float,0}; #line 252 "msgpack/_packer.pyx" PyObject* values[5] = {0,0,0,0,0}; /* "msgpack/_packer.pyx":254 * stream.write(packer.pack(o)) * * def packb(object o, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False): # <<<<<<<<<<<<<< * """ * pack o and return packed bytes.""" */ #line 254 "msgpack/_packer.pyx" values[1] = ((PyObject *)Py_None); #line 254 "msgpack/_packer.pyx" values[2] = ((PyObject *)__pyx_kp_s_3); #line 254 "msgpack/_packer.pyx" values[3] = ((PyObject *)__pyx_n_s__strict); #line 254 "msgpack/_packer.pyx" values[4] = __pyx_k_15; #line 254 "msgpack/_packer.pyx" if (unlikely(__pyx_kwds)) { #line 254 "msgpack/_packer.pyx" Py_ssize_t kw_args; #line 254 "msgpack/_packer.pyx" const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); #line 254 "msgpack/_packer.pyx" switch (pos_args) { case 5: #line 254 "msgpack/_packer.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 254 "msgpack/_packer.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 254 "msgpack/_packer.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 254 "msgpack/_packer.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: #line 254 "msgpack/_packer.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 254 "msgpack/_packer.pyx" case 0: break; default: #line 254 "msgpack/_packer.pyx" goto __pyx_L5_argtuple_error; #line 254 "msgpack/_packer.pyx" } #line 254 "msgpack/_packer.pyx" kw_args = PyDict_Size(__pyx_kwds); #line 254 "msgpack/_packer.pyx" switch (pos_args) { #line 254 "msgpack/_packer.pyx" case 0: #line 254 "msgpack/_packer.pyx" if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__o)) != 0)) kw_args--; else #line 254 "msgpack/_packer.pyx" goto __pyx_L5_argtuple_error; #line 254 "msgpack/_packer.pyx" case 1: #line 254 "msgpack/_packer.pyx" if (kw_args > 0) { #line 254 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__default); #line 254 "msgpack/_packer.pyx" if (value) { values[1] = value; kw_args--; } #line 254 "msgpack/_packer.pyx" } #line 254 "msgpack/_packer.pyx" case 2: #line 254 "msgpack/_packer.pyx" if (kw_args > 0) { #line 254 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__encoding); #line 254 "msgpack/_packer.pyx" if (value) { values[2] = value; kw_args--; } #line 254 "msgpack/_packer.pyx" } #line 254 "msgpack/_packer.pyx" case 3: #line 254 "msgpack/_packer.pyx" if (kw_args > 0) { #line 254 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__unicode_errors); #line 254 "msgpack/_packer.pyx" if (value) { values[3] = value; kw_args--; } #line 254 "msgpack/_packer.pyx" } #line 254 "msgpack/_packer.pyx" case 4: #line 254 "msgpack/_packer.pyx" if (kw_args > 0) { #line 254 "msgpack/_packer.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__use_single_float); #line 254 "msgpack/_packer.pyx" if (value) { values[4] = value; kw_args--; } #line 254 "msgpack/_packer.pyx" } #line 254 "msgpack/_packer.pyx" } #line 254 "msgpack/_packer.pyx" if (unlikely(kw_args > 0)) { #line 254 "msgpack/_packer.pyx" if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "packb") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 254 "msgpack/_packer.pyx" } #line 254 "msgpack/_packer.pyx" } else { #line 254 "msgpack/_packer.pyx" switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: #line 254 "msgpack/_packer.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 254 "msgpack/_packer.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 254 "msgpack/_packer.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 254 "msgpack/_packer.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: #line 254 "msgpack/_packer.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 254 "msgpack/_packer.pyx" break; default: #line 254 "msgpack/_packer.pyx" goto __pyx_L5_argtuple_error; #line 254 "msgpack/_packer.pyx" } #line 254 "msgpack/_packer.pyx" } #line 254 "msgpack/_packer.pyx" __pyx_v_o = values[0]; #line 254 "msgpack/_packer.pyx" __pyx_v_default = values[1]; #line 254 "msgpack/_packer.pyx" __pyx_v_encoding = values[2]; #line 254 "msgpack/_packer.pyx" __pyx_v_unicode_errors = values[3]; #line 254 "msgpack/_packer.pyx" __pyx_v_use_single_float = values[4]; #line 254 "msgpack/_packer.pyx" } #line 254 "msgpack/_packer.pyx" goto __pyx_L4_argument_unpacking_done; #line 254 "msgpack/_packer.pyx" __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("packb", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); #line 254 "msgpack/_packer.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 254 "msgpack/_packer.pyx" __pyx_L3_error:; #line 254 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.packb", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 254 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 254 "msgpack/_packer.pyx" return NULL; #line 254 "msgpack/_packer.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 254 "msgpack/_packer.pyx" __pyx_pf_7msgpack_7_packer_2packb(__pyx_self, __pyx_v_o, __pyx_v_default, __pyx_v_encoding, __pyx_v_unicode_errors, __pyx_v_use_single_float); #line 254 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 254 "msgpack/_packer.pyx" return __pyx_r; #line 254 "msgpack/_packer.pyx" } #line 254 "msgpack/_packer.pyx" #line 254 "msgpack/_packer.pyx" static PyObject *__pyx_pf_7msgpack_7_packer_2packb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_o, PyObject *__pyx_v_default, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors, PyObject *__pyx_v_use_single_float) { struct __pyx_obj_7msgpack_7_packer_Packer *__pyx_v_packer = NULL #line 254 "msgpack/_packer.pyx" ; #line 254 "msgpack/_packer.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 254 "msgpack/_packer.pyx" __Pyx_RefNannySetupContext("packb", 0); /* "msgpack/_packer.pyx":257 * """ * pack o and return packed bytes.""" * packer = Packer(default=default, encoding=encoding, unicode_errors=unicode_errors, # <<<<<<<<<<<<<< * use_single_float=use_single_float) * return packer.pack(o) */ #line 257 "msgpack/_packer.pyx" __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 257 "msgpack/_packer.pyx" __Pyx_GOTREF(((PyObject *)__pyx_t_1)); #line 257 "msgpack/_packer.pyx" if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__default), __pyx_v_default) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 257 "msgpack/_packer.pyx" if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__encoding), __pyx_v_encoding) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 257 "msgpack/_packer.pyx" if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__unicode_errors), __pyx_v_unicode_errors) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "msgpack/_packer.pyx":258 * pack o and return packed bytes.""" * packer = Packer(default=default, encoding=encoding, unicode_errors=unicode_errors, * use_single_float=use_single_float) # <<<<<<<<<<<<<< * return packer.pack(o) */ #line 258 "msgpack/_packer.pyx" if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_n_s__use_single_float), __pyx_v_use_single_float) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 258 "msgpack/_packer.pyx" __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_7msgpack_7_packer_Packer)), ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 258 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 258 "msgpack/_packer.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; #line 258 "msgpack/_packer.pyx" __pyx_v_packer = ((struct __pyx_obj_7msgpack_7_packer_Packer *)__pyx_t_2); #line 258 "msgpack/_packer.pyx" __pyx_t_2 = 0; /* "msgpack/_packer.pyx":259 * packer = Packer(default=default, encoding=encoding, unicode_errors=unicode_errors, * use_single_float=use_single_float) * return packer.pack(o) # <<<<<<<<<<<<<< */ #line 259 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_r); #line 259 "msgpack/_packer.pyx" __pyx_t_2 = ((struct __pyx_vtabstruct_7msgpack_7_packer_Packer *)__pyx_v_packer->__pyx_vtab)->pack(__pyx_v_packer, __pyx_v_o, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 259 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 259 "msgpack/_packer.pyx" __pyx_r = __pyx_t_2; #line 259 "msgpack/_packer.pyx" __pyx_t_2 = 0; #line 259 "msgpack/_packer.pyx" goto __pyx_L0; #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 259 "msgpack/_packer.pyx" goto __pyx_L0; #line 259 "msgpack/_packer.pyx" __pyx_L1_error:; #line 259 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_1); #line 259 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_2); #line 259 "msgpack/_packer.pyx" __Pyx_AddTraceback("msgpack._packer.packb", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 259 "msgpack/_packer.pyx" __pyx_r = NULL; #line 259 "msgpack/_packer.pyx" __pyx_L0:; #line 259 "msgpack/_packer.pyx" __Pyx_XDECREF((PyObject *)__pyx_v_packer); #line 259 "msgpack/_packer.pyx" __Pyx_XGIVEREF(__pyx_r); #line 259 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 259 "msgpack/_packer.pyx" return __pyx_r; #line 259 "msgpack/_packer.pyx" } #line 259 "msgpack/_packer.pyx" static struct __pyx_vtabstruct_7msgpack_7_packer_Packer __pyx_vtable_7msgpack_7_packer_Packer; #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" static PyObject *__pyx_tp_new_7msgpack_7_packer_Packer(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { #line 259 "msgpack/_packer.pyx" struct __pyx_obj_7msgpack_7_packer_Packer *p; #line 259 "msgpack/_packer.pyx" PyObject *o = (*t->tp_alloc)(t, 0); #line 259 "msgpack/_packer.pyx" if (!o) return 0; #line 259 "msgpack/_packer.pyx" p = ((struct __pyx_obj_7msgpack_7_packer_Packer *)o); #line 259 "msgpack/_packer.pyx" p->__pyx_vtab = __pyx_vtabptr_7msgpack_7_packer_Packer; #line 259 "msgpack/_packer.pyx" p->_default = Py_None; Py_INCREF(Py_None); #line 259 "msgpack/_packer.pyx" p->_bencoding = Py_None; Py_INCREF(Py_None); #line 259 "msgpack/_packer.pyx" p->_berrors = Py_None; Py_INCREF(Py_None); #line 259 "msgpack/_packer.pyx" p->use_float = ((PyBoolObject *)Py_None); Py_INCREF(Py_None); #line 259 "msgpack/_packer.pyx" if (__pyx_pw_7msgpack_7_packer_6Packer_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) { #line 259 "msgpack/_packer.pyx" Py_DECREF(o); o = 0; #line 259 "msgpack/_packer.pyx" } #line 259 "msgpack/_packer.pyx" return o; #line 259 "msgpack/_packer.pyx" } #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" static void __pyx_tp_dealloc_7msgpack_7_packer_Packer(PyObject *o) { #line 259 "msgpack/_packer.pyx" struct __pyx_obj_7msgpack_7_packer_Packer *p = (struct __pyx_obj_7msgpack_7_packer_Packer *)o; #line 259 "msgpack/_packer.pyx" PyObject_GC_UnTrack(o); #line 259 "msgpack/_packer.pyx" { #line 259 "msgpack/_packer.pyx" PyObject *etype, *eval, *etb; #line 259 "msgpack/_packer.pyx" PyErr_Fetch(&etype, &eval, &etb); #line 259 "msgpack/_packer.pyx" ++Py_REFCNT(o); #line 259 "msgpack/_packer.pyx" __pyx_pw_7msgpack_7_packer_6Packer_5__dealloc__(o); #line 259 "msgpack/_packer.pyx" if (PyErr_Occurred()) PyErr_WriteUnraisable(o); #line 259 "msgpack/_packer.pyx" --Py_REFCNT(o); #line 259 "msgpack/_packer.pyx" PyErr_Restore(etype, eval, etb); #line 259 "msgpack/_packer.pyx" } #line 259 "msgpack/_packer.pyx" Py_CLEAR(p->_default); #line 259 "msgpack/_packer.pyx" Py_CLEAR(p->_bencoding); #line 259 "msgpack/_packer.pyx" Py_CLEAR(p->_berrors); #line 259 "msgpack/_packer.pyx" Py_CLEAR(p->use_float); #line 259 "msgpack/_packer.pyx" PyObject_GC_Track(o); #line 259 "msgpack/_packer.pyx" (*Py_TYPE(o)->tp_free)(o); #line 259 "msgpack/_packer.pyx" } #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" static int __pyx_tp_traverse_7msgpack_7_packer_Packer(PyObject *o, visitproc v, void *a) { #line 259 "msgpack/_packer.pyx" int e; #line 259 "msgpack/_packer.pyx" struct __pyx_obj_7msgpack_7_packer_Packer *p = (struct __pyx_obj_7msgpack_7_packer_Packer *)o; #line 259 "msgpack/_packer.pyx" if (p->_default) { #line 259 "msgpack/_packer.pyx" e = (*v)(p->_default, a); if (e) return e; #line 259 "msgpack/_packer.pyx" } #line 259 "msgpack/_packer.pyx" if (p->_bencoding) { #line 259 "msgpack/_packer.pyx" e = (*v)(p->_bencoding, a); if (e) return e; #line 259 "msgpack/_packer.pyx" } #line 259 "msgpack/_packer.pyx" if (p->_berrors) { #line 259 "msgpack/_packer.pyx" e = (*v)(p->_berrors, a); if (e) return e; #line 259 "msgpack/_packer.pyx" } #line 259 "msgpack/_packer.pyx" if (p->use_float) { #line 259 "msgpack/_packer.pyx" e = (*v)(((PyObject*)p->use_float), a); if (e) return e; #line 259 "msgpack/_packer.pyx" } #line 259 "msgpack/_packer.pyx" return 0; #line 259 "msgpack/_packer.pyx" } #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" static int __pyx_tp_clear_7msgpack_7_packer_Packer(PyObject *o) { #line 259 "msgpack/_packer.pyx" struct __pyx_obj_7msgpack_7_packer_Packer *p = (struct __pyx_obj_7msgpack_7_packer_Packer *)o; #line 259 "msgpack/_packer.pyx" PyObject* tmp; #line 259 "msgpack/_packer.pyx" tmp = ((PyObject*)p->_default); #line 259 "msgpack/_packer.pyx" p->_default = Py_None; Py_INCREF(Py_None); #line 259 "msgpack/_packer.pyx" Py_XDECREF(tmp); #line 259 "msgpack/_packer.pyx" tmp = ((PyObject*)p->_bencoding); #line 259 "msgpack/_packer.pyx" p->_bencoding = Py_None; Py_INCREF(Py_None); #line 259 "msgpack/_packer.pyx" Py_XDECREF(tmp); #line 259 "msgpack/_packer.pyx" tmp = ((PyObject*)p->_berrors); #line 259 "msgpack/_packer.pyx" p->_berrors = Py_None; Py_INCREF(Py_None); #line 259 "msgpack/_packer.pyx" Py_XDECREF(tmp); #line 259 "msgpack/_packer.pyx" tmp = ((PyObject*)p->use_float); #line 259 "msgpack/_packer.pyx" p->use_float = ((PyBoolObject *)Py_None); Py_INCREF(Py_None); #line 259 "msgpack/_packer.pyx" Py_XDECREF(tmp); #line 259 "msgpack/_packer.pyx" return 0; #line 259 "msgpack/_packer.pyx" } #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" static PyMethodDef __pyx_methods_7msgpack_7_packer_Packer[] = { #line 259 "msgpack/_packer.pyx" {__Pyx_NAMESTR("pack"), (PyCFunction)__pyx_pw_7msgpack_7_packer_6Packer_7pack, METH_O, __Pyx_DOCSTR(__pyx_doc_7msgpack_7_packer_6Packer_6pack)}, #line 259 "msgpack/_packer.pyx" {__Pyx_NAMESTR("pack_array_header"), (PyCFunction)__pyx_pw_7msgpack_7_packer_6Packer_9pack_array_header, METH_O, __Pyx_DOCSTR(__pyx_doc_7msgpack_7_packer_6Packer_8pack_array_header)}, #line 259 "msgpack/_packer.pyx" {__Pyx_NAMESTR("pack_map_header"), (PyCFunction)__pyx_pw_7msgpack_7_packer_6Packer_11pack_map_header, METH_O, __Pyx_DOCSTR(__pyx_doc_7msgpack_7_packer_6Packer_10pack_map_header)}, #line 259 "msgpack/_packer.pyx" {__Pyx_NAMESTR("pack_map_pairs"), (PyCFunction)__pyx_pw_7msgpack_7_packer_6Packer_13pack_map_pairs, METH_O, __Pyx_DOCSTR(__pyx_doc_7msgpack_7_packer_6Packer_12pack_map_pairs)}, #line 259 "msgpack/_packer.pyx" {__Pyx_NAMESTR("reset"), (PyCFunction)__pyx_pw_7msgpack_7_packer_6Packer_15reset, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_7msgpack_7_packer_6Packer_14reset)}, #line 259 "msgpack/_packer.pyx" {__Pyx_NAMESTR("bytes"), (PyCFunction)__pyx_pw_7msgpack_7_packer_6Packer_17bytes, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_7msgpack_7_packer_6Packer_16bytes)}, #line 259 "msgpack/_packer.pyx" {0, 0, 0, 0} #line 259 "msgpack/_packer.pyx" }; #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" static PyNumberMethods __pyx_tp_as_number_Packer = { #line 259 "msgpack/_packer.pyx" 0, /*nb_add*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_subtract*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_multiply*/ #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 259 "msgpack/_packer.pyx" 0, /*nb_divide*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" 0, /*nb_remainder*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_divmod*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_power*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_negative*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_positive*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_absolute*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_nonzero*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_invert*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_lshift*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_rshift*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_and*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_xor*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_or*/ #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 259 "msgpack/_packer.pyx" 0, /*nb_coerce*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" 0, /*nb_int*/ #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 259 "msgpack/_packer.pyx" 0, /*nb_long*/ #line 259 "msgpack/_packer.pyx" #else #line 259 "msgpack/_packer.pyx" 0, /*reserved*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" 0, /*nb_float*/ #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 259 "msgpack/_packer.pyx" 0, /*nb_oct*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 259 "msgpack/_packer.pyx" 0, /*nb_hex*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_add*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_subtract*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_multiply*/ #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_divide*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_remainder*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_power*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_lshift*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_rshift*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_and*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_xor*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_or*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_floor_divide*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_true_divide*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_floor_divide*/ #line 259 "msgpack/_packer.pyx" 0, /*nb_inplace_true_divide*/ #line 259 "msgpack/_packer.pyx" #if PY_VERSION_HEX >= 0x02050000 #line 259 "msgpack/_packer.pyx" 0, /*nb_index*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" }; #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" static PySequenceMethods __pyx_tp_as_sequence_Packer = { #line 259 "msgpack/_packer.pyx" 0, /*sq_length*/ #line 259 "msgpack/_packer.pyx" 0, /*sq_concat*/ #line 259 "msgpack/_packer.pyx" 0, /*sq_repeat*/ #line 259 "msgpack/_packer.pyx" 0, /*sq_item*/ #line 259 "msgpack/_packer.pyx" 0, /*sq_slice*/ #line 259 "msgpack/_packer.pyx" 0, /*sq_ass_item*/ #line 259 "msgpack/_packer.pyx" 0, /*sq_ass_slice*/ #line 259 "msgpack/_packer.pyx" 0, /*sq_contains*/ #line 259 "msgpack/_packer.pyx" 0, /*sq_inplace_concat*/ #line 259 "msgpack/_packer.pyx" 0, /*sq_inplace_repeat*/ #line 259 "msgpack/_packer.pyx" }; #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" static PyMappingMethods __pyx_tp_as_mapping_Packer = { #line 259 "msgpack/_packer.pyx" 0, /*mp_length*/ #line 259 "msgpack/_packer.pyx" 0, /*mp_subscript*/ #line 259 "msgpack/_packer.pyx" 0, /*mp_ass_subscript*/ #line 259 "msgpack/_packer.pyx" }; #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" static PyBufferProcs __pyx_tp_as_buffer_Packer = { #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 259 "msgpack/_packer.pyx" 0, /*bf_getreadbuffer*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 259 "msgpack/_packer.pyx" 0, /*bf_getwritebuffer*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 259 "msgpack/_packer.pyx" 0, /*bf_getsegcount*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 259 "msgpack/_packer.pyx" 0, /*bf_getcharbuffer*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" #if PY_VERSION_HEX >= 0x02060000 #line 259 "msgpack/_packer.pyx" 0, /*bf_getbuffer*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" #if PY_VERSION_HEX >= 0x02060000 #line 259 "msgpack/_packer.pyx" 0, /*bf_releasebuffer*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" }; #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" static PyTypeObject __pyx_type_7msgpack_7_packer_Packer = { #line 259 "msgpack/_packer.pyx" PyVarObject_HEAD_INIT(0, 0) #line 259 "msgpack/_packer.pyx" __Pyx_NAMESTR("msgpack._packer.Packer"), /*tp_name*/ #line 259 "msgpack/_packer.pyx" sizeof(struct __pyx_obj_7msgpack_7_packer_Packer), /*tp_basicsize*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_itemsize*/ #line 259 "msgpack/_packer.pyx" __pyx_tp_dealloc_7msgpack_7_packer_Packer, /*tp_dealloc*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_print*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_getattr*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_setattr*/ #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 259 "msgpack/_packer.pyx" 0, /*tp_compare*/ #line 259 "msgpack/_packer.pyx" #else #line 259 "msgpack/_packer.pyx" 0, /*reserved*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" 0, /*tp_repr*/ #line 259 "msgpack/_packer.pyx" &__pyx_tp_as_number_Packer, /*tp_as_number*/ #line 259 "msgpack/_packer.pyx" &__pyx_tp_as_sequence_Packer, /*tp_as_sequence*/ #line 259 "msgpack/_packer.pyx" &__pyx_tp_as_mapping_Packer, /*tp_as_mapping*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_hash*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_call*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_str*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_getattro*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_setattro*/ #line 259 "msgpack/_packer.pyx" &__pyx_tp_as_buffer_Packer, /*tp_as_buffer*/ #line 259 "msgpack/_packer.pyx" Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ #line 259 "msgpack/_packer.pyx" __Pyx_DOCSTR("Packer(default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False, int autoreset=1)\nMessagePack Packer\n\n usage:\n\n packer = Packer()\n astream.write(packer.pack(a))\n astream.write(packer.pack(b))\n\n Packer's constructor has some keyword arguments:\n\n * *defaut* - Convert user type to builtin type that Packer supports.\n See also simplejson's document.\n * *encoding* - Convert unicode to bytes with this encoding. (default: 'utf-8')\n * *unicode_erros* - Error handler for encoding unicode. (default: 'strict')\n * *use_single_float* - Use single precision float type for float. (default: False)\n * *autoreset* - Reset buffer after each pack and return it's content as `bytes`. (default: True).\n If set this to false, use `bytes()` to get content and `.reset()` to clear buffer.\n "), /*tp_doc*/ #line 259 "msgpack/_packer.pyx" __pyx_tp_traverse_7msgpack_7_packer_Packer, /*tp_traverse*/ #line 259 "msgpack/_packer.pyx" __pyx_tp_clear_7msgpack_7_packer_Packer, /*tp_clear*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_richcompare*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_weaklistoffset*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_iter*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_iternext*/ #line 259 "msgpack/_packer.pyx" __pyx_methods_7msgpack_7_packer_Packer, /*tp_methods*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_members*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_getset*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_base*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_dict*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_descr_get*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_descr_set*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_dictoffset*/ #line 259 "msgpack/_packer.pyx" __pyx_pw_7msgpack_7_packer_6Packer_3__init__, /*tp_init*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_alloc*/ #line 259 "msgpack/_packer.pyx" __pyx_tp_new_7msgpack_7_packer_Packer, /*tp_new*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_free*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_is_gc*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_bases*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_mro*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_cache*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_subclasses*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_weaklist*/ #line 259 "msgpack/_packer.pyx" 0, /*tp_del*/ #line 259 "msgpack/_packer.pyx" #if PY_VERSION_HEX >= 0x02060000 #line 259 "msgpack/_packer.pyx" 0, /*tp_version_tag*/ #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" }; #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" static PyMethodDef __pyx_methods[] = { #line 259 "msgpack/_packer.pyx" {0, 0, 0, 0} #line 259 "msgpack/_packer.pyx" }; #line 259 "msgpack/_packer.pyx" #line 259 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION >= 3 #line 259 "msgpack/_packer.pyx" static struct PyModuleDef __pyx_moduledef = { #line 259 "msgpack/_packer.pyx" #if PY_VERSION_HEX < 0x03020000 #line 259 "msgpack/_packer.pyx" { PyObject_HEAD_INIT(NULL) NULL, 0, NULL }, #line 259 "msgpack/_packer.pyx" #else #line 259 "msgpack/_packer.pyx" PyModuleDef_HEAD_INIT, #line 259 "msgpack/_packer.pyx" #endif #line 259 "msgpack/_packer.pyx" __Pyx_NAMESTR("_packer"), #line 259 "msgpack/_packer.pyx" 0, /* m_doc */ #line 259 "msgpack/_packer.pyx" -1, /* m_size */ #line 259 "msgpack/_packer.pyx" __pyx_methods /* m_methods */, #line 259 "msgpack/_packer.pyx" NULL, /* m_reload */ #line 259 "msgpack/_packer.pyx" NULL, /* m_traverse */ #line 259 "msgpack/_packer.pyx" NULL, /* m_clear */ #line 259 "msgpack/_packer.pyx" NULL /* m_free */ #line 259 "msgpack/_packer.pyx" }; #line 259 "msgpack/_packer.pyx" #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0}, {&__pyx_kp_s_10, __pyx_k_10, sizeof(__pyx_k_10), 0, 0, 1, 0}, {&__pyx_kp_s_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 0, 1, 0}, {&__pyx_kp_s_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 0, 1, 0}, {&__pyx_n_s_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 0, 1, 1}, {&__pyx_kp_s_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 0, 1, 0}, {&__pyx_n_s_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 0, 1, 1}, {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0}, {&__pyx_kp_s_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 0, 1, 0}, {&__pyx_n_s__MemoryError, __pyx_k__MemoryError, sizeof(__pyx_k__MemoryError), 0, 0, 1, 1}, {&__pyx_n_s__PackValueError, __pyx_k__PackValueError, sizeof(__pyx_k__PackValueError), 0, 0, 1, 1}, {&__pyx_n_s__TypeError, __pyx_k__TypeError, sizeof(__pyx_k__TypeError), 0, 0, 1, 1}, {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1}, {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1}, {&__pyx_n_s__ascii, __pyx_k__ascii, sizeof(__pyx_k__ascii), 0, 0, 1, 1}, {&__pyx_n_s__autoreset, __pyx_k__autoreset, sizeof(__pyx_k__autoreset), 0, 0, 1, 1}, {&__pyx_n_s__default, __pyx_k__default, sizeof(__pyx_k__default), 0, 0, 1, 1}, {&__pyx_n_s__encode, __pyx_k__encode, sizeof(__pyx_k__encode), 0, 0, 1, 1}, {&__pyx_n_s__encoding, __pyx_k__encoding, sizeof(__pyx_k__encoding), 0, 0, 1, 1}, {&__pyx_n_s__items, __pyx_k__items, sizeof(__pyx_k__items), 0, 0, 1, 1}, {&__pyx_n_s__iteritems, __pyx_k__iteritems, sizeof(__pyx_k__iteritems), 0, 0, 1, 1}, {&__pyx_n_s__o, __pyx_k__o, sizeof(__pyx_k__o), 0, 0, 1, 1}, {&__pyx_n_s__pack, __pyx_k__pack, sizeof(__pyx_k__pack), 0, 0, 1, 1}, {&__pyx_n_s__packb, __pyx_k__packb, sizeof(__pyx_k__packb), 0, 0, 1, 1}, {&__pyx_n_s__packer, __pyx_k__packer, sizeof(__pyx_k__packer), 0, 0, 1, 1}, {&__pyx_n_s__stream, __pyx_k__stream, sizeof(__pyx_k__stream), 0, 0, 1, 1}, {&__pyx_n_s__strict, __pyx_k__strict, sizeof(__pyx_k__strict), 0, 0, 1, 1}, {&__pyx_n_s__unicode_errors, __pyx_k__unicode_errors, sizeof(__pyx_k__unicode_errors), 0, 0, 1, 1}, {&__pyx_n_s__use_single_float, __pyx_k__use_single_float, sizeof(__pyx_k__use_single_float), 0, 0, 1, 1}, {&__pyx_n_s__write, __pyx_k__write, sizeof(__pyx_k__write), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; static int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_MemoryError = __Pyx_GetName(__pyx_b, __pyx_n_s__MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_TypeError = __Pyx_GetName(__pyx_b, __pyx_n_s__TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} return 0; __pyx_L1_error:; return -1; } static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "msgpack/_packer.pyx":73 * self.pk.buf = malloc(buf_size); * if self.pk.buf == NULL: * raise MemoryError("Unable to allocate internal buffer.") # <<<<<<<<<<<<<< * self.pk.buf_size = buf_size * self.pk.length = 0 */ #line 73 "msgpack/_packer.pyx" __pyx_k_tuple_2 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_1)); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 73 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_k_tuple_2); #line 73 "msgpack/_packer.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_2)); /* "msgpack/_packer.pyx":82 * if default is not None: * if not PyCallable_Check(default): * raise TypeError("default must be a callable.") # <<<<<<<<<<<<<< * self._default = default * if encoding is None: */ #line 82 "msgpack/_packer.pyx" __pyx_k_tuple_6 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_5)); if (unlikely(!__pyx_k_tuple_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 82 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_k_tuple_6); #line 82 "msgpack/_packer.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_6)); /* "msgpack/_packer.pyx":89 * else: * if isinstance(encoding, unicode): * self._bencoding = encoding.encode('ascii') # <<<<<<<<<<<<<< * else: * self._bencoding = encoding */ #line 89 "msgpack/_packer.pyx" __pyx_k_tuple_7 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__ascii)); if (unlikely(!__pyx_k_tuple_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 89 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_k_tuple_7); #line 89 "msgpack/_packer.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_7)); /* "msgpack/_packer.pyx":94 * self.encoding = PyBytes_AsString(self._bencoding) * if isinstance(unicode_errors, unicode): * self._berrors = unicode_errors.encode('ascii') # <<<<<<<<<<<<<< * else: * self._berrors = unicode_errors */ #line 94 "msgpack/_packer.pyx" __pyx_k_tuple_8 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__ascii)); if (unlikely(!__pyx_k_tuple_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 94 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_k_tuple_8); #line 94 "msgpack/_packer.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_8)); /* "msgpack/_packer.pyx":113 * * if nest_limit < 0: * raise PackValueError("recursion limit exceeded.") # <<<<<<<<<<<<<< * * if o is None: */ #line 113 "msgpack/_packer.pyx" __pyx_k_tuple_11 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_10)); if (unlikely(!__pyx_k_tuple_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 113 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_k_tuple_11); #line 113 "msgpack/_packer.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_11)); /* "msgpack/_packer.pyx":146 * elif PyUnicode_Check(o): * if not self.encoding: * raise TypeError("Can't encode unicode string: no encoding is specified") # <<<<<<<<<<<<<< * o = PyUnicode_AsEncodedString(o, self.encoding, self.unicode_errors) * rawval = o */ #line 146 "msgpack/_packer.pyx" __pyx_k_tuple_13 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_12)); if (unlikely(!__pyx_k_tuple_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 146 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_k_tuple_13); #line 146 "msgpack/_packer.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_13)); /* "msgpack/_packer.pyx":248 * * * def pack(object o, object stream, default=None, encoding='utf-8', unicode_errors='strict'): # <<<<<<<<<<<<<< * """ * pack an object `o` and write it to stream).""" */ #line 248 "msgpack/_packer.pyx" __pyx_k_tuple_17 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__o), ((PyObject *)__pyx_n_s__stream), ((PyObject *)__pyx_n_s__default), ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__unicode_errors), ((PyObject *)__pyx_n_s__packer)); if (unlikely(!__pyx_k_tuple_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 248 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_k_tuple_17); #line 248 "msgpack/_packer.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_17)); #line 248 "msgpack/_packer.pyx" __pyx_k_codeobj_18 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_19, __pyx_n_s__pack, 248, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "msgpack/_packer.pyx":254 * stream.write(packer.pack(o)) * * def packb(object o, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False): # <<<<<<<<<<<<<< * """ * pack o and return packed bytes.""" */ #line 254 "msgpack/_packer.pyx" __pyx_k_tuple_21 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__o), ((PyObject *)__pyx_n_s__default), ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__unicode_errors), ((PyObject *)__pyx_n_s__use_single_float), ((PyObject *)__pyx_n_s__packer)); if (unlikely(!__pyx_k_tuple_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 254 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_k_tuple_21); #line 254 "msgpack/_packer.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_21)); #line 254 "msgpack/_packer.pyx" __pyx_k_codeobj_22 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_19, __pyx_n_s__packb, 254, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 254 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 254 "msgpack/_packer.pyx" return 0; #line 254 "msgpack/_packer.pyx" __pyx_L1_error:; #line 254 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 254 "msgpack/_packer.pyx" return -1; #line 254 "msgpack/_packer.pyx" } static int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; return 0; __pyx_L1_error:; return -1; } #if PY_MAJOR_VERSION < 3 PyMODINIT_FUNC init_packer(void); /*proto*/ PyMODINIT_FUNC init_packer(void) #else PyMODINIT_FUNC PyInit__packer(void); /*proto*/ PyMODINIT_FUNC PyInit__packer(void) #endif { PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannyDeclarations #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit__packer(void)", 0); if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #ifdef __Pyx_CyFunction_USED if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif #ifdef __Pyx_FusedFunction_USED if (__pyx_FusedFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif #ifdef __Pyx_Generator_USED if (__pyx_Generator_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS #ifdef WITH_THREAD /* Python build with threading support? */ PyEval_InitThreads(); #endif #endif /*--- Module creation code ---*/ #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4(__Pyx_NAMESTR("_packer"), __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); #else __pyx_m = PyModule_Create(&__pyx_moduledef); #endif if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!PyDict_GetItemString(modules, "msgpack._packer")) { if (unlikely(PyDict_SetItemString(modules, "msgpack._packer", __pyx_m) < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } } #endif __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); if (unlikely(!__pyx_b)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #if CYTHON_COMPILING_IN_PYPY Py_INCREF(__pyx_b); #endif if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; /*--- Initialize various global constants etc. ---*/ if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_module_is_main_msgpack___packer) { if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; } /*--- Builtin init code ---*/ if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /*--- Constants init code ---*/ if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /*--- Global init code ---*/ /*--- Variable export code ---*/ /*--- Function export code ---*/ /*--- Type init code ---*/ __pyx_vtabptr_7msgpack_7_packer_Packer = &__pyx_vtable_7msgpack_7_packer_Packer; __pyx_vtable_7msgpack_7_packer_Packer._pack = (int (*)(struct __pyx_obj_7msgpack_7_packer_Packer *, PyObject *, struct __pyx_opt_args_7msgpack_7_packer_6Packer__pack *__pyx_optional_args))__pyx_f_7msgpack_7_packer_6Packer__pack; __pyx_vtable_7msgpack_7_packer_Packer.pack = (PyObject *(*)(struct __pyx_obj_7msgpack_7_packer_Packer *, PyObject *, int __pyx_skip_dispatch))__pyx_f_7msgpack_7_packer_6Packer_pack; if (PyType_Ready(&__pyx_type_7msgpack_7_packer_Packer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetVtable(__pyx_type_7msgpack_7_packer_Packer.tp_dict, __pyx_vtabptr_7msgpack_7_packer_Packer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "Packer", (PyObject *)&__pyx_type_7msgpack_7_packer_Packer) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_7msgpack_7_packer_Packer = &__pyx_type_7msgpack_7_packer_Packer; /*--- Type import code ---*/ __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", #if CYTHON_COMPILING_IN_PYPY sizeof(PyTypeObject), #else sizeof(PyHeapTypeObject), #endif 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "bool", sizeof(PyBoolObject), 0); if (unlikely(!__pyx_ptype_7cpython_4bool_bool)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), 0); if (unlikely(!__pyx_ptype_7cpython_7complex_complex)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /*--- Variable import code ---*/ /*--- Function import code ---*/ /*--- Execution code ---*/ /* "msgpack/_packer.pyx":15 * from libc.limits cimport * * * from msgpack.exceptions import PackValueError # <<<<<<<<<<<<<< * * cdef extern from "pack.h": */ #line 15 "msgpack/_packer.pyx" __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 15 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_1); #line 15 "msgpack/_packer.pyx" __Pyx_INCREF(((PyObject *)__pyx_n_s__PackValueError)); #line 15 "msgpack/_packer.pyx" PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__PackValueError)); #line 15 "msgpack/_packer.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_n_s__PackValueError)); #line 15 "msgpack/_packer.pyx" __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s_16), ((PyObject *)__pyx_t_1), -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 15 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 15 "msgpack/_packer.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; #line 15 "msgpack/_packer.pyx" __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__PackValueError); #line 15 "msgpack/_packer.pyx" if (__pyx_t_1 == NULL) { #line 15 "msgpack/_packer.pyx" if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__PackValueError); #line 15 "msgpack/_packer.pyx" if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 15 "msgpack/_packer.pyx" } #line 15 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_1); #line 15 "msgpack/_packer.pyx" if (PyObject_SetAttr(__pyx_m, __pyx_n_s__PackValueError, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 15 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #line 15 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "msgpack/_packer.pyx":37 * int msgpack_pack_raw_body(msgpack_packer* pk, char* body, size_t l) * * cdef int DEFAULT_RECURSE_LIMIT=511 # <<<<<<<<<<<<<< * * */ #line 37 "msgpack/_packer.pyx" __pyx_v_7msgpack_7_packer_DEFAULT_RECURSE_LIMIT = 511; /* "msgpack/_packer.pyx":77 * self.pk.length = 0 * * def __init__(self, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False, bint autoreset=1): # <<<<<<<<<<<<<< * self.use_float = use_single_float * self.autoreset = autoreset */ #line 77 "msgpack/_packer.pyx" __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 77 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 77 "msgpack/_packer.pyx" __pyx_k_4 = __pyx_t_2; #line 77 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_t_2); #line 77 "msgpack/_packer.pyx" __pyx_t_2 = 0; /* "msgpack/_packer.pyx":102 * free(self.pk.buf); * * cdef int _pack(self, object o, int nest_limit=DEFAULT_RECURSE_LIMIT) except -1: # <<<<<<<<<<<<<< * cdef long long llval * cdef unsigned long long ullval */ #line 102 "msgpack/_packer.pyx" __pyx_k_9 = __pyx_v_7msgpack_7_packer_DEFAULT_RECURSE_LIMIT; /* "msgpack/_packer.pyx":248 * * * def pack(object o, object stream, default=None, encoding='utf-8', unicode_errors='strict'): # <<<<<<<<<<<<<< * """ * pack an object `o` and write it to stream).""" */ #line 248 "msgpack/_packer.pyx" __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7msgpack_7_packer_1pack, NULL, __pyx_n_s_20); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 248 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 248 "msgpack/_packer.pyx" if (PyObject_SetAttr(__pyx_m, __pyx_n_s__pack, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 248 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "msgpack/_packer.pyx":254 * stream.write(packer.pack(o)) * * def packb(object o, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False): # <<<<<<<<<<<<<< * """ * pack o and return packed bytes.""" */ #line 254 "msgpack/_packer.pyx" __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 254 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 254 "msgpack/_packer.pyx" __pyx_k_15 = __pyx_t_2; #line 254 "msgpack/_packer.pyx" __Pyx_GIVEREF(__pyx_t_2); #line 254 "msgpack/_packer.pyx" __pyx_t_2 = 0; #line 254 "msgpack/_packer.pyx" __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7msgpack_7_packer_3packb, NULL, __pyx_n_s_20); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 254 "msgpack/_packer.pyx" __Pyx_GOTREF(__pyx_t_2); #line 254 "msgpack/_packer.pyx" if (PyObject_SetAttr(__pyx_m, __pyx_n_s__packb, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 254 "msgpack/_packer.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "msgpack/_packer.pyx":1 * # coding: utf-8 # <<<<<<<<<<<<<< * #cython: embedsignature=True * */ #line 1 "msgpack/_packer.pyx" __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 1 "msgpack/_packer.pyx" __Pyx_GOTREF(((PyObject *)__pyx_t_2)); #line 1 "msgpack/_packer.pyx" if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 1 "msgpack/_packer.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; #line 1 "msgpack/_packer.pyx" goto __pyx_L0; #line 1 "msgpack/_packer.pyx" __pyx_L1_error:; #line 1 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_1); #line 1 "msgpack/_packer.pyx" __Pyx_XDECREF(__pyx_t_2); #line 1 "msgpack/_packer.pyx" if (__pyx_m) { #line 1 "msgpack/_packer.pyx" __Pyx_AddTraceback("init msgpack._packer", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 1 "msgpack/_packer.pyx" Py_DECREF(__pyx_m); __pyx_m = 0; #line 1 "msgpack/_packer.pyx" } else if (!PyErr_Occurred()) { #line 1 "msgpack/_packer.pyx" PyErr_SetString(PyExc_ImportError, "init msgpack._packer"); #line 1 "msgpack/_packer.pyx" } #line 1 "msgpack/_packer.pyx" __pyx_L0:; #line 1 "msgpack/_packer.pyx" __Pyx_RefNannyFinishContext(); #line 1 "msgpack/_packer.pyx" #if PY_MAJOR_VERSION < 3 #line 1 "msgpack/_packer.pyx" return; #line 1 "msgpack/_packer.pyx" #else #line 1 "msgpack/_packer.pyx" return __pyx_m; #line 1 "msgpack/_packer.pyx" #endif #line 1 "msgpack/_packer.pyx" } #line 1 "cython_utility" /* Runtime support code */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule((char *)modname); if (!m) goto end; p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* CYTHON_REFNANNY */ static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) { PyObject *result; result = PyObject_GetAttr(dict, name); if (!result) { if (dict != __pyx_b) { PyErr_Clear(); result = PyObject_GetAttr(__pyx_b, name); } if (!result) { PyErr_SetObject(PyExc_NameError, name); } } return result; } static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%s() takes %s %" CYTHON_FORMAT_SSIZE_T "d positional argument%s (%" CYTHON_FORMAT_SSIZE_T "d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } static CYTHON_INLINE int __Pyx_CheckKeywordStrings( PyObject *kwdict, const char* function_name, int kw_allowed) { PyObject* key = 0; Py_ssize_t pos = 0; #if CPYTHON_COMPILING_IN_PYPY if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) goto invalid_keyword; return 1; #else while (PyDict_Next(kwdict, &pos, &key, 0)) { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) #endif if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type; } if ((!kw_allowed) && unlikely(key)) goto invalid_keyword; return 1; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%s() keywords must be strings", function_name); return 0; #endif invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%s() got an unexpected keyword argument '%s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif return 0; } static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) { #if CYTHON_COMPILING_IN_CPYTHON PyObject *tmp_type, *tmp_value, *tmp_tb; PyThreadState *tstate = PyThreadState_GET(); tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #else PyErr_Restore(type, value, tb); #endif } static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) { #if CYTHON_COMPILING_IN_CPYTHON PyThreadState *tstate = PyThreadState_GET(); *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #else PyErr_Fetch(type, value, tb); #endif } #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { Py_XINCREF(type); if (!value || value == Py_None) value = NULL; else Py_INCREF(value); if (!tb || tb == Py_None) tb = NULL; else { Py_INCREF(tb); if (!PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto raise_error; } } #if PY_VERSION_HEX < 0x02050000 if (PyClass_Check(type)) { #else if (PyType_Check(type)) { #endif #if CYTHON_COMPILING_IN_PYPY if (!value) { Py_INCREF(Py_None); value = Py_None; } #endif PyErr_NormalizeException(&type, &value, &tb); } else { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto raise_error; } value = type; #if PY_VERSION_HEX < 0x02050000 if (PyInstance_Check(type)) { type = (PyObject*) ((PyInstanceObject*)type)->in_class; Py_INCREF(type); } else { type = 0; PyErr_SetString(PyExc_TypeError, "raise: exception must be an old-style class or instance"); goto raise_error; } #else type = (PyObject*) Py_TYPE(type); Py_INCREF(type); if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto raise_error; } #endif } __Pyx_ErrRestore(type, value, tb); return; raise_error: Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(tb); return; } #else /* Python 3+ */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { PyObject* owned_instance = NULL; if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (PyExceptionClass_Check(type)) { PyObject *args; if (!value) args = PyTuple_New(0); else if (PyTuple_Check(value)) { Py_INCREF(value); args = value; } else args = PyTuple_Pack(1, value); if (!args) goto bad; owned_instance = PyEval_CallObject(type, args); Py_DECREF(args); if (!owned_instance) goto bad; value = owned_instance; if (!PyExceptionInstance_Check(value)) { PyErr_Format(PyExc_TypeError, "calling %R should have returned an instance of " "BaseException, not %R", type, Py_TYPE(value)); goto bad; } } else { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } if (cause && cause != Py_None) { PyObject *fixed_cause; if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { PyThreadState *tstate = PyThreadState_GET(); PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } } bad: Py_XDECREF(owned_instance); return; } #endif static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AsString(kw_name)); #endif } static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; while (PyDict_Next(kwds, &pos, &key, &value)) { name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; continue; } name = first_kw_arg; #if PY_MAJOR_VERSION < 3 if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { while (*name) { if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) && _PyString_Eq(**name, key)) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { if ((**argname == key) || ( (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) && _PyString_Eq(**argname, key))) { goto arg_passed_twice; } argname++; } } } else #endif if (likely(PyUnicode_Check(key))) { while (*name) { int cmp = (**name == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**name, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { int cmp = (**argname == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**argname, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; argname++; } } } else goto invalid_keyword_type; if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%s() keywords must be strings", function_name); goto bad; invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%s() got an unexpected keyword argument '%s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_Format(PyExc_SystemError, "Missing type object"); return 0; } if (likely(PyObject_TypeCheck(obj, type))) return 1; PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", Py_TYPE(obj)->tp_name, type->tp_name); return 0; } static CYTHON_INLINE int __Pyx_IterFinish(void) { #if CYTHON_COMPILING_IN_CPYTHON PyThreadState *tstate = PyThreadState_GET(); PyObject* exc_type = tstate->curexc_type; if (unlikely(exc_type)) { if (likely(exc_type == PyExc_StopIteration) || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)) { PyObject *exc_value, *exc_tb; exc_value = tstate->curexc_value; exc_tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; Py_DECREF(exc_type); Py_XDECREF(exc_value); Py_XDECREF(exc_tb); return 0; } else { return -1; } } return 0; #else if (unlikely(PyErr_Occurred())) { if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { PyErr_Clear(); return 0; } else { return -1; } } return 0; #endif } static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { PyErr_Format(PyExc_ValueError, "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); } static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { PyErr_Format(PyExc_ValueError, "need more than %" CYTHON_FORMAT_SSIZE_T "d value%s to unpack", index, (index == 1) ? "" : "s"); } static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); } static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) { if (t == Py_None) { __Pyx_RaiseNoneNotIterableError(); } else if (PyTuple_GET_SIZE(t) < index) { __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t)); } else { __Pyx_RaiseTooManyValuesError(index); } } static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { if (unlikely(retval)) { Py_DECREF(retval); __Pyx_RaiseTooManyValuesError(expected); return -1; } else { return __Pyx_IterFinish(); } return 0; } static CYTHON_INLINE int __Pyx_unpack_tuple2(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int is_tuple, int has_known_size, int decref_tuple) { Py_ssize_t index; PyObject *value1 = NULL, *value2 = NULL, *iter = NULL; if (!is_tuple && unlikely(!PyTuple_Check(tuple))) { iternextfunc iternext; iter = PyObject_GetIter(tuple); if (unlikely(!iter)) goto bad; if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; } iternext = Py_TYPE(iter)->tp_iternext; value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; } value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; } if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad; Py_DECREF(iter); } else { if (!has_known_size && unlikely(PyTuple_GET_SIZE(tuple) != 2)) { __Pyx_UnpackTupleError(tuple, 2); goto bad; } #if CYTHON_COMPILING_IN_PYPY value1 = PySequence_ITEM(tuple, 0); if (unlikely(!value1)) goto bad; value2 = PySequence_ITEM(tuple, 1); if (unlikely(!value2)) goto bad; #else value1 = PyTuple_GET_ITEM(tuple, 0); value2 = PyTuple_GET_ITEM(tuple, 1); Py_INCREF(value1); Py_INCREF(value2); #endif if (decref_tuple) { Py_DECREF(tuple); } } *pvalue1 = value1; *pvalue2 = value2; return 0; unpacking_failed: if (!has_known_size && __Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); bad: Py_XDECREF(iter); Py_XDECREF(value1); Py_XDECREF(value2); if (decref_tuple) { Py_XDECREF(tuple); } return -1; } static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name, Py_ssize_t* p_orig_length, int* p_source_is_dict) { is_dict = is_dict || likely(PyDict_CheckExact(iterable)); *p_source_is_dict = is_dict; #if !CYTHON_COMPILING_IN_PYPY if (is_dict) { *p_orig_length = PyDict_Size(iterable); Py_INCREF(iterable); return iterable; } #endif *p_orig_length = 0; if (method_name) { PyObject* iter; iterable = PyObject_CallMethodObjArgs(iterable, method_name, NULL); if (!iterable) return NULL; #if !CYTHON_COMPILING_IN_PYPY if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable)) return iterable; #endif iter = PyObject_GetIter(iterable); Py_DECREF(iterable); return iter; } return PyObject_GetIter(iterable); } static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* iter_obj, Py_ssize_t orig_length, Py_ssize_t* ppos, PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) { PyObject* next_item; #if !CYTHON_COMPILING_IN_PYPY if (source_is_dict) { PyObject *key, *value; if (unlikely(orig_length != PyDict_Size(iter_obj))) { PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration"); return -1; } if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) { return 0; } if (pitem) { PyObject* tuple = PyTuple_New(2); if (unlikely(!tuple)) { return -1; } Py_INCREF(key); Py_INCREF(value); PyTuple_SET_ITEM(tuple, 0, key); PyTuple_SET_ITEM(tuple, 1, value); *pitem = tuple; } else { if (pkey) { Py_INCREF(key); *pkey = key; } if (pvalue) { Py_INCREF(value); *pvalue = value; } } return 1; } else if (PyTuple_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyTuple_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else if (PyList_CheckExact(iter_obj)) { Py_ssize_t pos = *ppos; if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0; *ppos = pos + 1; next_item = PyList_GET_ITEM(iter_obj, pos); Py_INCREF(next_item); } else #endif { next_item = PyIter_Next(iter_obj); if (unlikely(!next_item)) { return __Pyx_IterFinish(); } } if (pitem) { *pitem = next_item; } else if (pkey && pvalue) { if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1)) return -1; } else if (pkey) { *pkey = next_item; } else { *pvalue = next_item; } return 1; } static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; PyObject *empty_dict = 0; PyObject *list; #if PY_VERSION_HEX < 0x03030000 PyObject *py_import = 0; py_import = __Pyx_GetAttrString(__pyx_b, "__import__"); if (!py_import) goto bad; #endif if (from_list) list = from_list; else { empty_list = PyList_New(0); if (!empty_list) goto bad; list = empty_list; } global_dict = PyModule_GetDict(__pyx_m); if (!global_dict) goto bad; empty_dict = PyDict_New(); if (!empty_dict) goto bad; #if PY_VERSION_HEX >= 0x02050000 { #if PY_MAJOR_VERSION >= 3 if (level == -1) { if (strchr(__Pyx_MODULE_NAME, '.')) { #if PY_VERSION_HEX < 0x03030000 PyObject *py_level = PyInt_FromLong(1); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, 1); #endif if (!module) { if (!PyErr_ExceptionMatches(PyExc_ImportError)) goto bad; PyErr_Clear(); } } level = 0; /* try absolute import on failure */ } #endif if (!module) { #if PY_VERSION_HEX < 0x03030000 PyObject *py_level = PyInt_FromLong(level); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, level); #endif } } #else if (level>0) { PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4."); goto bad; } module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, NULL); #endif bad: #if PY_VERSION_HEX < 0x03030000 Py_XDECREF(py_import); #endif Py_XDECREF(empty_list); Py_XDECREF(empty_dict); return module; } static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name) { #if PY_MAJOR_VERSION < 3 PyErr_Format(PyExc_ImportError, "cannot import name %.230s", PyString_AsString(name)); #else PyErr_Format(PyExc_ImportError, "cannot import name %S", name); #endif } static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) { const unsigned char neg_one = (unsigned char)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(unsigned char) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(unsigned char)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to unsigned char" : "value too large to convert to unsigned char"); } return (unsigned char)-1; } return (unsigned char)val; } return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x); } static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) { const unsigned short neg_one = (unsigned short)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(unsigned short) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(unsigned short)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to unsigned short" : "value too large to convert to unsigned short"); } return (unsigned short)-1; } return (unsigned short)val; } return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x); } static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) { const unsigned int neg_one = (unsigned int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(unsigned int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(unsigned int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to unsigned int" : "value too large to convert to unsigned int"); } return (unsigned int)-1; } return (unsigned int)val; } return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x); } static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) { const char neg_one = (char)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(char) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(char)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to char" : "value too large to convert to char"); } return (char)-1; } return (char)val; } return (char)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) { const short neg_one = (short)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(short) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(short)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to short" : "value too large to convert to short"); } return (short)-1; } return (short)val; } return (short)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) { const int neg_one = (int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to int" : "value too large to convert to int"); } return (int)-1; } return (int)val; } return (int)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) { const signed char neg_one = (signed char)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(signed char) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(signed char)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to signed char" : "value too large to convert to signed char"); } return (signed char)-1; } return (signed char)val; } return (signed char)__Pyx_PyInt_AsSignedLong(x); } static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) { const signed short neg_one = (signed short)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(signed short) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(signed short)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to signed short" : "value too large to convert to signed short"); } return (signed short)-1; } return (signed short)val; } return (signed short)__Pyx_PyInt_AsSignedLong(x); } static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) { const signed int neg_one = (signed int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(signed int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(signed int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to signed int" : "value too large to convert to signed int"); } return (signed int)-1; } return (signed int)val; } return (signed int)__Pyx_PyInt_AsSignedLong(x); } static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) { const int neg_one = (int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to int" : "value too large to convert to int"); } return (int)-1; } return (int)val; } return (int)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) { const unsigned long neg_one = (unsigned long)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned long"); return (unsigned long)-1; } return (unsigned long)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned long"); return (unsigned long)-1; } return (unsigned long)PyLong_AsUnsignedLong(x); } else { return (unsigned long)PyLong_AsLong(x); } } else { unsigned long val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (unsigned long)-1; val = __Pyx_PyInt_AsUnsignedLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) { const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned PY_LONG_LONG"); return (unsigned PY_LONG_LONG)-1; } return (unsigned PY_LONG_LONG)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned PY_LONG_LONG"); return (unsigned PY_LONG_LONG)-1; } return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); } else { return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x); } } else { unsigned PY_LONG_LONG val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (unsigned PY_LONG_LONG)-1; val = __Pyx_PyInt_AsUnsignedLongLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) { const long neg_one = (long)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long)-1; } return (long)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long)-1; } return (long)PyLong_AsUnsignedLong(x); } else { return (long)PyLong_AsLong(x); } } else { long val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (long)-1; val = __Pyx_PyInt_AsLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) { const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to PY_LONG_LONG"); return (PY_LONG_LONG)-1; } return (PY_LONG_LONG)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to PY_LONG_LONG"); return (PY_LONG_LONG)-1; } return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); } else { return (PY_LONG_LONG)PyLong_AsLongLong(x); } } else { PY_LONG_LONG val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (PY_LONG_LONG)-1; val = __Pyx_PyInt_AsLongLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) { const signed long neg_one = (signed long)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed long"); return (signed long)-1; } return (signed long)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed long"); return (signed long)-1; } return (signed long)PyLong_AsUnsignedLong(x); } else { return (signed long)PyLong_AsLong(x); } } else { signed long val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (signed long)-1; val = __Pyx_PyInt_AsSignedLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) { const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed PY_LONG_LONG"); return (signed PY_LONG_LONG)-1; } return (signed PY_LONG_LONG)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed PY_LONG_LONG"); return (signed PY_LONG_LONG)-1; } return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); } else { return (signed PY_LONG_LONG)PyLong_AsLongLong(x); } } else { signed PY_LONG_LONG val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (signed PY_LONG_LONG)-1; val = __Pyx_PyInt_AsSignedLongLong(tmp); Py_DECREF(tmp); return val; } } static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { char message[200]; PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", ctversion, __Pyx_MODULE_NAME, rtversion); #if PY_VERSION_HEX < 0x02050000 return PyErr_Warn(NULL, message); #else return PyErr_WarnEx(NULL, message, 1); #endif } return 0; } static int __Pyx_SetVtable(PyObject *dict, void *vtable) { #if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0) PyObject *ob = PyCapsule_New(vtable, 0, 0); #else PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); #endif if (!ob) goto bad; if (PyDict_SetItemString(dict, "__pyx_vtable__", ob) < 0) goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } #ifndef __PYX_HAVE_RT_ImportModule #define __PYX_HAVE_RT_ImportModule static PyObject *__Pyx_ImportModule(const char *name) { PyObject *py_name = 0; PyObject *py_module = 0; py_name = __Pyx_PyIdentifier_FromString(name); if (!py_name) goto bad; py_module = PyImport_Import(py_name); Py_DECREF(py_name); return py_module; bad: Py_XDECREF(py_name); return 0; } #endif #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict) { PyObject *py_module = 0; PyObject *result = 0; PyObject *py_name = 0; char warning[200]; Py_ssize_t basicsize; #ifdef Py_LIMITED_API PyObject *py_basicsize; #endif py_module = __Pyx_ImportModule(module_name); if (!py_module) goto bad; py_name = __Pyx_PyIdentifier_FromString(class_name); if (!py_name) goto bad; result = PyObject_GetAttr(py_module, py_name); Py_DECREF(py_name); py_name = 0; Py_DECREF(py_module); py_module = 0; if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%s.%s is not a type object", module_name, class_name); goto bad; } #ifndef Py_LIMITED_API basicsize = ((PyTypeObject *)result)->tp_basicsize; #else py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); if (!py_basicsize) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; #endif if (!strict && (size_t)basicsize > size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility", module_name, class_name); #if PY_VERSION_HEX < 0x02050000 if (PyErr_Warn(NULL, warning) < 0) goto bad; #else if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; #endif } else if ((size_t)basicsize != size) { PyErr_Format(PyExc_ValueError, "%s.%s has the wrong size, try recompiling", module_name, class_name); goto bad; } return (PyTypeObject *)result; bad: Py_XDECREF(py_module); Py_XDECREF(result); return NULL; } #endif static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = (start + end) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static PyCodeObject *__pyx_find_code_object(int code_line) { PyCodeObject* code_object; int pos; if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { return NULL; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { return NULL; } code_object = __pyx_code_cache.entries[pos].code_object; Py_INCREF(code_object); return code_object; } static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = 64; __pyx_code_cache.count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { PyCodeObject* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_DECREF(tmp); return; } if (__pyx_code_cache.count == __pyx_code_cache.max_count) { int new_max = __pyx_code_cache.max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( __pyx_code_cache.entries, new_max*sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = new_max; } for (i=__pyx_code_cache.count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; __pyx_code_cache.count++; Py_INCREF(code_object); } #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyObject *py_srcfile = 0; PyObject *py_funcname = 0; #if PY_MAJOR_VERSION < 3 py_srcfile = PyString_FromString(filename); #else py_srcfile = PyUnicode_FromString(filename); #endif if (!py_srcfile) goto bad; if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); #else py_funcname = PyUnicode_FromString(funcname); #endif } if (!py_funcname) goto bad; py_code = __Pyx_PyCode_New( 0, /*int argcount,*/ 0, /*int kwonlyargcount,*/ 0, /*int nlocals,*/ 0, /*int stacksize,*/ 0, /*int flags,*/ __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ py_line, /*int firstlineno,*/ __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); Py_DECREF(py_funcname); return py_code; bad: Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyObject *py_globals = 0; PyFrameObject *py_frame = 0; py_code = __pyx_find_code_object(c_line ? c_line : py_line); if (!py_code) { py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) goto bad; __pyx_insert_code_object(c_line ? c_line : py_line, py_code); } py_globals = PyModule_GetDict(__pyx_m); if (!py_globals) goto bad; py_frame = PyFrame_New( PyThreadState_GET(), /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ py_globals, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; py_frame->f_lineno = py_line; PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } #else /* Python 3+ has unicode identifiers */ if (t->is_unicode | t->is_str) { if (t->intern) { *t->p = PyUnicode_InternFromString(t->s); } else if (t->encoding) { *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); } else { *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); } } else { *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); } #endif if (!*t->p) return -1; ++t; } return 0; } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) { PyNumberMethods *m; const char *name = NULL; PyObject *res = NULL; #if PY_VERSION_HEX < 0x03000000 if (PyInt_Check(x) || PyLong_Check(x)) #else if (PyLong_Check(x)) #endif return Py_INCREF(x), x; m = Py_TYPE(x)->tp_as_number; #if PY_VERSION_HEX < 0x03000000 if (m && m->nb_int) { name = "int"; res = PyNumber_Int(x); } else if (m && m->nb_long) { name = "long"; res = PyNumber_Long(x); } #else if (m && m->nb_int) { name = "int"; res = PyNumber_Long(x); } #endif if (res) { #if PY_VERSION_HEX < 0x03000000 if (!PyInt_Check(res) && !PyLong_Check(res)) { #else if (!PyLong_Check(res)) { #endif PyErr_Format(PyExc_TypeError, "__%s__ returned non-%s (type %.200s)", name, name, Py_TYPE(res)->tp_name); Py_DECREF(res); return NULL; } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject* x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { #if PY_VERSION_HEX < 0x02050000 if (ival <= LONG_MAX) return PyInt_FromLong((long)ival); else { unsigned char *bytes = (unsigned char *) &ival; int one = 1; int little = (int)*(unsigned char*)&one; return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0); } #else return PyInt_FromSize_t(ival); #endif } static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) { unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x); if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) { return (size_t)-1; } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) { PyErr_SetString(PyExc_OverflowError, "value too large to convert to size_t"); return (size_t)-1; } return (size_t)val; } #endif /* Py_PYTHON_H */ msgpack-python-0.3.0/msgpack/_packer.pyx0000644000076700000240000002214412067345632020720 0ustar inada-nstaff00000000000000# coding: utf-8 #cython: embedsignature=True from cpython cimport * cdef extern from "Python.h": ctypedef char* const_char_ptr "const char*" ctypedef char* const_void_ptr "const void*" ctypedef struct PyObject cdef int PyObject_AsReadBuffer(object o, const_void_ptr* buff, Py_ssize_t* buf_len) except -1 from libc.stdlib cimport * from libc.string cimport * from libc.limits cimport * from msgpack.exceptions import PackValueError cdef extern from "pack.h": struct msgpack_packer: char* buf size_t length size_t buf_size int msgpack_pack_int(msgpack_packer* pk, int d) int msgpack_pack_nil(msgpack_packer* pk) int msgpack_pack_true(msgpack_packer* pk) int msgpack_pack_false(msgpack_packer* pk) int msgpack_pack_long(msgpack_packer* pk, long d) int msgpack_pack_long_long(msgpack_packer* pk, long long d) int msgpack_pack_unsigned_long_long(msgpack_packer* pk, unsigned long long d) int msgpack_pack_float(msgpack_packer* pk, float d) int msgpack_pack_double(msgpack_packer* pk, double d) int msgpack_pack_array(msgpack_packer* pk, size_t l) int msgpack_pack_map(msgpack_packer* pk, size_t l) int msgpack_pack_raw(msgpack_packer* pk, size_t l) int msgpack_pack_raw_body(msgpack_packer* pk, char* body, size_t l) cdef int DEFAULT_RECURSE_LIMIT=511 cdef class Packer(object): """MessagePack Packer usage: packer = Packer() astream.write(packer.pack(a)) astream.write(packer.pack(b)) Packer's constructor has some keyword arguments: * *defaut* - Convert user type to builtin type that Packer supports. See also simplejson's document. * *encoding* - Convert unicode to bytes with this encoding. (default: 'utf-8') * *unicode_erros* - Error handler for encoding unicode. (default: 'strict') * *use_single_float* - Use single precision float type for float. (default: False) * *autoreset* - Reset buffer after each pack and return it's content as `bytes`. (default: True). If set this to false, use `bytes()` to get content and `.reset()` to clear buffer. """ cdef msgpack_packer pk cdef object _default cdef object _bencoding cdef object _berrors cdef char *encoding cdef char *unicode_errors cdef bool use_float cdef bint autoreset def __cinit__(self): cdef int buf_size = 1024*1024 self.pk.buf = malloc(buf_size); if self.pk.buf == NULL: raise MemoryError("Unable to allocate internal buffer.") self.pk.buf_size = buf_size self.pk.length = 0 def __init__(self, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False, bint autoreset=1): self.use_float = use_single_float self.autoreset = autoreset if default is not None: if not PyCallable_Check(default): raise TypeError("default must be a callable.") self._default = default if encoding is None: self.encoding = NULL self.unicode_errors = NULL else: if isinstance(encoding, unicode): self._bencoding = encoding.encode('ascii') else: self._bencoding = encoding self.encoding = PyBytes_AsString(self._bencoding) if isinstance(unicode_errors, unicode): self._berrors = unicode_errors.encode('ascii') else: self._berrors = unicode_errors self.unicode_errors = PyBytes_AsString(self._berrors) def __dealloc__(self): free(self.pk.buf); cdef int _pack(self, object o, int nest_limit=DEFAULT_RECURSE_LIMIT) except -1: cdef long long llval cdef unsigned long long ullval cdef long longval cdef float fval cdef double dval cdef char* rawval cdef int ret cdef dict d if nest_limit < 0: raise PackValueError("recursion limit exceeded.") if o is None: ret = msgpack_pack_nil(&self.pk) elif isinstance(o, bool): if o: ret = msgpack_pack_true(&self.pk) else: ret = msgpack_pack_false(&self.pk) elif PyLong_Check(o): if o > 0: ullval = o ret = msgpack_pack_unsigned_long_long(&self.pk, ullval) else: llval = o ret = msgpack_pack_long_long(&self.pk, llval) elif PyInt_Check(o): longval = o ret = msgpack_pack_long(&self.pk, longval) elif PyFloat_Check(o): if self.use_float: fval = o ret = msgpack_pack_float(&self.pk, fval) else: dval = o ret = msgpack_pack_double(&self.pk, dval) elif PyBytes_Check(o): rawval = o ret = msgpack_pack_raw(&self.pk, len(o)) if ret == 0: ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) elif PyUnicode_Check(o): if not self.encoding: raise TypeError("Can't encode unicode string: no encoding is specified") o = PyUnicode_AsEncodedString(o, self.encoding, self.unicode_errors) rawval = o ret = msgpack_pack_raw(&self.pk, len(o)) if ret == 0: ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) elif PyDict_CheckExact(o): d = o ret = msgpack_pack_map(&self.pk, len(d)) if ret == 0: for k, v in d.iteritems(): ret = self._pack(k, nest_limit-1) if ret != 0: break ret = self._pack(v, nest_limit-1) if ret != 0: break elif PyDict_Check(o): ret = msgpack_pack_map(&self.pk, len(o)) if ret == 0: for k, v in o.items(): ret = self._pack(k, nest_limit-1) if ret != 0: break ret = self._pack(v, nest_limit-1) if ret != 0: break elif PyTuple_Check(o) or PyList_Check(o): ret = msgpack_pack_array(&self.pk, len(o)) if ret == 0: for v in o: ret = self._pack(v, nest_limit-1) if ret != 0: break elif self._default: o = self._default(o) ret = self._pack(o, nest_limit-1) else: raise TypeError("can't serialize %r" % (o,)) return ret cpdef pack(self, object obj): cdef int ret ret = self._pack(obj, DEFAULT_RECURSE_LIMIT) if ret == -1: raise MemoryError elif ret: # should not happen. raise TypeError if self.autoreset: buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) self.pk.length = 0 return buf def pack_array_header(self, size_t size): cdef int ret = msgpack_pack_array(&self.pk, size) if ret == -1: raise MemoryError elif ret: # should not happen raise TypeError if self.autoreset: buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) self.pk.length = 0 return buf def pack_map_header(self, size_t size): cdef int ret = msgpack_pack_map(&self.pk, size) if ret == -1: raise MemoryError elif ret: # should not happen raise TypeError if self.autoreset: buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) self.pk.length = 0 return buf def pack_map_pairs(self, object pairs): """ Pack *pairs* as msgpack map type. *pairs* should sequence of pair. (`len(pairs)` and `for k, v in *pairs*:` should be supported.) """ cdef int ret = msgpack_pack_map(&self.pk, len(pairs)) if ret == 0: for k, v in pairs: ret = self._pack(k) if ret != 0: break ret = self._pack(v) if ret != 0: break if ret == -1: raise MemoryError elif ret: # should not happen raise TypeError if self.autoreset: buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) self.pk.length = 0 return buf def reset(self): """Clear internal buffer.""" self.pk.length = 0 def bytes(self): """Return buffer content.""" return PyBytes_FromStringAndSize(self.pk.buf, self.pk.length) def pack(object o, object stream, default=None, encoding='utf-8', unicode_errors='strict'): """ pack an object `o` and write it to stream).""" packer = Packer(default=default, encoding=encoding, unicode_errors=unicode_errors) stream.write(packer.pack(o)) def packb(object o, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False): """ pack o and return packed bytes.""" packer = Packer(default=default, encoding=encoding, unicode_errors=unicode_errors, use_single_float=use_single_float) return packer.pack(o) msgpack-python-0.3.0/msgpack/_unpacker.cpp0000644000076700000240000115323112107551405021220 0ustar inada-nstaff00000000000000/* Generated by Cython 0.18 on Sat Feb 16 09:29:56 2013 */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02040000 #error Cython requires Python 2.4+. #else #include /* For offsetof */ #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #ifdef PYPY_VERSION #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #endif #if PY_VERSION_HEX < 0x02050000 typedef int Py_ssize_t; #define PY_SSIZE_T_MAX INT_MAX #define PY_SSIZE_T_MIN INT_MIN #define PY_FORMAT_SIZE_T "" #define CYTHON_FORMAT_SSIZE_T "" #define PyInt_FromSsize_t(z) PyInt_FromLong(z) #define PyInt_AsSsize_t(o) __Pyx_PyInt_AsInt(o) #define PyNumber_Index(o) ((PyNumber_Check(o) && !PyFloat_Check(o)) ? PyNumber_Int(o) : \ (PyErr_Format(PyExc_TypeError, \ "expected index value, got %.200s", Py_TYPE(o)->tp_name), \ (PyObject*)0)) #define __Pyx_PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && \ !PyComplex_Check(o)) #define PyIndex_Check __Pyx_PyIndex_Check #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message) #define __PYX_BUILD_PY_SSIZE_T "i" #else #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #define __Pyx_PyIndex_Check PyIndex_Check #endif #if PY_VERSION_HEX < 0x02060000 #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt) #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) #define Py_SIZE(ob) (((PyVarObject*)(ob))->ob_size) #define PyVarObject_HEAD_INIT(type, size) \ PyObject_HEAD_INIT(type) size, #define PyType_Modified(t) typedef struct { void *buf; PyObject *obj; Py_ssize_t len; Py_ssize_t itemsize; int readonly; int ndim; char *format; Py_ssize_t *shape; Py_ssize_t *strides; Py_ssize_t *suboffsets; void *internal; } Py_buffer; #define PyBUF_SIMPLE 0 #define PyBUF_WRITABLE 0x0001 #define PyBUF_FORMAT 0x0004 #define PyBUF_ND 0x0008 #define PyBUF_STRIDES (0x0010 | PyBUF_ND) #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES) #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES) #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES) #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES) #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_FORMAT | PyBUF_WRITABLE) #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_FORMAT | PyBUF_WRITABLE) typedef int (*getbufferproc)(PyObject *, Py_buffer *, int); typedef void (*releasebufferproc)(PyObject *, Py_buffer *); #endif #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ PyCode_New(a, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #if PY_MAJOR_VERSION < 3 && PY_MINOR_VERSION < 6 #define PyUnicode_FromString(s) PyUnicode_Decode(s, strlen(s), "UTF-8", "strict") #endif #if PY_MAJOR_VERSION >= 3 #define Py_TPFLAGS_CHECKTYPES 0 #define Py_TPFLAGS_HAVE_INDEX 0 #endif #if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3) #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ? \ 0 : _PyUnicode_Ready((PyObject *)(op))) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #else #define CYTHON_PEP393_ENABLED 0 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) #define __Pyx_PyUnicode_READ(k, d, i) ((k=k), (Py_UCS4)(((Py_UNICODE*)d)[i])) #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #endif #if PY_VERSION_HEX < 0x02060000 #define PyBytesObject PyStringObject #define PyBytes_Type PyString_Type #define PyBytes_Check PyString_Check #define PyBytes_CheckExact PyString_CheckExact #define PyBytes_FromString PyString_FromString #define PyBytes_FromStringAndSize PyString_FromStringAndSize #define PyBytes_FromFormat PyString_FromFormat #define PyBytes_DecodeEscape PyString_DecodeEscape #define PyBytes_AsString PyString_AsString #define PyBytes_AsStringAndSize PyString_AsStringAndSize #define PyBytes_Size PyString_Size #define PyBytes_AS_STRING PyString_AS_STRING #define PyBytes_GET_SIZE PyString_GET_SIZE #define PyBytes_Repr PyString_Repr #define PyBytes_Concat PyString_Concat #define PyBytes_ConcatAndDel PyString_ConcatAndDel #endif #if PY_VERSION_HEX < 0x02060000 #define PySet_Check(obj) PyObject_TypeCheck(obj, &PySet_Type) #define PyFrozenSet_Check(obj) PyObject_TypeCheck(obj, &PyFrozenSet_Type) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_VERSION_HEX < 0x03020000 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t PyInt_AsLong #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300) #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b) #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value) #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b) #else #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \ (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0))) #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \ (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1))) #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \ (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \ (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \ (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1))) #endif #if PY_MAJOR_VERSION >= 3 #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func)) #endif #if PY_VERSION_HEX < 0x02050000 #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),((char *)(n))) #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a)) #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),((char *)(n))) #else #define __Pyx_GetAttrString(o,n) PyObject_GetAttrString((o),(n)) #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a)) #define __Pyx_DelAttrString(o,n) PyObject_DelAttrString((o),(n)) #endif #if PY_VERSION_HEX < 0x02050000 #define __Pyx_NAMESTR(n) ((char *)(n)) #define __Pyx_DOCSTR(n) ((char *)(n)) #else #define __Pyx_NAMESTR(n) (n) #define __Pyx_DOCSTR(n) (n) #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES #endif #include #define __PYX_HAVE__msgpack___unpacker #define __PYX_HAVE_API__msgpack___unpacker #include "string.h" #include "stdio.h" #include "pythread.h" #include "stdlib.h" #include "limits.h" #include "unpack.h" #ifdef _OPENMP #include #endif /* _OPENMP */ #ifdef PYREX_WITHOUT_ASSERTIONS #define CYTHON_WITHOUT_ASSERTIONS #endif #ifndef CYTHON_INLINE #if defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif typedef struct {PyObject **p; char *s; const long n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/ #define __Pyx_PyBytes_FromUString(s) PyBytes_FromString((char*)s) #define __Pyx_PyBytes_AsUString(s) ((unsigned char*) PyBytes_AsString(s)) #define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None) #define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False)) static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x); static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject*); #if CYTHON_COMPILING_IN_CPYTHON #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #endif #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) #ifdef __GNUC__ /* Test for GCC > 2.95 */ #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* __GNUC__ > 2 ... */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ > 2 ... */ #else /* __GNUC__ */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static PyObject *__pyx_m; static PyObject *__pyx_b; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm= __FILE__; static const char *__pyx_filename; static const char *__pyx_f[] = { "_unpacker.pyx", "type.pxd", "bool.pxd", "complex.pxd", }; /*--- Type declarations ---*/ struct __pyx_obj_7msgpack_9_unpacker_Unpacker; struct __pyx_opt_args_7msgpack_9_unpacker_8Unpacker__unpack; /* "msgpack/_unpacker.pyx":300 * self.file_like = None * * cdef object _unpack(self, execute_fn execute, object write_bytes, bint iter=0): # <<<<<<<<<<<<<< * cdef int ret * cdef object obj */ #line 300 "msgpack/_unpacker.pyx" struct __pyx_opt_args_7msgpack_9_unpacker_8Unpacker__unpack { #line 300 "msgpack/_unpacker.pyx" int __pyx_n; #line 300 "msgpack/_unpacker.pyx" int iter; #line 300 "msgpack/_unpacker.pyx" }; /* "msgpack/_unpacker.pyx":136 * * * cdef class Unpacker(object): # <<<<<<<<<<<<<< * """ * Streaming unpacker. */ #line 136 "msgpack/_unpacker.pyx" struct __pyx_obj_7msgpack_9_unpacker_Unpacker { #line 136 "msgpack/_unpacker.pyx" PyObject_HEAD #line 136 "msgpack/_unpacker.pyx" struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker *__pyx_vtab; #line 136 "msgpack/_unpacker.pyx" template_context ctx; #line 136 "msgpack/_unpacker.pyx" char *buf; #line 136 "msgpack/_unpacker.pyx" size_t buf_size; #line 136 "msgpack/_unpacker.pyx" size_t buf_head; #line 136 "msgpack/_unpacker.pyx" size_t buf_tail; #line 136 "msgpack/_unpacker.pyx" PyObject *file_like; #line 136 "msgpack/_unpacker.pyx" PyObject *file_like_read; #line 136 "msgpack/_unpacker.pyx" Py_ssize_t read_size; #line 136 "msgpack/_unpacker.pyx" PyObject *object_hook; #line 136 "msgpack/_unpacker.pyx" PyObject *encoding; #line 136 "msgpack/_unpacker.pyx" PyObject *unicode_errors; #line 136 "msgpack/_unpacker.pyx" size_t max_buffer_size; #line 136 "msgpack/_unpacker.pyx" }; #line 136 "msgpack/_unpacker.pyx" #line 136 "msgpack/_unpacker.pyx" #line 136 "msgpack/_unpacker.pyx" #line 136 "msgpack/_unpacker.pyx" struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker { #line 136 "msgpack/_unpacker.pyx" PyObject *(*append_buffer)(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *, void *, Py_ssize_t); #line 136 "msgpack/_unpacker.pyx" PyObject *(*read_from_file)(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *); #line 136 "msgpack/_unpacker.pyx" PyObject *(*_unpack)(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *, execute_fn, PyObject *, struct __pyx_opt_args_7msgpack_9_unpacker_8Unpacker__unpack *__pyx_optional_args); #line 136 "msgpack/_unpacker.pyx" }; #line 136 "msgpack/_unpacker.pyx" static struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker *__pyx_vtabptr_7msgpack_9_unpacker_Unpacker; #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, int); void (*DECREF)(void*, PyObject*, int); void (*GOTREF)(void*, PyObject*, int); void (*GIVEREF)(void*, PyObject*, int); void* (*SetupContext)(const char*, int, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/ #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #ifdef WITH_THREAD #define __Pyx_RefNannySetupContext(name, acquire_gil) \ if (acquire_gil) { \ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ PyGILState_Release(__pyx_gilstate_save); \ } else { \ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \ } #else #define __Pyx_RefNannySetupContext(name, acquire_gil) \ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) #endif #define __Pyx_RefNannyFinishContext() \ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif /* CYTHON_REFNANNY */ #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /*proto*/ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \ PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \ const char* function_name); /*proto*/ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/ static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /*proto*/ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /*proto*/ static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name); static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject *); static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject *); static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject *); static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject *); static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject *); static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject *); static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject *); static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject *); static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject *); static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject *); static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject *); static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject *); static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject *); static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject *); static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *); static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *); static int __Pyx_check_binary_version(void); static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/ #if !defined(__Pyx_PyIdentifier_FromString) #if PY_MAJOR_VERSION < 3 #define __Pyx_PyIdentifier_FromString(s) PyString_FromString(s) #else #define __Pyx_PyIdentifier_FromString(s) PyUnicode_FromString(s) #endif #endif static PyObject *__Pyx_ImportModule(const char *name); /*proto*/ static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict); /*proto*/ typedef struct { int code_line; PyCodeObject* code_object; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; }; static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static PyCodeObject *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); /*proto*/ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ /* Module declarations from 'cpython.version' */ /* Module declarations from 'cpython.ref' */ /* Module declarations from 'cpython.exc' */ /* Module declarations from 'cpython.module' */ /* Module declarations from 'cpython.mem' */ /* Module declarations from 'cpython.tuple' */ /* Module declarations from 'cpython.list' */ /* Module declarations from 'libc.string' */ /* Module declarations from 'libc.stdio' */ /* Module declarations from 'cpython.object' */ /* Module declarations from 'cpython.sequence' */ /* Module declarations from 'cpython.mapping' */ /* Module declarations from 'cpython.iterator' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.type' */ static PyTypeObject *__pyx_ptype_7cpython_4type_type = 0; /* Module declarations from 'cpython.number' */ /* Module declarations from 'cpython.int' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.bool' */ static PyTypeObject *__pyx_ptype_7cpython_4bool_bool = 0; /* Module declarations from 'cpython.long' */ /* Module declarations from 'cpython.float' */ /* Module declarations from '__builtin__' */ /* Module declarations from 'cpython.complex' */ static PyTypeObject *__pyx_ptype_7cpython_7complex_complex = 0; /* Module declarations from 'cpython.string' */ /* Module declarations from 'cpython.unicode' */ /* Module declarations from 'cpython.dict' */ /* Module declarations from 'cpython.instance' */ /* Module declarations from 'cpython.function' */ /* Module declarations from 'cpython.method' */ /* Module declarations from 'cpython.weakref' */ /* Module declarations from 'cpython.getargs' */ /* Module declarations from 'cpython.pythread' */ /* Module declarations from 'cpython.pystate' */ /* Module declarations from 'cpython.cobject' */ /* Module declarations from 'cpython.oldbuffer' */ /* Module declarations from 'cpython.set' */ /* Module declarations from 'cpython.buffer' */ /* Module declarations from 'cpython.bytes' */ /* Module declarations from 'cpython.pycapsule' */ /* Module declarations from 'cpython' */ /* Module declarations from 'libc.stdlib' */ /* Module declarations from 'libc.limits' */ /* Module declarations from 'msgpack._unpacker' */ static PyTypeObject *__pyx_ptype_7msgpack_9_unpacker_Unpacker = 0; static CYTHON_INLINE PyObject *__pyx_f_7msgpack_9_unpacker_init_ctx(template_context *, PyObject *, PyObject *, PyObject *, int, char *, char *); /*proto*/ #define __Pyx_MODULE_NAME "msgpack._unpacker" int __pyx_module_is_main_msgpack___unpacker = 0; /* Implementation of 'msgpack._unpacker' */ static PyObject *__pyx_builtin_ValueError; static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_MemoryError; static PyObject *__pyx_builtin_AssertionError; static PyObject *__pyx_builtin_StopIteration; static PyObject *__pyx_pf_7msgpack_9_unpacker_unpackb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_packed, PyObject *__pyx_v_object_hook, PyObject *__pyx_v_list_hook, int __pyx_v_use_list, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors, PyObject *__pyx_v_object_pairs_hook); /* proto */ static PyObject *__pyx_pf_7msgpack_9_unpacker_2unpack(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_stream, PyObject *__pyx_v_object_hook, PyObject *__pyx_v_list_hook, int __pyx_v_use_list, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors, PyObject *__pyx_v_object_pairs_hook); /* proto */ static int __pyx_pf_7msgpack_9_unpacker_8Unpacker___cinit__(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self); /* proto */ static void __pyx_pf_7msgpack_9_unpacker_8Unpacker_2__dealloc__(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self); /* proto */ static int __pyx_pf_7msgpack_9_unpacker_8Unpacker_4__init__(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_file_like, Py_ssize_t __pyx_v_read_size, int __pyx_v_use_list, PyObject *__pyx_v_object_hook, PyObject *__pyx_v_object_pairs_hook, PyObject *__pyx_v_list_hook, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors, int __pyx_v_max_buffer_size); /* proto */ static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_6feed(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_next_bytes); /* proto */ static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_8read_bytes(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, Py_ssize_t __pyx_v_nbytes); /* proto */ static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_10unpack(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_write_bytes); /* proto */ static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_12skip(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_write_bytes); /* proto */ static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_14read_array_header(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_write_bytes); /* proto */ static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_16read_map_header(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_write_bytes); /* proto */ static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_18__iter__(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_20__next__(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self); /* proto */ static char __pyx_k_1[] = "object_pairs_hook and object_hook are mutually exclusive."; static char __pyx_k_3[] = "object_hook must be a callable."; static char __pyx_k_5[] = "object_pairs_hook must be a callable."; static char __pyx_k_7[] = "list_hook must be a callable."; static char __pyx_k_11[] = "Unpack failed: error = %d"; static char __pyx_k_12[] = "`file_like.read` must be a callable."; static char __pyx_k_14[] = "read_size should be less or equal to max_buffer_size"; static char __pyx_k_16[] = "Unable to allocate internal buffer."; static char __pyx_k_20[] = "unpacker.feed() is not be able to use with `file_like`."; static char __pyx_k_22[] = "Unable to enlarge internal buffer."; static char __pyx_k_24[] = "No more data to unpack."; static char __pyx_k_27[] = "msgpack.exceptions"; static char __pyx_k_30[] = "/Users/inada-n/work/msgpack-python/msgpack/_unpacker.pyx"; static char __pyx_k_31[] = "msgpack._unpacker"; static char __pyx_k__buf[] = "buf"; static char __pyx_k__ctx[] = "ctx"; static char __pyx_k__obj[] = "obj"; static char __pyx_k__off[] = "off"; static char __pyx_k__ret[] = "ret"; static char __pyx_k__cenc[] = "cenc"; static char __pyx_k__cerr[] = "cerr"; static char __pyx_k__read[] = "read"; static char __pyx_k__ascii[] = "ascii"; static char __pyx_k__encode[] = "encode"; static char __pyx_k__packed[] = "packed"; static char __pyx_k__stream[] = "stream"; static char __pyx_k__strict[] = "strict"; static char __pyx_k__unpack[] = "unpack"; static char __pyx_k__buf_len[] = "buf_len"; static char __pyx_k__unpackb[] = "unpackb"; static char __pyx_k____main__[] = "__main__"; static char __pyx_k____test__[] = "__test__"; static char __pyx_k__encoding[] = "encoding"; static char __pyx_k__use_list[] = "use_list"; static char __pyx_k__ExtraData[] = "ExtraData"; static char __pyx_k__OutOfData[] = "OutOfData"; static char __pyx_k__TypeError[] = "TypeError"; static char __pyx_k__file_like[] = "file_like"; static char __pyx_k__list_hook[] = "list_hook"; static char __pyx_k__read_size[] = "read_size"; static char __pyx_k__BufferFull[] = "BufferFull"; static char __pyx_k__ValueError[] = "ValueError"; static char __pyx_k__MemoryError[] = "MemoryError"; static char __pyx_k__object_hook[] = "object_hook"; static char __pyx_k__write_bytes[] = "write_bytes"; static char __pyx_k__StopIteration[] = "StopIteration"; static char __pyx_k__AssertionError[] = "AssertionError"; static char __pyx_k__unicode_errors[] = "unicode_errors"; static char __pyx_k__max_buffer_size[] = "max_buffer_size"; static char __pyx_k__UnpackValueError[] = "UnpackValueError"; static char __pyx_k__object_pairs_hook[] = "object_pairs_hook"; static PyObject *__pyx_kp_s_1; static PyObject *__pyx_kp_s_11; static PyObject *__pyx_kp_s_12; static PyObject *__pyx_kp_s_14; static PyObject *__pyx_kp_s_16; static PyObject *__pyx_kp_s_20; static PyObject *__pyx_kp_s_22; static PyObject *__pyx_kp_s_24; static PyObject *__pyx_n_s_27; static PyObject *__pyx_kp_s_3; static PyObject *__pyx_kp_s_30; static PyObject *__pyx_n_s_31; static PyObject *__pyx_kp_s_5; static PyObject *__pyx_kp_s_7; static PyObject *__pyx_n_s__AssertionError; static PyObject *__pyx_n_s__BufferFull; static PyObject *__pyx_n_s__ExtraData; static PyObject *__pyx_n_s__MemoryError; static PyObject *__pyx_n_s__OutOfData; static PyObject *__pyx_n_s__StopIteration; static PyObject *__pyx_n_s__TypeError; static PyObject *__pyx_n_s__UnpackValueError; static PyObject *__pyx_n_s__ValueError; static PyObject *__pyx_n_s____main__; static PyObject *__pyx_n_s____test__; static PyObject *__pyx_n_s__ascii; static PyObject *__pyx_n_s__buf; static PyObject *__pyx_n_s__buf_len; static PyObject *__pyx_n_s__cenc; static PyObject *__pyx_n_s__cerr; static PyObject *__pyx_n_s__ctx; static PyObject *__pyx_n_s__encode; static PyObject *__pyx_n_s__encoding; static PyObject *__pyx_n_s__file_like; static PyObject *__pyx_n_s__list_hook; static PyObject *__pyx_n_s__max_buffer_size; static PyObject *__pyx_n_s__obj; static PyObject *__pyx_n_s__object_hook; static PyObject *__pyx_n_s__object_pairs_hook; static PyObject *__pyx_n_s__off; static PyObject *__pyx_n_s__packed; static PyObject *__pyx_n_s__read; static PyObject *__pyx_n_s__read_size; static PyObject *__pyx_n_s__ret; static PyObject *__pyx_n_s__stream; static PyObject *__pyx_n_s__strict; static PyObject *__pyx_n_s__unicode_errors; static PyObject *__pyx_n_s__unpack; static PyObject *__pyx_n_s__unpackb; static PyObject *__pyx_n_s__use_list; static PyObject *__pyx_n_s__write_bytes; static PyObject *__pyx_k_tuple_2; static PyObject *__pyx_k_tuple_4; static PyObject *__pyx_k_tuple_6; static PyObject *__pyx_k_tuple_8; static PyObject *__pyx_k_tuple_9; static PyObject *__pyx_k_tuple_10; static PyObject *__pyx_k_tuple_13; static PyObject *__pyx_k_tuple_15; static PyObject *__pyx_k_tuple_17; static PyObject *__pyx_k_tuple_18; static PyObject *__pyx_k_tuple_19; static PyObject *__pyx_k_tuple_21; static PyObject *__pyx_k_tuple_23; static PyObject *__pyx_k_tuple_25; static PyObject *__pyx_k_tuple_26; static PyObject *__pyx_k_tuple_28; static PyObject *__pyx_k_tuple_32; static PyObject *__pyx_k_codeobj_29; static PyObject *__pyx_k_codeobj_33; /* "msgpack/_unpacker.pyx":49 * object template_data(template_context* ctx) * * cdef inline init_ctx(template_context *ctx, # <<<<<<<<<<<<<< * object object_hook, object object_pairs_hook, object list_hook, * bint use_list, char* encoding, char* unicode_errors): */ #line 49 "msgpack/_unpacker.pyx" #line 49 "msgpack/_unpacker.pyx" static CYTHON_INLINE PyObject *__pyx_f_7msgpack_9_unpacker_init_ctx(template_context *__pyx_v_ctx, PyObject *__pyx_v_object_hook, PyObject *__pyx_v_object_pairs_hook, PyObject *__pyx_v_list_hook, int __pyx_v_use_list, char *__pyx_v_encoding, char *__pyx_v_unicode_errors) { #line 49 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 49 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("init_ctx", 0); /* "msgpack/_unpacker.pyx":52 * object object_hook, object object_pairs_hook, object list_hook, * bint use_list, char* encoding, char* unicode_errors): * template_init(ctx) # <<<<<<<<<<<<<< * ctx.user.use_list = use_list * ctx.user.object_hook = ctx.user.list_hook = NULL */ #line 52 "msgpack/_unpacker.pyx" template_init(__pyx_v_ctx); /* "msgpack/_unpacker.pyx":53 * bint use_list, char* encoding, char* unicode_errors): * template_init(ctx) * ctx.user.use_list = use_list # <<<<<<<<<<<<<< * ctx.user.object_hook = ctx.user.list_hook = NULL * */ #line 53 "msgpack/_unpacker.pyx" __pyx_v_ctx->user.use_list = __pyx_v_use_list; /* "msgpack/_unpacker.pyx":54 * template_init(ctx) * ctx.user.use_list = use_list * ctx.user.object_hook = ctx.user.list_hook = NULL # <<<<<<<<<<<<<< * * if object_hook is not None and object_pairs_hook is not None: */ #line 54 "msgpack/_unpacker.pyx" __pyx_v_ctx->user.object_hook = ((PyObject *)NULL); #line 54 "msgpack/_unpacker.pyx" __pyx_v_ctx->user.list_hook = ((PyObject *)NULL); /* "msgpack/_unpacker.pyx":56 * ctx.user.object_hook = ctx.user.list_hook = NULL * * if object_hook is not None and object_pairs_hook is not None: # <<<<<<<<<<<<<< * raise ValueError("object_pairs_hook and object_hook are mutually exclusive.") * */ #line 56 "msgpack/_unpacker.pyx" __pyx_t_1 = (__pyx_v_object_hook != Py_None); #line 56 "msgpack/_unpacker.pyx" if (__pyx_t_1) { #line 56 "msgpack/_unpacker.pyx" __pyx_t_2 = (__pyx_v_object_pairs_hook != Py_None); #line 56 "msgpack/_unpacker.pyx" __pyx_t_3 = __pyx_t_2; #line 56 "msgpack/_unpacker.pyx" } else { #line 56 "msgpack/_unpacker.pyx" __pyx_t_3 = __pyx_t_1; #line 56 "msgpack/_unpacker.pyx" } #line 56 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":57 * * if object_hook is not None and object_pairs_hook is not None: * raise ValueError("object_pairs_hook and object_hook are mutually exclusive.") # <<<<<<<<<<<<<< * * if object_hook is not None: */ #line 57 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 57 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 57 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_4, 0, 0, 0); #line 57 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 57 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 57 "msgpack/_unpacker.pyx" goto __pyx_L3; #line 57 "msgpack/_unpacker.pyx" } #line 57 "msgpack/_unpacker.pyx" __pyx_L3:; /* "msgpack/_unpacker.pyx":59 * raise ValueError("object_pairs_hook and object_hook are mutually exclusive.") * * if object_hook is not None: # <<<<<<<<<<<<<< * if not PyCallable_Check(object_hook): * raise TypeError("object_hook must be a callable.") */ #line 59 "msgpack/_unpacker.pyx" __pyx_t_3 = (__pyx_v_object_hook != Py_None); #line 59 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":60 * * if object_hook is not None: * if not PyCallable_Check(object_hook): # <<<<<<<<<<<<<< * raise TypeError("object_hook must be a callable.") * ctx.user.object_hook = object_hook */ #line 60 "msgpack/_unpacker.pyx" __pyx_t_3 = (!PyCallable_Check(__pyx_v_object_hook)); #line 60 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":61 * if object_hook is not None: * if not PyCallable_Check(object_hook): * raise TypeError("object_hook must be a callable.") # <<<<<<<<<<<<<< * ctx.user.object_hook = object_hook * */ #line 61 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_4), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 61 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 61 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_4, 0, 0, 0); #line 61 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 61 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 61 "msgpack/_unpacker.pyx" goto __pyx_L5; #line 61 "msgpack/_unpacker.pyx" } #line 61 "msgpack/_unpacker.pyx" __pyx_L5:; /* "msgpack/_unpacker.pyx":62 * if not PyCallable_Check(object_hook): * raise TypeError("object_hook must be a callable.") * ctx.user.object_hook = object_hook # <<<<<<<<<<<<<< * * if object_pairs_hook is None: */ #line 62 "msgpack/_unpacker.pyx" __pyx_v_ctx->user.object_hook = ((PyObject *)__pyx_v_object_hook); #line 62 "msgpack/_unpacker.pyx" goto __pyx_L4; #line 62 "msgpack/_unpacker.pyx" } #line 62 "msgpack/_unpacker.pyx" __pyx_L4:; /* "msgpack/_unpacker.pyx":64 * ctx.user.object_hook = object_hook * * if object_pairs_hook is None: # <<<<<<<<<<<<<< * ctx.user.has_pairs_hook = False * else: */ #line 64 "msgpack/_unpacker.pyx" __pyx_t_3 = (__pyx_v_object_pairs_hook == Py_None); #line 64 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":65 * * if object_pairs_hook is None: * ctx.user.has_pairs_hook = False # <<<<<<<<<<<<<< * else: * if not PyCallable_Check(object_pairs_hook): */ #line 65 "msgpack/_unpacker.pyx" __pyx_v_ctx->user.has_pairs_hook = 0; #line 65 "msgpack/_unpacker.pyx" goto __pyx_L6; #line 65 "msgpack/_unpacker.pyx" } #line 65 "msgpack/_unpacker.pyx" /*else*/ { /* "msgpack/_unpacker.pyx":67 * ctx.user.has_pairs_hook = False * else: * if not PyCallable_Check(object_pairs_hook): # <<<<<<<<<<<<<< * raise TypeError("object_pairs_hook must be a callable.") * ctx.user.object_hook = object_pairs_hook */ #line 67 "msgpack/_unpacker.pyx" __pyx_t_3 = (!PyCallable_Check(__pyx_v_object_pairs_hook)); #line 67 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":68 * else: * if not PyCallable_Check(object_pairs_hook): * raise TypeError("object_pairs_hook must be a callable.") # <<<<<<<<<<<<<< * ctx.user.object_hook = object_pairs_hook * ctx.user.has_pairs_hook = True */ #line 68 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 68 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 68 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_4, 0, 0, 0); #line 68 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 68 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 68 "msgpack/_unpacker.pyx" goto __pyx_L7; #line 68 "msgpack/_unpacker.pyx" } #line 68 "msgpack/_unpacker.pyx" __pyx_L7:; /* "msgpack/_unpacker.pyx":69 * if not PyCallable_Check(object_pairs_hook): * raise TypeError("object_pairs_hook must be a callable.") * ctx.user.object_hook = object_pairs_hook # <<<<<<<<<<<<<< * ctx.user.has_pairs_hook = True * */ #line 69 "msgpack/_unpacker.pyx" __pyx_v_ctx->user.object_hook = ((PyObject *)__pyx_v_object_pairs_hook); /* "msgpack/_unpacker.pyx":70 * raise TypeError("object_pairs_hook must be a callable.") * ctx.user.object_hook = object_pairs_hook * ctx.user.has_pairs_hook = True # <<<<<<<<<<<<<< * * if list_hook is not None: */ #line 70 "msgpack/_unpacker.pyx" __pyx_v_ctx->user.has_pairs_hook = 1; #line 70 "msgpack/_unpacker.pyx" } #line 70 "msgpack/_unpacker.pyx" __pyx_L6:; /* "msgpack/_unpacker.pyx":72 * ctx.user.has_pairs_hook = True * * if list_hook is not None: # <<<<<<<<<<<<<< * if not PyCallable_Check(list_hook): * raise TypeError("list_hook must be a callable.") */ #line 72 "msgpack/_unpacker.pyx" __pyx_t_3 = (__pyx_v_list_hook != Py_None); #line 72 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":73 * * if list_hook is not None: * if not PyCallable_Check(list_hook): # <<<<<<<<<<<<<< * raise TypeError("list_hook must be a callable.") * ctx.user.list_hook = list_hook */ #line 73 "msgpack/_unpacker.pyx" __pyx_t_3 = (!PyCallable_Check(__pyx_v_list_hook)); #line 73 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":74 * if list_hook is not None: * if not PyCallable_Check(list_hook): * raise TypeError("list_hook must be a callable.") # <<<<<<<<<<<<<< * ctx.user.list_hook = list_hook * */ #line 74 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_8), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 74 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 74 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_4, 0, 0, 0); #line 74 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 74 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 74 "msgpack/_unpacker.pyx" goto __pyx_L9; #line 74 "msgpack/_unpacker.pyx" } #line 74 "msgpack/_unpacker.pyx" __pyx_L9:; /* "msgpack/_unpacker.pyx":75 * if not PyCallable_Check(list_hook): * raise TypeError("list_hook must be a callable.") * ctx.user.list_hook = list_hook # <<<<<<<<<<<<<< * * ctx.user.encoding = encoding */ #line 75 "msgpack/_unpacker.pyx" __pyx_v_ctx->user.list_hook = ((PyObject *)__pyx_v_list_hook); #line 75 "msgpack/_unpacker.pyx" goto __pyx_L8; #line 75 "msgpack/_unpacker.pyx" } #line 75 "msgpack/_unpacker.pyx" __pyx_L8:; /* "msgpack/_unpacker.pyx":77 * ctx.user.list_hook = list_hook * * ctx.user.encoding = encoding # <<<<<<<<<<<<<< * ctx.user.unicode_errors = unicode_errors * */ #line 77 "msgpack/_unpacker.pyx" __pyx_v_ctx->user.encoding = __pyx_v_encoding; /* "msgpack/_unpacker.pyx":78 * * ctx.user.encoding = encoding * ctx.user.unicode_errors = unicode_errors # <<<<<<<<<<<<<< * * def unpackb(object packed, object object_hook=None, object list_hook=None, */ #line 78 "msgpack/_unpacker.pyx" __pyx_v_ctx->user.unicode_errors = __pyx_v_unicode_errors; #line 78 "msgpack/_unpacker.pyx" #line 78 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 78 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 78 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 78 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_4); #line 78 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.init_ctx", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 78 "msgpack/_unpacker.pyx" __pyx_r = 0; #line 78 "msgpack/_unpacker.pyx" __pyx_L0:; #line 78 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 78 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 78 "msgpack/_unpacker.pyx" return __pyx_r; #line 78 "msgpack/_unpacker.pyx" } #line 78 "msgpack/_unpacker.pyx" #line 78 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 78 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_1unpackb(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ #line 78 "msgpack/_unpacker.pyx" static char __pyx_doc_7msgpack_9_unpacker_unpackb[] = "unpackb(packed, object_hook=None, list_hook=None, int use_list=1, encoding=None, unicode_errors='strict', object_pairs_hook=None)\nUnpack packed_bytes to object. Returns an unpacked object.\n\n Raises `ValueError` when `packed` contains extra bytes.\n "; static PyMethodDef __pyx_mdef_7msgpack_9_unpacker_1unpackb = #line 78 "msgpack/_unpacker.pyx" {__Pyx_NAMESTR("unpackb"), (PyCFunction)__pyx_pw_7msgpack_9_unpacker_1unpackb, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_7msgpack_9_unpacker_unpackb)}; #line 78 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_1unpackb(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_packed = 0 #line 78 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_object_hook = 0 #line 78 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_list_hook = 0 #line 78 "msgpack/_unpacker.pyx" ; int __pyx_v_use_list #line 78 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_encoding = 0 #line 78 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_unicode_errors = 0 #line 78 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_object_pairs_hook = 0 #line 78 "msgpack/_unpacker.pyx" ; #line 78 "msgpack/_unpacker.pyx" PyObject *__pyx_r = 0; #line 78 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 78 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("unpackb (wrapper)", 0); #line 78 "msgpack/_unpacker.pyx" { #line 78 "msgpack/_unpacker.pyx" static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__packed,&__pyx_n_s__object_hook,&__pyx_n_s__list_hook,&__pyx_n_s__use_list,&__pyx_n_s__encoding,&__pyx_n_s__unicode_errors,&__pyx_n_s__object_pairs_hook,0}; #line 78 "msgpack/_unpacker.pyx" PyObject* values[7] = {0,0,0,0,0,0,0}; /* "msgpack/_unpacker.pyx":80 * ctx.user.unicode_errors = unicode_errors * * def unpackb(object packed, object object_hook=None, object list_hook=None, # <<<<<<<<<<<<<< * bint use_list=1, encoding=None, unicode_errors="strict", * object_pairs_hook=None, */ #line 80 "msgpack/_unpacker.pyx" values[1] = ((PyObject *)Py_None); #line 80 "msgpack/_unpacker.pyx" values[2] = ((PyObject *)Py_None); /* "msgpack/_unpacker.pyx":81 * * def unpackb(object packed, object object_hook=None, object list_hook=None, * bint use_list=1, encoding=None, unicode_errors="strict", # <<<<<<<<<<<<<< * object_pairs_hook=None, * ): */ #line 81 "msgpack/_unpacker.pyx" values[4] = ((PyObject *)Py_None); #line 81 "msgpack/_unpacker.pyx" values[5] = ((PyObject *)__pyx_n_s__strict); /* "msgpack/_unpacker.pyx":82 * def unpackb(object packed, object object_hook=None, object list_hook=None, * bint use_list=1, encoding=None, unicode_errors="strict", * object_pairs_hook=None, # <<<<<<<<<<<<<< * ): * """Unpack packed_bytes to object. Returns an unpacked object. */ #line 82 "msgpack/_unpacker.pyx" values[6] = ((PyObject *)Py_None); #line 82 "msgpack/_unpacker.pyx" if (unlikely(__pyx_kwds)) { #line 82 "msgpack/_unpacker.pyx" Py_ssize_t kw_args; #line 82 "msgpack/_unpacker.pyx" const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); #line 82 "msgpack/_unpacker.pyx" switch (pos_args) { case 7: #line 82 "msgpack/_unpacker.pyx" values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: #line 82 "msgpack/_unpacker.pyx" values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: #line 82 "msgpack/_unpacker.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 82 "msgpack/_unpacker.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 82 "msgpack/_unpacker.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 82 "msgpack/_unpacker.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: #line 82 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 82 "msgpack/_unpacker.pyx" case 0: break; default: #line 82 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" kw_args = PyDict_Size(__pyx_kwds); #line 82 "msgpack/_unpacker.pyx" switch (pos_args) { #line 82 "msgpack/_unpacker.pyx" case 0: #line 82 "msgpack/_unpacker.pyx" if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__packed)) != 0)) kw_args--; else #line 82 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 82 "msgpack/_unpacker.pyx" case 1: #line 82 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 82 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__object_hook); #line 82 "msgpack/_unpacker.pyx" if (value) { values[1] = value; kw_args--; } #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" case 2: #line 82 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 82 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__list_hook); #line 82 "msgpack/_unpacker.pyx" if (value) { values[2] = value; kw_args--; } #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" case 3: #line 82 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 82 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__use_list); #line 82 "msgpack/_unpacker.pyx" if (value) { values[3] = value; kw_args--; } #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" case 4: #line 82 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 82 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__encoding); #line 82 "msgpack/_unpacker.pyx" if (value) { values[4] = value; kw_args--; } #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" case 5: #line 82 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 82 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__unicode_errors); #line 82 "msgpack/_unpacker.pyx" if (value) { values[5] = value; kw_args--; } #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" case 6: #line 82 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 82 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__object_pairs_hook); #line 82 "msgpack/_unpacker.pyx" if (value) { values[6] = value; kw_args--; } #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" if (unlikely(kw_args > 0)) { #line 82 "msgpack/_unpacker.pyx" if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "unpackb") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" } else { #line 82 "msgpack/_unpacker.pyx" switch (PyTuple_GET_SIZE(__pyx_args)) { case 7: #line 82 "msgpack/_unpacker.pyx" values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: #line 82 "msgpack/_unpacker.pyx" values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: #line 82 "msgpack/_unpacker.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 82 "msgpack/_unpacker.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 82 "msgpack/_unpacker.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 82 "msgpack/_unpacker.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: #line 82 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 82 "msgpack/_unpacker.pyx" break; default: #line 82 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" __pyx_v_packed = values[0]; #line 82 "msgpack/_unpacker.pyx" __pyx_v_object_hook = values[1]; #line 82 "msgpack/_unpacker.pyx" __pyx_v_list_hook = values[2]; #line 82 "msgpack/_unpacker.pyx" if (values[3]) { #line 82 "msgpack/_unpacker.pyx" __pyx_v_use_list = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_use_list == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 82 "msgpack/_unpacker.pyx" } else { #line 82 "msgpack/_unpacker.pyx" __pyx_v_use_list = ((int)1); #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" __pyx_v_encoding = values[4]; #line 82 "msgpack/_unpacker.pyx" __pyx_v_unicode_errors = values[5]; #line 82 "msgpack/_unpacker.pyx" __pyx_v_object_pairs_hook = values[6]; #line 82 "msgpack/_unpacker.pyx" } #line 82 "msgpack/_unpacker.pyx" goto __pyx_L4_argument_unpacking_done; #line 82 "msgpack/_unpacker.pyx" __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("unpackb", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); #line 82 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 82 "msgpack/_unpacker.pyx" __pyx_L3_error:; #line 82 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.unpackb", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 82 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 82 "msgpack/_unpacker.pyx" return NULL; #line 82 "msgpack/_unpacker.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 82 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_unpackb(__pyx_self, __pyx_v_packed, __pyx_v_object_hook, __pyx_v_list_hook, __pyx_v_use_list, __pyx_v_encoding, __pyx_v_unicode_errors, __pyx_v_object_pairs_hook); #line 82 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 82 "msgpack/_unpacker.pyx" return __pyx_r; #line 82 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":80 * ctx.user.unicode_errors = unicode_errors * * def unpackb(object packed, object object_hook=None, object list_hook=None, # <<<<<<<<<<<<<< * bint use_list=1, encoding=None, unicode_errors="strict", * object_pairs_hook=None, */ #line 80 "msgpack/_unpacker.pyx" #line 80 "msgpack/_unpacker.pyx" static PyObject *__pyx_pf_7msgpack_9_unpacker_unpackb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_packed, PyObject *__pyx_v_object_hook, PyObject *__pyx_v_list_hook, int __pyx_v_use_list, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors, PyObject *__pyx_v_object_pairs_hook) { template_context __pyx_v_ctx #line 80 "msgpack/_unpacker.pyx" ; size_t __pyx_v_off #line 80 "msgpack/_unpacker.pyx" ; int __pyx_v_ret #line 80 "msgpack/_unpacker.pyx" ; char *__pyx_v_buf #line 80 "msgpack/_unpacker.pyx" ; Py_ssize_t __pyx_v_buf_len #line 80 "msgpack/_unpacker.pyx" ; char *__pyx_v_cenc #line 80 "msgpack/_unpacker.pyx" ; char *__pyx_v_cerr #line 80 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_obj = NULL #line 80 "msgpack/_unpacker.pyx" ; #line 80 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; char *__pyx_t_5; PyObject *__pyx_t_6 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 80 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("unpackb", 0); #line 80 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_v_encoding); #line 80 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_v_unicode_errors); /* "msgpack/_unpacker.pyx":89 * """ * cdef template_context ctx * cdef size_t off = 0 # <<<<<<<<<<<<<< * cdef int ret * */ #line 89 "msgpack/_unpacker.pyx" __pyx_v_off = 0; /* "msgpack/_unpacker.pyx":94 * cdef char* buf * cdef Py_ssize_t buf_len * cdef char* cenc = NULL # <<<<<<<<<<<<<< * cdef char* cerr = NULL * */ #line 94 "msgpack/_unpacker.pyx" __pyx_v_cenc = NULL; /* "msgpack/_unpacker.pyx":95 * cdef Py_ssize_t buf_len * cdef char* cenc = NULL * cdef char* cerr = NULL # <<<<<<<<<<<<<< * * PyObject_AsReadBuffer(packed, &buf, &buf_len) */ #line 95 "msgpack/_unpacker.pyx" __pyx_v_cerr = NULL; /* "msgpack/_unpacker.pyx":97 * cdef char* cerr = NULL * * PyObject_AsReadBuffer(packed, &buf, &buf_len) # <<<<<<<<<<<<<< * * if encoding is not None: */ #line 97 "msgpack/_unpacker.pyx" __pyx_t_1 = PyObject_AsReadBuffer(__pyx_v_packed, ((const void* *)(&__pyx_v_buf)), (&__pyx_v_buf_len)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "msgpack/_unpacker.pyx":99 * PyObject_AsReadBuffer(packed, &buf, &buf_len) * * if encoding is not None: # <<<<<<<<<<<<<< * if isinstance(encoding, unicode): * encoding = encoding.encode('ascii') */ #line 99 "msgpack/_unpacker.pyx" __pyx_t_2 = (__pyx_v_encoding != Py_None); #line 99 "msgpack/_unpacker.pyx" if (__pyx_t_2) { /* "msgpack/_unpacker.pyx":100 * * if encoding is not None: * if isinstance(encoding, unicode): # <<<<<<<<<<<<<< * encoding = encoding.encode('ascii') * cenc = PyBytes_AsString(encoding) */ #line 100 "msgpack/_unpacker.pyx" __pyx_t_2 = PyUnicode_Check(__pyx_v_encoding); #line 100 "msgpack/_unpacker.pyx" if (__pyx_t_2) { /* "msgpack/_unpacker.pyx":101 * if encoding is not None: * if isinstance(encoding, unicode): * encoding = encoding.encode('ascii') # <<<<<<<<<<<<<< * cenc = PyBytes_AsString(encoding) * */ #line 101 "msgpack/_unpacker.pyx" __pyx_t_3 = PyObject_GetAttr(__pyx_v_encoding, __pyx_n_s__encode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 101 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_3); #line 101 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_9), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 101 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 101 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 101 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_v_encoding); #line 101 "msgpack/_unpacker.pyx" __pyx_v_encoding = __pyx_t_4; #line 101 "msgpack/_unpacker.pyx" __pyx_t_4 = 0; #line 101 "msgpack/_unpacker.pyx" goto __pyx_L4; #line 101 "msgpack/_unpacker.pyx" } #line 101 "msgpack/_unpacker.pyx" __pyx_L4:; /* "msgpack/_unpacker.pyx":102 * if isinstance(encoding, unicode): * encoding = encoding.encode('ascii') * cenc = PyBytes_AsString(encoding) # <<<<<<<<<<<<<< * * if unicode_errors is not None: */ #line 102 "msgpack/_unpacker.pyx" __pyx_t_5 = PyBytes_AsString(__pyx_v_encoding); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 102 "msgpack/_unpacker.pyx" __pyx_v_cenc = __pyx_t_5; #line 102 "msgpack/_unpacker.pyx" goto __pyx_L3; #line 102 "msgpack/_unpacker.pyx" } #line 102 "msgpack/_unpacker.pyx" __pyx_L3:; /* "msgpack/_unpacker.pyx":104 * cenc = PyBytes_AsString(encoding) * * if unicode_errors is not None: # <<<<<<<<<<<<<< * if isinstance(unicode_errors, unicode): * unicode_errors = unicode_errors.encode('ascii') */ #line 104 "msgpack/_unpacker.pyx" __pyx_t_2 = (__pyx_v_unicode_errors != Py_None); #line 104 "msgpack/_unpacker.pyx" if (__pyx_t_2) { /* "msgpack/_unpacker.pyx":105 * * if unicode_errors is not None: * if isinstance(unicode_errors, unicode): # <<<<<<<<<<<<<< * unicode_errors = unicode_errors.encode('ascii') * cerr = PyBytes_AsString(unicode_errors) */ #line 105 "msgpack/_unpacker.pyx" __pyx_t_2 = PyUnicode_Check(__pyx_v_unicode_errors); #line 105 "msgpack/_unpacker.pyx" if (__pyx_t_2) { /* "msgpack/_unpacker.pyx":106 * if unicode_errors is not None: * if isinstance(unicode_errors, unicode): * unicode_errors = unicode_errors.encode('ascii') # <<<<<<<<<<<<<< * cerr = PyBytes_AsString(unicode_errors) * */ #line 106 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_GetAttr(__pyx_v_unicode_errors, __pyx_n_s__encode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 106 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 106 "msgpack/_unpacker.pyx" __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_10), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 106 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_3); #line 106 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 106 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_v_unicode_errors); #line 106 "msgpack/_unpacker.pyx" __pyx_v_unicode_errors = __pyx_t_3; #line 106 "msgpack/_unpacker.pyx" __pyx_t_3 = 0; #line 106 "msgpack/_unpacker.pyx" goto __pyx_L6; #line 106 "msgpack/_unpacker.pyx" } #line 106 "msgpack/_unpacker.pyx" __pyx_L6:; /* "msgpack/_unpacker.pyx":107 * if isinstance(unicode_errors, unicode): * unicode_errors = unicode_errors.encode('ascii') * cerr = PyBytes_AsString(unicode_errors) # <<<<<<<<<<<<<< * * init_ctx(&ctx, object_hook, object_pairs_hook, list_hook, use_list, cenc, cerr) */ #line 107 "msgpack/_unpacker.pyx" __pyx_t_5 = PyBytes_AsString(__pyx_v_unicode_errors); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 107 "msgpack/_unpacker.pyx" __pyx_v_cerr = __pyx_t_5; #line 107 "msgpack/_unpacker.pyx" goto __pyx_L5; #line 107 "msgpack/_unpacker.pyx" } #line 107 "msgpack/_unpacker.pyx" __pyx_L5:; /* "msgpack/_unpacker.pyx":109 * cerr = PyBytes_AsString(unicode_errors) * * init_ctx(&ctx, object_hook, object_pairs_hook, list_hook, use_list, cenc, cerr) # <<<<<<<<<<<<<< * ret = template_construct(&ctx, buf, buf_len, &off) * if ret == 1: */ #line 109 "msgpack/_unpacker.pyx" __pyx_t_3 = __pyx_f_7msgpack_9_unpacker_init_ctx((&__pyx_v_ctx), __pyx_v_object_hook, __pyx_v_object_pairs_hook, __pyx_v_list_hook, __pyx_v_use_list, __pyx_v_cenc, __pyx_v_cerr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 109 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_3); #line 109 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* "msgpack/_unpacker.pyx":110 * * init_ctx(&ctx, object_hook, object_pairs_hook, list_hook, use_list, cenc, cerr) * ret = template_construct(&ctx, buf, buf_len, &off) # <<<<<<<<<<<<<< * if ret == 1: * obj = template_data(&ctx) */ #line 110 "msgpack/_unpacker.pyx" __pyx_t_1 = template_construct((&__pyx_v_ctx), __pyx_v_buf, __pyx_v_buf_len, (&__pyx_v_off)); if (unlikely(__pyx_t_1 == -1 && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 110 "msgpack/_unpacker.pyx" __pyx_v_ret = __pyx_t_1; /* "msgpack/_unpacker.pyx":111 * init_ctx(&ctx, object_hook, object_pairs_hook, list_hook, use_list, cenc, cerr) * ret = template_construct(&ctx, buf, buf_len, &off) * if ret == 1: # <<<<<<<<<<<<<< * obj = template_data(&ctx) * if off < buf_len: */ #line 111 "msgpack/_unpacker.pyx" __pyx_t_2 = (__pyx_v_ret == 1); #line 111 "msgpack/_unpacker.pyx" if (__pyx_t_2) { /* "msgpack/_unpacker.pyx":112 * ret = template_construct(&ctx, buf, buf_len, &off) * if ret == 1: * obj = template_data(&ctx) # <<<<<<<<<<<<<< * if off < buf_len: * raise ExtraData(obj, PyBytes_FromStringAndSize(buf+off, buf_len-off)) */ #line 112 "msgpack/_unpacker.pyx" __pyx_t_3 = template_data((&__pyx_v_ctx)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 112 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_3); #line 112 "msgpack/_unpacker.pyx" __pyx_v_obj = __pyx_t_3; #line 112 "msgpack/_unpacker.pyx" __pyx_t_3 = 0; /* "msgpack/_unpacker.pyx":113 * if ret == 1: * obj = template_data(&ctx) * if off < buf_len: # <<<<<<<<<<<<<< * raise ExtraData(obj, PyBytes_FromStringAndSize(buf+off, buf_len-off)) * return obj */ #line 113 "msgpack/_unpacker.pyx" __pyx_t_2 = (__pyx_v_off < __pyx_v_buf_len); #line 113 "msgpack/_unpacker.pyx" if (__pyx_t_2) { /* "msgpack/_unpacker.pyx":114 * obj = template_data(&ctx) * if off < buf_len: * raise ExtraData(obj, PyBytes_FromStringAndSize(buf+off, buf_len-off)) # <<<<<<<<<<<<<< * return obj * elif ret < 0: */ #line 114 "msgpack/_unpacker.pyx" __pyx_t_3 = __Pyx_GetName(__pyx_m, __pyx_n_s__ExtraData); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 114 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_3); #line 114 "msgpack/_unpacker.pyx" __pyx_t_4 = ((PyObject *)PyBytes_FromStringAndSize((__pyx_v_buf + __pyx_v_off), (__pyx_v_buf_len - __pyx_v_off))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 114 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 114 "msgpack/_unpacker.pyx" __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 114 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_6); #line 114 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_v_obj); #line 114 "msgpack/_unpacker.pyx" PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_obj); #line 114 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_v_obj); #line 114 "msgpack/_unpacker.pyx" PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); #line 114 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_t_4); #line 114 "msgpack/_unpacker.pyx" __pyx_t_4 = 0; #line 114 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 114 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 114 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; #line 114 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; #line 114 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_4, 0, 0, 0); #line 114 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 114 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 114 "msgpack/_unpacker.pyx" goto __pyx_L8; #line 114 "msgpack/_unpacker.pyx" } #line 114 "msgpack/_unpacker.pyx" __pyx_L8:; /* "msgpack/_unpacker.pyx":115 * if off < buf_len: * raise ExtraData(obj, PyBytes_FromStringAndSize(buf+off, buf_len-off)) * return obj # <<<<<<<<<<<<<< * elif ret < 0: * raise ValueError("Unpack failed: error = %d" % (ret,)) */ #line 115 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_r); #line 115 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_v_obj); #line 115 "msgpack/_unpacker.pyx" __pyx_r = __pyx_v_obj; #line 115 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 115 "msgpack/_unpacker.pyx" goto __pyx_L7; #line 115 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":116 * raise ExtraData(obj, PyBytes_FromStringAndSize(buf+off, buf_len-off)) * return obj * elif ret < 0: # <<<<<<<<<<<<<< * raise ValueError("Unpack failed: error = %d" % (ret,)) * else: */ #line 116 "msgpack/_unpacker.pyx" __pyx_t_2 = (__pyx_v_ret < 0); #line 116 "msgpack/_unpacker.pyx" if (__pyx_t_2) { /* "msgpack/_unpacker.pyx":117 * return obj * elif ret < 0: * raise ValueError("Unpack failed: error = %d" % (ret,)) # <<<<<<<<<<<<<< * else: * raise UnpackValueError */ #line 117 "msgpack/_unpacker.pyx" __pyx_t_4 = PyInt_FromLong(__pyx_v_ret); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 117 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 117 "msgpack/_unpacker.pyx" __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 117 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_6); #line 117 "msgpack/_unpacker.pyx" PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); #line 117 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_t_4); #line 117 "msgpack/_unpacker.pyx" __pyx_t_4 = 0; #line 117 "msgpack/_unpacker.pyx" __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_11), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 117 "msgpack/_unpacker.pyx" __Pyx_GOTREF(((PyObject *)__pyx_t_4)); #line 117 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; #line 117 "msgpack/_unpacker.pyx" __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 117 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_6); #line 117 "msgpack/_unpacker.pyx" PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_4)); #line 117 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_t_4)); #line 117 "msgpack/_unpacker.pyx" __pyx_t_4 = 0; #line 117 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 117 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 117 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0; #line 117 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_4, 0, 0, 0); #line 117 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 117 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 117 "msgpack/_unpacker.pyx" goto __pyx_L7; #line 117 "msgpack/_unpacker.pyx" } #line 117 "msgpack/_unpacker.pyx" /*else*/ { /* "msgpack/_unpacker.pyx":119 * raise ValueError("Unpack failed: error = %d" % (ret,)) * else: * raise UnpackValueError # <<<<<<<<<<<<<< * * */ #line 119 "msgpack/_unpacker.pyx" __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__UnpackValueError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 119 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 119 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_4, 0, 0, 0); #line 119 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 119 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 119 "msgpack/_unpacker.pyx" } #line 119 "msgpack/_unpacker.pyx" __pyx_L7:; #line 119 "msgpack/_unpacker.pyx" #line 119 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 119 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 119 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 119 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_3); #line 119 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_4); #line 119 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_6); #line 119 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.unpackb", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 119 "msgpack/_unpacker.pyx" __pyx_r = NULL; #line 119 "msgpack/_unpacker.pyx" __pyx_L0:; #line 119 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_v_obj); #line 119 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_v_encoding); #line 119 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_v_unicode_errors); #line 119 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 119 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 119 "msgpack/_unpacker.pyx" return __pyx_r; #line 119 "msgpack/_unpacker.pyx" } #line 119 "msgpack/_unpacker.pyx" #line 119 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 119 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_3unpack(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ #line 119 "msgpack/_unpacker.pyx" static char __pyx_doc_7msgpack_9_unpacker_2unpack[] = "unpack(stream, object_hook=None, list_hook=None, int use_list=1, encoding=None, unicode_errors='strict', object_pairs_hook=None)\nUnpack an object from `stream`.\n\n Raises `ValueError` when `stream` has extra bytes.\n "; static PyMethodDef __pyx_mdef_7msgpack_9_unpacker_3unpack = #line 119 "msgpack/_unpacker.pyx" {__Pyx_NAMESTR("unpack"), (PyCFunction)__pyx_pw_7msgpack_9_unpacker_3unpack, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_7msgpack_9_unpacker_2unpack)}; #line 119 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_3unpack(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_stream = 0 #line 119 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_object_hook = 0 #line 119 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_list_hook = 0 #line 119 "msgpack/_unpacker.pyx" ; int __pyx_v_use_list #line 119 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_encoding = 0 #line 119 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_unicode_errors = 0 #line 119 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_object_pairs_hook = 0 #line 119 "msgpack/_unpacker.pyx" ; #line 119 "msgpack/_unpacker.pyx" PyObject *__pyx_r = 0; #line 119 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 119 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("unpack (wrapper)", 0); #line 119 "msgpack/_unpacker.pyx" { #line 119 "msgpack/_unpacker.pyx" static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__stream,&__pyx_n_s__object_hook,&__pyx_n_s__list_hook,&__pyx_n_s__use_list,&__pyx_n_s__encoding,&__pyx_n_s__unicode_errors,&__pyx_n_s__object_pairs_hook,0}; #line 119 "msgpack/_unpacker.pyx" PyObject* values[7] = {0,0,0,0,0,0,0}; /* "msgpack/_unpacker.pyx":122 * * * def unpack(object stream, object object_hook=None, object list_hook=None, # <<<<<<<<<<<<<< * bint use_list=1, encoding=None, unicode_errors="strict", * object_pairs_hook=None, */ #line 122 "msgpack/_unpacker.pyx" values[1] = ((PyObject *)Py_None); #line 122 "msgpack/_unpacker.pyx" values[2] = ((PyObject *)Py_None); /* "msgpack/_unpacker.pyx":123 * * def unpack(object stream, object object_hook=None, object list_hook=None, * bint use_list=1, encoding=None, unicode_errors="strict", # <<<<<<<<<<<<<< * object_pairs_hook=None, * ): */ #line 123 "msgpack/_unpacker.pyx" values[4] = ((PyObject *)Py_None); #line 123 "msgpack/_unpacker.pyx" values[5] = ((PyObject *)__pyx_n_s__strict); /* "msgpack/_unpacker.pyx":124 * def unpack(object stream, object object_hook=None, object list_hook=None, * bint use_list=1, encoding=None, unicode_errors="strict", * object_pairs_hook=None, # <<<<<<<<<<<<<< * ): * """Unpack an object from `stream`. */ #line 124 "msgpack/_unpacker.pyx" values[6] = ((PyObject *)Py_None); #line 124 "msgpack/_unpacker.pyx" if (unlikely(__pyx_kwds)) { #line 124 "msgpack/_unpacker.pyx" Py_ssize_t kw_args; #line 124 "msgpack/_unpacker.pyx" const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); #line 124 "msgpack/_unpacker.pyx" switch (pos_args) { case 7: #line 124 "msgpack/_unpacker.pyx" values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: #line 124 "msgpack/_unpacker.pyx" values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: #line 124 "msgpack/_unpacker.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 124 "msgpack/_unpacker.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 124 "msgpack/_unpacker.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 124 "msgpack/_unpacker.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: #line 124 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 124 "msgpack/_unpacker.pyx" case 0: break; default: #line 124 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" kw_args = PyDict_Size(__pyx_kwds); #line 124 "msgpack/_unpacker.pyx" switch (pos_args) { #line 124 "msgpack/_unpacker.pyx" case 0: #line 124 "msgpack/_unpacker.pyx" if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__stream)) != 0)) kw_args--; else #line 124 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 124 "msgpack/_unpacker.pyx" case 1: #line 124 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 124 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__object_hook); #line 124 "msgpack/_unpacker.pyx" if (value) { values[1] = value; kw_args--; } #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" case 2: #line 124 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 124 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__list_hook); #line 124 "msgpack/_unpacker.pyx" if (value) { values[2] = value; kw_args--; } #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" case 3: #line 124 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 124 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__use_list); #line 124 "msgpack/_unpacker.pyx" if (value) { values[3] = value; kw_args--; } #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" case 4: #line 124 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 124 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__encoding); #line 124 "msgpack/_unpacker.pyx" if (value) { values[4] = value; kw_args--; } #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" case 5: #line 124 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 124 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__unicode_errors); #line 124 "msgpack/_unpacker.pyx" if (value) { values[5] = value; kw_args--; } #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" case 6: #line 124 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 124 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__object_pairs_hook); #line 124 "msgpack/_unpacker.pyx" if (value) { values[6] = value; kw_args--; } #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" if (unlikely(kw_args > 0)) { #line 124 "msgpack/_unpacker.pyx" if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "unpack") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" } else { #line 124 "msgpack/_unpacker.pyx" switch (PyTuple_GET_SIZE(__pyx_args)) { case 7: #line 124 "msgpack/_unpacker.pyx" values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: #line 124 "msgpack/_unpacker.pyx" values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: #line 124 "msgpack/_unpacker.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 124 "msgpack/_unpacker.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 124 "msgpack/_unpacker.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 124 "msgpack/_unpacker.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: #line 124 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 124 "msgpack/_unpacker.pyx" break; default: #line 124 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" __pyx_v_stream = values[0]; #line 124 "msgpack/_unpacker.pyx" __pyx_v_object_hook = values[1]; #line 124 "msgpack/_unpacker.pyx" __pyx_v_list_hook = values[2]; #line 124 "msgpack/_unpacker.pyx" if (values[3]) { #line 124 "msgpack/_unpacker.pyx" __pyx_v_use_list = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_use_list == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 124 "msgpack/_unpacker.pyx" } else { #line 124 "msgpack/_unpacker.pyx" __pyx_v_use_list = ((int)1); #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" __pyx_v_encoding = values[4]; #line 124 "msgpack/_unpacker.pyx" __pyx_v_unicode_errors = values[5]; #line 124 "msgpack/_unpacker.pyx" __pyx_v_object_pairs_hook = values[6]; #line 124 "msgpack/_unpacker.pyx" } #line 124 "msgpack/_unpacker.pyx" goto __pyx_L4_argument_unpacking_done; #line 124 "msgpack/_unpacker.pyx" __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("unpack", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); #line 124 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 124 "msgpack/_unpacker.pyx" __pyx_L3_error:; #line 124 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 124 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 124 "msgpack/_unpacker.pyx" return NULL; #line 124 "msgpack/_unpacker.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 124 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_2unpack(__pyx_self, __pyx_v_stream, __pyx_v_object_hook, __pyx_v_list_hook, __pyx_v_use_list, __pyx_v_encoding, __pyx_v_unicode_errors, __pyx_v_object_pairs_hook); #line 124 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 124 "msgpack/_unpacker.pyx" return __pyx_r; #line 124 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":122 * * * def unpack(object stream, object object_hook=None, object list_hook=None, # <<<<<<<<<<<<<< * bint use_list=1, encoding=None, unicode_errors="strict", * object_pairs_hook=None, */ #line 122 "msgpack/_unpacker.pyx" #line 122 "msgpack/_unpacker.pyx" static PyObject *__pyx_pf_7msgpack_9_unpacker_2unpack(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_stream, PyObject *__pyx_v_object_hook, PyObject *__pyx_v_list_hook, int __pyx_v_use_list, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors, PyObject *__pyx_v_object_pairs_hook) { #line 122 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 122 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("unpack", 0); /* "msgpack/_unpacker.pyx":130 * Raises `ValueError` when `stream` has extra bytes. * """ * return unpackb(stream.read(), use_list=use_list, # <<<<<<<<<<<<<< * object_hook=object_hook, object_pairs_hook=object_pairs_hook, list_hook=list_hook, * encoding=encoding, unicode_errors=unicode_errors, */ #line 130 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_r); #line 130 "msgpack/_unpacker.pyx" __pyx_t_1 = __Pyx_GetName(__pyx_m, __pyx_n_s__unpackb); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 130 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_1); #line 130 "msgpack/_unpacker.pyx" __pyx_t_2 = PyObject_GetAttr(__pyx_v_stream, __pyx_n_s__read); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 130 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 130 "msgpack/_unpacker.pyx" __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 130 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_3); #line 130 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 130 "msgpack/_unpacker.pyx" __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 130 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 130 "msgpack/_unpacker.pyx" PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); #line 130 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_t_3); #line 130 "msgpack/_unpacker.pyx" __pyx_t_3 = 0; #line 130 "msgpack/_unpacker.pyx" __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 130 "msgpack/_unpacker.pyx" __Pyx_GOTREF(((PyObject *)__pyx_t_3)); #line 130 "msgpack/_unpacker.pyx" __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_use_list); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 130 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 130 "msgpack/_unpacker.pyx" if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__use_list), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 130 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "msgpack/_unpacker.pyx":131 * """ * return unpackb(stream.read(), use_list=use_list, * object_hook=object_hook, object_pairs_hook=object_pairs_hook, list_hook=list_hook, # <<<<<<<<<<<<<< * encoding=encoding, unicode_errors=unicode_errors, * ) */ #line 131 "msgpack/_unpacker.pyx" if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__object_hook), __pyx_v_object_hook) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 131 "msgpack/_unpacker.pyx" if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__object_pairs_hook), __pyx_v_object_pairs_hook) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 131 "msgpack/_unpacker.pyx" if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__list_hook), __pyx_v_list_hook) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "msgpack/_unpacker.pyx":132 * return unpackb(stream.read(), use_list=use_list, * object_hook=object_hook, object_pairs_hook=object_pairs_hook, list_hook=list_hook, * encoding=encoding, unicode_errors=unicode_errors, # <<<<<<<<<<<<<< * ) * */ #line 132 "msgpack/_unpacker.pyx" if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__encoding), __pyx_v_encoding) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 132 "msgpack/_unpacker.pyx" if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__unicode_errors), __pyx_v_unicode_errors) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 132 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 132 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 132 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #line 132 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; #line 132 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0; #line 132 "msgpack/_unpacker.pyx" __pyx_r = __pyx_t_4; #line 132 "msgpack/_unpacker.pyx" __pyx_t_4 = 0; #line 132 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 132 "msgpack/_unpacker.pyx" #line 132 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 132 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 132 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 132 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_1); #line 132 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_2); #line 132 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_3); #line 132 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_4); #line 132 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 132 "msgpack/_unpacker.pyx" __pyx_r = NULL; #line 132 "msgpack/_unpacker.pyx" __pyx_L0:; #line 132 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 132 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 132 "msgpack/_unpacker.pyx" return __pyx_r; #line 132 "msgpack/_unpacker.pyx" } #line 132 "msgpack/_unpacker.pyx" #line 132 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 132 "msgpack/_unpacker.pyx" static int __pyx_pw_7msgpack_9_unpacker_8Unpacker_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ #line 132 "msgpack/_unpacker.pyx" static int __pyx_pw_7msgpack_9_unpacker_8Unpacker_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { #line 132 "msgpack/_unpacker.pyx" int __pyx_r; #line 132 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 132 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); #line 132 "msgpack/_unpacker.pyx" if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1; #line 132 "msgpack/_unpacker.pyx" } #line 132 "msgpack/_unpacker.pyx" if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; __pyx_r = #line 132 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_8Unpacker___cinit__(((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)__pyx_v_self)); #line 132 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 132 "msgpack/_unpacker.pyx" return __pyx_r; #line 132 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":193 * cdef size_t max_buffer_size * * def __cinit__(self): # <<<<<<<<<<<<<< * self.buf = NULL * */ #line 193 "msgpack/_unpacker.pyx" #line 193 "msgpack/_unpacker.pyx" static int __pyx_pf_7msgpack_9_unpacker_8Unpacker___cinit__(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self) { #line 193 "msgpack/_unpacker.pyx" int __pyx_r; __Pyx_RefNannyDeclarations #line 193 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("__cinit__", 0); /* "msgpack/_unpacker.pyx":194 * * def __cinit__(self): * self.buf = NULL # <<<<<<<<<<<<<< * * def __dealloc__(self): */ #line 194 "msgpack/_unpacker.pyx" __pyx_v_self->buf = NULL; #line 194 "msgpack/_unpacker.pyx" #line 194 "msgpack/_unpacker.pyx" __pyx_r = 0; #line 194 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 194 "msgpack/_unpacker.pyx" return __pyx_r; #line 194 "msgpack/_unpacker.pyx" } #line 194 "msgpack/_unpacker.pyx" #line 194 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 194 "msgpack/_unpacker.pyx" static void __pyx_pw_7msgpack_9_unpacker_8Unpacker_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ #line 194 "msgpack/_unpacker.pyx" static void __pyx_pw_7msgpack_9_unpacker_8Unpacker_3__dealloc__(PyObject *__pyx_v_self) { #line 194 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 194 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); #line 194 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_8Unpacker_2__dealloc__(((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)__pyx_v_self)); #line 194 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 194 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":196 * self.buf = NULL * * def __dealloc__(self): # <<<<<<<<<<<<<< * free(self.buf) * self.buf = NULL */ #line 196 "msgpack/_unpacker.pyx" #line 196 "msgpack/_unpacker.pyx" static void __pyx_pf_7msgpack_9_unpacker_8Unpacker_2__dealloc__(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self) { __Pyx_RefNannyDeclarations #line 196 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("__dealloc__", 0); /* "msgpack/_unpacker.pyx":197 * * def __dealloc__(self): * free(self.buf) # <<<<<<<<<<<<<< * self.buf = NULL * */ #line 197 "msgpack/_unpacker.pyx" free(__pyx_v_self->buf); /* "msgpack/_unpacker.pyx":198 * def __dealloc__(self): * free(self.buf) * self.buf = NULL # <<<<<<<<<<<<<< * * def __init__(self, file_like=None, Py_ssize_t read_size=0, bint use_list=1, */ #line 198 "msgpack/_unpacker.pyx" __pyx_v_self->buf = NULL; #line 198 "msgpack/_unpacker.pyx" #line 198 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 198 "msgpack/_unpacker.pyx" } #line 198 "msgpack/_unpacker.pyx" #line 198 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 198 "msgpack/_unpacker.pyx" static int __pyx_pw_7msgpack_9_unpacker_8Unpacker_5__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ #line 198 "msgpack/_unpacker.pyx" static int __pyx_pw_7msgpack_9_unpacker_8Unpacker_5__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_file_like = 0 #line 198 "msgpack/_unpacker.pyx" ; Py_ssize_t __pyx_v_read_size #line 198 "msgpack/_unpacker.pyx" ; int __pyx_v_use_list #line 198 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_object_hook = 0 #line 198 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_object_pairs_hook = 0 #line 198 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_list_hook = 0 #line 198 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_encoding = 0 #line 198 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_unicode_errors = 0 #line 198 "msgpack/_unpacker.pyx" ; int __pyx_v_max_buffer_size #line 198 "msgpack/_unpacker.pyx" ; #line 198 "msgpack/_unpacker.pyx" int __pyx_r; #line 198 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 198 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); #line 198 "msgpack/_unpacker.pyx" { #line 198 "msgpack/_unpacker.pyx" static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__file_like,&__pyx_n_s__read_size,&__pyx_n_s__use_list,&__pyx_n_s__object_hook,&__pyx_n_s__object_pairs_hook,&__pyx_n_s__list_hook,&__pyx_n_s__encoding,&__pyx_n_s__unicode_errors,&__pyx_n_s__max_buffer_size,0}; #line 198 "msgpack/_unpacker.pyx" PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; /* "msgpack/_unpacker.pyx":200 * self.buf = NULL * * def __init__(self, file_like=None, Py_ssize_t read_size=0, bint use_list=1, # <<<<<<<<<<<<<< * object object_hook=None, object object_pairs_hook=None, object list_hook=None, * encoding=None, unicode_errors='strict', int max_buffer_size=0, */ #line 200 "msgpack/_unpacker.pyx" values[0] = ((PyObject *)Py_None); /* "msgpack/_unpacker.pyx":201 * * def __init__(self, file_like=None, Py_ssize_t read_size=0, bint use_list=1, * object object_hook=None, object object_pairs_hook=None, object list_hook=None, # <<<<<<<<<<<<<< * encoding=None, unicode_errors='strict', int max_buffer_size=0, * ): */ #line 201 "msgpack/_unpacker.pyx" values[3] = ((PyObject *)Py_None); #line 201 "msgpack/_unpacker.pyx" values[4] = ((PyObject *)Py_None); #line 201 "msgpack/_unpacker.pyx" values[5] = ((PyObject *)Py_None); /* "msgpack/_unpacker.pyx":202 * def __init__(self, file_like=None, Py_ssize_t read_size=0, bint use_list=1, * object object_hook=None, object object_pairs_hook=None, object list_hook=None, * encoding=None, unicode_errors='strict', int max_buffer_size=0, # <<<<<<<<<<<<<< * ): * cdef char *cenc=NULL, *cerr=NULL */ #line 202 "msgpack/_unpacker.pyx" values[6] = ((PyObject *)Py_None); #line 202 "msgpack/_unpacker.pyx" values[7] = ((PyObject *)__pyx_n_s__strict); #line 202 "msgpack/_unpacker.pyx" if (unlikely(__pyx_kwds)) { #line 202 "msgpack/_unpacker.pyx" Py_ssize_t kw_args; #line 202 "msgpack/_unpacker.pyx" const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); #line 202 "msgpack/_unpacker.pyx" switch (pos_args) { case 9: #line 202 "msgpack/_unpacker.pyx" values[8] = PyTuple_GET_ITEM(__pyx_args, 8); case 8: #line 202 "msgpack/_unpacker.pyx" values[7] = PyTuple_GET_ITEM(__pyx_args, 7); case 7: #line 202 "msgpack/_unpacker.pyx" values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: #line 202 "msgpack/_unpacker.pyx" values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: #line 202 "msgpack/_unpacker.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 202 "msgpack/_unpacker.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 202 "msgpack/_unpacker.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 202 "msgpack/_unpacker.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: #line 202 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 202 "msgpack/_unpacker.pyx" case 0: break; default: #line 202 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" kw_args = PyDict_Size(__pyx_kwds); #line 202 "msgpack/_unpacker.pyx" switch (pos_args) { #line 202 "msgpack/_unpacker.pyx" case 0: #line 202 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 202 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__file_like); #line 202 "msgpack/_unpacker.pyx" if (value) { values[0] = value; kw_args--; } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" case 1: #line 202 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 202 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__read_size); #line 202 "msgpack/_unpacker.pyx" if (value) { values[1] = value; kw_args--; } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" case 2: #line 202 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 202 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__use_list); #line 202 "msgpack/_unpacker.pyx" if (value) { values[2] = value; kw_args--; } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" case 3: #line 202 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 202 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__object_hook); #line 202 "msgpack/_unpacker.pyx" if (value) { values[3] = value; kw_args--; } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" case 4: #line 202 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 202 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__object_pairs_hook); #line 202 "msgpack/_unpacker.pyx" if (value) { values[4] = value; kw_args--; } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" case 5: #line 202 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 202 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__list_hook); #line 202 "msgpack/_unpacker.pyx" if (value) { values[5] = value; kw_args--; } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" case 6: #line 202 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 202 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__encoding); #line 202 "msgpack/_unpacker.pyx" if (value) { values[6] = value; kw_args--; } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" case 7: #line 202 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 202 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__unicode_errors); #line 202 "msgpack/_unpacker.pyx" if (value) { values[7] = value; kw_args--; } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" case 8: #line 202 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 202 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__max_buffer_size); #line 202 "msgpack/_unpacker.pyx" if (value) { values[8] = value; kw_args--; } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" if (unlikely(kw_args > 0)) { #line 202 "msgpack/_unpacker.pyx" if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" } else { #line 202 "msgpack/_unpacker.pyx" switch (PyTuple_GET_SIZE(__pyx_args)) { case 9: #line 202 "msgpack/_unpacker.pyx" values[8] = PyTuple_GET_ITEM(__pyx_args, 8); case 8: #line 202 "msgpack/_unpacker.pyx" values[7] = PyTuple_GET_ITEM(__pyx_args, 7); case 7: #line 202 "msgpack/_unpacker.pyx" values[6] = PyTuple_GET_ITEM(__pyx_args, 6); case 6: #line 202 "msgpack/_unpacker.pyx" values[5] = PyTuple_GET_ITEM(__pyx_args, 5); case 5: #line 202 "msgpack/_unpacker.pyx" values[4] = PyTuple_GET_ITEM(__pyx_args, 4); case 4: #line 202 "msgpack/_unpacker.pyx" values[3] = PyTuple_GET_ITEM(__pyx_args, 3); case 3: #line 202 "msgpack/_unpacker.pyx" values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: #line 202 "msgpack/_unpacker.pyx" values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: #line 202 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: #line 202 "msgpack/_unpacker.pyx" break; default: #line 202 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" __pyx_v_file_like = values[0]; #line 202 "msgpack/_unpacker.pyx" if (values[1]) { #line 202 "msgpack/_unpacker.pyx" __pyx_v_read_size = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_read_size == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 202 "msgpack/_unpacker.pyx" } else { #line 202 "msgpack/_unpacker.pyx" __pyx_v_read_size = ((Py_ssize_t)0); #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" if (values[2]) { #line 202 "msgpack/_unpacker.pyx" __pyx_v_use_list = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_use_list == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 202 "msgpack/_unpacker.pyx" } else { #line 202 "msgpack/_unpacker.pyx" __pyx_v_use_list = ((int)1); #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" __pyx_v_object_hook = values[3]; #line 202 "msgpack/_unpacker.pyx" __pyx_v_object_pairs_hook = values[4]; #line 202 "msgpack/_unpacker.pyx" __pyx_v_list_hook = values[5]; #line 202 "msgpack/_unpacker.pyx" __pyx_v_encoding = values[6]; #line 202 "msgpack/_unpacker.pyx" __pyx_v_unicode_errors = values[7]; #line 202 "msgpack/_unpacker.pyx" if (values[8]) { #line 202 "msgpack/_unpacker.pyx" __pyx_v_max_buffer_size = __Pyx_PyInt_AsInt(values[8]); if (unlikely((__pyx_v_max_buffer_size == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 202 "msgpack/_unpacker.pyx" } else { #line 202 "msgpack/_unpacker.pyx" __pyx_v_max_buffer_size = ((int)0); #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" } #line 202 "msgpack/_unpacker.pyx" goto __pyx_L4_argument_unpacking_done; #line 202 "msgpack/_unpacker.pyx" __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 9, PyTuple_GET_SIZE(__pyx_args)); #line 202 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 202 "msgpack/_unpacker.pyx" __pyx_L3_error:; #line 202 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 202 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 202 "msgpack/_unpacker.pyx" return -1; #line 202 "msgpack/_unpacker.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 202 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_8Unpacker_4__init__(((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)__pyx_v_self), __pyx_v_file_like, __pyx_v_read_size, __pyx_v_use_list, __pyx_v_object_hook, __pyx_v_object_pairs_hook, __pyx_v_list_hook, __pyx_v_encoding, __pyx_v_unicode_errors, __pyx_v_max_buffer_size); #line 202 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 202 "msgpack/_unpacker.pyx" return __pyx_r; #line 202 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":200 * self.buf = NULL * * def __init__(self, file_like=None, Py_ssize_t read_size=0, bint use_list=1, # <<<<<<<<<<<<<< * object object_hook=None, object object_pairs_hook=None, object list_hook=None, * encoding=None, unicode_errors='strict', int max_buffer_size=0, */ #line 200 "msgpack/_unpacker.pyx" #line 200 "msgpack/_unpacker.pyx" static int __pyx_pf_7msgpack_9_unpacker_8Unpacker_4__init__(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_file_like, Py_ssize_t __pyx_v_read_size, int __pyx_v_use_list, PyObject *__pyx_v_object_hook, PyObject *__pyx_v_object_pairs_hook, PyObject *__pyx_v_list_hook, PyObject *__pyx_v_encoding, PyObject *__pyx_v_unicode_errors, int __pyx_v_max_buffer_size) { char *__pyx_v_cenc #line 200 "msgpack/_unpacker.pyx" ; char *__pyx_v_cerr #line 200 "msgpack/_unpacker.pyx" ; #line 200 "msgpack/_unpacker.pyx" int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; long __pyx_t_3; int __pyx_t_4; long __pyx_t_5; PyObject *__pyx_t_6 = NULL; char *__pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 200 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("__init__", 0); #line 200 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_v_encoding); #line 200 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_v_unicode_errors); /* "msgpack/_unpacker.pyx":204 * encoding=None, unicode_errors='strict', int max_buffer_size=0, * ): * cdef char *cenc=NULL, *cerr=NULL # <<<<<<<<<<<<<< * * self.file_like = file_like */ #line 204 "msgpack/_unpacker.pyx" __pyx_v_cenc = NULL; #line 204 "msgpack/_unpacker.pyx" __pyx_v_cerr = NULL; /* "msgpack/_unpacker.pyx":206 * cdef char *cenc=NULL, *cerr=NULL * * self.file_like = file_like # <<<<<<<<<<<<<< * if file_like: * self.file_like_read = file_like.read */ #line 206 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_v_file_like); #line 206 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_v_file_like); #line 206 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_v_self->file_like); #line 206 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_v_self->file_like); #line 206 "msgpack/_unpacker.pyx" __pyx_v_self->file_like = __pyx_v_file_like; /* "msgpack/_unpacker.pyx":207 * * self.file_like = file_like * if file_like: # <<<<<<<<<<<<<< * self.file_like_read = file_like.read * if not PyCallable_Check(self.file_like_read): */ #line 207 "msgpack/_unpacker.pyx" __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_file_like); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 207 "msgpack/_unpacker.pyx" if (__pyx_t_1) { /* "msgpack/_unpacker.pyx":208 * self.file_like = file_like * if file_like: * self.file_like_read = file_like.read # <<<<<<<<<<<<<< * if not PyCallable_Check(self.file_like_read): * raise ValueError("`file_like.read` must be a callable.") */ #line 208 "msgpack/_unpacker.pyx" __pyx_t_2 = PyObject_GetAttr(__pyx_v_file_like, __pyx_n_s__read); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 208 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 208 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_t_2); #line 208 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_v_self->file_like_read); #line 208 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_v_self->file_like_read); #line 208 "msgpack/_unpacker.pyx" __pyx_v_self->file_like_read = __pyx_t_2; #line 208 "msgpack/_unpacker.pyx" __pyx_t_2 = 0; /* "msgpack/_unpacker.pyx":209 * if file_like: * self.file_like_read = file_like.read * if not PyCallable_Check(self.file_like_read): # <<<<<<<<<<<<<< * raise ValueError("`file_like.read` must be a callable.") * if not max_buffer_size: */ #line 209 "msgpack/_unpacker.pyx" __pyx_t_2 = __pyx_v_self->file_like_read; #line 209 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_t_2); #line 209 "msgpack/_unpacker.pyx" __pyx_t_1 = (!PyCallable_Check(__pyx_t_2)); #line 209 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 209 "msgpack/_unpacker.pyx" if (__pyx_t_1) { /* "msgpack/_unpacker.pyx":210 * self.file_like_read = file_like.read * if not PyCallable_Check(self.file_like_read): * raise ValueError("`file_like.read` must be a callable.") # <<<<<<<<<<<<<< * if not max_buffer_size: * max_buffer_size = INT_MAX */ #line 210 "msgpack/_unpacker.pyx" __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_13), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 210 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 210 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_2, 0, 0, 0); #line 210 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 210 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 210 "msgpack/_unpacker.pyx" goto __pyx_L4; #line 210 "msgpack/_unpacker.pyx" } #line 210 "msgpack/_unpacker.pyx" __pyx_L4:; #line 210 "msgpack/_unpacker.pyx" goto __pyx_L3; #line 210 "msgpack/_unpacker.pyx" } #line 210 "msgpack/_unpacker.pyx" __pyx_L3:; /* "msgpack/_unpacker.pyx":211 * if not PyCallable_Check(self.file_like_read): * raise ValueError("`file_like.read` must be a callable.") * if not max_buffer_size: # <<<<<<<<<<<<<< * max_buffer_size = INT_MAX * if read_size > max_buffer_size: */ #line 211 "msgpack/_unpacker.pyx" __pyx_t_1 = (!__pyx_v_max_buffer_size); #line 211 "msgpack/_unpacker.pyx" if (__pyx_t_1) { /* "msgpack/_unpacker.pyx":212 * raise ValueError("`file_like.read` must be a callable.") * if not max_buffer_size: * max_buffer_size = INT_MAX # <<<<<<<<<<<<<< * if read_size > max_buffer_size: * raise ValueError("read_size should be less or equal to max_buffer_size") */ #line 212 "msgpack/_unpacker.pyx" __pyx_v_max_buffer_size = INT_MAX; #line 212 "msgpack/_unpacker.pyx" goto __pyx_L5; #line 212 "msgpack/_unpacker.pyx" } #line 212 "msgpack/_unpacker.pyx" __pyx_L5:; /* "msgpack/_unpacker.pyx":213 * if not max_buffer_size: * max_buffer_size = INT_MAX * if read_size > max_buffer_size: # <<<<<<<<<<<<<< * raise ValueError("read_size should be less or equal to max_buffer_size") * if not read_size: */ #line 213 "msgpack/_unpacker.pyx" __pyx_t_1 = (__pyx_v_read_size > __pyx_v_max_buffer_size); #line 213 "msgpack/_unpacker.pyx" if (__pyx_t_1) { /* "msgpack/_unpacker.pyx":214 * max_buffer_size = INT_MAX * if read_size > max_buffer_size: * raise ValueError("read_size should be less or equal to max_buffer_size") # <<<<<<<<<<<<<< * if not read_size: * read_size = min(max_buffer_size, 1024**2) */ #line 214 "msgpack/_unpacker.pyx" __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_15), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 214 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 214 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_2, 0, 0, 0); #line 214 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 214 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 214 "msgpack/_unpacker.pyx" goto __pyx_L6; #line 214 "msgpack/_unpacker.pyx" } #line 214 "msgpack/_unpacker.pyx" __pyx_L6:; /* "msgpack/_unpacker.pyx":215 * if read_size > max_buffer_size: * raise ValueError("read_size should be less or equal to max_buffer_size") * if not read_size: # <<<<<<<<<<<<<< * read_size = min(max_buffer_size, 1024**2) * self.max_buffer_size = max_buffer_size */ #line 215 "msgpack/_unpacker.pyx" __pyx_t_1 = (!__pyx_v_read_size); #line 215 "msgpack/_unpacker.pyx" if (__pyx_t_1) { /* "msgpack/_unpacker.pyx":216 * raise ValueError("read_size should be less or equal to max_buffer_size") * if not read_size: * read_size = min(max_buffer_size, 1024**2) # <<<<<<<<<<<<<< * self.max_buffer_size = max_buffer_size * self.read_size = read_size */ #line 216 "msgpack/_unpacker.pyx" __pyx_t_3 = 1048576; #line 216 "msgpack/_unpacker.pyx" __pyx_t_4 = __pyx_v_max_buffer_size; #line 216 "msgpack/_unpacker.pyx" if ((__pyx_t_3 < __pyx_t_4)) { #line 216 "msgpack/_unpacker.pyx" __pyx_t_5 = __pyx_t_3; #line 216 "msgpack/_unpacker.pyx" } else { #line 216 "msgpack/_unpacker.pyx" __pyx_t_5 = __pyx_t_4; #line 216 "msgpack/_unpacker.pyx" } #line 216 "msgpack/_unpacker.pyx" __pyx_v_read_size = __pyx_t_5; #line 216 "msgpack/_unpacker.pyx" goto __pyx_L7; #line 216 "msgpack/_unpacker.pyx" } #line 216 "msgpack/_unpacker.pyx" __pyx_L7:; /* "msgpack/_unpacker.pyx":217 * if not read_size: * read_size = min(max_buffer_size, 1024**2) * self.max_buffer_size = max_buffer_size # <<<<<<<<<<<<<< * self.read_size = read_size * self.buf = malloc(read_size) */ #line 217 "msgpack/_unpacker.pyx" __pyx_v_self->max_buffer_size = __pyx_v_max_buffer_size; /* "msgpack/_unpacker.pyx":218 * read_size = min(max_buffer_size, 1024**2) * self.max_buffer_size = max_buffer_size * self.read_size = read_size # <<<<<<<<<<<<<< * self.buf = malloc(read_size) * if self.buf == NULL: */ #line 218 "msgpack/_unpacker.pyx" __pyx_v_self->read_size = __pyx_v_read_size; /* "msgpack/_unpacker.pyx":219 * self.max_buffer_size = max_buffer_size * self.read_size = read_size * self.buf = malloc(read_size) # <<<<<<<<<<<<<< * if self.buf == NULL: * raise MemoryError("Unable to allocate internal buffer.") */ #line 219 "msgpack/_unpacker.pyx" __pyx_v_self->buf = ((char *)malloc(__pyx_v_read_size)); /* "msgpack/_unpacker.pyx":220 * self.read_size = read_size * self.buf = malloc(read_size) * if self.buf == NULL: # <<<<<<<<<<<<<< * raise MemoryError("Unable to allocate internal buffer.") * self.buf_size = read_size */ #line 220 "msgpack/_unpacker.pyx" __pyx_t_1 = (__pyx_v_self->buf == NULL); #line 220 "msgpack/_unpacker.pyx" if (__pyx_t_1) { /* "msgpack/_unpacker.pyx":221 * self.buf = malloc(read_size) * if self.buf == NULL: * raise MemoryError("Unable to allocate internal buffer.") # <<<<<<<<<<<<<< * self.buf_size = read_size * self.buf_head = 0 */ #line 221 "msgpack/_unpacker.pyx" __pyx_t_2 = PyObject_Call(__pyx_builtin_MemoryError, ((PyObject *)__pyx_k_tuple_17), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 221 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 221 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_2, 0, 0, 0); #line 221 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 221 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 221 "msgpack/_unpacker.pyx" goto __pyx_L8; #line 221 "msgpack/_unpacker.pyx" } #line 221 "msgpack/_unpacker.pyx" __pyx_L8:; /* "msgpack/_unpacker.pyx":222 * if self.buf == NULL: * raise MemoryError("Unable to allocate internal buffer.") * self.buf_size = read_size # <<<<<<<<<<<<<< * self.buf_head = 0 * self.buf_tail = 0 */ #line 222 "msgpack/_unpacker.pyx" __pyx_v_self->buf_size = __pyx_v_read_size; /* "msgpack/_unpacker.pyx":223 * raise MemoryError("Unable to allocate internal buffer.") * self.buf_size = read_size * self.buf_head = 0 # <<<<<<<<<<<<<< * self.buf_tail = 0 * */ #line 223 "msgpack/_unpacker.pyx" __pyx_v_self->buf_head = 0; /* "msgpack/_unpacker.pyx":224 * self.buf_size = read_size * self.buf_head = 0 * self.buf_tail = 0 # <<<<<<<<<<<<<< * * if encoding is not None: */ #line 224 "msgpack/_unpacker.pyx" __pyx_v_self->buf_tail = 0; /* "msgpack/_unpacker.pyx":226 * self.buf_tail = 0 * * if encoding is not None: # <<<<<<<<<<<<<< * if isinstance(encoding, unicode): * encoding = encoding.encode('ascii') */ #line 226 "msgpack/_unpacker.pyx" __pyx_t_1 = (__pyx_v_encoding != Py_None); #line 226 "msgpack/_unpacker.pyx" if (__pyx_t_1) { /* "msgpack/_unpacker.pyx":227 * * if encoding is not None: * if isinstance(encoding, unicode): # <<<<<<<<<<<<<< * encoding = encoding.encode('ascii') * self.encoding = encoding */ #line 227 "msgpack/_unpacker.pyx" __pyx_t_1 = PyUnicode_Check(__pyx_v_encoding); #line 227 "msgpack/_unpacker.pyx" if (__pyx_t_1) { /* "msgpack/_unpacker.pyx":228 * if encoding is not None: * if isinstance(encoding, unicode): * encoding = encoding.encode('ascii') # <<<<<<<<<<<<<< * self.encoding = encoding * cenc = PyBytes_AsString(encoding) */ #line 228 "msgpack/_unpacker.pyx" __pyx_t_2 = PyObject_GetAttr(__pyx_v_encoding, __pyx_n_s__encode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 228 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 228 "msgpack/_unpacker.pyx" __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_18), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 228 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_6); #line 228 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 228 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_v_encoding); #line 228 "msgpack/_unpacker.pyx" __pyx_v_encoding = __pyx_t_6; #line 228 "msgpack/_unpacker.pyx" __pyx_t_6 = 0; #line 228 "msgpack/_unpacker.pyx" goto __pyx_L10; #line 228 "msgpack/_unpacker.pyx" } #line 228 "msgpack/_unpacker.pyx" __pyx_L10:; /* "msgpack/_unpacker.pyx":229 * if isinstance(encoding, unicode): * encoding = encoding.encode('ascii') * self.encoding = encoding # <<<<<<<<<<<<<< * cenc = PyBytes_AsString(encoding) * */ #line 229 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_v_encoding); #line 229 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_v_encoding); #line 229 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_v_self->encoding); #line 229 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_v_self->encoding); #line 229 "msgpack/_unpacker.pyx" __pyx_v_self->encoding = __pyx_v_encoding; /* "msgpack/_unpacker.pyx":230 * encoding = encoding.encode('ascii') * self.encoding = encoding * cenc = PyBytes_AsString(encoding) # <<<<<<<<<<<<<< * * if unicode_errors is not None: */ #line 230 "msgpack/_unpacker.pyx" __pyx_t_7 = PyBytes_AsString(__pyx_v_encoding); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 230 "msgpack/_unpacker.pyx" __pyx_v_cenc = __pyx_t_7; #line 230 "msgpack/_unpacker.pyx" goto __pyx_L9; #line 230 "msgpack/_unpacker.pyx" } #line 230 "msgpack/_unpacker.pyx" __pyx_L9:; /* "msgpack/_unpacker.pyx":232 * cenc = PyBytes_AsString(encoding) * * if unicode_errors is not None: # <<<<<<<<<<<<<< * if isinstance(unicode_errors, unicode): * unicode_errors = unicode_errors.encode('ascii') */ #line 232 "msgpack/_unpacker.pyx" __pyx_t_1 = (__pyx_v_unicode_errors != Py_None); #line 232 "msgpack/_unpacker.pyx" if (__pyx_t_1) { /* "msgpack/_unpacker.pyx":233 * * if unicode_errors is not None: * if isinstance(unicode_errors, unicode): # <<<<<<<<<<<<<< * unicode_errors = unicode_errors.encode('ascii') * self.unicode_errors = unicode_errors */ #line 233 "msgpack/_unpacker.pyx" __pyx_t_1 = PyUnicode_Check(__pyx_v_unicode_errors); #line 233 "msgpack/_unpacker.pyx" if (__pyx_t_1) { /* "msgpack/_unpacker.pyx":234 * if unicode_errors is not None: * if isinstance(unicode_errors, unicode): * unicode_errors = unicode_errors.encode('ascii') # <<<<<<<<<<<<<< * self.unicode_errors = unicode_errors * cerr = PyBytes_AsString(unicode_errors) */ #line 234 "msgpack/_unpacker.pyx" __pyx_t_6 = PyObject_GetAttr(__pyx_v_unicode_errors, __pyx_n_s__encode); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 234 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_6); #line 234 "msgpack/_unpacker.pyx" __pyx_t_2 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_19), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 234 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 234 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; #line 234 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_v_unicode_errors); #line 234 "msgpack/_unpacker.pyx" __pyx_v_unicode_errors = __pyx_t_2; #line 234 "msgpack/_unpacker.pyx" __pyx_t_2 = 0; #line 234 "msgpack/_unpacker.pyx" goto __pyx_L12; #line 234 "msgpack/_unpacker.pyx" } #line 234 "msgpack/_unpacker.pyx" __pyx_L12:; /* "msgpack/_unpacker.pyx":235 * if isinstance(unicode_errors, unicode): * unicode_errors = unicode_errors.encode('ascii') * self.unicode_errors = unicode_errors # <<<<<<<<<<<<<< * cerr = PyBytes_AsString(unicode_errors) * */ #line 235 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_v_unicode_errors); #line 235 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_v_unicode_errors); #line 235 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_v_self->unicode_errors); #line 235 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_v_self->unicode_errors); #line 235 "msgpack/_unpacker.pyx" __pyx_v_self->unicode_errors = __pyx_v_unicode_errors; /* "msgpack/_unpacker.pyx":236 * unicode_errors = unicode_errors.encode('ascii') * self.unicode_errors = unicode_errors * cerr = PyBytes_AsString(unicode_errors) # <<<<<<<<<<<<<< * * init_ctx(&self.ctx, object_hook, object_pairs_hook, list_hook, use_list, cenc, cerr) */ #line 236 "msgpack/_unpacker.pyx" __pyx_t_7 = PyBytes_AsString(__pyx_v_unicode_errors); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 236 "msgpack/_unpacker.pyx" __pyx_v_cerr = __pyx_t_7; #line 236 "msgpack/_unpacker.pyx" goto __pyx_L11; #line 236 "msgpack/_unpacker.pyx" } #line 236 "msgpack/_unpacker.pyx" __pyx_L11:; /* "msgpack/_unpacker.pyx":238 * cerr = PyBytes_AsString(unicode_errors) * * init_ctx(&self.ctx, object_hook, object_pairs_hook, list_hook, use_list, cenc, cerr) # <<<<<<<<<<<<<< * * def feed(self, object next_bytes): */ #line 238 "msgpack/_unpacker.pyx" __pyx_t_2 = __pyx_f_7msgpack_9_unpacker_init_ctx((&__pyx_v_self->ctx), __pyx_v_object_hook, __pyx_v_object_pairs_hook, __pyx_v_list_hook, __pyx_v_use_list, __pyx_v_cenc, __pyx_v_cerr); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 238 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 238 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 238 "msgpack/_unpacker.pyx" #line 238 "msgpack/_unpacker.pyx" __pyx_r = 0; #line 238 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 238 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 238 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_2); #line 238 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_6); #line 238 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 238 "msgpack/_unpacker.pyx" __pyx_r = -1; #line 238 "msgpack/_unpacker.pyx" __pyx_L0:; #line 238 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_v_encoding); #line 238 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_v_unicode_errors); #line 238 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 238 "msgpack/_unpacker.pyx" return __pyx_r; #line 238 "msgpack/_unpacker.pyx" } #line 238 "msgpack/_unpacker.pyx" #line 238 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 238 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_7feed(PyObject *__pyx_v_self, PyObject *__pyx_v_next_bytes); /*proto*/ #line 238 "msgpack/_unpacker.pyx" static char __pyx_doc_7msgpack_9_unpacker_8Unpacker_6feed[] = "Unpacker.feed(self, next_bytes)\nAppend `next_bytes` to internal buffer."; #line 238 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_7feed(PyObject *__pyx_v_self, PyObject *__pyx_v_next_bytes) { #line 238 "msgpack/_unpacker.pyx" PyObject *__pyx_r = 0; #line 238 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 238 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("feed (wrapper)", 0); __pyx_r = #line 238 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_8Unpacker_6feed(((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)__pyx_v_self), ((PyObject *)__pyx_v_next_bytes)); #line 238 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 238 "msgpack/_unpacker.pyx" return __pyx_r; #line 238 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":240 * init_ctx(&self.ctx, object_hook, object_pairs_hook, list_hook, use_list, cenc, cerr) * * def feed(self, object next_bytes): # <<<<<<<<<<<<<< * """Append `next_bytes` to internal buffer.""" * cdef char* buf */ #line 240 "msgpack/_unpacker.pyx" #line 240 "msgpack/_unpacker.pyx" static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_6feed(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_next_bytes) { char *__pyx_v_buf #line 240 "msgpack/_unpacker.pyx" ; Py_ssize_t __pyx_v_buf_len #line 240 "msgpack/_unpacker.pyx" ; #line 240 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 240 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("feed", 0); /* "msgpack/_unpacker.pyx":244 * cdef char* buf * cdef Py_ssize_t buf_len * if self.file_like is not None: # <<<<<<<<<<<<<< * raise AssertionError( * "unpacker.feed() is not be able to use with `file_like`.") */ #line 244 "msgpack/_unpacker.pyx" __pyx_t_1 = (__pyx_v_self->file_like != Py_None); #line 244 "msgpack/_unpacker.pyx" if (__pyx_t_1) { /* "msgpack/_unpacker.pyx":245 * cdef Py_ssize_t buf_len * if self.file_like is not None: * raise AssertionError( # <<<<<<<<<<<<<< * "unpacker.feed() is not be able to use with `file_like`.") * PyObject_AsReadBuffer(next_bytes, &buf, &buf_len) */ #line 245 "msgpack/_unpacker.pyx" __pyx_t_2 = PyObject_Call(__pyx_builtin_AssertionError, ((PyObject *)__pyx_k_tuple_21), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 245 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 245 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_2, 0, 0, 0); #line 245 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 245 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 245 "msgpack/_unpacker.pyx" goto __pyx_L3; #line 245 "msgpack/_unpacker.pyx" } #line 245 "msgpack/_unpacker.pyx" __pyx_L3:; /* "msgpack/_unpacker.pyx":247 * raise AssertionError( * "unpacker.feed() is not be able to use with `file_like`.") * PyObject_AsReadBuffer(next_bytes, &buf, &buf_len) # <<<<<<<<<<<<<< * self.append_buffer(buf, buf_len) * */ #line 247 "msgpack/_unpacker.pyx" __pyx_t_3 = PyObject_AsReadBuffer(__pyx_v_next_bytes, ((const void* *)(&__pyx_v_buf)), (&__pyx_v_buf_len)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "msgpack/_unpacker.pyx":248 * "unpacker.feed() is not be able to use with `file_like`.") * PyObject_AsReadBuffer(next_bytes, &buf, &buf_len) * self.append_buffer(buf, buf_len) # <<<<<<<<<<<<<< * * cdef append_buffer(self, void* _buf, Py_ssize_t _buf_len): */ #line 248 "msgpack/_unpacker.pyx" __pyx_t_2 = ((struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker *)__pyx_v_self->__pyx_vtab)->append_buffer(__pyx_v_self, __pyx_v_buf, __pyx_v_buf_len); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 248 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 248 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; #line 248 "msgpack/_unpacker.pyx" #line 248 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 248 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 248 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 248 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_2); #line 248 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.feed", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 248 "msgpack/_unpacker.pyx" __pyx_r = NULL; #line 248 "msgpack/_unpacker.pyx" __pyx_L0:; #line 248 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 248 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 248 "msgpack/_unpacker.pyx" return __pyx_r; #line 248 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":250 * self.append_buffer(buf, buf_len) * * cdef append_buffer(self, void* _buf, Py_ssize_t _buf_len): # <<<<<<<<<<<<<< * cdef: * char* buf = self.buf */ #line 250 "msgpack/_unpacker.pyx" #line 250 "msgpack/_unpacker.pyx" static PyObject *__pyx_f_7msgpack_9_unpacker_8Unpacker_append_buffer(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, void *__pyx_v__buf, Py_ssize_t __pyx_v__buf_len) { char *__pyx_v_buf #line 250 "msgpack/_unpacker.pyx" ; char *__pyx_v_new_buf #line 250 "msgpack/_unpacker.pyx" ; size_t __pyx_v_head #line 250 "msgpack/_unpacker.pyx" ; size_t __pyx_v_tail #line 250 "msgpack/_unpacker.pyx" ; size_t __pyx_v_buf_size #line 250 "msgpack/_unpacker.pyx" ; size_t __pyx_v_new_size #line 250 "msgpack/_unpacker.pyx" ; #line 250 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations char *__pyx_t_1; size_t __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; size_t __pyx_t_5; size_t __pyx_t_6; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 250 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("append_buffer", 0); /* "msgpack/_unpacker.pyx":252 * cdef append_buffer(self, void* _buf, Py_ssize_t _buf_len): * cdef: * char* buf = self.buf # <<<<<<<<<<<<<< * char* new_buf * size_t head = self.buf_head */ #line 252 "msgpack/_unpacker.pyx" __pyx_t_1 = __pyx_v_self->buf; #line 252 "msgpack/_unpacker.pyx" __pyx_v_buf = __pyx_t_1; /* "msgpack/_unpacker.pyx":254 * char* buf = self.buf * char* new_buf * size_t head = self.buf_head # <<<<<<<<<<<<<< * size_t tail = self.buf_tail * size_t buf_size = self.buf_size */ #line 254 "msgpack/_unpacker.pyx" __pyx_t_2 = __pyx_v_self->buf_head; #line 254 "msgpack/_unpacker.pyx" __pyx_v_head = __pyx_t_2; /* "msgpack/_unpacker.pyx":255 * char* new_buf * size_t head = self.buf_head * size_t tail = self.buf_tail # <<<<<<<<<<<<<< * size_t buf_size = self.buf_size * size_t new_size */ #line 255 "msgpack/_unpacker.pyx" __pyx_t_2 = __pyx_v_self->buf_tail; #line 255 "msgpack/_unpacker.pyx" __pyx_v_tail = __pyx_t_2; /* "msgpack/_unpacker.pyx":256 * size_t head = self.buf_head * size_t tail = self.buf_tail * size_t buf_size = self.buf_size # <<<<<<<<<<<<<< * size_t new_size * */ #line 256 "msgpack/_unpacker.pyx" __pyx_t_2 = __pyx_v_self->buf_size; #line 256 "msgpack/_unpacker.pyx" __pyx_v_buf_size = __pyx_t_2; /* "msgpack/_unpacker.pyx":259 * size_t new_size * * if tail + _buf_len > buf_size: # <<<<<<<<<<<<<< * if ((tail - head) + _buf_len) <= buf_size: * # move to front. */ #line 259 "msgpack/_unpacker.pyx" __pyx_t_3 = ((__pyx_v_tail + __pyx_v__buf_len) > __pyx_v_buf_size); #line 259 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":260 * * if tail + _buf_len > buf_size: * if ((tail - head) + _buf_len) <= buf_size: # <<<<<<<<<<<<<< * # move to front. * memmove(buf, buf + head, tail - head) */ #line 260 "msgpack/_unpacker.pyx" __pyx_t_3 = (((__pyx_v_tail - __pyx_v_head) + __pyx_v__buf_len) <= __pyx_v_buf_size); #line 260 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":262 * if ((tail - head) + _buf_len) <= buf_size: * # move to front. * memmove(buf, buf + head, tail - head) # <<<<<<<<<<<<<< * tail -= head * head = 0 */ #line 262 "msgpack/_unpacker.pyx" memmove(__pyx_v_buf, (__pyx_v_buf + __pyx_v_head), (__pyx_v_tail - __pyx_v_head)); /* "msgpack/_unpacker.pyx":263 * # move to front. * memmove(buf, buf + head, tail - head) * tail -= head # <<<<<<<<<<<<<< * head = 0 * else: */ #line 263 "msgpack/_unpacker.pyx" __pyx_v_tail = (__pyx_v_tail - __pyx_v_head); /* "msgpack/_unpacker.pyx":264 * memmove(buf, buf + head, tail - head) * tail -= head * head = 0 # <<<<<<<<<<<<<< * else: * # expand buffer. */ #line 264 "msgpack/_unpacker.pyx" __pyx_v_head = 0; #line 264 "msgpack/_unpacker.pyx" goto __pyx_L4; #line 264 "msgpack/_unpacker.pyx" } #line 264 "msgpack/_unpacker.pyx" /*else*/ { /* "msgpack/_unpacker.pyx":267 * else: * # expand buffer. * new_size = (tail-head) + _buf_len # <<<<<<<<<<<<<< * if new_size > self.max_buffer_size: * raise BufferFull */ #line 267 "msgpack/_unpacker.pyx" __pyx_v_new_size = ((__pyx_v_tail - __pyx_v_head) + __pyx_v__buf_len); /* "msgpack/_unpacker.pyx":268 * # expand buffer. * new_size = (tail-head) + _buf_len * if new_size > self.max_buffer_size: # <<<<<<<<<<<<<< * raise BufferFull * new_size = min(new_size*2, self.max_buffer_size) */ #line 268 "msgpack/_unpacker.pyx" __pyx_t_3 = (__pyx_v_new_size > __pyx_v_self->max_buffer_size); #line 268 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":269 * new_size = (tail-head) + _buf_len * if new_size > self.max_buffer_size: * raise BufferFull # <<<<<<<<<<<<<< * new_size = min(new_size*2, self.max_buffer_size) * new_buf = malloc(new_size) */ #line 269 "msgpack/_unpacker.pyx" __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__BufferFull); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 269 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 269 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_4, 0, 0, 0); #line 269 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 269 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 269 "msgpack/_unpacker.pyx" goto __pyx_L5; #line 269 "msgpack/_unpacker.pyx" } #line 269 "msgpack/_unpacker.pyx" __pyx_L5:; /* "msgpack/_unpacker.pyx":270 * if new_size > self.max_buffer_size: * raise BufferFull * new_size = min(new_size*2, self.max_buffer_size) # <<<<<<<<<<<<<< * new_buf = malloc(new_size) * if new_buf == NULL: */ #line 270 "msgpack/_unpacker.pyx" __pyx_t_2 = __pyx_v_self->max_buffer_size; #line 270 "msgpack/_unpacker.pyx" __pyx_t_5 = (__pyx_v_new_size * 2); #line 270 "msgpack/_unpacker.pyx" if ((__pyx_t_2 < __pyx_t_5)) { #line 270 "msgpack/_unpacker.pyx" __pyx_t_6 = __pyx_t_2; #line 270 "msgpack/_unpacker.pyx" } else { #line 270 "msgpack/_unpacker.pyx" __pyx_t_6 = __pyx_t_5; #line 270 "msgpack/_unpacker.pyx" } #line 270 "msgpack/_unpacker.pyx" __pyx_v_new_size = __pyx_t_6; /* "msgpack/_unpacker.pyx":271 * raise BufferFull * new_size = min(new_size*2, self.max_buffer_size) * new_buf = malloc(new_size) # <<<<<<<<<<<<<< * if new_buf == NULL: * # self.buf still holds old buffer and will be freed during */ #line 271 "msgpack/_unpacker.pyx" __pyx_v_new_buf = ((char *)malloc(__pyx_v_new_size)); /* "msgpack/_unpacker.pyx":272 * new_size = min(new_size*2, self.max_buffer_size) * new_buf = malloc(new_size) * if new_buf == NULL: # <<<<<<<<<<<<<< * # self.buf still holds old buffer and will be freed during * # obj destruction */ #line 272 "msgpack/_unpacker.pyx" __pyx_t_3 = (__pyx_v_new_buf == NULL); #line 272 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":275 * # self.buf still holds old buffer and will be freed during * # obj destruction * raise MemoryError("Unable to enlarge internal buffer.") # <<<<<<<<<<<<<< * memcpy(new_buf, buf + head, tail - head) * free(buf) */ #line 275 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_builtin_MemoryError, ((PyObject *)__pyx_k_tuple_23), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 275 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 275 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_4, 0, 0, 0); #line 275 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 275 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 275 "msgpack/_unpacker.pyx" goto __pyx_L6; #line 275 "msgpack/_unpacker.pyx" } #line 275 "msgpack/_unpacker.pyx" __pyx_L6:; /* "msgpack/_unpacker.pyx":276 * # obj destruction * raise MemoryError("Unable to enlarge internal buffer.") * memcpy(new_buf, buf + head, tail - head) # <<<<<<<<<<<<<< * free(buf) * */ #line 276 "msgpack/_unpacker.pyx" memcpy(__pyx_v_new_buf, (__pyx_v_buf + __pyx_v_head), (__pyx_v_tail - __pyx_v_head)); /* "msgpack/_unpacker.pyx":277 * raise MemoryError("Unable to enlarge internal buffer.") * memcpy(new_buf, buf + head, tail - head) * free(buf) # <<<<<<<<<<<<<< * * buf = new_buf */ #line 277 "msgpack/_unpacker.pyx" free(__pyx_v_buf); /* "msgpack/_unpacker.pyx":279 * free(buf) * * buf = new_buf # <<<<<<<<<<<<<< * buf_size = new_size * tail -= head */ #line 279 "msgpack/_unpacker.pyx" __pyx_v_buf = __pyx_v_new_buf; /* "msgpack/_unpacker.pyx":280 * * buf = new_buf * buf_size = new_size # <<<<<<<<<<<<<< * tail -= head * head = 0 */ #line 280 "msgpack/_unpacker.pyx" __pyx_v_buf_size = __pyx_v_new_size; /* "msgpack/_unpacker.pyx":281 * buf = new_buf * buf_size = new_size * tail -= head # <<<<<<<<<<<<<< * head = 0 * */ #line 281 "msgpack/_unpacker.pyx" __pyx_v_tail = (__pyx_v_tail - __pyx_v_head); /* "msgpack/_unpacker.pyx":282 * buf_size = new_size * tail -= head * head = 0 # <<<<<<<<<<<<<< * * memcpy(buf + tail, (_buf), _buf_len) */ #line 282 "msgpack/_unpacker.pyx" __pyx_v_head = 0; #line 282 "msgpack/_unpacker.pyx" } #line 282 "msgpack/_unpacker.pyx" __pyx_L4:; #line 282 "msgpack/_unpacker.pyx" goto __pyx_L3; #line 282 "msgpack/_unpacker.pyx" } #line 282 "msgpack/_unpacker.pyx" __pyx_L3:; /* "msgpack/_unpacker.pyx":284 * head = 0 * * memcpy(buf + tail, (_buf), _buf_len) # <<<<<<<<<<<<<< * self.buf = buf * self.buf_head = head */ #line 284 "msgpack/_unpacker.pyx" memcpy((__pyx_v_buf + __pyx_v_tail), ((char *)__pyx_v__buf), __pyx_v__buf_len); /* "msgpack/_unpacker.pyx":285 * * memcpy(buf + tail, (_buf), _buf_len) * self.buf = buf # <<<<<<<<<<<<<< * self.buf_head = head * self.buf_size = buf_size */ #line 285 "msgpack/_unpacker.pyx" __pyx_v_self->buf = __pyx_v_buf; /* "msgpack/_unpacker.pyx":286 * memcpy(buf + tail, (_buf), _buf_len) * self.buf = buf * self.buf_head = head # <<<<<<<<<<<<<< * self.buf_size = buf_size * self.buf_tail = tail + _buf_len */ #line 286 "msgpack/_unpacker.pyx" __pyx_v_self->buf_head = __pyx_v_head; /* "msgpack/_unpacker.pyx":287 * self.buf = buf * self.buf_head = head * self.buf_size = buf_size # <<<<<<<<<<<<<< * self.buf_tail = tail + _buf_len * */ #line 287 "msgpack/_unpacker.pyx" __pyx_v_self->buf_size = __pyx_v_buf_size; /* "msgpack/_unpacker.pyx":288 * self.buf_head = head * self.buf_size = buf_size * self.buf_tail = tail + _buf_len # <<<<<<<<<<<<<< * * cdef read_from_file(self): */ #line 288 "msgpack/_unpacker.pyx" __pyx_v_self->buf_tail = (__pyx_v_tail + __pyx_v__buf_len); #line 288 "msgpack/_unpacker.pyx" #line 288 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 288 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 288 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 288 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_4); #line 288 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.append_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 288 "msgpack/_unpacker.pyx" __pyx_r = 0; #line 288 "msgpack/_unpacker.pyx" __pyx_L0:; #line 288 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 288 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 288 "msgpack/_unpacker.pyx" return __pyx_r; #line 288 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":290 * self.buf_tail = tail + _buf_len * * cdef read_from_file(self): # <<<<<<<<<<<<<< * next_bytes = self.file_like_read( * min(self.read_size, */ #line 290 "msgpack/_unpacker.pyx" #line 290 "msgpack/_unpacker.pyx" static PyObject *__pyx_f_7msgpack_9_unpacker_8Unpacker_read_from_file(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self) { PyObject *__pyx_v_next_bytes = NULL #line 290 "msgpack/_unpacker.pyx" ; #line 290 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations size_t __pyx_t_1; Py_ssize_t __pyx_t_2; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_t_6; char *__pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 290 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("read_from_file", 0); /* "msgpack/_unpacker.pyx":293 * next_bytes = self.file_like_read( * min(self.read_size, * self.max_buffer_size - (self.buf_tail - self.buf_head) # <<<<<<<<<<<<<< * )) * if next_bytes: */ #line 293 "msgpack/_unpacker.pyx" __pyx_t_1 = (__pyx_v_self->max_buffer_size - (__pyx_v_self->buf_tail - __pyx_v_self->buf_head)); /* "msgpack/_unpacker.pyx":292 * cdef read_from_file(self): * next_bytes = self.file_like_read( * min(self.read_size, # <<<<<<<<<<<<<< * self.max_buffer_size - (self.buf_tail - self.buf_head) * )) */ #line 292 "msgpack/_unpacker.pyx" __pyx_t_2 = __pyx_v_self->read_size; /* "msgpack/_unpacker.pyx":293 * next_bytes = self.file_like_read( * min(self.read_size, * self.max_buffer_size - (self.buf_tail - self.buf_head) # <<<<<<<<<<<<<< * )) * if next_bytes: */ #line 293 "msgpack/_unpacker.pyx" if ((__pyx_t_1 < __pyx_t_2)) { #line 293 "msgpack/_unpacker.pyx" __pyx_t_3 = __pyx_t_1; #line 293 "msgpack/_unpacker.pyx" } else { #line 293 "msgpack/_unpacker.pyx" __pyx_t_3 = __pyx_t_2; #line 293 "msgpack/_unpacker.pyx" } #line 293 "msgpack/_unpacker.pyx" __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 293 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 293 "msgpack/_unpacker.pyx" __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 293 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_5); #line 293 "msgpack/_unpacker.pyx" PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); #line 293 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_t_4); #line 293 "msgpack/_unpacker.pyx" __pyx_t_4 = 0; #line 293 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_v_self->file_like_read, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 293 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 293 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; #line 293 "msgpack/_unpacker.pyx" __pyx_v_next_bytes = __pyx_t_4; #line 293 "msgpack/_unpacker.pyx" __pyx_t_4 = 0; /* "msgpack/_unpacker.pyx":295 * self.max_buffer_size - (self.buf_tail - self.buf_head) * )) * if next_bytes: # <<<<<<<<<<<<<< * self.append_buffer(PyBytes_AsString(next_bytes), PyBytes_Size(next_bytes)) * else: */ #line 295 "msgpack/_unpacker.pyx" __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_next_bytes); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 295 "msgpack/_unpacker.pyx" if (__pyx_t_6) { /* "msgpack/_unpacker.pyx":296 * )) * if next_bytes: * self.append_buffer(PyBytes_AsString(next_bytes), PyBytes_Size(next_bytes)) # <<<<<<<<<<<<<< * else: * self.file_like = None */ #line 296 "msgpack/_unpacker.pyx" __pyx_t_7 = PyBytes_AsString(__pyx_v_next_bytes); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 296 "msgpack/_unpacker.pyx" __pyx_t_2 = PyBytes_Size(__pyx_v_next_bytes); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 296 "msgpack/_unpacker.pyx" __pyx_t_4 = ((struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker *)__pyx_v_self->__pyx_vtab)->append_buffer(__pyx_v_self, __pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 296 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 296 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 296 "msgpack/_unpacker.pyx" goto __pyx_L3; #line 296 "msgpack/_unpacker.pyx" } #line 296 "msgpack/_unpacker.pyx" /*else*/ { /* "msgpack/_unpacker.pyx":298 * self.append_buffer(PyBytes_AsString(next_bytes), PyBytes_Size(next_bytes)) * else: * self.file_like = None # <<<<<<<<<<<<<< * * cdef object _unpack(self, execute_fn execute, object write_bytes, bint iter=0): */ #line 298 "msgpack/_unpacker.pyx" __Pyx_INCREF(Py_None); #line 298 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(Py_None); #line 298 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_v_self->file_like); #line 298 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_v_self->file_like); #line 298 "msgpack/_unpacker.pyx" __pyx_v_self->file_like = Py_None; #line 298 "msgpack/_unpacker.pyx" } #line 298 "msgpack/_unpacker.pyx" __pyx_L3:; #line 298 "msgpack/_unpacker.pyx" #line 298 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 298 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 298 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 298 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_4); #line 298 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_5); #line 298 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.read_from_file", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 298 "msgpack/_unpacker.pyx" __pyx_r = 0; #line 298 "msgpack/_unpacker.pyx" __pyx_L0:; #line 298 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_v_next_bytes); #line 298 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 298 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 298 "msgpack/_unpacker.pyx" return __pyx_r; #line 298 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":300 * self.file_like = None * * cdef object _unpack(self, execute_fn execute, object write_bytes, bint iter=0): # <<<<<<<<<<<<<< * cdef int ret * cdef object obj */ #line 300 "msgpack/_unpacker.pyx" #line 300 "msgpack/_unpacker.pyx" static PyObject *__pyx_f_7msgpack_9_unpacker_8Unpacker__unpack(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, execute_fn __pyx_v_execute, PyObject *__pyx_v_write_bytes, struct __pyx_opt_args_7msgpack_9_unpacker_8Unpacker__unpack *__pyx_optional_args) { #line 300 "msgpack/_unpacker.pyx" int __pyx_v_iter = ((int)0); int __pyx_v_ret #line 300 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_obj = 0 #line 300 "msgpack/_unpacker.pyx" ; size_t __pyx_v_prev_head #line 300 "msgpack/_unpacker.pyx" ; #line 300 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations size_t __pyx_t_1; int __pyx_t_2; int __pyx_t_3; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 300 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("_unpack", 0); #line 300 "msgpack/_unpacker.pyx" if (__pyx_optional_args) { #line 300 "msgpack/_unpacker.pyx" if (__pyx_optional_args->__pyx_n > 0) { #line 300 "msgpack/_unpacker.pyx" __pyx_v_iter = __pyx_optional_args->iter; #line 300 "msgpack/_unpacker.pyx" } #line 300 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":304 * cdef object obj * cdef size_t prev_head * while 1: # <<<<<<<<<<<<<< * prev_head = self.buf_head * ret = execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head) */ #line 304 "msgpack/_unpacker.pyx" while (1) { #line 304 "msgpack/_unpacker.pyx" if (!1) break; /* "msgpack/_unpacker.pyx":305 * cdef size_t prev_head * while 1: * prev_head = self.buf_head # <<<<<<<<<<<<<< * ret = execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head) * if write_bytes is not None: */ #line 305 "msgpack/_unpacker.pyx" __pyx_t_1 = __pyx_v_self->buf_head; #line 305 "msgpack/_unpacker.pyx" __pyx_v_prev_head = __pyx_t_1; /* "msgpack/_unpacker.pyx":306 * while 1: * prev_head = self.buf_head * ret = execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head) # <<<<<<<<<<<<<< * if write_bytes is not None: * write_bytes(PyBytes_FromStringAndSize(self.buf + prev_head, self.buf_head - prev_head)) */ #line 306 "msgpack/_unpacker.pyx" __pyx_t_2 = __pyx_v_execute((&__pyx_v_self->ctx), __pyx_v_self->buf, __pyx_v_self->buf_tail, (&__pyx_v_self->buf_head)); if (unlikely(__pyx_t_2 == -1 && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 306 "msgpack/_unpacker.pyx" __pyx_v_ret = __pyx_t_2; /* "msgpack/_unpacker.pyx":307 * prev_head = self.buf_head * ret = execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head) * if write_bytes is not None: # <<<<<<<<<<<<<< * write_bytes(PyBytes_FromStringAndSize(self.buf + prev_head, self.buf_head - prev_head)) * */ #line 307 "msgpack/_unpacker.pyx" __pyx_t_3 = (__pyx_v_write_bytes != Py_None); #line 307 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":308 * ret = execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head) * if write_bytes is not None: * write_bytes(PyBytes_FromStringAndSize(self.buf + prev_head, self.buf_head - prev_head)) # <<<<<<<<<<<<<< * * if ret == 1: */ #line 308 "msgpack/_unpacker.pyx" __pyx_t_4 = ((PyObject *)PyBytes_FromStringAndSize((__pyx_v_self->buf + __pyx_v_prev_head), (__pyx_v_self->buf_head - __pyx_v_prev_head))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 308 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 308 "msgpack/_unpacker.pyx" __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 308 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_5); #line 308 "msgpack/_unpacker.pyx" PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); #line 308 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_t_4); #line 308 "msgpack/_unpacker.pyx" __pyx_t_4 = 0; #line 308 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_v_write_bytes, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 308 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 308 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0; #line 308 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 308 "msgpack/_unpacker.pyx" goto __pyx_L5; #line 308 "msgpack/_unpacker.pyx" } #line 308 "msgpack/_unpacker.pyx" __pyx_L5:; /* "msgpack/_unpacker.pyx":314 * template_init(&self.ctx) * return obj * elif ret == 0: # <<<<<<<<<<<<<< * if self.file_like is not None: * self.read_from_file() */ #line 314 "msgpack/_unpacker.pyx" switch (__pyx_v_ret) { /* "msgpack/_unpacker.pyx":310 * write_bytes(PyBytes_FromStringAndSize(self.buf + prev_head, self.buf_head - prev_head)) * * if ret == 1: # <<<<<<<<<<<<<< * obj = template_data(&self.ctx) * template_init(&self.ctx) */ #line 310 "msgpack/_unpacker.pyx" case 1: /* "msgpack/_unpacker.pyx":311 * * if ret == 1: * obj = template_data(&self.ctx) # <<<<<<<<<<<<<< * template_init(&self.ctx) * return obj */ #line 311 "msgpack/_unpacker.pyx" __pyx_t_4 = template_data((&__pyx_v_self->ctx)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 311 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 311 "msgpack/_unpacker.pyx" __pyx_v_obj = __pyx_t_4; #line 311 "msgpack/_unpacker.pyx" __pyx_t_4 = 0; /* "msgpack/_unpacker.pyx":312 * if ret == 1: * obj = template_data(&self.ctx) * template_init(&self.ctx) # <<<<<<<<<<<<<< * return obj * elif ret == 0: */ #line 312 "msgpack/_unpacker.pyx" template_init((&__pyx_v_self->ctx)); /* "msgpack/_unpacker.pyx":313 * obj = template_data(&self.ctx) * template_init(&self.ctx) * return obj # <<<<<<<<<<<<<< * elif ret == 0: * if self.file_like is not None: */ #line 313 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_r); #line 313 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_v_obj); #line 313 "msgpack/_unpacker.pyx" __pyx_r = __pyx_v_obj; #line 313 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 313 "msgpack/_unpacker.pyx" break; /* "msgpack/_unpacker.pyx":314 * template_init(&self.ctx) * return obj * elif ret == 0: # <<<<<<<<<<<<<< * if self.file_like is not None: * self.read_from_file() */ #line 314 "msgpack/_unpacker.pyx" case 0: /* "msgpack/_unpacker.pyx":315 * return obj * elif ret == 0: * if self.file_like is not None: # <<<<<<<<<<<<<< * self.read_from_file() * continue */ #line 315 "msgpack/_unpacker.pyx" __pyx_t_3 = (__pyx_v_self->file_like != Py_None); #line 315 "msgpack/_unpacker.pyx" if (__pyx_t_3) { /* "msgpack/_unpacker.pyx":316 * elif ret == 0: * if self.file_like is not None: * self.read_from_file() # <<<<<<<<<<<<<< * continue * if iter: */ #line 316 "msgpack/_unpacker.pyx" __pyx_t_4 = ((struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker *)__pyx_v_self->__pyx_vtab)->read_from_file(__pyx_v_self); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 316 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 316 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* "msgpack/_unpacker.pyx":317 * if self.file_like is not None: * self.read_from_file() * continue # <<<<<<<<<<<<<< * if iter: * raise StopIteration("No more data to unpack.") */ #line 317 "msgpack/_unpacker.pyx" goto __pyx_L3_continue; #line 317 "msgpack/_unpacker.pyx" goto __pyx_L6; #line 317 "msgpack/_unpacker.pyx" } #line 317 "msgpack/_unpacker.pyx" __pyx_L6:; /* "msgpack/_unpacker.pyx":318 * self.read_from_file() * continue * if iter: # <<<<<<<<<<<<<< * raise StopIteration("No more data to unpack.") * else: */ #line 318 "msgpack/_unpacker.pyx" if (__pyx_v_iter) { /* "msgpack/_unpacker.pyx":319 * continue * if iter: * raise StopIteration("No more data to unpack.") # <<<<<<<<<<<<<< * else: * raise OutOfData("No more data to unpack.") */ #line 319 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_Call(__pyx_builtin_StopIteration, ((PyObject *)__pyx_k_tuple_25), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 319 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 319 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_4, 0, 0, 0); #line 319 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 319 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 319 "msgpack/_unpacker.pyx" goto __pyx_L7; #line 319 "msgpack/_unpacker.pyx" } #line 319 "msgpack/_unpacker.pyx" /*else*/ { /* "msgpack/_unpacker.pyx":321 * raise StopIteration("No more data to unpack.") * else: * raise OutOfData("No more data to unpack.") # <<<<<<<<<<<<<< * else: * raise ValueError("Unpack failed: error = %d" % (ret,)) */ #line 321 "msgpack/_unpacker.pyx" __pyx_t_4 = __Pyx_GetName(__pyx_m, __pyx_n_s__OutOfData); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 321 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 321 "msgpack/_unpacker.pyx" __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_26), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 321 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_5); #line 321 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 321 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_5, 0, 0, 0); #line 321 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; #line 321 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 321 "msgpack/_unpacker.pyx" } #line 321 "msgpack/_unpacker.pyx" __pyx_L7:; #line 321 "msgpack/_unpacker.pyx" break; #line 321 "msgpack/_unpacker.pyx" default: /* "msgpack/_unpacker.pyx":323 * raise OutOfData("No more data to unpack.") * else: * raise ValueError("Unpack failed: error = %d" % (ret,)) # <<<<<<<<<<<<<< * * def read_bytes(self, Py_ssize_t nbytes): */ #line 323 "msgpack/_unpacker.pyx" __pyx_t_5 = PyInt_FromLong(__pyx_v_ret); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 323 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_5); #line 323 "msgpack/_unpacker.pyx" __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 323 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 323 "msgpack/_unpacker.pyx" PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); #line 323 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_t_5); #line 323 "msgpack/_unpacker.pyx" __pyx_t_5 = 0; #line 323 "msgpack/_unpacker.pyx" __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_11), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 323 "msgpack/_unpacker.pyx" __Pyx_GOTREF(((PyObject *)__pyx_t_5)); #line 323 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; #line 323 "msgpack/_unpacker.pyx" __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 323 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 323 "msgpack/_unpacker.pyx" PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_t_5)); #line 323 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_t_5)); #line 323 "msgpack/_unpacker.pyx" __pyx_t_5 = 0; #line 323 "msgpack/_unpacker.pyx" __pyx_t_5 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 323 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_5); #line 323 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0; #line 323 "msgpack/_unpacker.pyx" __Pyx_Raise(__pyx_t_5, 0, 0, 0); #line 323 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; #line 323 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 323 "msgpack/_unpacker.pyx" break; #line 323 "msgpack/_unpacker.pyx" } #line 323 "msgpack/_unpacker.pyx" __pyx_L3_continue:; #line 323 "msgpack/_unpacker.pyx" } #line 323 "msgpack/_unpacker.pyx" #line 323 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 323 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 323 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 323 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_4); #line 323 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_5); #line 323 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker._unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 323 "msgpack/_unpacker.pyx" __pyx_r = 0; #line 323 "msgpack/_unpacker.pyx" __pyx_L0:; #line 323 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_v_obj); #line 323 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 323 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 323 "msgpack/_unpacker.pyx" return __pyx_r; #line 323 "msgpack/_unpacker.pyx" } #line 323 "msgpack/_unpacker.pyx" #line 323 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 323 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_9read_bytes(PyObject *__pyx_v_self, PyObject *__pyx_arg_nbytes); /*proto*/ #line 323 "msgpack/_unpacker.pyx" static char __pyx_doc_7msgpack_9_unpacker_8Unpacker_8read_bytes[] = "Unpacker.read_bytes(self, Py_ssize_t nbytes)\nread a specified number of raw bytes from the stream"; #line 323 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_9read_bytes(PyObject *__pyx_v_self, PyObject *__pyx_arg_nbytes) { Py_ssize_t __pyx_v_nbytes #line 323 "msgpack/_unpacker.pyx" ; #line 323 "msgpack/_unpacker.pyx" PyObject *__pyx_r = 0; #line 323 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 323 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("read_bytes (wrapper)", 0); #line 323 "msgpack/_unpacker.pyx" assert(__pyx_arg_nbytes); { #line 323 "msgpack/_unpacker.pyx" __pyx_v_nbytes = __Pyx_PyIndex_AsSsize_t(__pyx_arg_nbytes); if (unlikely((__pyx_v_nbytes == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 323 "msgpack/_unpacker.pyx" } #line 323 "msgpack/_unpacker.pyx" goto __pyx_L4_argument_unpacking_done; #line 323 "msgpack/_unpacker.pyx" __pyx_L3_error:; #line 323 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.read_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 323 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 323 "msgpack/_unpacker.pyx" return NULL; #line 323 "msgpack/_unpacker.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 323 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_8Unpacker_8read_bytes(((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)__pyx_v_self), ((Py_ssize_t)__pyx_v_nbytes)); #line 323 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 323 "msgpack/_unpacker.pyx" return __pyx_r; #line 323 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":325 * raise ValueError("Unpack failed: error = %d" % (ret,)) * * def read_bytes(self, Py_ssize_t nbytes): # <<<<<<<<<<<<<< * """read a specified number of raw bytes from the stream""" * cdef size_t nread */ #line 325 "msgpack/_unpacker.pyx" #line 325 "msgpack/_unpacker.pyx" static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_8read_bytes(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, Py_ssize_t __pyx_v_nbytes) { size_t __pyx_v_nread #line 325 "msgpack/_unpacker.pyx" ; PyObject *__pyx_v_ret = NULL #line 325 "msgpack/_unpacker.pyx" ; #line 325 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations Py_ssize_t __pyx_t_1; size_t __pyx_t_2; size_t __pyx_t_3; PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; PyObject *__pyx_t_9 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 325 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("read_bytes", 0); /* "msgpack/_unpacker.pyx":328 * """read a specified number of raw bytes from the stream""" * cdef size_t nread * nread = min(self.buf_tail - self.buf_head, nbytes) # <<<<<<<<<<<<<< * ret = PyBytes_FromStringAndSize(self.buf + self.buf_head, nread) * self.buf_head += nread */ #line 328 "msgpack/_unpacker.pyx" __pyx_t_1 = __pyx_v_nbytes; #line 328 "msgpack/_unpacker.pyx" __pyx_t_2 = (__pyx_v_self->buf_tail - __pyx_v_self->buf_head); #line 328 "msgpack/_unpacker.pyx" if ((__pyx_t_1 < __pyx_t_2)) { #line 328 "msgpack/_unpacker.pyx" __pyx_t_3 = __pyx_t_1; #line 328 "msgpack/_unpacker.pyx" } else { #line 328 "msgpack/_unpacker.pyx" __pyx_t_3 = __pyx_t_2; #line 328 "msgpack/_unpacker.pyx" } #line 328 "msgpack/_unpacker.pyx" __pyx_v_nread = __pyx_t_3; /* "msgpack/_unpacker.pyx":329 * cdef size_t nread * nread = min(self.buf_tail - self.buf_head, nbytes) * ret = PyBytes_FromStringAndSize(self.buf + self.buf_head, nread) # <<<<<<<<<<<<<< * self.buf_head += nread * if len(ret) < nbytes and self.file_like is not None: */ #line 329 "msgpack/_unpacker.pyx" __pyx_t_4 = ((PyObject *)PyBytes_FromStringAndSize((__pyx_v_self->buf + __pyx_v_self->buf_head), __pyx_v_nread)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 329 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 329 "msgpack/_unpacker.pyx" __pyx_v_ret = __pyx_t_4; #line 329 "msgpack/_unpacker.pyx" __pyx_t_4 = 0; /* "msgpack/_unpacker.pyx":330 * nread = min(self.buf_tail - self.buf_head, nbytes) * ret = PyBytes_FromStringAndSize(self.buf + self.buf_head, nread) * self.buf_head += nread # <<<<<<<<<<<<<< * if len(ret) < nbytes and self.file_like is not None: * ret += self.file_like.read(nbytes - len(ret)) */ #line 330 "msgpack/_unpacker.pyx" __pyx_v_self->buf_head = (__pyx_v_self->buf_head + __pyx_v_nread); /* "msgpack/_unpacker.pyx":331 * ret = PyBytes_FromStringAndSize(self.buf + self.buf_head, nread) * self.buf_head += nread * if len(ret) < nbytes and self.file_like is not None: # <<<<<<<<<<<<<< * ret += self.file_like.read(nbytes - len(ret)) * return ret */ #line 331 "msgpack/_unpacker.pyx" __pyx_t_1 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 331 "msgpack/_unpacker.pyx" __pyx_t_5 = (__pyx_t_1 < __pyx_v_nbytes); #line 331 "msgpack/_unpacker.pyx" if (__pyx_t_5) { #line 331 "msgpack/_unpacker.pyx" __pyx_t_6 = (__pyx_v_self->file_like != Py_None); #line 331 "msgpack/_unpacker.pyx" __pyx_t_7 = __pyx_t_6; #line 331 "msgpack/_unpacker.pyx" } else { #line 331 "msgpack/_unpacker.pyx" __pyx_t_7 = __pyx_t_5; #line 331 "msgpack/_unpacker.pyx" } #line 331 "msgpack/_unpacker.pyx" if (__pyx_t_7) { /* "msgpack/_unpacker.pyx":332 * self.buf_head += nread * if len(ret) < nbytes and self.file_like is not None: * ret += self.file_like.read(nbytes - len(ret)) # <<<<<<<<<<<<<< * return ret * */ #line 332 "msgpack/_unpacker.pyx" __pyx_t_4 = PyObject_GetAttr(__pyx_v_self->file_like, __pyx_n_s__read); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 332 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_4); #line 332 "msgpack/_unpacker.pyx" __pyx_t_1 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 332 "msgpack/_unpacker.pyx" __pyx_t_8 = PyInt_FromSsize_t((__pyx_v_nbytes - __pyx_t_1)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 332 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_8); #line 332 "msgpack/_unpacker.pyx" __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 332 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_9); #line 332 "msgpack/_unpacker.pyx" PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); #line 332 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(__pyx_t_8); #line 332 "msgpack/_unpacker.pyx" __pyx_t_8 = 0; #line 332 "msgpack/_unpacker.pyx" __pyx_t_8 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 332 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_8); #line 332 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; #line 332 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; #line 332 "msgpack/_unpacker.pyx" __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_ret, __pyx_t_8); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 332 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_9); #line 332 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; #line 332 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_v_ret); #line 332 "msgpack/_unpacker.pyx" __pyx_v_ret = __pyx_t_9; #line 332 "msgpack/_unpacker.pyx" __pyx_t_9 = 0; #line 332 "msgpack/_unpacker.pyx" goto __pyx_L3; #line 332 "msgpack/_unpacker.pyx" } #line 332 "msgpack/_unpacker.pyx" __pyx_L3:; /* "msgpack/_unpacker.pyx":333 * if len(ret) < nbytes and self.file_like is not None: * ret += self.file_like.read(nbytes - len(ret)) * return ret # <<<<<<<<<<<<<< * * def unpack(self, object write_bytes=None): */ #line 333 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_r); #line 333 "msgpack/_unpacker.pyx" __Pyx_INCREF(__pyx_v_ret); #line 333 "msgpack/_unpacker.pyx" __pyx_r = __pyx_v_ret; #line 333 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 333 "msgpack/_unpacker.pyx" #line 333 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 333 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 333 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 333 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_4); #line 333 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_8); #line 333 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_9); #line 333 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.read_bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 333 "msgpack/_unpacker.pyx" __pyx_r = NULL; #line 333 "msgpack/_unpacker.pyx" __pyx_L0:; #line 333 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_v_ret); #line 333 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 333 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 333 "msgpack/_unpacker.pyx" return __pyx_r; #line 333 "msgpack/_unpacker.pyx" } #line 333 "msgpack/_unpacker.pyx" #line 333 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 333 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_11unpack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ #line 333 "msgpack/_unpacker.pyx" static char __pyx_doc_7msgpack_9_unpacker_8Unpacker_10unpack[] = "Unpacker.unpack(self, write_bytes=None)\n\n unpack one object\n\n If write_bytes is not None, it will be called with parts of the raw\n message as it is unpacked.\n\n Raises `OutOfData` when there are no more bytes to unpack.\n "; #line 333 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_11unpack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_write_bytes = 0 #line 333 "msgpack/_unpacker.pyx" ; #line 333 "msgpack/_unpacker.pyx" PyObject *__pyx_r = 0; #line 333 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 333 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("unpack (wrapper)", 0); #line 333 "msgpack/_unpacker.pyx" { #line 333 "msgpack/_unpacker.pyx" static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__write_bytes,0}; #line 333 "msgpack/_unpacker.pyx" PyObject* values[1] = {0}; /* "msgpack/_unpacker.pyx":335 * return ret * * def unpack(self, object write_bytes=None): # <<<<<<<<<<<<<< * """ * unpack one object */ #line 335 "msgpack/_unpacker.pyx" values[0] = ((PyObject *)Py_None); #line 335 "msgpack/_unpacker.pyx" if (unlikely(__pyx_kwds)) { #line 335 "msgpack/_unpacker.pyx" Py_ssize_t kw_args; #line 335 "msgpack/_unpacker.pyx" const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); #line 335 "msgpack/_unpacker.pyx" switch (pos_args) { case 1: #line 335 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 335 "msgpack/_unpacker.pyx" case 0: break; default: #line 335 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 335 "msgpack/_unpacker.pyx" } #line 335 "msgpack/_unpacker.pyx" kw_args = PyDict_Size(__pyx_kwds); #line 335 "msgpack/_unpacker.pyx" switch (pos_args) { #line 335 "msgpack/_unpacker.pyx" case 0: #line 335 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 335 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__write_bytes); #line 335 "msgpack/_unpacker.pyx" if (value) { values[0] = value; kw_args--; } #line 335 "msgpack/_unpacker.pyx" } #line 335 "msgpack/_unpacker.pyx" } #line 335 "msgpack/_unpacker.pyx" if (unlikely(kw_args > 0)) { #line 335 "msgpack/_unpacker.pyx" if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "unpack") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 335 "msgpack/_unpacker.pyx" } #line 335 "msgpack/_unpacker.pyx" } else { #line 335 "msgpack/_unpacker.pyx" switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: #line 335 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: #line 335 "msgpack/_unpacker.pyx" break; default: #line 335 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 335 "msgpack/_unpacker.pyx" } #line 335 "msgpack/_unpacker.pyx" } #line 335 "msgpack/_unpacker.pyx" __pyx_v_write_bytes = values[0]; #line 335 "msgpack/_unpacker.pyx" } #line 335 "msgpack/_unpacker.pyx" goto __pyx_L4_argument_unpacking_done; #line 335 "msgpack/_unpacker.pyx" __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("unpack", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); #line 335 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 335 "msgpack/_unpacker.pyx" __pyx_L3_error:; #line 335 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 335 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 335 "msgpack/_unpacker.pyx" return NULL; #line 335 "msgpack/_unpacker.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 335 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_8Unpacker_10unpack(((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)__pyx_v_self), __pyx_v_write_bytes); #line 335 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 335 "msgpack/_unpacker.pyx" return __pyx_r; #line 335 "msgpack/_unpacker.pyx" } #line 335 "msgpack/_unpacker.pyx" #line 335 "msgpack/_unpacker.pyx" static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_10unpack(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_write_bytes) { #line 335 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 335 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("unpack", 0); /* "msgpack/_unpacker.pyx":344 * Raises `OutOfData` when there are no more bytes to unpack. * """ * return self._unpack(template_construct, write_bytes) # <<<<<<<<<<<<<< * * def skip(self, object write_bytes=None): */ #line 344 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_r); #line 344 "msgpack/_unpacker.pyx" __pyx_t_1 = ((struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker *)__pyx_v_self->__pyx_vtab)->_unpack(__pyx_v_self, template_construct, __pyx_v_write_bytes, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 344 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_1); #line 344 "msgpack/_unpacker.pyx" __pyx_r = __pyx_t_1; #line 344 "msgpack/_unpacker.pyx" __pyx_t_1 = 0; #line 344 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 344 "msgpack/_unpacker.pyx" #line 344 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 344 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 344 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 344 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_1); #line 344 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.unpack", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 344 "msgpack/_unpacker.pyx" __pyx_r = NULL; #line 344 "msgpack/_unpacker.pyx" __pyx_L0:; #line 344 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 344 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 344 "msgpack/_unpacker.pyx" return __pyx_r; #line 344 "msgpack/_unpacker.pyx" } #line 344 "msgpack/_unpacker.pyx" #line 344 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 344 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_13skip(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ #line 344 "msgpack/_unpacker.pyx" static char __pyx_doc_7msgpack_9_unpacker_8Unpacker_12skip[] = "Unpacker.skip(self, write_bytes=None)\n\n read and ignore one object, returning None\n\n If write_bytes is not None, it will be called with parts of the raw\n message as it is unpacked.\n\n Raises `OutOfData` when there are no more bytes to unpack.\n "; #line 344 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_13skip(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_write_bytes = 0 #line 344 "msgpack/_unpacker.pyx" ; #line 344 "msgpack/_unpacker.pyx" PyObject *__pyx_r = 0; #line 344 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 344 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("skip (wrapper)", 0); #line 344 "msgpack/_unpacker.pyx" { #line 344 "msgpack/_unpacker.pyx" static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__write_bytes,0}; #line 344 "msgpack/_unpacker.pyx" PyObject* values[1] = {0}; /* "msgpack/_unpacker.pyx":346 * return self._unpack(template_construct, write_bytes) * * def skip(self, object write_bytes=None): # <<<<<<<<<<<<<< * """ * read and ignore one object, returning None */ #line 346 "msgpack/_unpacker.pyx" values[0] = ((PyObject *)Py_None); #line 346 "msgpack/_unpacker.pyx" if (unlikely(__pyx_kwds)) { #line 346 "msgpack/_unpacker.pyx" Py_ssize_t kw_args; #line 346 "msgpack/_unpacker.pyx" const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); #line 346 "msgpack/_unpacker.pyx" switch (pos_args) { case 1: #line 346 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 346 "msgpack/_unpacker.pyx" case 0: break; default: #line 346 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 346 "msgpack/_unpacker.pyx" } #line 346 "msgpack/_unpacker.pyx" kw_args = PyDict_Size(__pyx_kwds); #line 346 "msgpack/_unpacker.pyx" switch (pos_args) { #line 346 "msgpack/_unpacker.pyx" case 0: #line 346 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 346 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__write_bytes); #line 346 "msgpack/_unpacker.pyx" if (value) { values[0] = value; kw_args--; } #line 346 "msgpack/_unpacker.pyx" } #line 346 "msgpack/_unpacker.pyx" } #line 346 "msgpack/_unpacker.pyx" if (unlikely(kw_args > 0)) { #line 346 "msgpack/_unpacker.pyx" if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "skip") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 346 "msgpack/_unpacker.pyx" } #line 346 "msgpack/_unpacker.pyx" } else { #line 346 "msgpack/_unpacker.pyx" switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: #line 346 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: #line 346 "msgpack/_unpacker.pyx" break; default: #line 346 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 346 "msgpack/_unpacker.pyx" } #line 346 "msgpack/_unpacker.pyx" } #line 346 "msgpack/_unpacker.pyx" __pyx_v_write_bytes = values[0]; #line 346 "msgpack/_unpacker.pyx" } #line 346 "msgpack/_unpacker.pyx" goto __pyx_L4_argument_unpacking_done; #line 346 "msgpack/_unpacker.pyx" __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("skip", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); #line 346 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 346 "msgpack/_unpacker.pyx" __pyx_L3_error:; #line 346 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.skip", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 346 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 346 "msgpack/_unpacker.pyx" return NULL; #line 346 "msgpack/_unpacker.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 346 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_8Unpacker_12skip(((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)__pyx_v_self), __pyx_v_write_bytes); #line 346 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 346 "msgpack/_unpacker.pyx" return __pyx_r; #line 346 "msgpack/_unpacker.pyx" } #line 346 "msgpack/_unpacker.pyx" #line 346 "msgpack/_unpacker.pyx" static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_12skip(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_write_bytes) { #line 346 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 346 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("skip", 0); /* "msgpack/_unpacker.pyx":355 * Raises `OutOfData` when there are no more bytes to unpack. * """ * return self._unpack(template_skip, write_bytes) # <<<<<<<<<<<<<< * * def read_array_header(self, object write_bytes=None): */ #line 355 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_r); #line 355 "msgpack/_unpacker.pyx" __pyx_t_1 = ((struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker *)__pyx_v_self->__pyx_vtab)->_unpack(__pyx_v_self, template_skip, __pyx_v_write_bytes, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 355 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_1); #line 355 "msgpack/_unpacker.pyx" __pyx_r = __pyx_t_1; #line 355 "msgpack/_unpacker.pyx" __pyx_t_1 = 0; #line 355 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 355 "msgpack/_unpacker.pyx" #line 355 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 355 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 355 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 355 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_1); #line 355 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.skip", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 355 "msgpack/_unpacker.pyx" __pyx_r = NULL; #line 355 "msgpack/_unpacker.pyx" __pyx_L0:; #line 355 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 355 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 355 "msgpack/_unpacker.pyx" return __pyx_r; #line 355 "msgpack/_unpacker.pyx" } #line 355 "msgpack/_unpacker.pyx" #line 355 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 355 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_15read_array_header(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ #line 355 "msgpack/_unpacker.pyx" static char __pyx_doc_7msgpack_9_unpacker_8Unpacker_14read_array_header[] = "Unpacker.read_array_header(self, write_bytes=None)\nassuming the next object is an array, return its size n, such that\n the next n unpack() calls will iterate over its contents.\n\n Raises `OutOfData` when there are no more bytes to unpack.\n "; #line 355 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_15read_array_header(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_write_bytes = 0 #line 355 "msgpack/_unpacker.pyx" ; #line 355 "msgpack/_unpacker.pyx" PyObject *__pyx_r = 0; #line 355 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 355 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("read_array_header (wrapper)", 0); #line 355 "msgpack/_unpacker.pyx" { #line 355 "msgpack/_unpacker.pyx" static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__write_bytes,0}; #line 355 "msgpack/_unpacker.pyx" PyObject* values[1] = {0}; /* "msgpack/_unpacker.pyx":357 * return self._unpack(template_skip, write_bytes) * * def read_array_header(self, object write_bytes=None): # <<<<<<<<<<<<<< * """assuming the next object is an array, return its size n, such that * the next n unpack() calls will iterate over its contents. */ #line 357 "msgpack/_unpacker.pyx" values[0] = ((PyObject *)Py_None); #line 357 "msgpack/_unpacker.pyx" if (unlikely(__pyx_kwds)) { #line 357 "msgpack/_unpacker.pyx" Py_ssize_t kw_args; #line 357 "msgpack/_unpacker.pyx" const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); #line 357 "msgpack/_unpacker.pyx" switch (pos_args) { case 1: #line 357 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 357 "msgpack/_unpacker.pyx" case 0: break; default: #line 357 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 357 "msgpack/_unpacker.pyx" } #line 357 "msgpack/_unpacker.pyx" kw_args = PyDict_Size(__pyx_kwds); #line 357 "msgpack/_unpacker.pyx" switch (pos_args) { #line 357 "msgpack/_unpacker.pyx" case 0: #line 357 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 357 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__write_bytes); #line 357 "msgpack/_unpacker.pyx" if (value) { values[0] = value; kw_args--; } #line 357 "msgpack/_unpacker.pyx" } #line 357 "msgpack/_unpacker.pyx" } #line 357 "msgpack/_unpacker.pyx" if (unlikely(kw_args > 0)) { #line 357 "msgpack/_unpacker.pyx" if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "read_array_header") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 357 "msgpack/_unpacker.pyx" } #line 357 "msgpack/_unpacker.pyx" } else { #line 357 "msgpack/_unpacker.pyx" switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: #line 357 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: #line 357 "msgpack/_unpacker.pyx" break; default: #line 357 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 357 "msgpack/_unpacker.pyx" } #line 357 "msgpack/_unpacker.pyx" } #line 357 "msgpack/_unpacker.pyx" __pyx_v_write_bytes = values[0]; #line 357 "msgpack/_unpacker.pyx" } #line 357 "msgpack/_unpacker.pyx" goto __pyx_L4_argument_unpacking_done; #line 357 "msgpack/_unpacker.pyx" __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("read_array_header", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); #line 357 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 357 "msgpack/_unpacker.pyx" __pyx_L3_error:; #line 357 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.read_array_header", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 357 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 357 "msgpack/_unpacker.pyx" return NULL; #line 357 "msgpack/_unpacker.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 357 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_8Unpacker_14read_array_header(((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)__pyx_v_self), __pyx_v_write_bytes); #line 357 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 357 "msgpack/_unpacker.pyx" return __pyx_r; #line 357 "msgpack/_unpacker.pyx" } #line 357 "msgpack/_unpacker.pyx" #line 357 "msgpack/_unpacker.pyx" static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_14read_array_header(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_write_bytes) { #line 357 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 357 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("read_array_header", 0); /* "msgpack/_unpacker.pyx":363 * Raises `OutOfData` when there are no more bytes to unpack. * """ * return self._unpack(read_array_header, write_bytes) # <<<<<<<<<<<<<< * * def read_map_header(self, object write_bytes=None): */ #line 363 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_r); #line 363 "msgpack/_unpacker.pyx" __pyx_t_1 = ((struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker *)__pyx_v_self->__pyx_vtab)->_unpack(__pyx_v_self, read_array_header, __pyx_v_write_bytes, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 363 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_1); #line 363 "msgpack/_unpacker.pyx" __pyx_r = __pyx_t_1; #line 363 "msgpack/_unpacker.pyx" __pyx_t_1 = 0; #line 363 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 363 "msgpack/_unpacker.pyx" #line 363 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 363 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 363 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 363 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_1); #line 363 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.read_array_header", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 363 "msgpack/_unpacker.pyx" __pyx_r = NULL; #line 363 "msgpack/_unpacker.pyx" __pyx_L0:; #line 363 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 363 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 363 "msgpack/_unpacker.pyx" return __pyx_r; #line 363 "msgpack/_unpacker.pyx" } #line 363 "msgpack/_unpacker.pyx" #line 363 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 363 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_17read_map_header(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ #line 363 "msgpack/_unpacker.pyx" static char __pyx_doc_7msgpack_9_unpacker_8Unpacker_16read_map_header[] = "Unpacker.read_map_header(self, write_bytes=None)\nassuming the next object is a map, return its size n, such that the\n next n * 2 unpack() calls will iterate over its key-value pairs.\n\n Raises `OutOfData` when there are no more bytes to unpack.\n "; #line 363 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_17read_map_header(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_write_bytes = 0 #line 363 "msgpack/_unpacker.pyx" ; #line 363 "msgpack/_unpacker.pyx" PyObject *__pyx_r = 0; #line 363 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 363 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("read_map_header (wrapper)", 0); #line 363 "msgpack/_unpacker.pyx" { #line 363 "msgpack/_unpacker.pyx" static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__write_bytes,0}; #line 363 "msgpack/_unpacker.pyx" PyObject* values[1] = {0}; /* "msgpack/_unpacker.pyx":365 * return self._unpack(read_array_header, write_bytes) * * def read_map_header(self, object write_bytes=None): # <<<<<<<<<<<<<< * """assuming the next object is a map, return its size n, such that the * next n * 2 unpack() calls will iterate over its key-value pairs. */ #line 365 "msgpack/_unpacker.pyx" values[0] = ((PyObject *)Py_None); #line 365 "msgpack/_unpacker.pyx" if (unlikely(__pyx_kwds)) { #line 365 "msgpack/_unpacker.pyx" Py_ssize_t kw_args; #line 365 "msgpack/_unpacker.pyx" const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); #line 365 "msgpack/_unpacker.pyx" switch (pos_args) { case 1: #line 365 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); #line 365 "msgpack/_unpacker.pyx" case 0: break; default: #line 365 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 365 "msgpack/_unpacker.pyx" } #line 365 "msgpack/_unpacker.pyx" kw_args = PyDict_Size(__pyx_kwds); #line 365 "msgpack/_unpacker.pyx" switch (pos_args) { #line 365 "msgpack/_unpacker.pyx" case 0: #line 365 "msgpack/_unpacker.pyx" if (kw_args > 0) { #line 365 "msgpack/_unpacker.pyx" PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__write_bytes); #line 365 "msgpack/_unpacker.pyx" if (value) { values[0] = value; kw_args--; } #line 365 "msgpack/_unpacker.pyx" } #line 365 "msgpack/_unpacker.pyx" } #line 365 "msgpack/_unpacker.pyx" if (unlikely(kw_args > 0)) { #line 365 "msgpack/_unpacker.pyx" if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "read_map_header") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 365 "msgpack/_unpacker.pyx" } #line 365 "msgpack/_unpacker.pyx" } else { #line 365 "msgpack/_unpacker.pyx" switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: #line 365 "msgpack/_unpacker.pyx" values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: #line 365 "msgpack/_unpacker.pyx" break; default: #line 365 "msgpack/_unpacker.pyx" goto __pyx_L5_argtuple_error; #line 365 "msgpack/_unpacker.pyx" } #line 365 "msgpack/_unpacker.pyx" } #line 365 "msgpack/_unpacker.pyx" __pyx_v_write_bytes = values[0]; #line 365 "msgpack/_unpacker.pyx" } #line 365 "msgpack/_unpacker.pyx" goto __pyx_L4_argument_unpacking_done; #line 365 "msgpack/_unpacker.pyx" __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("read_map_header", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); #line 365 "msgpack/_unpacker.pyx" {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L3_error;} #line 365 "msgpack/_unpacker.pyx" __pyx_L3_error:; #line 365 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.read_map_header", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 365 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 365 "msgpack/_unpacker.pyx" return NULL; #line 365 "msgpack/_unpacker.pyx" __pyx_L4_argument_unpacking_done:; __pyx_r = #line 365 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_8Unpacker_16read_map_header(((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)__pyx_v_self), __pyx_v_write_bytes); #line 365 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 365 "msgpack/_unpacker.pyx" return __pyx_r; #line 365 "msgpack/_unpacker.pyx" } #line 365 "msgpack/_unpacker.pyx" #line 365 "msgpack/_unpacker.pyx" static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_16read_map_header(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self, PyObject *__pyx_v_write_bytes) { #line 365 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 365 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("read_map_header", 0); /* "msgpack/_unpacker.pyx":371 * Raises `OutOfData` when there are no more bytes to unpack. * """ * return self._unpack(read_map_header, write_bytes) # <<<<<<<<<<<<<< * * def __iter__(self): */ #line 371 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_r); #line 371 "msgpack/_unpacker.pyx" __pyx_t_1 = ((struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker *)__pyx_v_self->__pyx_vtab)->_unpack(__pyx_v_self, read_map_header, __pyx_v_write_bytes, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 371 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_1); #line 371 "msgpack/_unpacker.pyx" __pyx_r = __pyx_t_1; #line 371 "msgpack/_unpacker.pyx" __pyx_t_1 = 0; #line 371 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 371 "msgpack/_unpacker.pyx" #line 371 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 371 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 371 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 371 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_1); #line 371 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.read_map_header", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 371 "msgpack/_unpacker.pyx" __pyx_r = NULL; #line 371 "msgpack/_unpacker.pyx" __pyx_L0:; #line 371 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 371 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 371 "msgpack/_unpacker.pyx" return __pyx_r; #line 371 "msgpack/_unpacker.pyx" } #line 371 "msgpack/_unpacker.pyx" #line 371 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 371 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_19__iter__(PyObject *__pyx_v_self); /*proto*/ #line 371 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_19__iter__(PyObject *__pyx_v_self) { #line 371 "msgpack/_unpacker.pyx" PyObject *__pyx_r = 0; #line 371 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 371 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0); __pyx_r = #line 371 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_8Unpacker_18__iter__(((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)__pyx_v_self)); #line 371 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 371 "msgpack/_unpacker.pyx" return __pyx_r; #line 371 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":373 * return self._unpack(read_map_header, write_bytes) * * def __iter__(self): # <<<<<<<<<<<<<< * return self * */ #line 373 "msgpack/_unpacker.pyx" #line 373 "msgpack/_unpacker.pyx" static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_18__iter__(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self) { #line 373 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations #line 373 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("__iter__", 0); /* "msgpack/_unpacker.pyx":374 * * def __iter__(self): * return self # <<<<<<<<<<<<<< * * def __next__(self): */ #line 374 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_r); #line 374 "msgpack/_unpacker.pyx" __Pyx_INCREF(((PyObject *)__pyx_v_self)); #line 374 "msgpack/_unpacker.pyx" __pyx_r = ((PyObject *)__pyx_v_self); #line 374 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 374 "msgpack/_unpacker.pyx" #line 374 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 374 "msgpack/_unpacker.pyx" __pyx_L0:; #line 374 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 374 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 374 "msgpack/_unpacker.pyx" return __pyx_r; #line 374 "msgpack/_unpacker.pyx" } #line 374 "msgpack/_unpacker.pyx" #line 374 "msgpack/_unpacker.pyx" /* Python wrapper */ #line 374 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_21__next__(PyObject *__pyx_v_self); /*proto*/ #line 374 "msgpack/_unpacker.pyx" static PyObject *__pyx_pw_7msgpack_9_unpacker_8Unpacker_21__next__(PyObject *__pyx_v_self) { #line 374 "msgpack/_unpacker.pyx" PyObject *__pyx_r = 0; #line 374 "msgpack/_unpacker.pyx" __Pyx_RefNannyDeclarations #line 374 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("__next__ (wrapper)", 0); __pyx_r = #line 374 "msgpack/_unpacker.pyx" __pyx_pf_7msgpack_9_unpacker_8Unpacker_20__next__(((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)__pyx_v_self)); #line 374 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 374 "msgpack/_unpacker.pyx" return __pyx_r; #line 374 "msgpack/_unpacker.pyx" } /* "msgpack/_unpacker.pyx":376 * return self * * def __next__(self): # <<<<<<<<<<<<<< * return self._unpack(template_construct, None, 1) * */ #line 376 "msgpack/_unpacker.pyx" #line 376 "msgpack/_unpacker.pyx" static PyObject *__pyx_pf_7msgpack_9_unpacker_8Unpacker_20__next__(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *__pyx_v_self) { #line 376 "msgpack/_unpacker.pyx" PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; struct __pyx_opt_args_7msgpack_9_unpacker_8Unpacker__unpack __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; #line 376 "msgpack/_unpacker.pyx" __Pyx_RefNannySetupContext("__next__", 0); /* "msgpack/_unpacker.pyx":377 * * def __next__(self): * return self._unpack(template_construct, None, 1) # <<<<<<<<<<<<<< * * # for debug. */ #line 377 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_r); #line 377 "msgpack/_unpacker.pyx" __pyx_t_2.__pyx_n = 1; #line 377 "msgpack/_unpacker.pyx" __pyx_t_2.iter = 1; #line 377 "msgpack/_unpacker.pyx" __pyx_t_1 = ((struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker *)__pyx_v_self->__pyx_vtab)->_unpack(__pyx_v_self, template_construct, Py_None, &__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 377 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_1); #line 377 "msgpack/_unpacker.pyx" __pyx_r = __pyx_t_1; #line 377 "msgpack/_unpacker.pyx" __pyx_t_1 = 0; #line 377 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" __pyx_r = Py_None; __Pyx_INCREF(Py_None); #line 377 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 377 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 377 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_1); #line 377 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("msgpack._unpacker.Unpacker.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 377 "msgpack/_unpacker.pyx" __pyx_r = NULL; #line 377 "msgpack/_unpacker.pyx" __pyx_L0:; #line 377 "msgpack/_unpacker.pyx" __Pyx_XGIVEREF(__pyx_r); #line 377 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 377 "msgpack/_unpacker.pyx" return __pyx_r; #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" static struct __pyx_vtabstruct_7msgpack_9_unpacker_Unpacker __pyx_vtable_7msgpack_9_unpacker_Unpacker; #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" static PyObject *__pyx_tp_new_7msgpack_9_unpacker_Unpacker(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { #line 377 "msgpack/_unpacker.pyx" struct __pyx_obj_7msgpack_9_unpacker_Unpacker *p; #line 377 "msgpack/_unpacker.pyx" PyObject *o = (*t->tp_alloc)(t, 0); #line 377 "msgpack/_unpacker.pyx" if (!o) return 0; #line 377 "msgpack/_unpacker.pyx" p = ((struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)o); #line 377 "msgpack/_unpacker.pyx" p->__pyx_vtab = __pyx_vtabptr_7msgpack_9_unpacker_Unpacker; #line 377 "msgpack/_unpacker.pyx" p->file_like = Py_None; Py_INCREF(Py_None); #line 377 "msgpack/_unpacker.pyx" p->file_like_read = Py_None; Py_INCREF(Py_None); #line 377 "msgpack/_unpacker.pyx" p->object_hook = Py_None; Py_INCREF(Py_None); #line 377 "msgpack/_unpacker.pyx" p->encoding = Py_None; Py_INCREF(Py_None); #line 377 "msgpack/_unpacker.pyx" p->unicode_errors = Py_None; Py_INCREF(Py_None); #line 377 "msgpack/_unpacker.pyx" if (__pyx_pw_7msgpack_9_unpacker_8Unpacker_1__cinit__(o, __pyx_empty_tuple, NULL) < 0) { #line 377 "msgpack/_unpacker.pyx" Py_DECREF(o); o = 0; #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" return o; #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" static void __pyx_tp_dealloc_7msgpack_9_unpacker_Unpacker(PyObject *o) { #line 377 "msgpack/_unpacker.pyx" struct __pyx_obj_7msgpack_9_unpacker_Unpacker *p = (struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)o; #line 377 "msgpack/_unpacker.pyx" PyObject_GC_UnTrack(o); #line 377 "msgpack/_unpacker.pyx" { #line 377 "msgpack/_unpacker.pyx" PyObject *etype, *eval, *etb; #line 377 "msgpack/_unpacker.pyx" PyErr_Fetch(&etype, &eval, &etb); #line 377 "msgpack/_unpacker.pyx" ++Py_REFCNT(o); #line 377 "msgpack/_unpacker.pyx" __pyx_pw_7msgpack_9_unpacker_8Unpacker_3__dealloc__(o); #line 377 "msgpack/_unpacker.pyx" if (PyErr_Occurred()) PyErr_WriteUnraisable(o); #line 377 "msgpack/_unpacker.pyx" --Py_REFCNT(o); #line 377 "msgpack/_unpacker.pyx" PyErr_Restore(etype, eval, etb); #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" Py_CLEAR(p->file_like); #line 377 "msgpack/_unpacker.pyx" Py_CLEAR(p->file_like_read); #line 377 "msgpack/_unpacker.pyx" Py_CLEAR(p->object_hook); #line 377 "msgpack/_unpacker.pyx" Py_CLEAR(p->encoding); #line 377 "msgpack/_unpacker.pyx" Py_CLEAR(p->unicode_errors); #line 377 "msgpack/_unpacker.pyx" PyObject_GC_Track(o); #line 377 "msgpack/_unpacker.pyx" (*Py_TYPE(o)->tp_free)(o); #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" static int __pyx_tp_traverse_7msgpack_9_unpacker_Unpacker(PyObject *o, visitproc v, void *a) { #line 377 "msgpack/_unpacker.pyx" int e; #line 377 "msgpack/_unpacker.pyx" struct __pyx_obj_7msgpack_9_unpacker_Unpacker *p = (struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)o; #line 377 "msgpack/_unpacker.pyx" if (p->file_like) { #line 377 "msgpack/_unpacker.pyx" e = (*v)(p->file_like, a); if (e) return e; #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" if (p->file_like_read) { #line 377 "msgpack/_unpacker.pyx" e = (*v)(p->file_like_read, a); if (e) return e; #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" if (p->object_hook) { #line 377 "msgpack/_unpacker.pyx" e = (*v)(p->object_hook, a); if (e) return e; #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" if (p->encoding) { #line 377 "msgpack/_unpacker.pyx" e = (*v)(p->encoding, a); if (e) return e; #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" if (p->unicode_errors) { #line 377 "msgpack/_unpacker.pyx" e = (*v)(p->unicode_errors, a); if (e) return e; #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" return 0; #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" static int __pyx_tp_clear_7msgpack_9_unpacker_Unpacker(PyObject *o) { #line 377 "msgpack/_unpacker.pyx" struct __pyx_obj_7msgpack_9_unpacker_Unpacker *p = (struct __pyx_obj_7msgpack_9_unpacker_Unpacker *)o; #line 377 "msgpack/_unpacker.pyx" PyObject* tmp; #line 377 "msgpack/_unpacker.pyx" tmp = ((PyObject*)p->file_like); #line 377 "msgpack/_unpacker.pyx" p->file_like = Py_None; Py_INCREF(Py_None); #line 377 "msgpack/_unpacker.pyx" Py_XDECREF(tmp); #line 377 "msgpack/_unpacker.pyx" tmp = ((PyObject*)p->file_like_read); #line 377 "msgpack/_unpacker.pyx" p->file_like_read = Py_None; Py_INCREF(Py_None); #line 377 "msgpack/_unpacker.pyx" Py_XDECREF(tmp); #line 377 "msgpack/_unpacker.pyx" tmp = ((PyObject*)p->object_hook); #line 377 "msgpack/_unpacker.pyx" p->object_hook = Py_None; Py_INCREF(Py_None); #line 377 "msgpack/_unpacker.pyx" Py_XDECREF(tmp); #line 377 "msgpack/_unpacker.pyx" tmp = ((PyObject*)p->encoding); #line 377 "msgpack/_unpacker.pyx" p->encoding = Py_None; Py_INCREF(Py_None); #line 377 "msgpack/_unpacker.pyx" Py_XDECREF(tmp); #line 377 "msgpack/_unpacker.pyx" tmp = ((PyObject*)p->unicode_errors); #line 377 "msgpack/_unpacker.pyx" p->unicode_errors = Py_None; Py_INCREF(Py_None); #line 377 "msgpack/_unpacker.pyx" Py_XDECREF(tmp); #line 377 "msgpack/_unpacker.pyx" return 0; #line 377 "msgpack/_unpacker.pyx" } #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" static PyMethodDef __pyx_methods_7msgpack_9_unpacker_Unpacker[] = { #line 377 "msgpack/_unpacker.pyx" {__Pyx_NAMESTR("feed"), (PyCFunction)__pyx_pw_7msgpack_9_unpacker_8Unpacker_7feed, METH_O, __Pyx_DOCSTR(__pyx_doc_7msgpack_9_unpacker_8Unpacker_6feed)}, #line 377 "msgpack/_unpacker.pyx" {__Pyx_NAMESTR("read_bytes"), (PyCFunction)__pyx_pw_7msgpack_9_unpacker_8Unpacker_9read_bytes, METH_O, __Pyx_DOCSTR(__pyx_doc_7msgpack_9_unpacker_8Unpacker_8read_bytes)}, #line 377 "msgpack/_unpacker.pyx" {__Pyx_NAMESTR("unpack"), (PyCFunction)__pyx_pw_7msgpack_9_unpacker_8Unpacker_11unpack, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_7msgpack_9_unpacker_8Unpacker_10unpack)}, #line 377 "msgpack/_unpacker.pyx" {__Pyx_NAMESTR("skip"), (PyCFunction)__pyx_pw_7msgpack_9_unpacker_8Unpacker_13skip, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_7msgpack_9_unpacker_8Unpacker_12skip)}, #line 377 "msgpack/_unpacker.pyx" {__Pyx_NAMESTR("read_array_header"), (PyCFunction)__pyx_pw_7msgpack_9_unpacker_8Unpacker_15read_array_header, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_7msgpack_9_unpacker_8Unpacker_14read_array_header)}, #line 377 "msgpack/_unpacker.pyx" {__Pyx_NAMESTR("read_map_header"), (PyCFunction)__pyx_pw_7msgpack_9_unpacker_8Unpacker_17read_map_header, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_7msgpack_9_unpacker_8Unpacker_16read_map_header)}, #line 377 "msgpack/_unpacker.pyx" {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_7msgpack_9_unpacker_8Unpacker_21__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)}, #line 377 "msgpack/_unpacker.pyx" {0, 0, 0, 0} #line 377 "msgpack/_unpacker.pyx" }; #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" static PyNumberMethods __pyx_tp_as_number_Unpacker = { #line 377 "msgpack/_unpacker.pyx" 0, /*nb_add*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_subtract*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_multiply*/ #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 377 "msgpack/_unpacker.pyx" 0, /*nb_divide*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" 0, /*nb_remainder*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_divmod*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_power*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_negative*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_positive*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_absolute*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_nonzero*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_invert*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_lshift*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_rshift*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_and*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_xor*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_or*/ #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 377 "msgpack/_unpacker.pyx" 0, /*nb_coerce*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" 0, /*nb_int*/ #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 377 "msgpack/_unpacker.pyx" 0, /*nb_long*/ #line 377 "msgpack/_unpacker.pyx" #else #line 377 "msgpack/_unpacker.pyx" 0, /*reserved*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" 0, /*nb_float*/ #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 377 "msgpack/_unpacker.pyx" 0, /*nb_oct*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 377 "msgpack/_unpacker.pyx" 0, /*nb_hex*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_add*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_subtract*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_multiply*/ #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_divide*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_remainder*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_power*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_lshift*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_rshift*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_and*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_xor*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_or*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_floor_divide*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_true_divide*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_floor_divide*/ #line 377 "msgpack/_unpacker.pyx" 0, /*nb_inplace_true_divide*/ #line 377 "msgpack/_unpacker.pyx" #if PY_VERSION_HEX >= 0x02050000 #line 377 "msgpack/_unpacker.pyx" 0, /*nb_index*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" }; #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" static PySequenceMethods __pyx_tp_as_sequence_Unpacker = { #line 377 "msgpack/_unpacker.pyx" 0, /*sq_length*/ #line 377 "msgpack/_unpacker.pyx" 0, /*sq_concat*/ #line 377 "msgpack/_unpacker.pyx" 0, /*sq_repeat*/ #line 377 "msgpack/_unpacker.pyx" 0, /*sq_item*/ #line 377 "msgpack/_unpacker.pyx" 0, /*sq_slice*/ #line 377 "msgpack/_unpacker.pyx" 0, /*sq_ass_item*/ #line 377 "msgpack/_unpacker.pyx" 0, /*sq_ass_slice*/ #line 377 "msgpack/_unpacker.pyx" 0, /*sq_contains*/ #line 377 "msgpack/_unpacker.pyx" 0, /*sq_inplace_concat*/ #line 377 "msgpack/_unpacker.pyx" 0, /*sq_inplace_repeat*/ #line 377 "msgpack/_unpacker.pyx" }; #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" static PyMappingMethods __pyx_tp_as_mapping_Unpacker = { #line 377 "msgpack/_unpacker.pyx" 0, /*mp_length*/ #line 377 "msgpack/_unpacker.pyx" 0, /*mp_subscript*/ #line 377 "msgpack/_unpacker.pyx" 0, /*mp_ass_subscript*/ #line 377 "msgpack/_unpacker.pyx" }; #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" static PyBufferProcs __pyx_tp_as_buffer_Unpacker = { #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 377 "msgpack/_unpacker.pyx" 0, /*bf_getreadbuffer*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 377 "msgpack/_unpacker.pyx" 0, /*bf_getwritebuffer*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 377 "msgpack/_unpacker.pyx" 0, /*bf_getsegcount*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 377 "msgpack/_unpacker.pyx" 0, /*bf_getcharbuffer*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" #if PY_VERSION_HEX >= 0x02060000 #line 377 "msgpack/_unpacker.pyx" 0, /*bf_getbuffer*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" #if PY_VERSION_HEX >= 0x02060000 #line 377 "msgpack/_unpacker.pyx" 0, /*bf_releasebuffer*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" }; #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" static PyTypeObject __pyx_type_7msgpack_9_unpacker_Unpacker = { #line 377 "msgpack/_unpacker.pyx" PyVarObject_HEAD_INIT(0, 0) #line 377 "msgpack/_unpacker.pyx" __Pyx_NAMESTR("msgpack._unpacker.Unpacker"), /*tp_name*/ #line 377 "msgpack/_unpacker.pyx" sizeof(struct __pyx_obj_7msgpack_9_unpacker_Unpacker), /*tp_basicsize*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_itemsize*/ #line 377 "msgpack/_unpacker.pyx" __pyx_tp_dealloc_7msgpack_9_unpacker_Unpacker, /*tp_dealloc*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_print*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_getattr*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_setattr*/ #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 377 "msgpack/_unpacker.pyx" 0, /*tp_compare*/ #line 377 "msgpack/_unpacker.pyx" #else #line 377 "msgpack/_unpacker.pyx" 0, /*reserved*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" 0, /*tp_repr*/ #line 377 "msgpack/_unpacker.pyx" &__pyx_tp_as_number_Unpacker, /*tp_as_number*/ #line 377 "msgpack/_unpacker.pyx" &__pyx_tp_as_sequence_Unpacker, /*tp_as_sequence*/ #line 377 "msgpack/_unpacker.pyx" &__pyx_tp_as_mapping_Unpacker, /*tp_as_mapping*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_hash*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_call*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_str*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_getattro*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_setattro*/ #line 377 "msgpack/_unpacker.pyx" &__pyx_tp_as_buffer_Unpacker, /*tp_as_buffer*/ #line 377 "msgpack/_unpacker.pyx" Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ #line 377 "msgpack/_unpacker.pyx" __Pyx_DOCSTR("Unpacker(file_like=None, Py_ssize_t read_size=0, int use_list=1, object_hook=None, object_pairs_hook=None, list_hook=None, encoding=None, unicode_errors='strict', int max_buffer_size=0)\n\n Streaming unpacker.\n\n `file_like` is a file-like object having `.read(n)` method.\n When `Unpacker` initialized with `file_like`, unpacker reads serialized data\n from it and `.feed()` method is not usable.\n\n `read_size` is used as `file_like.read(read_size)`.\n (default: min(1024**2, max_buffer_size))\n\n If `use_list` is true (default), msgpack list is deserialized to Python list.\n Otherwise, it is deserialized to Python tuple.\n\n `object_hook` is same to simplejson. If it is not None, it should be callable\n and Unpacker calls it with a dict argument after deserializing a map.\n\n `object_pairs_hook` is same to simplejson. If it is not None, it should be callable\n and Unpacker calls it with a list of key-value pairs after deserializing a map.\n\n `encoding` is encoding used for decoding msgpack bytes. If it is None (default),\n msgpack bytes is deserialized to Python bytes.\n\n `unicode_errors` is used for decoding bytes.\n\n `max_buffer_size` limits size of data waiting unpacked.\n 0 means system's INT_MAX (default).\n Raises `BufferFull` exception when it is insufficient.\n You shoud set this parameter when unpacking data from untrasted source.\n\n example of streaming deserialize from file-like object::\n\n unpacker = Unpacker(file_like)\n for o in unpacker:\n do_something(o)\n\n example of streaming deserialize from socket::\n\n unpacker = Unpacker()\n while 1:\n buf = sock.recv(1024**2)\n if not buf:\n break\n unpacker.feed(buf)\n for o in unpacker:\n do_something(o)\n "), /*tp_doc*/ #line 377 "msgpack/_unpacker.pyx" __pyx_tp_traverse_7msgpack_9_unpacker_Unpacker, /*tp_traverse*/ #line 377 "msgpack/_unpacker.pyx" __pyx_tp_clear_7msgpack_9_unpacker_Unpacker, /*tp_clear*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_richcompare*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_weaklistoffset*/ #line 377 "msgpack/_unpacker.pyx" __pyx_pw_7msgpack_9_unpacker_8Unpacker_19__iter__, /*tp_iter*/ #line 377 "msgpack/_unpacker.pyx" __pyx_pw_7msgpack_9_unpacker_8Unpacker_21__next__, /*tp_iternext*/ #line 377 "msgpack/_unpacker.pyx" __pyx_methods_7msgpack_9_unpacker_Unpacker, /*tp_methods*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_members*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_getset*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_base*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_dict*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_descr_get*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_descr_set*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_dictoffset*/ #line 377 "msgpack/_unpacker.pyx" __pyx_pw_7msgpack_9_unpacker_8Unpacker_5__init__, /*tp_init*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_alloc*/ #line 377 "msgpack/_unpacker.pyx" __pyx_tp_new_7msgpack_9_unpacker_Unpacker, /*tp_new*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_free*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_is_gc*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_bases*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_mro*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_cache*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_subclasses*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_weaklist*/ #line 377 "msgpack/_unpacker.pyx" 0, /*tp_del*/ #line 377 "msgpack/_unpacker.pyx" #if PY_VERSION_HEX >= 0x02060000 #line 377 "msgpack/_unpacker.pyx" 0, /*tp_version_tag*/ #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" }; #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" static PyMethodDef __pyx_methods[] = { #line 377 "msgpack/_unpacker.pyx" {0, 0, 0, 0} #line 377 "msgpack/_unpacker.pyx" }; #line 377 "msgpack/_unpacker.pyx" #line 377 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION >= 3 #line 377 "msgpack/_unpacker.pyx" static struct PyModuleDef __pyx_moduledef = { #line 377 "msgpack/_unpacker.pyx" #if PY_VERSION_HEX < 0x03020000 #line 377 "msgpack/_unpacker.pyx" { PyObject_HEAD_INIT(NULL) NULL, 0, NULL }, #line 377 "msgpack/_unpacker.pyx" #else #line 377 "msgpack/_unpacker.pyx" PyModuleDef_HEAD_INIT, #line 377 "msgpack/_unpacker.pyx" #endif #line 377 "msgpack/_unpacker.pyx" __Pyx_NAMESTR("_unpacker"), #line 377 "msgpack/_unpacker.pyx" 0, /* m_doc */ #line 377 "msgpack/_unpacker.pyx" -1, /* m_size */ #line 377 "msgpack/_unpacker.pyx" __pyx_methods /* m_methods */, #line 377 "msgpack/_unpacker.pyx" NULL, /* m_reload */ #line 377 "msgpack/_unpacker.pyx" NULL, /* m_traverse */ #line 377 "msgpack/_unpacker.pyx" NULL, /* m_clear */ #line 377 "msgpack/_unpacker.pyx" NULL /* m_free */ #line 377 "msgpack/_unpacker.pyx" }; #line 377 "msgpack/_unpacker.pyx" #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0}, {&__pyx_kp_s_11, __pyx_k_11, sizeof(__pyx_k_11), 0, 0, 1, 0}, {&__pyx_kp_s_12, __pyx_k_12, sizeof(__pyx_k_12), 0, 0, 1, 0}, {&__pyx_kp_s_14, __pyx_k_14, sizeof(__pyx_k_14), 0, 0, 1, 0}, {&__pyx_kp_s_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 0, 1, 0}, {&__pyx_kp_s_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 0, 1, 0}, {&__pyx_kp_s_22, __pyx_k_22, sizeof(__pyx_k_22), 0, 0, 1, 0}, {&__pyx_kp_s_24, __pyx_k_24, sizeof(__pyx_k_24), 0, 0, 1, 0}, {&__pyx_n_s_27, __pyx_k_27, sizeof(__pyx_k_27), 0, 0, 1, 1}, {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0}, {&__pyx_kp_s_30, __pyx_k_30, sizeof(__pyx_k_30), 0, 0, 1, 0}, {&__pyx_n_s_31, __pyx_k_31, sizeof(__pyx_k_31), 0, 0, 1, 1}, {&__pyx_kp_s_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 0, 1, 0}, {&__pyx_kp_s_7, __pyx_k_7, sizeof(__pyx_k_7), 0, 0, 1, 0}, {&__pyx_n_s__AssertionError, __pyx_k__AssertionError, sizeof(__pyx_k__AssertionError), 0, 0, 1, 1}, {&__pyx_n_s__BufferFull, __pyx_k__BufferFull, sizeof(__pyx_k__BufferFull), 0, 0, 1, 1}, {&__pyx_n_s__ExtraData, __pyx_k__ExtraData, sizeof(__pyx_k__ExtraData), 0, 0, 1, 1}, {&__pyx_n_s__MemoryError, __pyx_k__MemoryError, sizeof(__pyx_k__MemoryError), 0, 0, 1, 1}, {&__pyx_n_s__OutOfData, __pyx_k__OutOfData, sizeof(__pyx_k__OutOfData), 0, 0, 1, 1}, {&__pyx_n_s__StopIteration, __pyx_k__StopIteration, sizeof(__pyx_k__StopIteration), 0, 0, 1, 1}, {&__pyx_n_s__TypeError, __pyx_k__TypeError, sizeof(__pyx_k__TypeError), 0, 0, 1, 1}, {&__pyx_n_s__UnpackValueError, __pyx_k__UnpackValueError, sizeof(__pyx_k__UnpackValueError), 0, 0, 1, 1}, {&__pyx_n_s__ValueError, __pyx_k__ValueError, sizeof(__pyx_k__ValueError), 0, 0, 1, 1}, {&__pyx_n_s____main__, __pyx_k____main__, sizeof(__pyx_k____main__), 0, 0, 1, 1}, {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1}, {&__pyx_n_s__ascii, __pyx_k__ascii, sizeof(__pyx_k__ascii), 0, 0, 1, 1}, {&__pyx_n_s__buf, __pyx_k__buf, sizeof(__pyx_k__buf), 0, 0, 1, 1}, {&__pyx_n_s__buf_len, __pyx_k__buf_len, sizeof(__pyx_k__buf_len), 0, 0, 1, 1}, {&__pyx_n_s__cenc, __pyx_k__cenc, sizeof(__pyx_k__cenc), 0, 0, 1, 1}, {&__pyx_n_s__cerr, __pyx_k__cerr, sizeof(__pyx_k__cerr), 0, 0, 1, 1}, {&__pyx_n_s__ctx, __pyx_k__ctx, sizeof(__pyx_k__ctx), 0, 0, 1, 1}, {&__pyx_n_s__encode, __pyx_k__encode, sizeof(__pyx_k__encode), 0, 0, 1, 1}, {&__pyx_n_s__encoding, __pyx_k__encoding, sizeof(__pyx_k__encoding), 0, 0, 1, 1}, {&__pyx_n_s__file_like, __pyx_k__file_like, sizeof(__pyx_k__file_like), 0, 0, 1, 1}, {&__pyx_n_s__list_hook, __pyx_k__list_hook, sizeof(__pyx_k__list_hook), 0, 0, 1, 1}, {&__pyx_n_s__max_buffer_size, __pyx_k__max_buffer_size, sizeof(__pyx_k__max_buffer_size), 0, 0, 1, 1}, {&__pyx_n_s__obj, __pyx_k__obj, sizeof(__pyx_k__obj), 0, 0, 1, 1}, {&__pyx_n_s__object_hook, __pyx_k__object_hook, sizeof(__pyx_k__object_hook), 0, 0, 1, 1}, {&__pyx_n_s__object_pairs_hook, __pyx_k__object_pairs_hook, sizeof(__pyx_k__object_pairs_hook), 0, 0, 1, 1}, {&__pyx_n_s__off, __pyx_k__off, sizeof(__pyx_k__off), 0, 0, 1, 1}, {&__pyx_n_s__packed, __pyx_k__packed, sizeof(__pyx_k__packed), 0, 0, 1, 1}, {&__pyx_n_s__read, __pyx_k__read, sizeof(__pyx_k__read), 0, 0, 1, 1}, {&__pyx_n_s__read_size, __pyx_k__read_size, sizeof(__pyx_k__read_size), 0, 0, 1, 1}, {&__pyx_n_s__ret, __pyx_k__ret, sizeof(__pyx_k__ret), 0, 0, 1, 1}, {&__pyx_n_s__stream, __pyx_k__stream, sizeof(__pyx_k__stream), 0, 0, 1, 1}, {&__pyx_n_s__strict, __pyx_k__strict, sizeof(__pyx_k__strict), 0, 0, 1, 1}, {&__pyx_n_s__unicode_errors, __pyx_k__unicode_errors, sizeof(__pyx_k__unicode_errors), 0, 0, 1, 1}, {&__pyx_n_s__unpack, __pyx_k__unpack, sizeof(__pyx_k__unpack), 0, 0, 1, 1}, {&__pyx_n_s__unpackb, __pyx_k__unpackb, sizeof(__pyx_k__unpackb), 0, 0, 1, 1}, {&__pyx_n_s__use_list, __pyx_k__use_list, sizeof(__pyx_k__use_list), 0, 0, 1, 1}, {&__pyx_n_s__write_bytes, __pyx_k__write_bytes, sizeof(__pyx_k__write_bytes), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; static int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_ValueError = __Pyx_GetName(__pyx_b, __pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_TypeError = __Pyx_GetName(__pyx_b, __pyx_n_s__TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_MemoryError = __Pyx_GetName(__pyx_b, __pyx_n_s__MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_AssertionError = __Pyx_GetName(__pyx_b, __pyx_n_s__AssertionError); if (!__pyx_builtin_AssertionError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_builtin_StopIteration = __Pyx_GetName(__pyx_b, __pyx_n_s__StopIteration); if (!__pyx_builtin_StopIteration) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} return 0; __pyx_L1_error:; return -1; } static int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "msgpack/_unpacker.pyx":57 * * if object_hook is not None and object_pairs_hook is not None: * raise ValueError("object_pairs_hook and object_hook are mutually exclusive.") # <<<<<<<<<<<<<< * * if object_hook is not None: */ #line 57 "msgpack/_unpacker.pyx" __pyx_k_tuple_2 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_1)); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 57 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_2); #line 57 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_2)); /* "msgpack/_unpacker.pyx":61 * if object_hook is not None: * if not PyCallable_Check(object_hook): * raise TypeError("object_hook must be a callable.") # <<<<<<<<<<<<<< * ctx.user.object_hook = object_hook * */ #line 61 "msgpack/_unpacker.pyx" __pyx_k_tuple_4 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_3)); if (unlikely(!__pyx_k_tuple_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 61 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_4); #line 61 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_4)); /* "msgpack/_unpacker.pyx":68 * else: * if not PyCallable_Check(object_pairs_hook): * raise TypeError("object_pairs_hook must be a callable.") # <<<<<<<<<<<<<< * ctx.user.object_hook = object_pairs_hook * ctx.user.has_pairs_hook = True */ #line 68 "msgpack/_unpacker.pyx" __pyx_k_tuple_6 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_5)); if (unlikely(!__pyx_k_tuple_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 68 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_6); #line 68 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_6)); /* "msgpack/_unpacker.pyx":74 * if list_hook is not None: * if not PyCallable_Check(list_hook): * raise TypeError("list_hook must be a callable.") # <<<<<<<<<<<<<< * ctx.user.list_hook = list_hook * */ #line 74 "msgpack/_unpacker.pyx" __pyx_k_tuple_8 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_7)); if (unlikely(!__pyx_k_tuple_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 74 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_8); #line 74 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_8)); /* "msgpack/_unpacker.pyx":101 * if encoding is not None: * if isinstance(encoding, unicode): * encoding = encoding.encode('ascii') # <<<<<<<<<<<<<< * cenc = PyBytes_AsString(encoding) * */ #line 101 "msgpack/_unpacker.pyx" __pyx_k_tuple_9 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__ascii)); if (unlikely(!__pyx_k_tuple_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 101 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_9); #line 101 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_9)); /* "msgpack/_unpacker.pyx":106 * if unicode_errors is not None: * if isinstance(unicode_errors, unicode): * unicode_errors = unicode_errors.encode('ascii') # <<<<<<<<<<<<<< * cerr = PyBytes_AsString(unicode_errors) * */ #line 106 "msgpack/_unpacker.pyx" __pyx_k_tuple_10 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__ascii)); if (unlikely(!__pyx_k_tuple_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 106 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_10); #line 106 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_10)); /* "msgpack/_unpacker.pyx":210 * self.file_like_read = file_like.read * if not PyCallable_Check(self.file_like_read): * raise ValueError("`file_like.read` must be a callable.") # <<<<<<<<<<<<<< * if not max_buffer_size: * max_buffer_size = INT_MAX */ #line 210 "msgpack/_unpacker.pyx" __pyx_k_tuple_13 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_12)); if (unlikely(!__pyx_k_tuple_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 210 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_13); #line 210 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_13)); /* "msgpack/_unpacker.pyx":214 * max_buffer_size = INT_MAX * if read_size > max_buffer_size: * raise ValueError("read_size should be less or equal to max_buffer_size") # <<<<<<<<<<<<<< * if not read_size: * read_size = min(max_buffer_size, 1024**2) */ #line 214 "msgpack/_unpacker.pyx" __pyx_k_tuple_15 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_14)); if (unlikely(!__pyx_k_tuple_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 214 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_15); #line 214 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_15)); /* "msgpack/_unpacker.pyx":221 * self.buf = malloc(read_size) * if self.buf == NULL: * raise MemoryError("Unable to allocate internal buffer.") # <<<<<<<<<<<<<< * self.buf_size = read_size * self.buf_head = 0 */ #line 221 "msgpack/_unpacker.pyx" __pyx_k_tuple_17 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_16)); if (unlikely(!__pyx_k_tuple_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 221 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_17); #line 221 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_17)); /* "msgpack/_unpacker.pyx":228 * if encoding is not None: * if isinstance(encoding, unicode): * encoding = encoding.encode('ascii') # <<<<<<<<<<<<<< * self.encoding = encoding * cenc = PyBytes_AsString(encoding) */ #line 228 "msgpack/_unpacker.pyx" __pyx_k_tuple_18 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__ascii)); if (unlikely(!__pyx_k_tuple_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 228 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_18); #line 228 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_18)); /* "msgpack/_unpacker.pyx":234 * if unicode_errors is not None: * if isinstance(unicode_errors, unicode): * unicode_errors = unicode_errors.encode('ascii') # <<<<<<<<<<<<<< * self.unicode_errors = unicode_errors * cerr = PyBytes_AsString(unicode_errors) */ #line 234 "msgpack/_unpacker.pyx" __pyx_k_tuple_19 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__ascii)); if (unlikely(!__pyx_k_tuple_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 234 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_19); #line 234 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_19)); /* "msgpack/_unpacker.pyx":245 * cdef Py_ssize_t buf_len * if self.file_like is not None: * raise AssertionError( # <<<<<<<<<<<<<< * "unpacker.feed() is not be able to use with `file_like`.") * PyObject_AsReadBuffer(next_bytes, &buf, &buf_len) */ #line 245 "msgpack/_unpacker.pyx" __pyx_k_tuple_21 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_20)); if (unlikely(!__pyx_k_tuple_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 245 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_21); #line 245 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_21)); /* "msgpack/_unpacker.pyx":275 * # self.buf still holds old buffer and will be freed during * # obj destruction * raise MemoryError("Unable to enlarge internal buffer.") # <<<<<<<<<<<<<< * memcpy(new_buf, buf + head, tail - head) * free(buf) */ #line 275 "msgpack/_unpacker.pyx" __pyx_k_tuple_23 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_22)); if (unlikely(!__pyx_k_tuple_23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 275 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_23); #line 275 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_23)); /* "msgpack/_unpacker.pyx":319 * continue * if iter: * raise StopIteration("No more data to unpack.") # <<<<<<<<<<<<<< * else: * raise OutOfData("No more data to unpack.") */ #line 319 "msgpack/_unpacker.pyx" __pyx_k_tuple_25 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_24)); if (unlikely(!__pyx_k_tuple_25)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 319 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_25); #line 319 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_25)); /* "msgpack/_unpacker.pyx":321 * raise StopIteration("No more data to unpack.") * else: * raise OutOfData("No more data to unpack.") # <<<<<<<<<<<<<< * else: * raise ValueError("Unpack failed: error = %d" % (ret,)) */ #line 321 "msgpack/_unpacker.pyx" __pyx_k_tuple_26 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_24)); if (unlikely(!__pyx_k_tuple_26)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 321 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_26); #line 321 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_26)); /* "msgpack/_unpacker.pyx":80 * ctx.user.unicode_errors = unicode_errors * * def unpackb(object packed, object object_hook=None, object list_hook=None, # <<<<<<<<<<<<<< * bint use_list=1, encoding=None, unicode_errors="strict", * object_pairs_hook=None, */ #line 80 "msgpack/_unpacker.pyx" __pyx_k_tuple_28 = PyTuple_Pack(15, ((PyObject *)__pyx_n_s__packed), ((PyObject *)__pyx_n_s__object_hook), ((PyObject *)__pyx_n_s__list_hook), ((PyObject *)__pyx_n_s__use_list), ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__unicode_errors), ((PyObject *)__pyx_n_s__object_pairs_hook), ((PyObject *)__pyx_n_s__ctx), ((PyObject *)__pyx_n_s__off), ((PyObject *)__pyx_n_s__ret), ((PyObject *)__pyx_n_s__buf), ((PyObject *)__pyx_n_s__buf_len), ((PyObject *)__pyx_n_s__cenc), ((PyObject *)__pyx_n_s__cerr), ((PyObject *)__pyx_n_s__obj)); if (unlikely(!__pyx_k_tuple_28)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 80 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_28); #line 80 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_28)); #line 80 "msgpack/_unpacker.pyx" __pyx_k_codeobj_29 = (PyObject*)__Pyx_PyCode_New(7, 0, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_30, __pyx_n_s__unpackb, 80, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_29)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /* "msgpack/_unpacker.pyx":122 * * * def unpack(object stream, object object_hook=None, object list_hook=None, # <<<<<<<<<<<<<< * bint use_list=1, encoding=None, unicode_errors="strict", * object_pairs_hook=None, */ #line 122 "msgpack/_unpacker.pyx" __pyx_k_tuple_32 = PyTuple_Pack(7, ((PyObject *)__pyx_n_s__stream), ((PyObject *)__pyx_n_s__object_hook), ((PyObject *)__pyx_n_s__list_hook), ((PyObject *)__pyx_n_s__use_list), ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__unicode_errors), ((PyObject *)__pyx_n_s__object_pairs_hook)); if (unlikely(!__pyx_k_tuple_32)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 122 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_k_tuple_32); #line 122 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_32)); #line 122 "msgpack/_unpacker.pyx" __pyx_k_codeobj_33 = (PyObject*)__Pyx_PyCode_New(7, 0, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_32, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_30, __pyx_n_s__unpack, 122, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_33)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 122 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 122 "msgpack/_unpacker.pyx" return 0; #line 122 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 122 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 122 "msgpack/_unpacker.pyx" return -1; #line 122 "msgpack/_unpacker.pyx" } static int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; return 0; __pyx_L1_error:; return -1; } #if PY_MAJOR_VERSION < 3 PyMODINIT_FUNC init_unpacker(void); /*proto*/ PyMODINIT_FUNC init_unpacker(void) #else PyMODINIT_FUNC PyInit__unpacker(void); /*proto*/ PyMODINIT_FUNC PyInit__unpacker(void) #endif { PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; __Pyx_RefNannyDeclarations #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit__unpacker(void)", 0); if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #ifdef __Pyx_CyFunction_USED if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif #ifdef __Pyx_FusedFunction_USED if (__pyx_FusedFunction_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif #ifdef __Pyx_Generator_USED if (__pyx_Generator_init() < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS #ifdef WITH_THREAD /* Python build with threading support? */ PyEval_InitThreads(); #endif #endif /*--- Module creation code ---*/ #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4(__Pyx_NAMESTR("_unpacker"), __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); #else __pyx_m = PyModule_Create(&__pyx_moduledef); #endif if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (!PyDict_GetItemString(modules, "msgpack._unpacker")) { if (unlikely(PyDict_SetItemString(modules, "msgpack._unpacker", __pyx_m) < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } } #endif __pyx_b = PyImport_AddModule(__Pyx_NAMESTR(__Pyx_BUILTIN_MODULE_NAME)); if (unlikely(!__pyx_b)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #if CYTHON_COMPILING_IN_PYPY Py_INCREF(__pyx_b); #endif if (__Pyx_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; /*--- Initialize various global constants etc. ---*/ if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__pyx_module_is_main_msgpack___unpacker) { if (__Pyx_SetAttrString(__pyx_m, "__name__", __pyx_n_s____main__) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}; } /*--- Builtin init code ---*/ if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /*--- Constants init code ---*/ if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /*--- Global init code ---*/ /*--- Variable export code ---*/ /*--- Function export code ---*/ /*--- Type init code ---*/ __pyx_vtabptr_7msgpack_9_unpacker_Unpacker = &__pyx_vtable_7msgpack_9_unpacker_Unpacker; __pyx_vtable_7msgpack_9_unpacker_Unpacker.append_buffer = (PyObject *(*)(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *, void *, Py_ssize_t))__pyx_f_7msgpack_9_unpacker_8Unpacker_append_buffer; __pyx_vtable_7msgpack_9_unpacker_Unpacker.read_from_file = (PyObject *(*)(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *))__pyx_f_7msgpack_9_unpacker_8Unpacker_read_from_file; __pyx_vtable_7msgpack_9_unpacker_Unpacker._unpack = (PyObject *(*)(struct __pyx_obj_7msgpack_9_unpacker_Unpacker *, execute_fn, PyObject *, struct __pyx_opt_args_7msgpack_9_unpacker_8Unpacker__unpack *__pyx_optional_args))__pyx_f_7msgpack_9_unpacker_8Unpacker__unpack; if (PyType_Ready(&__pyx_type_7msgpack_9_unpacker_Unpacker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetVtable(__pyx_type_7msgpack_9_unpacker_Unpacker.tp_dict, __pyx_vtabptr_7msgpack_9_unpacker_Unpacker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetAttrString(__pyx_m, "Unpacker", (PyObject *)&__pyx_type_7msgpack_9_unpacker_Unpacker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_7msgpack_9_unpacker_Unpacker = &__pyx_type_7msgpack_9_unpacker_Unpacker; /*--- Type import code ---*/ __pyx_ptype_7cpython_4type_type = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "type", #if CYTHON_COMPILING_IN_PYPY sizeof(PyTypeObject), #else sizeof(PyHeapTypeObject), #endif 0); if (unlikely(!__pyx_ptype_7cpython_4type_type)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "bool", sizeof(PyBoolObject), 0); if (unlikely(!__pyx_ptype_7cpython_4bool_bool)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), 0); if (unlikely(!__pyx_ptype_7cpython_7complex_complex)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} /*--- Variable import code ---*/ /*--- Function import code ---*/ /*--- Execution code ---*/ /* "msgpack/_unpacker.pyx":16 * * from msgpack.exceptions import ( * BufferFull, # <<<<<<<<<<<<<< * OutOfData, * UnpackValueError, */ #line 16 "msgpack/_unpacker.pyx" __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 16 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_1); #line 16 "msgpack/_unpacker.pyx" __Pyx_INCREF(((PyObject *)__pyx_n_s__BufferFull)); #line 16 "msgpack/_unpacker.pyx" PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__BufferFull)); #line 16 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_n_s__BufferFull)); #line 16 "msgpack/_unpacker.pyx" __Pyx_INCREF(((PyObject *)__pyx_n_s__OutOfData)); #line 16 "msgpack/_unpacker.pyx" PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_n_s__OutOfData)); #line 16 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_n_s__OutOfData)); #line 16 "msgpack/_unpacker.pyx" __Pyx_INCREF(((PyObject *)__pyx_n_s__UnpackValueError)); #line 16 "msgpack/_unpacker.pyx" PyList_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_n_s__UnpackValueError)); #line 16 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_n_s__UnpackValueError)); #line 16 "msgpack/_unpacker.pyx" __Pyx_INCREF(((PyObject *)__pyx_n_s__ExtraData)); #line 16 "msgpack/_unpacker.pyx" PyList_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_n_s__ExtraData)); #line 16 "msgpack/_unpacker.pyx" __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ExtraData)); #line 16 "msgpack/_unpacker.pyx" __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s_27), ((PyObject *)__pyx_t_1), -1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 16 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 16 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0; #line 16 "msgpack/_unpacker.pyx" __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__BufferFull); #line 16 "msgpack/_unpacker.pyx" if (__pyx_t_1 == NULL) { #line 16 "msgpack/_unpacker.pyx" if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__BufferFull); #line 16 "msgpack/_unpacker.pyx" if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 16 "msgpack/_unpacker.pyx" } #line 16 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_1); #line 16 "msgpack/_unpacker.pyx" if (PyObject_SetAttr(__pyx_m, __pyx_n_s__BufferFull, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 16 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #line 16 "msgpack/_unpacker.pyx" __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__OutOfData); #line 16 "msgpack/_unpacker.pyx" if (__pyx_t_1 == NULL) { #line 16 "msgpack/_unpacker.pyx" if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__OutOfData); #line 16 "msgpack/_unpacker.pyx" if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 16 "msgpack/_unpacker.pyx" } #line 16 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_1); #line 16 "msgpack/_unpacker.pyx" if (PyObject_SetAttr(__pyx_m, __pyx_n_s__OutOfData, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 16 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #line 16 "msgpack/_unpacker.pyx" __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__UnpackValueError); #line 16 "msgpack/_unpacker.pyx" if (__pyx_t_1 == NULL) { #line 16 "msgpack/_unpacker.pyx" if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__UnpackValueError); #line 16 "msgpack/_unpacker.pyx" if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 16 "msgpack/_unpacker.pyx" } #line 16 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_1); #line 16 "msgpack/_unpacker.pyx" if (PyObject_SetAttr(__pyx_m, __pyx_n_s__UnpackValueError, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 16 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #line 16 "msgpack/_unpacker.pyx" __pyx_t_1 = PyObject_GetAttr(__pyx_t_2, __pyx_n_s__ExtraData); #line 16 "msgpack/_unpacker.pyx" if (__pyx_t_1 == NULL) { #line 16 "msgpack/_unpacker.pyx" if (PyErr_ExceptionMatches(PyExc_AttributeError)) __Pyx_RaiseImportError(__pyx_n_s__ExtraData); #line 16 "msgpack/_unpacker.pyx" if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 16 "msgpack/_unpacker.pyx" } #line 16 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_1); #line 16 "msgpack/_unpacker.pyx" if (PyObject_SetAttr(__pyx_m, __pyx_n_s__ExtraData, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 16 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; #line 16 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "msgpack/_unpacker.pyx":80 * ctx.user.unicode_errors = unicode_errors * * def unpackb(object packed, object object_hook=None, object list_hook=None, # <<<<<<<<<<<<<< * bint use_list=1, encoding=None, unicode_errors="strict", * object_pairs_hook=None, */ #line 80 "msgpack/_unpacker.pyx" __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7msgpack_9_unpacker_1unpackb, NULL, __pyx_n_s_31); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 80 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 80 "msgpack/_unpacker.pyx" if (PyObject_SetAttr(__pyx_m, __pyx_n_s__unpackb, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 80 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "msgpack/_unpacker.pyx":122 * * * def unpack(object stream, object object_hook=None, object list_hook=None, # <<<<<<<<<<<<<< * bint use_list=1, encoding=None, unicode_errors="strict", * object_pairs_hook=None, */ #line 122 "msgpack/_unpacker.pyx" __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_7msgpack_9_unpacker_3unpack, NULL, __pyx_n_s_31); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 122 "msgpack/_unpacker.pyx" __Pyx_GOTREF(__pyx_t_2); #line 122 "msgpack/_unpacker.pyx" if (PyObject_SetAttr(__pyx_m, __pyx_n_s__unpack, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 122 "msgpack/_unpacker.pyx" __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "msgpack/_unpacker.pyx":1 * # coding: utf-8 # <<<<<<<<<<<<<< * #cython: embedsignature=True * */ #line 1 "msgpack/_unpacker.pyx" __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 1 "msgpack/_unpacker.pyx" __Pyx_GOTREF(((PyObject *)__pyx_t_2)); #line 1 "msgpack/_unpacker.pyx" if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;} #line 1 "msgpack/_unpacker.pyx" __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; #line 1 "msgpack/_unpacker.pyx" goto __pyx_L0; #line 1 "msgpack/_unpacker.pyx" __pyx_L1_error:; #line 1 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_1); #line 1 "msgpack/_unpacker.pyx" __Pyx_XDECREF(__pyx_t_2); #line 1 "msgpack/_unpacker.pyx" if (__pyx_m) { #line 1 "msgpack/_unpacker.pyx" __Pyx_AddTraceback("init msgpack._unpacker", __pyx_clineno, __pyx_lineno, __pyx_filename); #line 1 "msgpack/_unpacker.pyx" Py_DECREF(__pyx_m); __pyx_m = 0; #line 1 "msgpack/_unpacker.pyx" } else if (!PyErr_Occurred()) { #line 1 "msgpack/_unpacker.pyx" PyErr_SetString(PyExc_ImportError, "init msgpack._unpacker"); #line 1 "msgpack/_unpacker.pyx" } #line 1 "msgpack/_unpacker.pyx" __pyx_L0:; #line 1 "msgpack/_unpacker.pyx" __Pyx_RefNannyFinishContext(); #line 1 "msgpack/_unpacker.pyx" #if PY_MAJOR_VERSION < 3 #line 1 "msgpack/_unpacker.pyx" return; #line 1 "msgpack/_unpacker.pyx" #else #line 1 "msgpack/_unpacker.pyx" return __pyx_m; #line 1 "msgpack/_unpacker.pyx" #endif #line 1 "msgpack/_unpacker.pyx" } #line 1 "cython_utility" /* Runtime support code */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule((char *)modname); if (!m) goto end; p = PyObject_GetAttrString(m, (char *)"RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* CYTHON_REFNANNY */ static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) { PyObject *result; result = PyObject_GetAttr(dict, name); if (!result) { if (dict != __pyx_b) { PyErr_Clear(); result = PyObject_GetAttr(__pyx_b, name); } if (!result) { PyErr_SetObject(PyExc_NameError, name); } } return result; } static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) { #if CYTHON_COMPILING_IN_CPYTHON PyObject *tmp_type, *tmp_value, *tmp_tb; PyThreadState *tstate = PyThreadState_GET(); tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); #else PyErr_Restore(type, value, tb); #endif } static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) { #if CYTHON_COMPILING_IN_CPYTHON PyThreadState *tstate = PyThreadState_GET(); *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; #else PyErr_Fetch(type, value, tb); #endif } #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { Py_XINCREF(type); if (!value || value == Py_None) value = NULL; else Py_INCREF(value); if (!tb || tb == Py_None) tb = NULL; else { Py_INCREF(tb); if (!PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto raise_error; } } #if PY_VERSION_HEX < 0x02050000 if (PyClass_Check(type)) { #else if (PyType_Check(type)) { #endif #if CYTHON_COMPILING_IN_PYPY if (!value) { Py_INCREF(Py_None); value = Py_None; } #endif PyErr_NormalizeException(&type, &value, &tb); } else { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto raise_error; } value = type; #if PY_VERSION_HEX < 0x02050000 if (PyInstance_Check(type)) { type = (PyObject*) ((PyInstanceObject*)type)->in_class; Py_INCREF(type); } else { type = 0; PyErr_SetString(PyExc_TypeError, "raise: exception must be an old-style class or instance"); goto raise_error; } #else type = (PyObject*) Py_TYPE(type); Py_INCREF(type); if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto raise_error; } #endif } __Pyx_ErrRestore(type, value, tb); return; raise_error: Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(tb); return; } #else /* Python 3+ */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { PyObject* owned_instance = NULL; if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (PyExceptionClass_Check(type)) { PyObject *args; if (!value) args = PyTuple_New(0); else if (PyTuple_Check(value)) { Py_INCREF(value); args = value; } else args = PyTuple_Pack(1, value); if (!args) goto bad; owned_instance = PyEval_CallObject(type, args); Py_DECREF(args); if (!owned_instance) goto bad; value = owned_instance; if (!PyExceptionInstance_Check(value)) { PyErr_Format(PyExc_TypeError, "calling %R should have returned an instance of " "BaseException, not %R", type, Py_TYPE(value)); goto bad; } } else { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } if (cause && cause != Py_None) { PyObject *fixed_cause; if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { PyThreadState *tstate = PyThreadState_GET(); PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } } bad: Py_XDECREF(owned_instance); return; } #endif static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AsString(kw_name)); #endif } static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; while (PyDict_Next(kwds, &pos, &key, &value)) { name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; continue; } name = first_kw_arg; #if PY_MAJOR_VERSION < 3 if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { while (*name) { if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) && _PyString_Eq(**name, key)) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { if ((**argname == key) || ( (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) && _PyString_Eq(**argname, key))) { goto arg_passed_twice; } argname++; } } } else #endif if (likely(PyUnicode_Check(key))) { while (*name) { int cmp = (**name == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**name, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { int cmp = (**argname == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : #endif PyUnicode_Compare(**argname, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; argname++; } } } else goto invalid_keyword_type; if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%s() keywords must be strings", function_name); goto bad; invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%s() got an unexpected keyword argument '%s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%s() takes %s %" CYTHON_FORMAT_SSIZE_T "d positional argument%s (%" CYTHON_FORMAT_SSIZE_T "d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } static CYTHON_INLINE int __Pyx_CheckKeywordStrings( PyObject *kwdict, const char* function_name, int kw_allowed) { PyObject* key = 0; Py_ssize_t pos = 0; #if CPYTHON_COMPILING_IN_PYPY if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) goto invalid_keyword; return 1; #else while (PyDict_Next(kwdict, &pos, &key, 0)) { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key))) #endif if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type; } if ((!kw_allowed) && unlikely(key)) goto invalid_keyword; return 1; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%s() keywords must be strings", function_name); return 0; #endif invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%s() got an unexpected keyword argument '%s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif return 0; } static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { PyObject *empty_list = 0; PyObject *module = 0; PyObject *global_dict = 0; PyObject *empty_dict = 0; PyObject *list; #if PY_VERSION_HEX < 0x03030000 PyObject *py_import = 0; py_import = __Pyx_GetAttrString(__pyx_b, "__import__"); if (!py_import) goto bad; #endif if (from_list) list = from_list; else { empty_list = PyList_New(0); if (!empty_list) goto bad; list = empty_list; } global_dict = PyModule_GetDict(__pyx_m); if (!global_dict) goto bad; empty_dict = PyDict_New(); if (!empty_dict) goto bad; #if PY_VERSION_HEX >= 0x02050000 { #if PY_MAJOR_VERSION >= 3 if (level == -1) { if (strchr(__Pyx_MODULE_NAME, '.')) { #if PY_VERSION_HEX < 0x03030000 PyObject *py_level = PyInt_FromLong(1); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, 1); #endif if (!module) { if (!PyErr_ExceptionMatches(PyExc_ImportError)) goto bad; PyErr_Clear(); } } level = 0; /* try absolute import on failure */ } #endif if (!module) { #if PY_VERSION_HEX < 0x03030000 PyObject *py_level = PyInt_FromLong(level); if (!py_level) goto bad; module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, py_level, NULL); Py_DECREF(py_level); #else module = PyImport_ImportModuleLevelObject( name, global_dict, empty_dict, list, level); #endif } } #else if (level>0) { PyErr_SetString(PyExc_RuntimeError, "Relative import is not supported for Python <=2.4."); goto bad; } module = PyObject_CallFunctionObjArgs(py_import, name, global_dict, empty_dict, list, NULL); #endif bad: #if PY_VERSION_HEX < 0x03030000 Py_XDECREF(py_import); #endif Py_XDECREF(empty_list); Py_XDECREF(empty_dict); return module; } static CYTHON_INLINE void __Pyx_RaiseImportError(PyObject *name) { #if PY_MAJOR_VERSION < 3 PyErr_Format(PyExc_ImportError, "cannot import name %.230s", PyString_AsString(name)); #else PyErr_Format(PyExc_ImportError, "cannot import name %S", name); #endif } static CYTHON_INLINE unsigned char __Pyx_PyInt_AsUnsignedChar(PyObject* x) { const unsigned char neg_one = (unsigned char)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(unsigned char) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(unsigned char)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to unsigned char" : "value too large to convert to unsigned char"); } return (unsigned char)-1; } return (unsigned char)val; } return (unsigned char)__Pyx_PyInt_AsUnsignedLong(x); } static CYTHON_INLINE unsigned short __Pyx_PyInt_AsUnsignedShort(PyObject* x) { const unsigned short neg_one = (unsigned short)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(unsigned short) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(unsigned short)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to unsigned short" : "value too large to convert to unsigned short"); } return (unsigned short)-1; } return (unsigned short)val; } return (unsigned short)__Pyx_PyInt_AsUnsignedLong(x); } static CYTHON_INLINE unsigned int __Pyx_PyInt_AsUnsignedInt(PyObject* x) { const unsigned int neg_one = (unsigned int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(unsigned int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(unsigned int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to unsigned int" : "value too large to convert to unsigned int"); } return (unsigned int)-1; } return (unsigned int)val; } return (unsigned int)__Pyx_PyInt_AsUnsignedLong(x); } static CYTHON_INLINE char __Pyx_PyInt_AsChar(PyObject* x) { const char neg_one = (char)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(char) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(char)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to char" : "value too large to convert to char"); } return (char)-1; } return (char)val; } return (char)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE short __Pyx_PyInt_AsShort(PyObject* x) { const short neg_one = (short)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(short) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(short)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to short" : "value too large to convert to short"); } return (short)-1; } return (short)val; } return (short)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE int __Pyx_PyInt_AsInt(PyObject* x) { const int neg_one = (int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to int" : "value too large to convert to int"); } return (int)-1; } return (int)val; } return (int)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE signed char __Pyx_PyInt_AsSignedChar(PyObject* x) { const signed char neg_one = (signed char)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(signed char) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(signed char)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to signed char" : "value too large to convert to signed char"); } return (signed char)-1; } return (signed char)val; } return (signed char)__Pyx_PyInt_AsSignedLong(x); } static CYTHON_INLINE signed short __Pyx_PyInt_AsSignedShort(PyObject* x) { const signed short neg_one = (signed short)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(signed short) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(signed short)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to signed short" : "value too large to convert to signed short"); } return (signed short)-1; } return (signed short)val; } return (signed short)__Pyx_PyInt_AsSignedLong(x); } static CYTHON_INLINE signed int __Pyx_PyInt_AsSignedInt(PyObject* x) { const signed int neg_one = (signed int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(signed int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(signed int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to signed int" : "value too large to convert to signed int"); } return (signed int)-1; } return (signed int)val; } return (signed int)__Pyx_PyInt_AsSignedLong(x); } static CYTHON_INLINE int __Pyx_PyInt_AsLongDouble(PyObject* x) { const int neg_one = (int)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; if (sizeof(int) < sizeof(long)) { long val = __Pyx_PyInt_AsLong(x); if (unlikely(val != (long)(int)val)) { if (!unlikely(val == -1 && PyErr_Occurred())) { PyErr_SetString(PyExc_OverflowError, (is_unsigned && unlikely(val < 0)) ? "can't convert negative value to int" : "value too large to convert to int"); } return (int)-1; } return (int)val; } return (int)__Pyx_PyInt_AsLong(x); } static CYTHON_INLINE unsigned long __Pyx_PyInt_AsUnsignedLong(PyObject* x) { const unsigned long neg_one = (unsigned long)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned long"); return (unsigned long)-1; } return (unsigned long)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned long"); return (unsigned long)-1; } return (unsigned long)PyLong_AsUnsignedLong(x); } else { return (unsigned long)PyLong_AsLong(x); } } else { unsigned long val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (unsigned long)-1; val = __Pyx_PyInt_AsUnsignedLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE unsigned PY_LONG_LONG __Pyx_PyInt_AsUnsignedLongLong(PyObject* x) { const unsigned PY_LONG_LONG neg_one = (unsigned PY_LONG_LONG)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned PY_LONG_LONG"); return (unsigned PY_LONG_LONG)-1; } return (unsigned PY_LONG_LONG)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to unsigned PY_LONG_LONG"); return (unsigned PY_LONG_LONG)-1; } return (unsigned PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); } else { return (unsigned PY_LONG_LONG)PyLong_AsLongLong(x); } } else { unsigned PY_LONG_LONG val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (unsigned PY_LONG_LONG)-1; val = __Pyx_PyInt_AsUnsignedLongLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE long __Pyx_PyInt_AsLong(PyObject* x) { const long neg_one = (long)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long)-1; } return (long)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long)-1; } return (long)PyLong_AsUnsignedLong(x); } else { return (long)PyLong_AsLong(x); } } else { long val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (long)-1; val = __Pyx_PyInt_AsLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE PY_LONG_LONG __Pyx_PyInt_AsLongLong(PyObject* x) { const PY_LONG_LONG neg_one = (PY_LONG_LONG)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to PY_LONG_LONG"); return (PY_LONG_LONG)-1; } return (PY_LONG_LONG)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to PY_LONG_LONG"); return (PY_LONG_LONG)-1; } return (PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); } else { return (PY_LONG_LONG)PyLong_AsLongLong(x); } } else { PY_LONG_LONG val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (PY_LONG_LONG)-1; val = __Pyx_PyInt_AsLongLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject* x) { const signed long neg_one = (signed long)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed long"); return (signed long)-1; } return (signed long)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed long"); return (signed long)-1; } return (signed long)PyLong_AsUnsignedLong(x); } else { return (signed long)PyLong_AsLong(x); } } else { signed long val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (signed long)-1; val = __Pyx_PyInt_AsSignedLong(tmp); Py_DECREF(tmp); return val; } } static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject* x) { const signed PY_LONG_LONG neg_one = (signed PY_LONG_LONG)-1, const_zero = 0; const int is_unsigned = neg_one > const_zero; #if PY_VERSION_HEX < 0x03000000 if (likely(PyInt_Check(x))) { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed PY_LONG_LONG"); return (signed PY_LONG_LONG)-1; } return (signed PY_LONG_LONG)val; } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { if (unlikely(Py_SIZE(x) < 0)) { PyErr_SetString(PyExc_OverflowError, "can't convert negative value to signed PY_LONG_LONG"); return (signed PY_LONG_LONG)-1; } return (signed PY_LONG_LONG)PyLong_AsUnsignedLongLong(x); } else { return (signed PY_LONG_LONG)PyLong_AsLongLong(x); } } else { signed PY_LONG_LONG val; PyObject *tmp = __Pyx_PyNumber_Int(x); if (!tmp) return (signed PY_LONG_LONG)-1; val = __Pyx_PyInt_AsSignedLongLong(tmp); Py_DECREF(tmp); return val; } } static int __Pyx_check_binary_version(void) { char ctversion[4], rtversion[4]; PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { char message[200]; PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", ctversion, __Pyx_MODULE_NAME, rtversion); #if PY_VERSION_HEX < 0x02050000 return PyErr_Warn(NULL, message); #else return PyErr_WarnEx(NULL, message, 1); #endif } return 0; } static int __Pyx_SetVtable(PyObject *dict, void *vtable) { #if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0) PyObject *ob = PyCapsule_New(vtable, 0, 0); #else PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); #endif if (!ob) goto bad; if (PyDict_SetItemString(dict, "__pyx_vtable__", ob) < 0) goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } #ifndef __PYX_HAVE_RT_ImportModule #define __PYX_HAVE_RT_ImportModule static PyObject *__Pyx_ImportModule(const char *name) { PyObject *py_name = 0; PyObject *py_module = 0; py_name = __Pyx_PyIdentifier_FromString(name); if (!py_name) goto bad; py_module = PyImport_Import(py_name); Py_DECREF(py_name); return py_module; bad: Py_XDECREF(py_name); return 0; } #endif #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict) { PyObject *py_module = 0; PyObject *result = 0; PyObject *py_name = 0; char warning[200]; Py_ssize_t basicsize; #ifdef Py_LIMITED_API PyObject *py_basicsize; #endif py_module = __Pyx_ImportModule(module_name); if (!py_module) goto bad; py_name = __Pyx_PyIdentifier_FromString(class_name); if (!py_name) goto bad; result = PyObject_GetAttr(py_module, py_name); Py_DECREF(py_name); py_name = 0; Py_DECREF(py_module); py_module = 0; if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%s.%s is not a type object", module_name, class_name); goto bad; } #ifndef Py_LIMITED_API basicsize = ((PyTypeObject *)result)->tp_basicsize; #else py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); if (!py_basicsize) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; #endif if (!strict && (size_t)basicsize > size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility", module_name, class_name); #if PY_VERSION_HEX < 0x02050000 if (PyErr_Warn(NULL, warning) < 0) goto bad; #else if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; #endif } else if ((size_t)basicsize != size) { PyErr_Format(PyExc_ValueError, "%s.%s has the wrong size, try recompiling", module_name, class_name); goto bad; } return (PyTypeObject *)result; bad: Py_XDECREF(py_module); Py_XDECREF(result); return NULL; } #endif static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = (start + end) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static PyCodeObject *__pyx_find_code_object(int code_line) { PyCodeObject* code_object; int pos; if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { return NULL; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { return NULL; } code_object = __pyx_code_cache.entries[pos].code_object; Py_INCREF(code_object); return code_object; } static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = 64; __pyx_code_cache.count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { PyCodeObject* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_DECREF(tmp); return; } if (__pyx_code_cache.count == __pyx_code_cache.max_count) { int new_max = __pyx_code_cache.max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( __pyx_code_cache.entries, new_max*sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = new_max; } for (i=__pyx_code_cache.count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; __pyx_code_cache.count++; Py_INCREF(code_object); } #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyObject *py_srcfile = 0; PyObject *py_funcname = 0; #if PY_MAJOR_VERSION < 3 py_srcfile = PyString_FromString(filename); #else py_srcfile = PyUnicode_FromString(filename); #endif if (!py_srcfile) goto bad; if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); #else py_funcname = PyUnicode_FromString(funcname); #endif } if (!py_funcname) goto bad; py_code = __Pyx_PyCode_New( 0, /*int argcount,*/ 0, /*int kwonlyargcount,*/ 0, /*int nlocals,*/ 0, /*int stacksize,*/ 0, /*int flags,*/ __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ py_line, /*int firstlineno,*/ __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); Py_DECREF(py_funcname); return py_code; bad: Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyObject *py_globals = 0; PyFrameObject *py_frame = 0; py_code = __pyx_find_code_object(c_line ? c_line : py_line); if (!py_code) { py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) goto bad; __pyx_insert_code_object(c_line ? c_line : py_line, py_code); } py_globals = PyModule_GetDict(__pyx_m); if (!py_globals) goto bad; py_frame = PyFrame_New( PyThreadState_GET(), /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ py_globals, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; py_frame->f_lineno = py_line; PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { while (t->p) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } #else /* Python 3+ has unicode identifiers */ if (t->is_unicode | t->is_str) { if (t->intern) { *t->p = PyUnicode_InternFromString(t->s); } else if (t->encoding) { *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); } else { *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); } } else { *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); } #endif if (!*t->p) return -1; ++t; } return 0; } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) { PyNumberMethods *m; const char *name = NULL; PyObject *res = NULL; #if PY_VERSION_HEX < 0x03000000 if (PyInt_Check(x) || PyLong_Check(x)) #else if (PyLong_Check(x)) #endif return Py_INCREF(x), x; m = Py_TYPE(x)->tp_as_number; #if PY_VERSION_HEX < 0x03000000 if (m && m->nb_int) { name = "int"; res = PyNumber_Int(x); } else if (m && m->nb_long) { name = "long"; res = PyNumber_Long(x); } #else if (m && m->nb_int) { name = "int"; res = PyNumber_Long(x); } #endif if (res) { #if PY_VERSION_HEX < 0x03000000 if (!PyInt_Check(res) && !PyLong_Check(res)) { #else if (!PyLong_Check(res)) { #endif PyErr_Format(PyExc_TypeError, "__%s__ returned non-%s (type %.200s)", name, name, Py_TYPE(res)->tp_name); Py_DECREF(res); return NULL; } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject* x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { #if PY_VERSION_HEX < 0x02050000 if (ival <= LONG_MAX) return PyInt_FromLong((long)ival); else { unsigned char *bytes = (unsigned char *) &ival; int one = 1; int little = (int)*(unsigned char*)&one; return _PyLong_FromByteArray(bytes, sizeof(size_t), little, 0); } #else return PyInt_FromSize_t(ival); #endif } static CYTHON_INLINE size_t __Pyx_PyInt_AsSize_t(PyObject* x) { unsigned PY_LONG_LONG val = __Pyx_PyInt_AsUnsignedLongLong(x); if (unlikely(val == (unsigned PY_LONG_LONG)-1 && PyErr_Occurred())) { return (size_t)-1; } else if (unlikely(val != (unsigned PY_LONG_LONG)(size_t)val)) { PyErr_SetString(PyExc_OverflowError, "value too large to convert to size_t"); return (size_t)-1; } return (size_t)val; } #endif /* Py_PYTHON_H */ msgpack-python-0.3.0/msgpack/_unpacker.pyx0000644000076700000240000003242312067345755021272 0ustar inada-nstaff00000000000000# coding: utf-8 #cython: embedsignature=True from cpython cimport * cdef extern from "Python.h": ctypedef char* const_char_ptr "const char*" ctypedef char* const_void_ptr "const void*" ctypedef struct PyObject cdef int PyObject_AsReadBuffer(object o, const_void_ptr* buff, Py_ssize_t* buf_len) except -1 from libc.stdlib cimport * from libc.string cimport * from libc.limits cimport * from msgpack.exceptions import ( BufferFull, OutOfData, UnpackValueError, ExtraData, ) cdef extern from "unpack.h": ctypedef struct msgpack_user: bint use_list PyObject* object_hook bint has_pairs_hook # call object_hook with k-v pairs PyObject* list_hook char *encoding char *unicode_errors ctypedef struct template_context: msgpack_user user PyObject* obj size_t count unsigned int ct PyObject* key ctypedef int (*execute_fn)(template_context* ctx, const_char_ptr data, size_t len, size_t* off) except? -1 execute_fn template_construct execute_fn template_skip execute_fn read_array_header execute_fn read_map_header void template_init(template_context* ctx) object template_data(template_context* ctx) cdef inline init_ctx(template_context *ctx, object object_hook, object object_pairs_hook, object list_hook, bint use_list, char* encoding, char* unicode_errors): template_init(ctx) ctx.user.use_list = use_list ctx.user.object_hook = ctx.user.list_hook = NULL if object_hook is not None and object_pairs_hook is not None: raise ValueError("object_pairs_hook and object_hook are mutually exclusive.") if object_hook is not None: if not PyCallable_Check(object_hook): raise TypeError("object_hook must be a callable.") ctx.user.object_hook = object_hook if object_pairs_hook is None: ctx.user.has_pairs_hook = False else: if not PyCallable_Check(object_pairs_hook): raise TypeError("object_pairs_hook must be a callable.") ctx.user.object_hook = object_pairs_hook ctx.user.has_pairs_hook = True if list_hook is not None: if not PyCallable_Check(list_hook): raise TypeError("list_hook must be a callable.") ctx.user.list_hook = list_hook ctx.user.encoding = encoding ctx.user.unicode_errors = unicode_errors def unpackb(object packed, object object_hook=None, object list_hook=None, bint use_list=1, encoding=None, unicode_errors="strict", object_pairs_hook=None, ): """Unpack packed_bytes to object. Returns an unpacked object. Raises `ValueError` when `packed` contains extra bytes. """ cdef template_context ctx cdef size_t off = 0 cdef int ret cdef char* buf cdef Py_ssize_t buf_len cdef char* cenc = NULL cdef char* cerr = NULL PyObject_AsReadBuffer(packed, &buf, &buf_len) if encoding is not None: if isinstance(encoding, unicode): encoding = encoding.encode('ascii') cenc = PyBytes_AsString(encoding) if unicode_errors is not None: if isinstance(unicode_errors, unicode): unicode_errors = unicode_errors.encode('ascii') cerr = PyBytes_AsString(unicode_errors) init_ctx(&ctx, object_hook, object_pairs_hook, list_hook, use_list, cenc, cerr) ret = template_construct(&ctx, buf, buf_len, &off) if ret == 1: obj = template_data(&ctx) if off < buf_len: raise ExtraData(obj, PyBytes_FromStringAndSize(buf+off, buf_len-off)) return obj elif ret < 0: raise ValueError("Unpack failed: error = %d" % (ret,)) else: raise UnpackValueError def unpack(object stream, object object_hook=None, object list_hook=None, bint use_list=1, encoding=None, unicode_errors="strict", object_pairs_hook=None, ): """Unpack an object from `stream`. Raises `ValueError` when `stream` has extra bytes. """ return unpackb(stream.read(), use_list=use_list, object_hook=object_hook, object_pairs_hook=object_pairs_hook, list_hook=list_hook, encoding=encoding, unicode_errors=unicode_errors, ) cdef class Unpacker(object): """ Streaming unpacker. `file_like` is a file-like object having `.read(n)` method. When `Unpacker` initialized with `file_like`, unpacker reads serialized data from it and `.feed()` method is not usable. `read_size` is used as `file_like.read(read_size)`. (default: min(1024**2, max_buffer_size)) If `use_list` is true (default), msgpack list is deserialized to Python list. Otherwise, it is deserialized to Python tuple. `object_hook` is same to simplejson. If it is not None, it should be callable and Unpacker calls it with a dict argument after deserializing a map. `object_pairs_hook` is same to simplejson. If it is not None, it should be callable and Unpacker calls it with a list of key-value pairs after deserializing a map. `encoding` is encoding used for decoding msgpack bytes. If it is None (default), msgpack bytes is deserialized to Python bytes. `unicode_errors` is used for decoding bytes. `max_buffer_size` limits size of data waiting unpacked. 0 means system's INT_MAX (default). Raises `BufferFull` exception when it is insufficient. You shoud set this parameter when unpacking data from untrasted source. example of streaming deserialize from file-like object:: unpacker = Unpacker(file_like) for o in unpacker: do_something(o) example of streaming deserialize from socket:: unpacker = Unpacker() while 1: buf = sock.recv(1024**2) if not buf: break unpacker.feed(buf) for o in unpacker: do_something(o) """ cdef template_context ctx cdef char* buf cdef size_t buf_size, buf_head, buf_tail cdef object file_like cdef object file_like_read cdef Py_ssize_t read_size cdef object object_hook cdef object encoding, unicode_errors cdef size_t max_buffer_size def __cinit__(self): self.buf = NULL def __dealloc__(self): free(self.buf) self.buf = NULL def __init__(self, file_like=None, Py_ssize_t read_size=0, bint use_list=1, object object_hook=None, object object_pairs_hook=None, object list_hook=None, encoding=None, unicode_errors='strict', int max_buffer_size=0, ): cdef char *cenc=NULL, *cerr=NULL self.file_like = file_like if file_like: self.file_like_read = file_like.read if not PyCallable_Check(self.file_like_read): raise ValueError("`file_like.read` must be a callable.") if not max_buffer_size: max_buffer_size = INT_MAX if read_size > max_buffer_size: raise ValueError("read_size should be less or equal to max_buffer_size") if not read_size: read_size = min(max_buffer_size, 1024**2) self.max_buffer_size = max_buffer_size self.read_size = read_size self.buf = malloc(read_size) if self.buf == NULL: raise MemoryError("Unable to allocate internal buffer.") self.buf_size = read_size self.buf_head = 0 self.buf_tail = 0 if encoding is not None: if isinstance(encoding, unicode): encoding = encoding.encode('ascii') self.encoding = encoding cenc = PyBytes_AsString(encoding) if unicode_errors is not None: if isinstance(unicode_errors, unicode): unicode_errors = unicode_errors.encode('ascii') self.unicode_errors = unicode_errors cerr = PyBytes_AsString(unicode_errors) init_ctx(&self.ctx, object_hook, object_pairs_hook, list_hook, use_list, cenc, cerr) def feed(self, object next_bytes): """Append `next_bytes` to internal buffer.""" cdef char* buf cdef Py_ssize_t buf_len if self.file_like is not None: raise AssertionError( "unpacker.feed() is not be able to use with `file_like`.") PyObject_AsReadBuffer(next_bytes, &buf, &buf_len) self.append_buffer(buf, buf_len) cdef append_buffer(self, void* _buf, Py_ssize_t _buf_len): cdef: char* buf = self.buf char* new_buf size_t head = self.buf_head size_t tail = self.buf_tail size_t buf_size = self.buf_size size_t new_size if tail + _buf_len > buf_size: if ((tail - head) + _buf_len) <= buf_size: # move to front. memmove(buf, buf + head, tail - head) tail -= head head = 0 else: # expand buffer. new_size = (tail-head) + _buf_len if new_size > self.max_buffer_size: raise BufferFull new_size = min(new_size*2, self.max_buffer_size) new_buf = malloc(new_size) if new_buf == NULL: # self.buf still holds old buffer and will be freed during # obj destruction raise MemoryError("Unable to enlarge internal buffer.") memcpy(new_buf, buf + head, tail - head) free(buf) buf = new_buf buf_size = new_size tail -= head head = 0 memcpy(buf + tail, (_buf), _buf_len) self.buf = buf self.buf_head = head self.buf_size = buf_size self.buf_tail = tail + _buf_len cdef read_from_file(self): next_bytes = self.file_like_read( min(self.read_size, self.max_buffer_size - (self.buf_tail - self.buf_head) )) if next_bytes: self.append_buffer(PyBytes_AsString(next_bytes), PyBytes_Size(next_bytes)) else: self.file_like = None cdef object _unpack(self, execute_fn execute, object write_bytes, bint iter=0): cdef int ret cdef object obj cdef size_t prev_head while 1: prev_head = self.buf_head ret = execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head) if write_bytes is not None: write_bytes(PyBytes_FromStringAndSize(self.buf + prev_head, self.buf_head - prev_head)) if ret == 1: obj = template_data(&self.ctx) template_init(&self.ctx) return obj elif ret == 0: if self.file_like is not None: self.read_from_file() continue if iter: raise StopIteration("No more data to unpack.") else: raise OutOfData("No more data to unpack.") else: raise ValueError("Unpack failed: error = %d" % (ret,)) def read_bytes(self, Py_ssize_t nbytes): """read a specified number of raw bytes from the stream""" cdef size_t nread nread = min(self.buf_tail - self.buf_head, nbytes) ret = PyBytes_FromStringAndSize(self.buf + self.buf_head, nread) self.buf_head += nread if len(ret) < nbytes and self.file_like is not None: ret += self.file_like.read(nbytes - len(ret)) return ret def unpack(self, object write_bytes=None): """ unpack one object If write_bytes is not None, it will be called with parts of the raw message as it is unpacked. Raises `OutOfData` when there are no more bytes to unpack. """ return self._unpack(template_construct, write_bytes) def skip(self, object write_bytes=None): """ read and ignore one object, returning None If write_bytes is not None, it will be called with parts of the raw message as it is unpacked. Raises `OutOfData` when there are no more bytes to unpack. """ return self._unpack(template_skip, write_bytes) def read_array_header(self, object write_bytes=None): """assuming the next object is an array, return its size n, such that the next n unpack() calls will iterate over its contents. Raises `OutOfData` when there are no more bytes to unpack. """ return self._unpack(read_array_header, write_bytes) def read_map_header(self, object write_bytes=None): """assuming the next object is a map, return its size n, such that the next n * 2 unpack() calls will iterate over its key-value pairs. Raises `OutOfData` when there are no more bytes to unpack. """ return self._unpack(read_map_header, write_bytes) def __iter__(self): return self def __next__(self): return self._unpack(template_construct, None, 1) # for debug. #def _buf(self): # return PyString_FromStringAndSize(self.buf, self.buf_tail) #def _off(self): # return self.buf_head msgpack-python-0.3.0/msgpack/_version.py0000644000076700000240000000002412107551206020730 0ustar inada-nstaff00000000000000version = (0, 3, 0) msgpack-python-0.3.0/msgpack/exceptions.py0000644000076700000240000000076712067345632021314 0ustar inada-nstaff00000000000000class UnpackException(Exception): pass class BufferFull(UnpackException): pass class OutOfData(UnpackException): pass class UnpackValueError(UnpackException, ValueError): pass class ExtraData(ValueError): def __init__(self, unpacked, extra): self.unpacked = unpacked self.extra = extra def __str__(self): return "unpack(b) recieved extra data." class PackException(Exception): pass class PackValueError(PackException, ValueError): pass msgpack-python-0.3.0/msgpack/fallback.py0000644000076700000240000005061012103651061020645 0ustar inada-nstaff00000000000000"""Fallback pure Python implementation of msgpack""" import sys import array import struct if sys.version_info[0] == 3: PY3 = True int_types = int Unicode = str xrange = range def dict_iteritems(d): return d.items() else: PY3 = False int_types = (int, long) Unicode = unicode def dict_iteritems(d): return d.iteritems() if hasattr(sys, 'pypy_version_info'): # cStringIO is slow on PyPy, StringIO is faster. However: PyPy's own # StringBuilder is fastest. from __pypy__.builders import StringBuilder USING_STRINGBUILDER = True class StringIO(object): def __init__(self, s=b''): if s: self.builder = StringBuilder(len(s)) self.builder.append(s) else: self.builder = StringBuilder() def write(self, s): self.builder.append(s) def getvalue(self): return self.builder.build() else: USING_STRINGBUILDER = False from io import BytesIO as StringIO from msgpack.exceptions import ( BufferFull, OutOfData, UnpackValueError, PackValueError, ExtraData) EX_SKIP = 0 EX_CONSTRUCT = 1 EX_READ_ARRAY_HEADER = 2 EX_READ_MAP_HEADER = 3 TYPE_IMMEDIATE = 0 TYPE_ARRAY = 1 TYPE_MAP = 2 TYPE_RAW = 3 DEFAULT_RECURSE_LIMIT=511 def pack(o, stream, default=None, encoding='utf-8', unicode_errors='strict'): """ Pack object `o` and write it to `stream` """ packer = Packer(default=default, encoding=encoding, unicode_errors=unicode_errors) stream.write(packer.pack(o)) def packb(o, default=None, encoding='utf-8', unicode_errors='struct', use_single_float=False): """ Pack object `o` and return packed bytes """ packer = Packer(default=default, encoding=encoding, unicode_errors=unicode_errors, use_single_float=use_single_float) return packer.pack(o) def unpack(stream, object_hook=None, list_hook=None, use_list=True, encoding=None, unicode_errors='strict', object_pairs_hook=None): """ Unpack an object from `stream`. Raises `ExtraData` when `stream` has extra bytes. """ unpacker = Unpacker(stream, object_hook=object_hook, list_hook=list_hook, use_list=use_list, encoding=encoding, unicode_errors=unicode_errors, object_pairs_hook=object_pairs_hook) ret = unpacker._fb_unpack() if unpacker._fb_got_extradata(): raise ExtraData(ret, unpacker._fb_get_extradata()) return ret def unpackb(packed, object_hook=None, list_hook=None, use_list=True, encoding=None, unicode_errors='strict', object_pairs_hook=None): """ Unpack an object from `packed`. Raises `ExtraData` when `packed` contains extra bytes. """ unpacker = Unpacker(None, object_hook=object_hook, list_hook=list_hook, use_list=use_list, encoding=encoding, unicode_errors=unicode_errors, object_pairs_hook=object_pairs_hook) unpacker.feed(packed) ret = unpacker._fb_unpack() if unpacker._fb_got_extradata(): raise ExtraData(ret, unpacker._fb_get_extradata()) return ret class Unpacker(object): """ Streaming unpacker. `file_like` is a file-like object having a `.read(n)` method. When `Unpacker` is initialized with a `file_like`, `.feed()` is not usable. `read_size` is used for `file_like.read(read_size)`. If `use_list` is True (default), msgpack lists are deserialized to Python lists. Otherwise they are deserialized to tuples. `object_hook` is the same as in simplejson. If it is not None, it should be callable and Unpacker calls it with a dict argument after deserializing a map. `object_pairs_hook` is the same as in simplejson. If it is not None, it should be callable and Unpacker calls it with a list of key-value pairs after deserializing a map. `encoding` is the encoding used for decoding msgpack bytes. If it is None (default), msgpack bytes are deserialized to Python bytes. `unicode_errors` is used for decoding bytes. `max_buffer_size` limits the buffer size. 0 means INT_MAX (default). Raises `BufferFull` exception when it is unsufficient. You should set this parameter when unpacking data from an untrustred source. example of streaming deserialization from file-like object:: unpacker = Unpacker(file_like) for o in unpacker: do_something(o) example of streaming deserialization from socket:: unpacker = Unapcker() while 1: buf = sock.recv(1024*2) if not buf: break unpacker.feed(buf) for o in unpacker: do_something(o) """ def __init__(self, file_like=None, read_size=0, use_list=True, object_hook=None, object_pairs_hook=None, list_hook=None, encoding=None, unicode_errors='strict', max_buffer_size=0): if file_like is None: self._fb_feeding = True else: if not callable(file_like.read): raise ValueError("`file_like.read` must be callable") self.file_like = file_like self._fb_feeding = False self._fb_buffers = [] self._fb_buf_o = 0 self._fb_buf_i = 0 self._fb_buf_n = 0 self._max_buffer_size = (2**31-1 if max_buffer_size == 0 else max_buffer_size) self._read_size = (read_size if read_size != 0 else min(self._max_buffer_size, 2048)) if read_size > self._max_buffer_size: raise ValueError("read_size must be smaller than max_buffer_size") self._encoding = encoding self._unicode_errors = unicode_errors self._use_list = use_list self._list_hook = list_hook self._object_hook = object_hook self._object_pairs_hook = object_pairs_hook if list_hook is not None and not callable(list_hook): raise ValueError('`list_hook` is not callable') if object_hook is not None and not callable(object_hook): raise ValueError('`object_hook` is not callable') if object_pairs_hook is not None and not callable(object_pairs_hook): raise ValueError('`object_pairs_hook` is not callable') if object_hook is not None and object_pairs_hook is not None: raise ValueError("object_pairs_hook and object_hook are mutually " "exclusive") def feed(self, next_bytes): if isinstance(next_bytes, array.array): next_bytes = next_bytes.tostring() assert self._fb_feeding if self._fb_buf_n + len(next_bytes) > self._max_buffer_size: raise BufferFull self._fb_buf_n += len(next_bytes) self._fb_buffers.append(next_bytes) def _fb_consume(self): self._fb_buffers = self._fb_buffers[self._fb_buf_i:] if self._fb_buffers: self._fb_buffers[0] = self._fb_buffers[0][self._fb_buf_o:] self._fb_buf_o = 0 self._fb_buf_i = 0 self._fb_buf_n = sum(map(len, self._fb_buffers)) def _fb_got_extradata(self): if self._fb_buf_i != len(self._fb_buffers): return True if self._fb_feeding: return False if not self.file_like: return False if self.file_like.read(1): return True return False def __iter__(self): return self def read_bytes(self, n): return self._fb_read(n) def _fb_rollback(self): self._fb_buf_i = 0 self._fb_buf_o = 0 def _fb_get_extradata(self): bufs = self._fb_buffers[self._fb_buf_i:] if bufs: bufs[0] = bufs[0][self._fb_buf_o:] return b''.join(bufs) def _fb_read(self, n, write_bytes=None): if (write_bytes is None and self._fb_buf_i < len(self._fb_buffers) and self._fb_buf_o + n < len(self._fb_buffers[self._fb_buf_i])): self._fb_buf_o += n return self._fb_buffers[self._fb_buf_i][ self._fb_buf_o-n:self._fb_buf_o] ret = b'' while len(ret) != n: if self._fb_buf_i == len(self._fb_buffers): if self._fb_feeding: break tmp = self.file_like.read(self._read_size) if not tmp: break self._fb_buffers.append(tmp) continue sliced = n - len(ret) ret += self._fb_buffers[self._fb_buf_i][ self._fb_buf_o:self._fb_buf_o + sliced] self._fb_buf_o += sliced if self._fb_buf_o >= len(self._fb_buffers[self._fb_buf_i]): self._fb_buf_o = 0 self._fb_buf_i += 1 if len(ret) != n: self._fb_rollback() raise OutOfData if write_bytes is not None: write_bytes(ret) return ret def _fb_unpack(self, execute=EX_CONSTRUCT, write_bytes=None): typ = TYPE_IMMEDIATE c = self._fb_read(1, write_bytes) b = ord(c) if b & 0b10000000 == 0: obj = b elif b & 0b11100000 == 0b11100000: obj = struct.unpack("b", c)[0] elif b & 0b11100000 == 0b10100000: n = b & 0b00011111 obj = self._fb_read(n, write_bytes) typ = TYPE_RAW elif b & 0b11110000 == 0b10010000: n = b & 0b00001111 typ = TYPE_ARRAY elif b & 0b11110000 == 0b10000000: n = b & 0b00001111 typ = TYPE_MAP elif b == 0xc0: obj = None elif b == 0xc2: obj = False elif b == 0xc3: obj = True elif b == 0xca: obj = struct.unpack(">f", self._fb_read(4, write_bytes))[0] elif b == 0xcb: obj = struct.unpack(">d", self._fb_read(8, write_bytes))[0] elif b == 0xcc: obj = struct.unpack("B", self._fb_read(1, write_bytes))[0] elif b == 0xcd: obj = struct.unpack(">H", self._fb_read(2, write_bytes))[0] elif b == 0xce: obj = struct.unpack(">I", self._fb_read(4, write_bytes))[0] elif b == 0xcf: obj = struct.unpack(">Q", self._fb_read(8, write_bytes))[0] elif b == 0xd0: obj = struct.unpack("b", self._fb_read(1, write_bytes))[0] elif b == 0xd1: obj = struct.unpack(">h", self._fb_read(2, write_bytes))[0] elif b == 0xd2: obj = struct.unpack(">i", self._fb_read(4, write_bytes))[0] elif b == 0xd3: obj = struct.unpack(">q", self._fb_read(8, write_bytes))[0] elif b == 0xda: n = struct.unpack(">H", self._fb_read(2, write_bytes))[0] obj = self._fb_read(n, write_bytes) typ = TYPE_RAW elif b == 0xdb: n = struct.unpack(">I", self._fb_read(4, write_bytes))[0] obj = self._fb_read(n, write_bytes) typ = TYPE_RAW elif b == 0xdc: n = struct.unpack(">H", self._fb_read(2, write_bytes))[0] typ = TYPE_ARRAY elif b == 0xdd: n = struct.unpack(">I", self._fb_read(4, write_bytes))[0] typ = TYPE_ARRAY elif b == 0xde: n = struct.unpack(">H", self._fb_read(2, write_bytes))[0] typ = TYPE_MAP elif b == 0xdf: n = struct.unpack(">I", self._fb_read(4, write_bytes))[0] typ = TYPE_MAP else: raise UnpackValueError("Unknown header: 0x%x" % b) if execute == EX_READ_ARRAY_HEADER: if typ != TYPE_ARRAY: raise UnpackValueError("Expected array") return n if execute == EX_READ_MAP_HEADER: if typ != TYPE_MAP: raise UnpackValueError("Expected map") return n # TODO should we eliminate the recursion? if typ == TYPE_ARRAY: if execute == EX_SKIP: for i in xrange(n): # TODO check whether we need to call `list_hook` self._fb_unpack(EX_SKIP, write_bytes) return ret = [] for i in xrange(n): ret.append(self._fb_unpack(EX_CONSTRUCT, write_bytes)) if self._list_hook is not None: ret = self._list_hook(ret) # TODO is the interaction between `list_hook` and `use_list` ok? return ret if self._use_list else tuple(ret) if typ == TYPE_MAP: if execute == EX_SKIP: for i in xrange(n): # TODO check whether we need to call hooks self._fb_unpack(EX_SKIP, write_bytes) self._fb_unpack(EX_SKIP, write_bytes) return if self._object_pairs_hook is not None: ret = self._object_pairs_hook( (self._fb_unpack(EX_CONSTRUCT, write_bytes), self._fb_unpack(EX_CONSTRUCT, write_bytes)) for _ in xrange(n) ) else: ret = {} for _ in xrange(n): key = self._fb_unpack(EX_CONSTRUCT, write_bytes) ret[key] = self._fb_unpack(EX_CONSTRUCT, write_bytes) if self._object_hook is not None: ret = self._object_hook(ret) return ret if execute == EX_SKIP: return if typ == TYPE_RAW: if self._encoding is not None: obj = obj.decode(self._encoding, self._unicode_errors) return obj assert typ == TYPE_IMMEDIATE return obj def next(self): try: ret = self._fb_unpack(EX_CONSTRUCT, None) self._fb_consume() return ret except OutOfData: raise StopIteration __next__ = next def skip(self, write_bytes=None): self._fb_unpack(EX_SKIP, write_bytes) self._fb_consume() def unpack(self, write_bytes=None): ret = self._fb_unpack(EX_CONSTRUCT, write_bytes) self._fb_consume() return ret def read_array_header(self, write_bytes=None): ret = self._fb_unpack(EX_READ_ARRAY_HEADER, write_bytes) self._fb_consume() return ret def read_map_header(self, write_bytes=None): ret = self._fb_unpack(EX_READ_MAP_HEADER, write_bytes) self._fb_consume() return ret class Packer(object): def __init__(self, default=None, encoding='utf-8', unicode_errors='strict', use_single_float=False, autoreset=True): self._use_float = use_single_float self._autoreset = autoreset self._encoding = encoding self._unicode_errors = unicode_errors self._buffer = StringIO() if default is not None: if not callable(default): raise TypeError("default must be callable") self._default = default def _pack(self, obj, nest_limit=DEFAULT_RECURSE_LIMIT, isinstance=isinstance): if nest_limit < 0: raise PackValueError("recursion limit exceeded") if obj is None: return self._buffer.write(b"\xc0") if isinstance(obj, bool): if obj: return self._buffer.write(b"\xc3") return self._buffer.write(b"\xc2") if isinstance(obj, int_types): if 0 <= obj < 0x80: return self._buffer.write(struct.pack("B", obj)) if -0x20 <= obj < 0: return self._buffer.write(struct.pack("b", obj)) if 0x80 <= obj <= 0xff: return self._buffer.write(struct.pack("BB", 0xcc, obj)) if -0x80 <= obj < 0: return self._buffer.write(struct.pack(">Bb", 0xd0, obj)) if 0xff < obj <= 0xffff: return self._buffer.write(struct.pack(">BH", 0xcd, obj)) if -0x8000 <= obj < -0x80: return self._buffer.write(struct.pack(">Bh", 0xd1, obj)) if 0xffff < obj <= 0xffffffff: return self._buffer.write(struct.pack(">BI", 0xce, obj)) if -0x80000000 <= obj < -0x8000: return self._buffer.write(struct.pack(">Bi", 0xd2, obj)) if 0xffffffff < obj <= 0xffffffffffffffff: return self._buffer.write(struct.pack(">BQ", 0xcf, obj)) if -0x8000000000000000 <= obj < -0x80000000: return self._buffer.write(struct.pack(">Bq", 0xd3, obj)) raise PackValueError("Integer value out of range") if isinstance(obj, (Unicode, bytes)): if isinstance(obj, Unicode): if self._encoding is None: raise TypeError( "Can't encode unicode string: " "no encoding is specified") obj = obj.encode(self._encoding, self._unicode_errors) n = len(obj) if n <= 0x1f: self._buffer.write(struct.pack('B', 0xa0 + n)) return self._buffer.write(obj) if n <= 0xffff: self._buffer.write(struct.pack(">BH", 0xda, n)) return self._buffer.write(obj) if n <= 0xffffffff: self._buffer.write(struct.pack(">BI", 0xdb, n)) return self._buffer.write(obj) raise PackValueError("String is too large") if isinstance(obj, float): if self._use_float: return self._buffer.write(struct.pack(">Bf", 0xca, obj)) return self._buffer.write(struct.pack(">Bd", 0xcb, obj)) if isinstance(obj, list) or isinstance(obj, tuple): n = len(obj) self._fb_pack_array_header(n) for i in xrange(n): self._pack(obj[i], nest_limit - 1) return if isinstance(obj, dict): return self._fb_pack_map_pairs(len(obj), dict_iteritems(obj), nest_limit - 1) if self._default is not None: return self._pack(self._default(obj), nest_limit - 1) raise TypeError("Cannot serialize %r" % obj) def pack(self, obj): self._pack(obj) ret = self._buffer.getvalue() if self._autoreset: self._buffer = StringIO() elif USING_STRINGBUILDER: self._buffer = StringIO(ret) return ret def pack_map_pairs(self, pairs): self._fb_pack_map_pairs(len(pairs), pairs) ret = self._buffer.getvalue() if self._autoreset: self._buffer = StringIO() elif USING_STRINGBUILDER: self._buffer = StringIO(ret) return ret def pack_array_header(self, n): self._fb_pack_array_header(n) ret = self._buffer.getvalue() if self._autoreset: self._buffer = StringIO() elif USING_STRINGBUILDER: self._buffer = StringIO(ret) return ret def pack_map_header(self, n): self._fb_pack_map_header(n) ret = self._buffer.getvalue() if self._autoreset: self._buffer = StringIO() elif USING_STRINGBUILDER: self._buffer = StringIO(ret) return ret def _fb_pack_array_header(self, n): if n <= 0x0f: return self._buffer.write(struct.pack('B', 0x90 + n)) if n <= 0xffff: return self._buffer.write(struct.pack(">BH", 0xdc, n)) if n <= 0xffffffff: return self._buffer.write(struct.pack(">BI", 0xdd, n)) raise PackValueError("Array is too large") def _fb_pack_map_header(self, n): if n <= 0x0f: return self._buffer.write(struct.pack('B', 0x80 + n)) if n <= 0xffff: return self._buffer.write(struct.pack(">BH", 0xde, n)) if n <= 0xffffffff: return self._buffer.write(struct.pack(">BI", 0xdf, n)) raise PackValueError("Dict is too large") def _fb_pack_map_pairs(self, n, pairs, nest_limit=DEFAULT_RECURSE_LIMIT): self._fb_pack_map_header(n) for (k, v) in pairs: self._pack(k, nest_limit - 1) self._pack(v, nest_limit - 1) def bytes(self): return self._buffer.getvalue() def reset(self): self._buffer = StringIO() msgpack-python-0.3.0/msgpack/pack.h0000644000076700000240000000700512067345632017640 0ustar inada-nstaff00000000000000/* * MessagePack for Python packing routine * * Copyright (C) 2009 Naoki INADA * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include "sysdep.h" #include #include #ifdef __cplusplus extern "C" { #endif #ifdef _MSC_VER #define inline __inline #endif typedef struct msgpack_packer { char *buf; size_t length; size_t buf_size; } msgpack_packer; typedef struct Packer Packer; static inline int msgpack_pack_short(msgpack_packer* pk, short d); static inline int msgpack_pack_int(msgpack_packer* pk, int d); static inline int msgpack_pack_long(msgpack_packer* pk, long d); static inline int msgpack_pack_long_long(msgpack_packer* pk, long long d); static inline int msgpack_pack_unsigned_short(msgpack_packer* pk, unsigned short d); static inline int msgpack_pack_unsigned_int(msgpack_packer* pk, unsigned int d); static inline int msgpack_pack_unsigned_long(msgpack_packer* pk, unsigned long d); static inline int msgpack_pack_unsigned_long_long(msgpack_packer* pk, unsigned long long d); static inline int msgpack_pack_uint8(msgpack_packer* pk, uint8_t d); static inline int msgpack_pack_uint16(msgpack_packer* pk, uint16_t d); static inline int msgpack_pack_uint32(msgpack_packer* pk, uint32_t d); static inline int msgpack_pack_uint64(msgpack_packer* pk, uint64_t d); static inline int msgpack_pack_int8(msgpack_packer* pk, int8_t d); static inline int msgpack_pack_int16(msgpack_packer* pk, int16_t d); static inline int msgpack_pack_int32(msgpack_packer* pk, int32_t d); static inline int msgpack_pack_int64(msgpack_packer* pk, int64_t d); static inline int msgpack_pack_float(msgpack_packer* pk, float d); static inline int msgpack_pack_double(msgpack_packer* pk, double d); static inline int msgpack_pack_nil(msgpack_packer* pk); static inline int msgpack_pack_true(msgpack_packer* pk); static inline int msgpack_pack_false(msgpack_packer* pk); static inline int msgpack_pack_array(msgpack_packer* pk, unsigned int n); static inline int msgpack_pack_map(msgpack_packer* pk, unsigned int n); static inline int msgpack_pack_raw(msgpack_packer* pk, size_t l); static inline int msgpack_pack_raw_body(msgpack_packer* pk, const void* b, size_t l); static inline int msgpack_pack_write(msgpack_packer* pk, const char *data, size_t l) { char* buf = pk->buf; size_t bs = pk->buf_size; size_t len = pk->length; if (len + l > bs) { bs = (len + l) * 2; buf = (char*)realloc(buf, bs); if (!buf) return -1; } memcpy(buf + len, data, l); len += l; pk->buf = buf; pk->buf_size = bs; pk->length = len; return 0; } #define msgpack_pack_inline_func(name) \ static inline int msgpack_pack ## name #define msgpack_pack_inline_func_cint(name) \ static inline int msgpack_pack ## name #define msgpack_pack_user msgpack_packer* #define msgpack_pack_append_buffer(user, buf, len) \ return msgpack_pack_write(user, (const char*)buf, len) #include "pack_template.h" #ifdef __cplusplus } #endif msgpack-python-0.3.0/msgpack/pack_template.h0000644000076700000240000004331412032347250021524 0ustar inada-nstaff00000000000000/* * MessagePack packing routine template * * Copyright (C) 2008-2010 FURUHASHI Sadayuki * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #if defined(__LITTLE_ENDIAN__) #define TAKE8_8(d) ((uint8_t*)&d)[0] #define TAKE8_16(d) ((uint8_t*)&d)[0] #define TAKE8_32(d) ((uint8_t*)&d)[0] #define TAKE8_64(d) ((uint8_t*)&d)[0] #elif defined(__BIG_ENDIAN__) #define TAKE8_8(d) ((uint8_t*)&d)[0] #define TAKE8_16(d) ((uint8_t*)&d)[1] #define TAKE8_32(d) ((uint8_t*)&d)[3] #define TAKE8_64(d) ((uint8_t*)&d)[7] #endif #ifndef msgpack_pack_inline_func #error msgpack_pack_inline_func template is not defined #endif #ifndef msgpack_pack_user #error msgpack_pack_user type is not defined #endif #ifndef msgpack_pack_append_buffer #error msgpack_pack_append_buffer callback is not defined #endif /* * Integer */ #define msgpack_pack_real_uint8(x, d) \ do { \ if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); \ } else { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_8(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } while(0) #define msgpack_pack_real_uint16(x, d) \ do { \ if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_16(d), 1); \ } else if(d < (1<<8)) { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_16(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } else { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } \ } while(0) #define msgpack_pack_real_uint32(x, d) \ do { \ if(d < (1<<8)) { \ if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_32(d), 1); \ } else { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_32(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } else { \ if(d < (1<<16)) { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else { \ /* unsigned 32 */ \ unsigned char buf[5]; \ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } \ } \ } while(0) #define msgpack_pack_real_uint64(x, d) \ do { \ if(d < (1ULL<<8)) { \ if(d < (1ULL<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_64(d), 1); \ } else { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_64(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } else { \ if(d < (1ULL<<16)) { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else if(d < (1ULL<<32)) { \ /* unsigned 32 */ \ unsigned char buf[5]; \ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } else { \ /* unsigned 64 */ \ unsigned char buf[9]; \ buf[0] = 0xcf; _msgpack_store64(&buf[1], d); \ msgpack_pack_append_buffer(x, buf, 9); \ } \ } \ } while(0) #define msgpack_pack_real_int8(x, d) \ do { \ if(d < -(1<<5)) { \ /* signed 8 */ \ unsigned char buf[2] = {0xd0, TAKE8_8(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } else { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); \ } \ } while(0) #define msgpack_pack_real_int16(x, d) \ do { \ if(d < -(1<<5)) { \ if(d < -(1<<7)) { \ /* signed 16 */ \ unsigned char buf[3]; \ buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else { \ /* signed 8 */ \ unsigned char buf[2] = {0xd0, TAKE8_16(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } else if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_16(d), 1); \ } else { \ if(d < (1<<8)) { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_16(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } else { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } \ } \ } while(0) #define msgpack_pack_real_int32(x, d) \ do { \ if(d < -(1<<5)) { \ if(d < -(1<<15)) { \ /* signed 32 */ \ unsigned char buf[5]; \ buf[0] = 0xd2; _msgpack_store32(&buf[1], (int32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } else if(d < -(1<<7)) { \ /* signed 16 */ \ unsigned char buf[3]; \ buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else { \ /* signed 8 */ \ unsigned char buf[2] = {0xd0, TAKE8_32(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } else if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_32(d), 1); \ } else { \ if(d < (1<<8)) { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_32(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } else if(d < (1<<16)) { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else { \ /* unsigned 32 */ \ unsigned char buf[5]; \ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } \ } \ } while(0) #define msgpack_pack_real_int64(x, d) \ do { \ if(d < -(1LL<<5)) { \ if(d < -(1LL<<15)) { \ if(d < -(1LL<<31)) { \ /* signed 64 */ \ unsigned char buf[9]; \ buf[0] = 0xd3; _msgpack_store64(&buf[1], d); \ msgpack_pack_append_buffer(x, buf, 9); \ } else { \ /* signed 32 */ \ unsigned char buf[5]; \ buf[0] = 0xd2; _msgpack_store32(&buf[1], (int32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } \ } else { \ if(d < -(1<<7)) { \ /* signed 16 */ \ unsigned char buf[3]; \ buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else { \ /* signed 8 */ \ unsigned char buf[2] = {0xd0, TAKE8_64(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } \ } else if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_64(d), 1); \ } else { \ if(d < (1LL<<16)) { \ if(d < (1<<8)) { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_64(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } else { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } \ } else { \ if(d < (1LL<<32)) { \ /* unsigned 32 */ \ unsigned char buf[5]; \ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } else { \ /* unsigned 64 */ \ unsigned char buf[9]; \ buf[0] = 0xcf; _msgpack_store64(&buf[1], d); \ msgpack_pack_append_buffer(x, buf, 9); \ } \ } \ } \ } while(0) #ifdef msgpack_pack_inline_func_fixint msgpack_pack_inline_func_fixint(_uint8)(msgpack_pack_user x, uint8_t d) { unsigned char buf[2] = {0xcc, TAKE8_8(d)}; msgpack_pack_append_buffer(x, buf, 2); } msgpack_pack_inline_func_fixint(_uint16)(msgpack_pack_user x, uint16_t d) { unsigned char buf[3]; buf[0] = 0xcd; _msgpack_store16(&buf[1], d); msgpack_pack_append_buffer(x, buf, 3); } msgpack_pack_inline_func_fixint(_uint32)(msgpack_pack_user x, uint32_t d) { unsigned char buf[5]; buf[0] = 0xce; _msgpack_store32(&buf[1], d); msgpack_pack_append_buffer(x, buf, 5); } msgpack_pack_inline_func_fixint(_uint64)(msgpack_pack_user x, uint64_t d) { unsigned char buf[9]; buf[0] = 0xcf; _msgpack_store64(&buf[1], d); msgpack_pack_append_buffer(x, buf, 9); } msgpack_pack_inline_func_fixint(_int8)(msgpack_pack_user x, int8_t d) { unsigned char buf[2] = {0xd0, TAKE8_8(d)}; msgpack_pack_append_buffer(x, buf, 2); } msgpack_pack_inline_func_fixint(_int16)(msgpack_pack_user x, int16_t d) { unsigned char buf[3]; buf[0] = 0xd1; _msgpack_store16(&buf[1], d); msgpack_pack_append_buffer(x, buf, 3); } msgpack_pack_inline_func_fixint(_int32)(msgpack_pack_user x, int32_t d) { unsigned char buf[5]; buf[0] = 0xd2; _msgpack_store32(&buf[1], d); msgpack_pack_append_buffer(x, buf, 5); } msgpack_pack_inline_func_fixint(_int64)(msgpack_pack_user x, int64_t d) { unsigned char buf[9]; buf[0] = 0xd3; _msgpack_store64(&buf[1], d); msgpack_pack_append_buffer(x, buf, 9); } #undef msgpack_pack_inline_func_fixint #endif msgpack_pack_inline_func(_uint8)(msgpack_pack_user x, uint8_t d) { msgpack_pack_real_uint8(x, d); } msgpack_pack_inline_func(_uint16)(msgpack_pack_user x, uint16_t d) { msgpack_pack_real_uint16(x, d); } msgpack_pack_inline_func(_uint32)(msgpack_pack_user x, uint32_t d) { msgpack_pack_real_uint32(x, d); } msgpack_pack_inline_func(_uint64)(msgpack_pack_user x, uint64_t d) { msgpack_pack_real_uint64(x, d); } msgpack_pack_inline_func(_int8)(msgpack_pack_user x, int8_t d) { msgpack_pack_real_int8(x, d); } msgpack_pack_inline_func(_int16)(msgpack_pack_user x, int16_t d) { msgpack_pack_real_int16(x, d); } msgpack_pack_inline_func(_int32)(msgpack_pack_user x, int32_t d) { msgpack_pack_real_int32(x, d); } msgpack_pack_inline_func(_int64)(msgpack_pack_user x, int64_t d) { msgpack_pack_real_int64(x, d); } #ifdef msgpack_pack_inline_func_cint msgpack_pack_inline_func_cint(_short)(msgpack_pack_user x, short d) { #if defined(SIZEOF_SHORT) #if SIZEOF_SHORT == 2 msgpack_pack_real_int16(x, d); #elif SIZEOF_SHORT == 4 msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #elif defined(SHRT_MAX) #if SHRT_MAX == 0x7fff msgpack_pack_real_int16(x, d); #elif SHRT_MAX == 0x7fffffff msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #else if(sizeof(short) == 2) { msgpack_pack_real_int16(x, d); } else if(sizeof(short) == 4) { msgpack_pack_real_int32(x, d); } else { msgpack_pack_real_int64(x, d); } #endif } msgpack_pack_inline_func_cint(_int)(msgpack_pack_user x, int d) { #if defined(SIZEOF_INT) #if SIZEOF_INT == 2 msgpack_pack_real_int16(x, d); #elif SIZEOF_INT == 4 msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #elif defined(INT_MAX) #if INT_MAX == 0x7fff msgpack_pack_real_int16(x, d); #elif INT_MAX == 0x7fffffff msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #else if(sizeof(int) == 2) { msgpack_pack_real_int16(x, d); } else if(sizeof(int) == 4) { msgpack_pack_real_int32(x, d); } else { msgpack_pack_real_int64(x, d); } #endif } msgpack_pack_inline_func_cint(_long)(msgpack_pack_user x, long d) { #if defined(SIZEOF_LONG) #if SIZEOF_LONG == 2 msgpack_pack_real_int16(x, d); #elif SIZEOF_LONG == 4 msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #elif defined(LONG_MAX) #if LONG_MAX == 0x7fffL msgpack_pack_real_int16(x, d); #elif LONG_MAX == 0x7fffffffL msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #else if(sizeof(long) == 2) { msgpack_pack_real_int16(x, d); } else if(sizeof(long) == 4) { msgpack_pack_real_int32(x, d); } else { msgpack_pack_real_int64(x, d); } #endif } msgpack_pack_inline_func_cint(_long_long)(msgpack_pack_user x, long long d) { #if defined(SIZEOF_LONG_LONG) #if SIZEOF_LONG_LONG == 2 msgpack_pack_real_int16(x, d); #elif SIZEOF_LONG_LONG == 4 msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #elif defined(LLONG_MAX) #if LLONG_MAX == 0x7fffL msgpack_pack_real_int16(x, d); #elif LLONG_MAX == 0x7fffffffL msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #else if(sizeof(long long) == 2) { msgpack_pack_real_int16(x, d); } else if(sizeof(long long) == 4) { msgpack_pack_real_int32(x, d); } else { msgpack_pack_real_int64(x, d); } #endif } msgpack_pack_inline_func_cint(_unsigned_short)(msgpack_pack_user x, unsigned short d) { #if defined(SIZEOF_SHORT) #if SIZEOF_SHORT == 2 msgpack_pack_real_uint16(x, d); #elif SIZEOF_SHORT == 4 msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #elif defined(USHRT_MAX) #if USHRT_MAX == 0xffffU msgpack_pack_real_uint16(x, d); #elif USHRT_MAX == 0xffffffffU msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #else if(sizeof(unsigned short) == 2) { msgpack_pack_real_uint16(x, d); } else if(sizeof(unsigned short) == 4) { msgpack_pack_real_uint32(x, d); } else { msgpack_pack_real_uint64(x, d); } #endif } msgpack_pack_inline_func_cint(_unsigned_int)(msgpack_pack_user x, unsigned int d) { #if defined(SIZEOF_INT) #if SIZEOF_INT == 2 msgpack_pack_real_uint16(x, d); #elif SIZEOF_INT == 4 msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #elif defined(UINT_MAX) #if UINT_MAX == 0xffffU msgpack_pack_real_uint16(x, d); #elif UINT_MAX == 0xffffffffU msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #else if(sizeof(unsigned int) == 2) { msgpack_pack_real_uint16(x, d); } else if(sizeof(unsigned int) == 4) { msgpack_pack_real_uint32(x, d); } else { msgpack_pack_real_uint64(x, d); } #endif } msgpack_pack_inline_func_cint(_unsigned_long)(msgpack_pack_user x, unsigned long d) { #if defined(SIZEOF_LONG) #if SIZEOF_LONG == 2 msgpack_pack_real_uint16(x, d); #elif SIZEOF_LONG == 4 msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #elif defined(ULONG_MAX) #if ULONG_MAX == 0xffffUL msgpack_pack_real_uint16(x, d); #elif ULONG_MAX == 0xffffffffUL msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #else if(sizeof(unsigned long) == 2) { msgpack_pack_real_uint16(x, d); } else if(sizeof(unsigned long) == 4) { msgpack_pack_real_uint32(x, d); } else { msgpack_pack_real_uint64(x, d); } #endif } msgpack_pack_inline_func_cint(_unsigned_long_long)(msgpack_pack_user x, unsigned long long d) { #if defined(SIZEOF_LONG_LONG) #if SIZEOF_LONG_LONG == 2 msgpack_pack_real_uint16(x, d); #elif SIZEOF_LONG_LONG == 4 msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #elif defined(ULLONG_MAX) #if ULLONG_MAX == 0xffffUL msgpack_pack_real_uint16(x, d); #elif ULLONG_MAX == 0xffffffffUL msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #else if(sizeof(unsigned long long) == 2) { msgpack_pack_real_uint16(x, d); } else if(sizeof(unsigned long long) == 4) { msgpack_pack_real_uint32(x, d); } else { msgpack_pack_real_uint64(x, d); } #endif } #undef msgpack_pack_inline_func_cint #endif /* * Float */ msgpack_pack_inline_func(_float)(msgpack_pack_user x, float d) { union { float f; uint32_t i; } mem; mem.f = d; unsigned char buf[5]; buf[0] = 0xca; _msgpack_store32(&buf[1], mem.i); msgpack_pack_append_buffer(x, buf, 5); } msgpack_pack_inline_func(_double)(msgpack_pack_user x, double d) { union { double f; uint64_t i; } mem; mem.f = d; unsigned char buf[9]; buf[0] = 0xcb; #if defined(__arm__) && !(__ARM_EABI__) // arm-oabi // https://github.com/msgpack/msgpack-perl/pull/1 mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); #endif _msgpack_store64(&buf[1], mem.i); msgpack_pack_append_buffer(x, buf, 9); } /* * Nil */ msgpack_pack_inline_func(_nil)(msgpack_pack_user x) { static const unsigned char d = 0xc0; msgpack_pack_append_buffer(x, &d, 1); } /* * Boolean */ msgpack_pack_inline_func(_true)(msgpack_pack_user x) { static const unsigned char d = 0xc3; msgpack_pack_append_buffer(x, &d, 1); } msgpack_pack_inline_func(_false)(msgpack_pack_user x) { static const unsigned char d = 0xc2; msgpack_pack_append_buffer(x, &d, 1); } /* * Array */ msgpack_pack_inline_func(_array)(msgpack_pack_user x, unsigned int n) { if(n < 16) { unsigned char d = 0x90 | n; msgpack_pack_append_buffer(x, &d, 1); } else if(n < 65536) { unsigned char buf[3]; buf[0] = 0xdc; _msgpack_store16(&buf[1], (uint16_t)n); msgpack_pack_append_buffer(x, buf, 3); } else { unsigned char buf[5]; buf[0] = 0xdd; _msgpack_store32(&buf[1], (uint32_t)n); msgpack_pack_append_buffer(x, buf, 5); } } /* * Map */ msgpack_pack_inline_func(_map)(msgpack_pack_user x, unsigned int n) { if(n < 16) { unsigned char d = 0x80 | n; msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); } else if(n < 65536) { unsigned char buf[3]; buf[0] = 0xde; _msgpack_store16(&buf[1], (uint16_t)n); msgpack_pack_append_buffer(x, buf, 3); } else { unsigned char buf[5]; buf[0] = 0xdf; _msgpack_store32(&buf[1], (uint32_t)n); msgpack_pack_append_buffer(x, buf, 5); } } /* * Raw */ msgpack_pack_inline_func(_raw)(msgpack_pack_user x, size_t l) { if(l < 32) { unsigned char d = 0xa0 | (uint8_t)l; msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); } else if(l < 65536) { unsigned char buf[3]; buf[0] = 0xda; _msgpack_store16(&buf[1], (uint16_t)l); msgpack_pack_append_buffer(x, buf, 3); } else { unsigned char buf[5]; buf[0] = 0xdb; _msgpack_store32(&buf[1], (uint32_t)l); msgpack_pack_append_buffer(x, buf, 5); } } msgpack_pack_inline_func(_raw_body)(msgpack_pack_user x, const void* b, size_t l) { msgpack_pack_append_buffer(x, (const unsigned char*)b, l); } #undef msgpack_pack_inline_func #undef msgpack_pack_user #undef msgpack_pack_append_buffer #undef TAKE8_8 #undef TAKE8_16 #undef TAKE8_32 #undef TAKE8_64 #undef msgpack_pack_real_uint8 #undef msgpack_pack_real_uint16 #undef msgpack_pack_real_uint32 #undef msgpack_pack_real_uint64 #undef msgpack_pack_real_int8 #undef msgpack_pack_real_int16 #undef msgpack_pack_real_int32 #undef msgpack_pack_real_int64 msgpack-python-0.3.0/msgpack/sysdep.h0000644000076700000240000001450112032347250020216 0ustar inada-nstaff00000000000000/* * MessagePack system dependencies * * Copyright (C) 2008-2010 FURUHASHI Sadayuki * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef MSGPACK_SYSDEP_H__ #define MSGPACK_SYSDEP_H__ #include #include #if defined(_MSC_VER) && _MSC_VER < 1600 typedef __int8 int8_t; typedef unsigned __int8 uint8_t; typedef __int16 int16_t; typedef unsigned __int16 uint16_t; typedef __int32 int32_t; typedef unsigned __int32 uint32_t; typedef __int64 int64_t; typedef unsigned __int64 uint64_t; #elif defined(_MSC_VER) // && _MSC_VER >= 1600 #include #else #include #include #endif #ifdef _WIN32 #define _msgpack_atomic_counter_header typedef long _msgpack_atomic_counter_t; #define _msgpack_sync_decr_and_fetch(ptr) InterlockedDecrement(ptr) #define _msgpack_sync_incr_and_fetch(ptr) InterlockedIncrement(ptr) #elif defined(__GNUC__) && ((__GNUC__*10 + __GNUC_MINOR__) < 41) #define _msgpack_atomic_counter_header "gcc_atomic.h" #else typedef unsigned int _msgpack_atomic_counter_t; #define _msgpack_sync_decr_and_fetch(ptr) __sync_sub_and_fetch(ptr, 1) #define _msgpack_sync_incr_and_fetch(ptr) __sync_add_and_fetch(ptr, 1) #endif #ifdef _WIN32 #ifdef __cplusplus /* numeric_limits::min,max */ #ifdef max #undef max #endif #ifdef min #undef min #endif #endif #else #include /* __BYTE_ORDER */ #endif #if !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) #if __BYTE_ORDER == __LITTLE_ENDIAN #define __LITTLE_ENDIAN__ #elif __BYTE_ORDER == __BIG_ENDIAN #define __BIG_ENDIAN__ #elif _WIN32 #define __LITTLE_ENDIAN__ #endif #endif #ifdef __LITTLE_ENDIAN__ #ifdef _WIN32 # if defined(ntohs) # define _msgpack_be16(x) ntohs(x) # elif defined(_byteswap_ushort) || (defined(_MSC_VER) && _MSC_VER >= 1400) # define _msgpack_be16(x) ((uint16_t)_byteswap_ushort((unsigned short)x)) # else # define _msgpack_be16(x) ( \ ((((uint16_t)x) << 8) ) | \ ((((uint16_t)x) >> 8) ) ) # endif #else # define _msgpack_be16(x) ntohs(x) #endif #ifdef _WIN32 # if defined(ntohl) # define _msgpack_be32(x) ntohl(x) # elif defined(_byteswap_ulong) || (defined(_MSC_VER) && _MSC_VER >= 1400) # define _msgpack_be32(x) ((uint32_t)_byteswap_ulong((unsigned long)x)) # else # define _msgpack_be32(x) \ ( ((((uint32_t)x) << 24) ) | \ ((((uint32_t)x) << 8) & 0x00ff0000U ) | \ ((((uint32_t)x) >> 8) & 0x0000ff00U ) | \ ((((uint32_t)x) >> 24) ) ) # endif #else # define _msgpack_be32(x) ntohl(x) #endif #if defined(_byteswap_uint64) || (defined(_MSC_VER) && _MSC_VER >= 1400) # define _msgpack_be64(x) (_byteswap_uint64(x)) #elif defined(bswap_64) # define _msgpack_be64(x) bswap_64(x) #elif defined(__DARWIN_OSSwapInt64) # define _msgpack_be64(x) __DARWIN_OSSwapInt64(x) #else #define _msgpack_be64(x) \ ( ((((uint64_t)x) << 56) ) | \ ((((uint64_t)x) << 40) & 0x00ff000000000000ULL ) | \ ((((uint64_t)x) << 24) & 0x0000ff0000000000ULL ) | \ ((((uint64_t)x) << 8) & 0x000000ff00000000ULL ) | \ ((((uint64_t)x) >> 8) & 0x00000000ff000000ULL ) | \ ((((uint64_t)x) >> 24) & 0x0000000000ff0000ULL ) | \ ((((uint64_t)x) >> 40) & 0x000000000000ff00ULL ) | \ ((((uint64_t)x) >> 56) ) ) #endif #define _msgpack_load16(cast, from) ((cast)( \ (((uint16_t)((uint8_t*)(from))[0]) << 8) | \ (((uint16_t)((uint8_t*)(from))[1]) ) )) #define _msgpack_load32(cast, from) ((cast)( \ (((uint32_t)((uint8_t*)(from))[0]) << 24) | \ (((uint32_t)((uint8_t*)(from))[1]) << 16) | \ (((uint32_t)((uint8_t*)(from))[2]) << 8) | \ (((uint32_t)((uint8_t*)(from))[3]) ) )) #define _msgpack_load64(cast, from) ((cast)( \ (((uint64_t)((uint8_t*)(from))[0]) << 56) | \ (((uint64_t)((uint8_t*)(from))[1]) << 48) | \ (((uint64_t)((uint8_t*)(from))[2]) << 40) | \ (((uint64_t)((uint8_t*)(from))[3]) << 32) | \ (((uint64_t)((uint8_t*)(from))[4]) << 24) | \ (((uint64_t)((uint8_t*)(from))[5]) << 16) | \ (((uint64_t)((uint8_t*)(from))[6]) << 8) | \ (((uint64_t)((uint8_t*)(from))[7]) ) )) #else #define _msgpack_be16(x) (x) #define _msgpack_be32(x) (x) #define _msgpack_be64(x) (x) #define _msgpack_load16(cast, from) ((cast)( \ (((uint16_t)((uint8_t*)from)[0]) << 8) | \ (((uint16_t)((uint8_t*)from)[1]) ) )) #define _msgpack_load32(cast, from) ((cast)( \ (((uint32_t)((uint8_t*)from)[0]) << 24) | \ (((uint32_t)((uint8_t*)from)[1]) << 16) | \ (((uint32_t)((uint8_t*)from)[2]) << 8) | \ (((uint32_t)((uint8_t*)from)[3]) ) )) #define _msgpack_load64(cast, from) ((cast)( \ (((uint64_t)((uint8_t*)from)[0]) << 56) | \ (((uint64_t)((uint8_t*)from)[1]) << 48) | \ (((uint64_t)((uint8_t*)from)[2]) << 40) | \ (((uint64_t)((uint8_t*)from)[3]) << 32) | \ (((uint64_t)((uint8_t*)from)[4]) << 24) | \ (((uint64_t)((uint8_t*)from)[5]) << 16) | \ (((uint64_t)((uint8_t*)from)[6]) << 8) | \ (((uint64_t)((uint8_t*)from)[7]) ) )) #endif #define _msgpack_store16(to, num) \ do { uint16_t val = _msgpack_be16(num); memcpy(to, &val, 2); } while(0) #define _msgpack_store32(to, num) \ do { uint32_t val = _msgpack_be32(num); memcpy(to, &val, 4); } while(0) #define _msgpack_store64(to, num) \ do { uint64_t val = _msgpack_be64(num); memcpy(to, &val, 8); } while(0) /* #define _msgpack_load16(cast, from) \ ({ cast val; memcpy(&val, (char*)from, 2); _msgpack_be16(val); }) #define _msgpack_load32(cast, from) \ ({ cast val; memcpy(&val, (char*)from, 4); _msgpack_be32(val); }) #define _msgpack_load64(cast, from) \ ({ cast val; memcpy(&val, (char*)from, 8); _msgpack_be64(val); }) */ #endif /* msgpack/sysdep.h */ msgpack-python-0.3.0/msgpack/unpack.h0000644000076700000240000001375312067345632020212 0ustar inada-nstaff00000000000000/* * MessagePack for Python unpacking routine * * Copyright (C) 2009 Naoki INADA * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #define MSGPACK_EMBED_STACK_SIZE (1024) #include "unpack_define.h" typedef struct unpack_user { int use_list; PyObject *object_hook; bool has_pairs_hook; PyObject *list_hook; const char *encoding; const char *unicode_errors; } unpack_user; #define msgpack_unpack_struct(name) \ struct template ## name #define msgpack_unpack_func(ret, name) \ static inline ret template ## name #define msgpack_unpack_callback(name) \ template_callback ## name #define msgpack_unpack_object PyObject* #define msgpack_unpack_user unpack_user typedef int (*execute_fn)(msgpack_unpack_struct(_context)* ctx, const char* data, size_t len, size_t* off); struct template_context; typedef struct template_context template_context; static inline msgpack_unpack_object template_callback_root(unpack_user* u) { return NULL; } static inline int template_callback_uint16(unpack_user* u, uint16_t d, msgpack_unpack_object* o) { PyObject *p = PyInt_FromLong((long)d); if (!p) return -1; *o = p; return 0; } static inline int template_callback_uint8(unpack_user* u, uint8_t d, msgpack_unpack_object* o) { return template_callback_uint16(u, d, o); } static inline int template_callback_uint32(unpack_user* u, uint32_t d, msgpack_unpack_object* o) { PyObject *p; if (d > LONG_MAX) { p = PyLong_FromUnsignedLong((unsigned long)d); } else { p = PyInt_FromLong((long)d); } if (!p) return -1; *o = p; return 0; } static inline int template_callback_uint64(unpack_user* u, uint64_t d, msgpack_unpack_object* o) { PyObject *p = PyLong_FromUnsignedLongLong(d); if (!p) return -1; *o = p; return 0; } static inline int template_callback_int32(unpack_user* u, int32_t d, msgpack_unpack_object* o) { PyObject *p = PyInt_FromLong(d); if (!p) return -1; *o = p; return 0; } static inline int template_callback_int16(unpack_user* u, int16_t d, msgpack_unpack_object* o) { return template_callback_int32(u, d, o); } static inline int template_callback_int8(unpack_user* u, int8_t d, msgpack_unpack_object* o) { return template_callback_int32(u, d, o); } static inline int template_callback_int64(unpack_user* u, int64_t d, msgpack_unpack_object* o) { PyObject *p = PyLong_FromLongLong(d); if (!p) return -1; *o = p; return 0; } static inline int template_callback_double(unpack_user* u, double d, msgpack_unpack_object* o) { PyObject *p = PyFloat_FromDouble(d); if (!p) return -1; *o = p; return 0; } static inline int template_callback_float(unpack_user* u, float d, msgpack_unpack_object* o) { return template_callback_double(u, d, o); } static inline int template_callback_nil(unpack_user* u, msgpack_unpack_object* o) { Py_INCREF(Py_None); *o = Py_None; return 0; } static inline int template_callback_true(unpack_user* u, msgpack_unpack_object* o) { Py_INCREF(Py_True); *o = Py_True; return 0; } static inline int template_callback_false(unpack_user* u, msgpack_unpack_object* o) { Py_INCREF(Py_False); *o = Py_False; return 0; } static inline int template_callback_array(unpack_user* u, unsigned int n, msgpack_unpack_object* o) { PyObject *p = u->use_list ? PyList_New(n) : PyTuple_New(n); if (!p) return -1; *o = p; return 0; } static inline int template_callback_array_item(unpack_user* u, unsigned int current, msgpack_unpack_object* c, msgpack_unpack_object o) { if (u->use_list) PyList_SET_ITEM(*c, current, o); else PyTuple_SET_ITEM(*c, current, o); return 0; } static inline int template_callback_array_end(unpack_user* u, msgpack_unpack_object* c) { if (u->list_hook) { PyObject *new_c = PyEval_CallFunction(u->list_hook, "(O)", *c); if (!new_c) return -1; Py_DECREF(*c); *c = new_c; } return 0; } static inline int template_callback_map(unpack_user* u, unsigned int n, msgpack_unpack_object* o) { PyObject *p; if (u->has_pairs_hook) { p = PyList_New(n); // Or use tuple? } else { p = PyDict_New(); } if (!p) return -1; *o = p; return 0; } static inline int template_callback_map_item(unpack_user* u, unsigned int current, msgpack_unpack_object* c, msgpack_unpack_object k, msgpack_unpack_object v) { if (u->has_pairs_hook) { msgpack_unpack_object item = PyTuple_Pack(2, k, v); if (!item) return -1; Py_DECREF(k); Py_DECREF(v); PyList_SET_ITEM(*c, current, item); return 0; } else if (PyDict_SetItem(*c, k, v) == 0) { Py_DECREF(k); Py_DECREF(v); return 0; } return -1; } static inline int template_callback_map_end(unpack_user* u, msgpack_unpack_object* c) { if (u->object_hook) { PyObject *new_c = PyEval_CallFunction(u->object_hook, "(O)", *c); if (!new_c) return -1; Py_DECREF(*c); *c = new_c; } return 0; } static inline int template_callback_raw(unpack_user* u, const char* b, const char* p, unsigned int l, msgpack_unpack_object* o) { PyObject *py; if(u->encoding) { py = PyUnicode_Decode(p, l, u->encoding, u->unicode_errors); } else { py = PyBytes_FromStringAndSize(p, l); } if (!py) return -1; *o = py; return 0; } #include "unpack_template.h" msgpack-python-0.3.0/msgpack/unpack_define.h0000644000076700000240000000427412032347250021510 0ustar inada-nstaff00000000000000/* * MessagePack unpacking routine template * * Copyright (C) 2008-2010 FURUHASHI Sadayuki * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef MSGPACK_UNPACK_DEFINE_H__ #define MSGPACK_UNPACK_DEFINE_H__ #include "msgpack/sysdep.h" #include #include #include #include #ifdef __cplusplus extern "C" { #endif #ifndef MSGPACK_EMBED_STACK_SIZE #define MSGPACK_EMBED_STACK_SIZE 32 #endif typedef enum { CS_HEADER = 0x00, // nil //CS_ = 0x01, //CS_ = 0x02, // false //CS_ = 0x03, // true //CS_ = 0x04, //CS_ = 0x05, //CS_ = 0x06, //CS_ = 0x07, //CS_ = 0x08, //CS_ = 0x09, CS_FLOAT = 0x0a, CS_DOUBLE = 0x0b, CS_UINT_8 = 0x0c, CS_UINT_16 = 0x0d, CS_UINT_32 = 0x0e, CS_UINT_64 = 0x0f, CS_INT_8 = 0x10, CS_INT_16 = 0x11, CS_INT_32 = 0x12, CS_INT_64 = 0x13, //CS_ = 0x14, //CS_ = 0x15, //CS_BIG_INT_16 = 0x16, //CS_BIG_INT_32 = 0x17, //CS_BIG_FLOAT_16 = 0x18, //CS_BIG_FLOAT_32 = 0x19, CS_RAW_16 = 0x1a, CS_RAW_32 = 0x1b, CS_ARRAY_16 = 0x1c, CS_ARRAY_32 = 0x1d, CS_MAP_16 = 0x1e, CS_MAP_32 = 0x1f, //ACS_BIG_INT_VALUE, //ACS_BIG_FLOAT_VALUE, ACS_RAW_VALUE, } msgpack_unpack_state; typedef enum { CT_ARRAY_ITEM, CT_MAP_KEY, CT_MAP_VALUE, } msgpack_container_type; #ifdef __cplusplus } #endif #endif /* msgpack/unpack_define.h */ msgpack-python-0.3.0/msgpack/unpack_template.h0000644000076700000240000003255212067345632022103 0ustar inada-nstaff00000000000000/* * MessagePack unpacking routine template * * Copyright (C) 2008-2010 FURUHASHI Sadayuki * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef msgpack_unpack_func #error msgpack_unpack_func template is not defined #endif #ifndef msgpack_unpack_callback #error msgpack_unpack_callback template is not defined #endif #ifndef msgpack_unpack_struct #error msgpack_unpack_struct template is not defined #endif #ifndef msgpack_unpack_struct_decl #define msgpack_unpack_struct_decl(name) msgpack_unpack_struct(name) #endif #ifndef msgpack_unpack_object #error msgpack_unpack_object type is not defined #endif #ifndef msgpack_unpack_user #error msgpack_unpack_user type is not defined #endif #ifndef USE_CASE_RANGE #if !defined(_MSC_VER) #define USE_CASE_RANGE #endif #endif msgpack_unpack_struct_decl(_stack) { msgpack_unpack_object obj; size_t size; size_t count; unsigned int ct; msgpack_unpack_object map_key; }; msgpack_unpack_struct_decl(_context) { msgpack_unpack_user user; unsigned int cs; unsigned int trail; unsigned int top; /* msgpack_unpack_struct(_stack)* stack; unsigned int stack_size; msgpack_unpack_struct(_stack) embed_stack[MSGPACK_EMBED_STACK_SIZE]; */ msgpack_unpack_struct(_stack) stack[MSGPACK_EMBED_STACK_SIZE]; }; msgpack_unpack_func(void, _init)(msgpack_unpack_struct(_context)* ctx) { ctx->cs = CS_HEADER; ctx->trail = 0; ctx->top = 0; /* ctx->stack = ctx->embed_stack; ctx->stack_size = MSGPACK_EMBED_STACK_SIZE; */ ctx->stack[0].obj = msgpack_unpack_callback(_root)(&ctx->user); } /* msgpack_unpack_func(void, _destroy)(msgpack_unpack_struct(_context)* ctx) { if(ctx->stack_size != MSGPACK_EMBED_STACK_SIZE) { free(ctx->stack); } } */ msgpack_unpack_func(msgpack_unpack_object, _data)(msgpack_unpack_struct(_context)* ctx) { return (ctx)->stack[0].obj; } template msgpack_unpack_func(int, _execute)(msgpack_unpack_struct(_context)* ctx, const char* data, size_t len, size_t* off) { assert(len >= *off); const unsigned char* p = (unsigned char*)data + *off; const unsigned char* const pe = (unsigned char*)data + len; const void* n = NULL; unsigned int trail = ctx->trail; unsigned int cs = ctx->cs; unsigned int top = ctx->top; msgpack_unpack_struct(_stack)* stack = ctx->stack; /* unsigned int stack_size = ctx->stack_size; */ msgpack_unpack_user* user = &ctx->user; msgpack_unpack_object obj; msgpack_unpack_struct(_stack)* c = NULL; int ret; #define construct_cb(name) \ construct && msgpack_unpack_callback(name) #define push_simple_value(func) \ if(construct_cb(func)(user, &obj) < 0) { goto _failed; } \ goto _push #define push_fixed_value(func, arg) \ if(construct_cb(func)(user, arg, &obj) < 0) { goto _failed; } \ goto _push #define push_variable_value(func, base, pos, len) \ if(construct_cb(func)(user, \ (const char*)base, (const char*)pos, len, &obj) < 0) { goto _failed; } \ goto _push #define again_fixed_trail(_cs, trail_len) \ trail = trail_len; \ cs = _cs; \ goto _fixed_trail_again #define again_fixed_trail_if_zero(_cs, trail_len, ifzero) \ trail = trail_len; \ if(trail == 0) { goto ifzero; } \ cs = _cs; \ goto _fixed_trail_again #define start_container(func, count_, ct_) \ if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */ \ if(construct_cb(func)(user, count_, &stack[top].obj) < 0) { goto _failed; } \ if((count_) == 0) { obj = stack[top].obj; \ if (construct_cb(func##_end)(user, &obj) < 0) { goto _failed; } \ goto _push; } \ stack[top].ct = ct_; \ stack[top].size = count_; \ stack[top].count = 0; \ ++top; \ /*printf("container %d count %d stack %d\n",stack[top].obj,count_,top);*/ \ /*printf("stack push %d\n", top);*/ \ /* FIXME \ if(top >= stack_size) { \ if(stack_size == MSGPACK_EMBED_STACK_SIZE) { \ size_t csize = sizeof(msgpack_unpack_struct(_stack)) * MSGPACK_EMBED_STACK_SIZE; \ size_t nsize = csize * 2; \ msgpack_unpack_struct(_stack)* tmp = (msgpack_unpack_struct(_stack)*)malloc(nsize); \ if(tmp == NULL) { goto _failed; } \ memcpy(tmp, ctx->stack, csize); \ ctx->stack = stack = tmp; \ ctx->stack_size = stack_size = MSGPACK_EMBED_STACK_SIZE * 2; \ } else { \ size_t nsize = sizeof(msgpack_unpack_struct(_stack)) * ctx->stack_size * 2; \ msgpack_unpack_struct(_stack)* tmp = (msgpack_unpack_struct(_stack)*)realloc(ctx->stack, nsize); \ if(tmp == NULL) { goto _failed; } \ ctx->stack = stack = tmp; \ ctx->stack_size = stack_size = stack_size * 2; \ } \ } \ */ \ goto _header_again #define NEXT_CS(p) \ ((unsigned int)*p & 0x1f) #ifdef USE_CASE_RANGE #define SWITCH_RANGE_BEGIN switch(*p) { #define SWITCH_RANGE(FROM, TO) case FROM ... TO: #define SWITCH_RANGE_DEFAULT default: #define SWITCH_RANGE_END } #else #define SWITCH_RANGE_BEGIN { if(0) { #define SWITCH_RANGE(FROM, TO) } else if(FROM <= *p && *p <= TO) { #define SWITCH_RANGE_DEFAULT } else { #define SWITCH_RANGE_END } } #endif if(p == pe) { goto _out; } do { switch(cs) { case CS_HEADER: SWITCH_RANGE_BEGIN SWITCH_RANGE(0x00, 0x7f) // Positive Fixnum push_fixed_value(_uint8, *(uint8_t*)p); SWITCH_RANGE(0xe0, 0xff) // Negative Fixnum push_fixed_value(_int8, *(int8_t*)p); SWITCH_RANGE(0xc0, 0xdf) // Variable switch(*p) { case 0xc0: // nil push_simple_value(_nil); //case 0xc1: // string // again_terminal_trail(NEXT_CS(p), p+1); case 0xc2: // false push_simple_value(_false); case 0xc3: // true push_simple_value(_true); //case 0xc4: //case 0xc5: //case 0xc6: //case 0xc7: //case 0xc8: //case 0xc9: case 0xca: // float case 0xcb: // double case 0xcc: // unsigned int 8 case 0xcd: // unsigned int 16 case 0xce: // unsigned int 32 case 0xcf: // unsigned int 64 case 0xd0: // signed int 8 case 0xd1: // signed int 16 case 0xd2: // signed int 32 case 0xd3: // signed int 64 again_fixed_trail(NEXT_CS(p), 1 << (((unsigned int)*p) & 0x03)); //case 0xd4: //case 0xd5: //case 0xd6: // big integer 16 //case 0xd7: // big integer 32 //case 0xd8: // big float 16 //case 0xd9: // big float 32 case 0xda: // raw 16 case 0xdb: // raw 32 case 0xdc: // array 16 case 0xdd: // array 32 case 0xde: // map 16 case 0xdf: // map 32 again_fixed_trail(NEXT_CS(p), 2 << (((unsigned int)*p) & 0x01)); default: goto _failed; } SWITCH_RANGE(0xa0, 0xbf) // FixRaw again_fixed_trail_if_zero(ACS_RAW_VALUE, ((unsigned int)*p & 0x1f), _raw_zero); SWITCH_RANGE(0x90, 0x9f) // FixArray start_container(_array, ((unsigned int)*p) & 0x0f, CT_ARRAY_ITEM); SWITCH_RANGE(0x80, 0x8f) // FixMap start_container(_map, ((unsigned int)*p) & 0x0f, CT_MAP_KEY); SWITCH_RANGE_DEFAULT goto _failed; SWITCH_RANGE_END // end CS_HEADER _fixed_trail_again: ++p; default: if((size_t)(pe - p) < trail) { goto _out; } n = p; p += trail - 1; switch(cs) { //case CS_ //case CS_ case CS_FLOAT: { union { uint32_t i; float f; } mem; mem.i = _msgpack_load32(uint32_t,n); push_fixed_value(_float, mem.f); } case CS_DOUBLE: { union { uint64_t i; double f; } mem; mem.i = _msgpack_load64(uint64_t,n); #if defined(__arm__) && !(__ARM_EABI__) // arm-oabi // https://github.com/msgpack/msgpack-perl/pull/1 mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); #endif push_fixed_value(_double, mem.f); } case CS_UINT_8: push_fixed_value(_uint8, *(uint8_t*)n); case CS_UINT_16: push_fixed_value(_uint16, _msgpack_load16(uint16_t,n)); case CS_UINT_32: push_fixed_value(_uint32, _msgpack_load32(uint32_t,n)); case CS_UINT_64: push_fixed_value(_uint64, _msgpack_load64(uint64_t,n)); case CS_INT_8: push_fixed_value(_int8, *(int8_t*)n); case CS_INT_16: push_fixed_value(_int16, _msgpack_load16(int16_t,n)); case CS_INT_32: push_fixed_value(_int32, _msgpack_load32(int32_t,n)); case CS_INT_64: push_fixed_value(_int64, _msgpack_load64(int64_t,n)); //case CS_ //case CS_ //case CS_BIG_INT_16: // again_fixed_trail_if_zero(ACS_BIG_INT_VALUE, _msgpack_load16(uint16_t,n), _big_int_zero); //case CS_BIG_INT_32: // again_fixed_trail_if_zero(ACS_BIG_INT_VALUE, _msgpack_load32(uint32_t,n), _big_int_zero); //case ACS_BIG_INT_VALUE: //_big_int_zero: // // FIXME // push_variable_value(_big_int, data, n, trail); //case CS_BIG_FLOAT_16: // again_fixed_trail_if_zero(ACS_BIG_FLOAT_VALUE, _msgpack_load16(uint16_t,n), _big_float_zero); //case CS_BIG_FLOAT_32: // again_fixed_trail_if_zero(ACS_BIG_FLOAT_VALUE, _msgpack_load32(uint32_t,n), _big_float_zero); //case ACS_BIG_FLOAT_VALUE: //_big_float_zero: // // FIXME // push_variable_value(_big_float, data, n, trail); case CS_RAW_16: again_fixed_trail_if_zero(ACS_RAW_VALUE, _msgpack_load16(uint16_t,n), _raw_zero); case CS_RAW_32: again_fixed_trail_if_zero(ACS_RAW_VALUE, _msgpack_load32(uint32_t,n), _raw_zero); case ACS_RAW_VALUE: _raw_zero: push_variable_value(_raw, data, n, trail); case CS_ARRAY_16: start_container(_array, _msgpack_load16(uint16_t,n), CT_ARRAY_ITEM); case CS_ARRAY_32: /* FIXME security guard */ start_container(_array, _msgpack_load32(uint32_t,n), CT_ARRAY_ITEM); case CS_MAP_16: start_container(_map, _msgpack_load16(uint16_t,n), CT_MAP_KEY); case CS_MAP_32: /* FIXME security guard */ start_container(_map, _msgpack_load32(uint32_t,n), CT_MAP_KEY); default: goto _failed; } } _push: if(top == 0) { goto _finish; } c = &stack[top-1]; switch(c->ct) { case CT_ARRAY_ITEM: if(construct_cb(_array_item)(user, c->count, &c->obj, obj) < 0) { goto _failed; } if(++c->count == c->size) { obj = c->obj; if (construct_cb(_array_end)(user, &obj) < 0) { goto _failed; } --top; /*printf("stack pop %d\n", top);*/ goto _push; } goto _header_again; case CT_MAP_KEY: c->map_key = obj; c->ct = CT_MAP_VALUE; goto _header_again; case CT_MAP_VALUE: if(construct_cb(_map_item)(user, c->count, &c->obj, c->map_key, obj) < 0) { goto _failed; } if(++c->count == c->size) { obj = c->obj; if (construct_cb(_map_end)(user, &obj) < 0) { goto _failed; } --top; /*printf("stack pop %d\n", top);*/ goto _push; } c->ct = CT_MAP_KEY; goto _header_again; default: goto _failed; } _header_again: cs = CS_HEADER; ++p; } while(p != pe); goto _out; _finish: if (!construct) msgpack_unpack_callback(_nil)(user, &obj); stack[0].obj = obj; ++p; ret = 1; /*printf("-- finish --\n"); */ goto _end; _failed: /*printf("** FAILED **\n"); */ ret = -1; goto _end; _out: ret = 0; goto _end; _end: ctx->cs = cs; ctx->trail = trail; ctx->top = top; *off = p - (const unsigned char*)data; return ret; #undef construct_cb } #undef SWITCH_RANGE_BEGIN #undef SWITCH_RANGE #undef SWITCH_RANGE_DEFAULT #undef SWITCH_RANGE_END #undef push_simple_value #undef push_fixed_value #undef push_variable_value #undef again_fixed_trail #undef again_fixed_trail_if_zero #undef start_container template msgpack_unpack_func(int, _container_header)(msgpack_unpack_struct(_context)* ctx, const char* data, size_t len, size_t* off) { assert(len >= *off); uint32_t size; const unsigned char *const p = (unsigned char*)data + *off; #define inc_offset(inc) \ if (len - *off < inc) \ return 0; \ *off += inc; switch (*p) { case var_offset: inc_offset(3); size = _msgpack_load16(uint16_t, p + 1); break; case var_offset + 1: inc_offset(5); size = _msgpack_load32(uint32_t, p + 1); break; #ifdef USE_CASE_RANGE case fixed_offset + 0x0 ... fixed_offset + 0xf: #else case fixed_offset + 0x0: case fixed_offset + 0x1: case fixed_offset + 0x2: case fixed_offset + 0x3: case fixed_offset + 0x4: case fixed_offset + 0x5: case fixed_offset + 0x6: case fixed_offset + 0x7: case fixed_offset + 0x8: case fixed_offset + 0x9: case fixed_offset + 0xa: case fixed_offset + 0xb: case fixed_offset + 0xc: case fixed_offset + 0xd: case fixed_offset + 0xe: case fixed_offset + 0xf: #endif ++*off; size = ((unsigned int)*p) & 0x0f; break; default: PyErr_SetString(PyExc_ValueError, "Unexpected type header on stream"); return -1; } msgpack_unpack_callback(_uint32)(&ctx->user, size, &ctx->stack[0].obj); return 1; } #undef SWITCH_RANGE_BEGIN #undef SWITCH_RANGE #undef SWITCH_RANGE_DEFAULT #undef SWITCH_RANGE_END static const execute_fn template_construct = &template_execute; static const execute_fn template_skip = &template_execute; static const execute_fn read_array_header = &template_container_header<0x90, 0xdc>; static const execute_fn read_map_header = &template_container_header<0x80, 0xde>; #undef msgpack_unpack_func #undef msgpack_unpack_callback #undef msgpack_unpack_struct #undef msgpack_unpack_object #undef msgpack_unpack_user #undef NEXT_CS /* vim: set ts=4 sw=4 noexpandtab */ msgpack-python-0.3.0/PKG-INFO0000644000076700000240000001657512107551405016225 0ustar inada-nstaff00000000000000Metadata-Version: 1.1 Name: msgpack-python Version: 0.3.0 Summary: MessagePack (de)serializer. Home-page: http://msgpack.org/ Author: INADA Naoki Author-email: songofacandy@gmail.com License: UNKNOWN Download-URL: http://pypi.python.org/pypi/msgpack/ Description: =========================== MessagePack Python Binding =========================== :author: INADA Naoki :version: 0.3.0 :date: 2012-12-07 .. image:: https://secure.travis-ci.org/msgpack/msgpack-python.png :target: https://travis-ci.org/#!/msgpack/msgpack-python WHAT IT IS ---------- `MessagePack `_ is a fast, compact binary serialization format, suitable for similar data to JSON. This package provides CPython bindings for reading and writing MessagePack data. NOTE for msgpack 0.2.x users ---------------------------- The msgpack 0.3 have some incompatible changes. The default value of ``use_list`` keyword argument is ``True`` from 0.3.x. You should pass the argument explicitly for backward compatibility. `Unpacker.unpack()` and some unpack methods now raises `OutOfData` instead of `StopIteration`. `StopIteration` is used for iterator protocol only. HOW TO USE ----------- one-shot pack & unpack ^^^^^^^^^^^^^^^^^^^^^^ Use ``packb`` for packing and ``unpackb`` for unpacking. msgpack provides ``dumps`` and ``loads`` as alias for compatibility with ``json`` and ``pickle``. ``pack`` and ``dump`` packs to file-like object. ``unpack`` and ``load`` unpacks from file-like object. :: >>> import msgpack >>> msgpack.packb([1, 2, 3]) '\x93\x01\x02\x03' >>> msgpack.unpackb(_) [1, 2, 3] ``unpack`` unpacks msgpack's array to Python's list, but can unpack to tuple:: >>> msgpack.unpackb(b'\x93\x01\x02\x03', use_list=False) (1, 2, 3) You should always pass the ``use_list`` keyword argument. See performance issues relating to use_list_ below. Read the docstring for other options. streaming unpacking ^^^^^^^^^^^^^^^^^^^ ``Unpacker`` is a "streaming unpacker". It unpacks multiple objects from one stream (or from bytes provided through its ``feed`` method). :: import msgpack from io import BytesIO buf = BytesIO() for i in range(100): buf.write(msgpack.packb(range(i))) buf.seek(0) unpacker = msgpack.Unpacker(buf) for unpacked in unpacker: print unpacked packing/unpacking of custom data type ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ It is also possible to pack/unpack custom data types. Here is an example for ``datetime.datetime``. :: import datetime import msgpack useful_dict = { "id": 1, "created": datetime.datetime.now(), } def decode_datetime(obj): if b'__datetime__' in obj: obj = datetime.datetime.strptime(obj["as_str"], "%Y%m%dT%H:%M:%S.%f") return obj def encode_datetime(obj): if isinstance(obj, datetime.datetime): return {'__datetime__': True, 'as_str': obj.strftime("%Y%m%dT%H:%M:%S.%f")} return obj packed_dict = msgpack.packb(useful_dict, default=encode_datetime) this_dict_again = msgpack.unpackb(packed_dict, object_hook=decode_datetime) ``Unpacker``'s ``object_hook`` callback receives a dict; the ``object_pairs_hook`` callback may instead be used to receive a list of key-value pairs. advanced unpacking control ^^^^^^^^^^^^^^^^^^^^^^^^^^ As an alternative to iteration, ``Unpacker`` objects provide ``unpack``, ``skip``, ``read_array_header`` and ``read_map_header`` methods. The former two read an entire message from the stream, respectively deserialising and returning the result, or ignoring it. The latter two methods return the number of elements in the upcoming container, so that each element in an array, or key-value pair in a map, can be unpacked or skipped individually. Warning: these methods raise ``StopIteration`` when called at the end of the stream. Unless caught, this may silently break an iteration. Each of these methods may optionally write the packed data it reads to a callback function: :: from io import BytesIO def distribute(unpacker, get_worker): nelems = unpacker.read_map_header() for i in range(nelems): # Select a worker for the given key key = unpacker.unpack() worker = get_worker(key) # Send the value as a packed message to worker bytestream = BytesIO() unpacker.skip(bytestream.write) worker.send(bytestream.getvalue()) INSTALL --------- You can use ``pip`` or ``easy_install`` to install msgpack:: $ easy_install msgpack-python or $ pip install msgpack-python Windows ^^^^^^^ msgpack provides some binary distribution for Windows. You can install msgpack without compiler with them. When you can't use binary distribution, you need to install Visual Studio or Windows SDK on Windows. (NOTE: Visual C++ Express 2010 doesn't support amd64. Windows SDK is recommanded way to build amd64 msgpack without any fee.) PERFORMANCE NOTE ----------------- GC ^^ CPython's GC starts when growing allocated object. This means unpacking may cause useless GC. You can use ``gc.disable()`` when unpacking large message. use_list ^^^^^^^^^ List is the default sequence type of Python. But tuple is lighter than list. You can use ``use_list=False`` while unpacking when performance is important. Python's dict can't use list as key and MessagePack allows array for key of mapping. ``use_list=False`` allows unpacking such message. Another way to unpacking such object is using ``object_pairs_hook``. TEST ---- MessagePack uses `nosetest` for testing. Run test with following command: $ nosetests test .. vim: filetype=rst Platform: UNKNOWN Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 3 Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Apache Software License msgpack-python-0.3.0/README.rst0000644000076700000240000001250712067345632016616 0ustar inada-nstaff00000000000000=========================== MessagePack Python Binding =========================== :author: INADA Naoki :version: 0.3.0 :date: 2012-12-07 .. image:: https://secure.travis-ci.org/msgpack/msgpack-python.png :target: https://travis-ci.org/#!/msgpack/msgpack-python WHAT IT IS ---------- `MessagePack `_ is a fast, compact binary serialization format, suitable for similar data to JSON. This package provides CPython bindings for reading and writing MessagePack data. NOTE for msgpack 0.2.x users ---------------------------- The msgpack 0.3 have some incompatible changes. The default value of ``use_list`` keyword argument is ``True`` from 0.3.x. You should pass the argument explicitly for backward compatibility. `Unpacker.unpack()` and some unpack methods now raises `OutOfData` instead of `StopIteration`. `StopIteration` is used for iterator protocol only. HOW TO USE ----------- one-shot pack & unpack ^^^^^^^^^^^^^^^^^^^^^^ Use ``packb`` for packing and ``unpackb`` for unpacking. msgpack provides ``dumps`` and ``loads`` as alias for compatibility with ``json`` and ``pickle``. ``pack`` and ``dump`` packs to file-like object. ``unpack`` and ``load`` unpacks from file-like object. :: >>> import msgpack >>> msgpack.packb([1, 2, 3]) '\x93\x01\x02\x03' >>> msgpack.unpackb(_) [1, 2, 3] ``unpack`` unpacks msgpack's array to Python's list, but can unpack to tuple:: >>> msgpack.unpackb(b'\x93\x01\x02\x03', use_list=False) (1, 2, 3) You should always pass the ``use_list`` keyword argument. See performance issues relating to use_list_ below. Read the docstring for other options. streaming unpacking ^^^^^^^^^^^^^^^^^^^ ``Unpacker`` is a "streaming unpacker". It unpacks multiple objects from one stream (or from bytes provided through its ``feed`` method). :: import msgpack from io import BytesIO buf = BytesIO() for i in range(100): buf.write(msgpack.packb(range(i))) buf.seek(0) unpacker = msgpack.Unpacker(buf) for unpacked in unpacker: print unpacked packing/unpacking of custom data type ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ It is also possible to pack/unpack custom data types. Here is an example for ``datetime.datetime``. :: import datetime import msgpack useful_dict = { "id": 1, "created": datetime.datetime.now(), } def decode_datetime(obj): if b'__datetime__' in obj: obj = datetime.datetime.strptime(obj["as_str"], "%Y%m%dT%H:%M:%S.%f") return obj def encode_datetime(obj): if isinstance(obj, datetime.datetime): return {'__datetime__': True, 'as_str': obj.strftime("%Y%m%dT%H:%M:%S.%f")} return obj packed_dict = msgpack.packb(useful_dict, default=encode_datetime) this_dict_again = msgpack.unpackb(packed_dict, object_hook=decode_datetime) ``Unpacker``'s ``object_hook`` callback receives a dict; the ``object_pairs_hook`` callback may instead be used to receive a list of key-value pairs. advanced unpacking control ^^^^^^^^^^^^^^^^^^^^^^^^^^ As an alternative to iteration, ``Unpacker`` objects provide ``unpack``, ``skip``, ``read_array_header`` and ``read_map_header`` methods. The former two read an entire message from the stream, respectively deserialising and returning the result, or ignoring it. The latter two methods return the number of elements in the upcoming container, so that each element in an array, or key-value pair in a map, can be unpacked or skipped individually. Warning: these methods raise ``StopIteration`` when called at the end of the stream. Unless caught, this may silently break an iteration. Each of these methods may optionally write the packed data it reads to a callback function: :: from io import BytesIO def distribute(unpacker, get_worker): nelems = unpacker.read_map_header() for i in range(nelems): # Select a worker for the given key key = unpacker.unpack() worker = get_worker(key) # Send the value as a packed message to worker bytestream = BytesIO() unpacker.skip(bytestream.write) worker.send(bytestream.getvalue()) INSTALL --------- You can use ``pip`` or ``easy_install`` to install msgpack:: $ easy_install msgpack-python or $ pip install msgpack-python Windows ^^^^^^^ msgpack provides some binary distribution for Windows. You can install msgpack without compiler with them. When you can't use binary distribution, you need to install Visual Studio or Windows SDK on Windows. (NOTE: Visual C++ Express 2010 doesn't support amd64. Windows SDK is recommanded way to build amd64 msgpack without any fee.) PERFORMANCE NOTE ----------------- GC ^^ CPython's GC starts when growing allocated object. This means unpacking may cause useless GC. You can use ``gc.disable()`` when unpacking large message. use_list ^^^^^^^^^ List is the default sequence type of Python. But tuple is lighter than list. You can use ``use_list=False`` while unpacking when performance is important. Python's dict can't use list as key and MessagePack allows array for key of mapping. ``use_list=False`` allows unpacking such message. Another way to unpacking such object is using ``object_pairs_hook``. TEST ---- MessagePack uses `nosetest` for testing. Run test with following command: $ nosetests test .. vim: filetype=rst msgpack-python-0.3.0/setup.py0000644000076700000240000000706112107551221016624 0ustar inada-nstaff00000000000000#!/usr/bin/env python # coding: utf-8 import os import sys from glob import glob from distutils.command.sdist import sdist from setuptools import setup, Extension from distutils.command.build_ext import build_ext class NoCython(Exception): pass try: import Cython.Compiler.Main as cython_compiler have_cython = True except ImportError: have_cython = False def cythonize(src): sys.stderr.write("cythonize: %r\n" % (src,)) cython_compiler.compile([src], cplus=True, emit_linenums=True) def ensure_source(src): pyx = os.path.splitext(src)[0] + '.pyx' if not os.path.exists(src): if not have_cython: raise NoCython cythonize(pyx) elif (os.path.exists(pyx) and os.stat(src).st_mtime < os.stat(pyx).st_mtime and have_cython): cythonize(pyx) return src class BuildExt(build_ext): def build_extension(self, ext): try: ext.sources = list(map(ensure_source, ext.sources)) except NoCython: print("WARNING") print("Cython is required for building extension from checkout.") print("Install Cython >= 0.16 or install msgpack from PyPI.") print("Falling back to pure Python implementation.") return try: return build_ext.build_extension(self, ext) except Exception as e: print("WARNING: Failed to compile extensiom modules.") print("msgpack uses fallback pure python implementation.") print(e) exec(open('msgpack/_version.py').read()) version_str = '.'.join(str(x) for x in version[:3]) if len(version) > 3 and version[3] != 'final': version_str += version[3] # take care of extension modules. if have_cython: class Sdist(sdist): def __init__(self, *args, **kwargs): for src in glob('msgpack/*.pyx'): cythonize(src) sdist.__init__(self, *args, **kwargs) else: Sdist = sdist libraries = [] if sys.platform == 'win32': libraries.append('ws2_32') if sys.byteorder == 'big': macros = [('__BIG_ENDIAN__', '1')] else: macros = [('__LITTLE_ENDIAN__', '1')] ext_modules = [] if not hasattr(sys, 'pypy_version_info'): ext_modules.append(Extension('msgpack._packer', sources=['msgpack/_packer.cpp'], libraries=libraries, include_dirs=['.'], define_macros=macros, )) ext_modules.append(Extension('msgpack._unpacker', sources=['msgpack/_unpacker.cpp'], libraries=libraries, include_dirs=['.'], define_macros=macros, )) del libraries, macros desc = 'MessagePack (de)serializer.' f = open('README.rst') long_desc = f.read() f.close() del f setup(name='msgpack-python', author='INADA Naoki', author_email='songofacandy@gmail.com', version=version_str, cmdclass={'build_ext': BuildExt, 'sdist': Sdist}, ext_modules=ext_modules, packages=['msgpack'], description=desc, long_description=long_desc, url='http://msgpack.org/', download_url='http://pypi.python.org/pypi/msgpack/', classifiers=[ 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 3', 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', ] ) msgpack-python-0.3.0/test/0000755000076700000240000000000012107551405016071 5ustar inada-nstaff00000000000000msgpack-python-0.3.0/test/test_buffer.py0000644000076700000240000000041012067447547020766 0ustar inada-nstaff00000000000000#!/usr/bin/env python # coding: utf-8 from msgpack import packb, unpackb def test_unpack_buffer(): from array import array buf = array('b') buf.fromstring(packb(('foo', 'bar'))) obj = unpackb(buf, use_list=1) assert [b'foo', b'bar'] == obj msgpack-python-0.3.0/test/test_case.py0000644000076700000240000000511012067446376020431 0ustar inada-nstaff00000000000000#!/usr/bin/env python # coding: utf-8 from msgpack import packb, unpackb def check(length, obj): v = packb(obj) assert len(v) == length, \ "%r length should be %r but get %r" % (obj, length, len(v)) assert unpackb(v, use_list=0) == obj def test_1(): for o in [None, True, False, 0, 1, (1 << 6), (1 << 7) - 1, -1, -((1<<5)-1), -(1<<5)]: check(1, o) def test_2(): for o in [1 << 7, (1 << 8) - 1, -((1<<5)+1), -(1<<7) ]: check(2, o) def test_3(): for o in [1 << 8, (1 << 16) - 1, -((1<<7)+1), -(1<<15)]: check(3, o) def test_5(): for o in [1 << 16, (1 << 32) - 1, -((1<<15)+1), -(1<<31)]: check(5, o) def test_9(): for o in [1 << 32, (1 << 64) - 1, -((1<<31)+1), -(1<<63), 1.0, 0.1, -0.1, -1.0]: check(9, o) def check_raw(overhead, num): check(num + overhead, b" " * num) def test_fixraw(): check_raw(1, 0) check_raw(1, (1<<5) - 1) def test_raw16(): check_raw(3, 1<<5) check_raw(3, (1<<16) - 1) def test_raw32(): check_raw(5, 1<<16) def check_array(overhead, num): check(num + overhead, (None,) * num) def test_fixarray(): check_array(1, 0) check_array(1, (1 << 4) - 1) def test_array16(): check_array(3, 1 << 4) check_array(3, (1<<16)-1) def test_array32(): check_array(5, (1<<16)) def match(obj, buf): assert packb(obj) == buf assert unpackb(buf, use_list=0) == obj def test_match(): cases = [ (None, b'\xc0'), (False, b'\xc2'), (True, b'\xc3'), (0, b'\x00'), (127, b'\x7f'), (128, b'\xcc\x80'), (256, b'\xcd\x01\x00'), (-1, b'\xff'), (-33, b'\xd0\xdf'), (-129, b'\xd1\xff\x7f'), ({1:1}, b'\x81\x01\x01'), (1.0, b"\xcb\x3f\xf0\x00\x00\x00\x00\x00\x00"), ((), b'\x90'), (tuple(range(15)),b"\x9f\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e"), (tuple(range(16)),b"\xdc\x00\x10\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"), ({}, b'\x80'), (dict([(x,x) for x in range(15)]), b'\x8f\x00\x00\x01\x01\x02\x02\x03\x03\x04\x04\x05\x05\x06\x06\x07\x07\x08\x08\t\t\n\n\x0b\x0b\x0c\x0c\r\r\x0e\x0e'), (dict([(x,x) for x in range(16)]), b'\xde\x00\x10\x00\x00\x01\x01\x02\x02\x03\x03\x04\x04\x05\x05\x06\x06\x07\x07\x08\x08\t\t\n\n\x0b\x0b\x0c\x0c\r\r\x0e\x0e\x0f\x0f'), ] for v, p in cases: match(v, p) def test_unicode(): assert unpackb(packb('foobar'), use_list=1) == b'foobar' msgpack-python-0.3.0/test/test_except.py0000644000076700000240000000153512067451544021006 0ustar inada-nstaff00000000000000#!/usr/bin/env python # coding: utf-8 from pytest import raises from msgpack import packb, unpackb import datetime class DummyException(Exception): pass def test_raise_on_find_unsupported_value(): with raises(TypeError): packb(datetime.datetime.now()) def test_raise_from_object_hook(): def hook(obj): raise DummyException raises(DummyException, unpackb, packb({}), object_hook=hook) raises(DummyException, unpackb, packb({'fizz': 'buzz'}), object_hook=hook) raises(DummyException, unpackb, packb({'fizz': 'buzz'}), object_pairs_hook=hook) raises(DummyException, unpackb, packb({'fizz': {'buzz': 'spam'}}), object_hook=hook) raises(DummyException, unpackb, packb({'fizz': {'buzz': 'spam'}}), object_pairs_hook=hook) def test_invalidvalue(): with raises(ValueError): unpackb(b'\xd9\x97#DL_') msgpack-python-0.3.0/test/test_format.py0000644000076700000240000000406512067451343021004 0ustar inada-nstaff00000000000000#!/usr/bin/env python # coding: utf-8 from msgpack import unpackb def check(src, should, use_list=0): assert unpackb(src, use_list=use_list) == should def testSimpleValue(): check(b"\x93\xc0\xc2\xc3", (None, False, True,)) def testFixnum(): check(b"\x92\x93\x00\x40\x7f\x93\xe0\xf0\xff", ((0,64,127,), (-32,-16,-1,),) ) def testFixArray(): check(b"\x92\x90\x91\x91\xc0", ((),((None,),),), ) def testFixRaw(): check(b"\x94\xa0\xa1a\xa2bc\xa3def", (b"", b"a", b"bc", b"def",), ) def testFixMap(): check( b"\x82\xc2\x81\xc0\xc0\xc3\x81\xc0\x80", {False: {None: None}, True:{None:{}}}, ) def testUnsignedInt(): check( b"\x99\xcc\x00\xcc\x80\xcc\xff\xcd\x00\x00\xcd\x80\x00" b"\xcd\xff\xff\xce\x00\x00\x00\x00\xce\x80\x00\x00\x00" b"\xce\xff\xff\xff\xff", (0, 128, 255, 0, 32768, 65535, 0, 2147483648, 4294967295,), ) def testSignedInt(): check(b"\x99\xd0\x00\xd0\x80\xd0\xff\xd1\x00\x00\xd1\x80\x00" b"\xd1\xff\xff\xd2\x00\x00\x00\x00\xd2\x80\x00\x00\x00" b"\xd2\xff\xff\xff\xff", (0, -128, -1, 0, -32768, -1, 0, -2147483648, -1,)) def testRaw(): check(b"\x96\xda\x00\x00\xda\x00\x01a\xda\x00\x02ab\xdb\x00\x00" b"\x00\x00\xdb\x00\x00\x00\x01a\xdb\x00\x00\x00\x02ab", (b"", b"a", b"ab", b"", b"a", b"ab")) def testArray(): check(b"\x96\xdc\x00\x00\xdc\x00\x01\xc0\xdc\x00\x02\xc2\xc3\xdd\x00" b"\x00\x00\x00\xdd\x00\x00\x00\x01\xc0\xdd\x00\x00\x00\x02" b"\xc2\xc3", ((), (None,), (False,True), (), (None,), (False,True)) ) def testMap(): check( b"\x96" b"\xde\x00\x00" b"\xde\x00\x01\xc0\xc2" b"\xde\x00\x02\xc0\xc2\xc3\xc2" b"\xdf\x00\x00\x00\x00" b"\xdf\x00\x00\x00\x01\xc0\xc2" b"\xdf\x00\x00\x00\x02\xc0\xc2\xc3\xc2", ({}, {None: False}, {True: False, None: False}, {}, {None: False}, {True: False, None: False})) msgpack-python-0.3.0/test/test_obj.py0000644000076700000240000000372412067451757020300 0ustar inada-nstaff00000000000000#!/usr/bin/env python # coding: utf-8 from pytest import raises from msgpack import packb, unpackb def _decode_complex(obj): if b'__complex__' in obj: return complex(obj[b'real'], obj[b'imag']) return obj def _encode_complex(obj): if isinstance(obj, complex): return {b'__complex__': True, b'real': 1, b'imag': 2} return obj def test_encode_hook(): packed = packb([3, 1+2j], default=_encode_complex) unpacked = unpackb(packed, use_list=1) assert unpacked[1] == {b'__complex__': True, b'real': 1, b'imag': 2} def test_decode_hook(): packed = packb([3, {b'__complex__': True, b'real': 1, b'imag': 2}]) unpacked = unpackb(packed, object_hook=_decode_complex, use_list=1) assert unpacked[1] == 1+2j def test_decode_pairs_hook(): packed = packb([3, {1: 2, 3: 4}]) prod_sum = 1 * 2 + 3 * 4 unpacked = unpackb(packed, object_pairs_hook=lambda l: sum(k * v for k, v in l), use_list=1) assert unpacked[1] == prod_sum def test_only_one_obj_hook(): with raises(ValueError): unpackb(b'', object_hook=lambda x: x, object_pairs_hook=lambda x: x) def test_bad_hook(): with raises(ValueError): packed = packb([3, 1+2j], default=lambda o: o) unpacked = unpackb(packed, use_list=1) def _arr_to_str(arr): return ''.join(str(c) for c in arr) def test_array_hook(): packed = packb([1,2,3]) unpacked = unpackb(packed, list_hook=_arr_to_str, use_list=1) assert unpacked == '123' class DecodeError(Exception): pass def bad_complex_decoder(o): raise DecodeError("Ooops!") def test_an_exception_in_objecthook1(): with raises(DecodeError): packed = packb({1: {'__complex__': True, 'real': 1, 'imag': 2}}) unpackb(packed, object_hook=bad_complex_decoder) def test_an_exception_in_objecthook2(): with raises(DecodeError): packed = packb({1: [{'__complex__': True, 'real': 1, 'imag': 2}]}) unpackb(packed, list_hook=bad_complex_decoder, use_list=1) msgpack-python-0.3.0/test/test_pack.py0000644000076700000240000001104112103651061020410 0ustar inada-nstaff00000000000000#!/usr/bin/env python # coding: utf-8 import six import struct from pytest import raises, xfail from msgpack import packb, unpackb, Unpacker, Packer from io import BytesIO def check(data, use_list=False): re = unpackb(packb(data), use_list=use_list) assert re == data def testPack(): test_data = [ 0, 1, 127, 128, 255, 256, 65535, 65536, -1, -32, -33, -128, -129, -32768, -32769, 1.0, b"", b"a", b"a"*31, b"a"*32, None, True, False, (), ((),), ((), None,), {None: 0}, (1<<23), ] for td in test_data: check(td) def testPackUnicode(): test_data = [ six.u(""), six.u("abcd"), [six.u("defgh")], six.u("Русский текст"), ] for td in test_data: re = unpackb(packb(td, encoding='utf-8'), use_list=1, encoding='utf-8') assert re == td packer = Packer(encoding='utf-8') data = packer.pack(td) re = Unpacker(BytesIO(data), encoding='utf-8', use_list=1).unpack() assert re == td def testPackUTF32(): try: test_data = [ six.u(""), six.u("abcd"), [six.u("defgh")], six.u("Русский текст"), ] for td in test_data: re = unpackb(packb(td, encoding='utf-32'), use_list=1, encoding='utf-32') assert re == td except LookupError as e: xfail(e) def testPackBytes(): test_data = [ b"", b"abcd", (b"defgh",), ] for td in test_data: check(td) def testIgnoreUnicodeErrors(): re = unpackb(packb(b'abc\xeddef'), encoding='utf-8', unicode_errors='ignore', use_list=1) assert re == "abcdef" def testStrictUnicodeUnpack(): with raises(UnicodeDecodeError): unpackb(packb(b'abc\xeddef'), encoding='utf-8', use_list=1) def testStrictUnicodePack(): with raises(UnicodeEncodeError): packb(six.u("abc\xeddef"), encoding='ascii', unicode_errors='strict') def testIgnoreErrorsPack(): re = unpackb(packb(six.u("abcФФФdef"), encoding='ascii', unicode_errors='ignore'), encoding='utf-8', use_list=1) assert re == six.u("abcdef") def testNoEncoding(): with raises(TypeError): packb(six.u("abc"), encoding=None) def testDecodeBinary(): re = unpackb(packb("abc"), encoding=None, use_list=1) assert re == b"abc" def testPackFloat(): assert packb(1.0, use_single_float=True) == b'\xca' + struct.pack('>f', 1.0) assert packb(1.0, use_single_float=False) == b'\xcb' + struct.pack('>d', 1.0) def testArraySize(sizes=[0, 5, 50, 1000]): bio = six.BytesIO() packer = Packer() for size in sizes: bio.write(packer.pack_array_header(size)) for i in range(size): bio.write(packer.pack(i)) bio.seek(0) unpacker = Unpacker(bio, use_list=1) for size in sizes: assert unpacker.unpack() == list(range(size)) def test_manualreset(sizes=[0, 5, 50, 1000]): packer = Packer(autoreset=False) for size in sizes: packer.pack_array_header(size) for i in range(size): packer.pack(i) bio = six.BytesIO(packer.bytes()) unpacker = Unpacker(bio, use_list=1) for size in sizes: assert unpacker.unpack() == list(range(size)) packer.reset() assert packer.bytes() == b'' def testMapSize(sizes=[0, 5, 50, 1000]): bio = six.BytesIO() packer = Packer() for size in sizes: bio.write(packer.pack_map_header(size)) for i in range(size): bio.write(packer.pack(i)) # key bio.write(packer.pack(i * 2)) # value bio.seek(0) unpacker = Unpacker(bio) for size in sizes: assert unpacker.unpack() == dict((i, i * 2) for i in range(size)) class odict(dict): '''Reimplement OrderedDict to run test on Python 2.6''' def __init__(self, seq): self._seq = seq dict.__init__(self, seq) def items(self): return self._seq[:] def iteritems(self): return iter(self._seq) def keys(self): return [x[0] for x in self._seq] def test_odict(): seq = [(b'one', 1), (b'two', 2), (b'three', 3), (b'four', 4)] od = odict(seq) assert unpackb(packb(od), use_list=1) == dict(seq) def pair_hook(seq): return list(seq) assert unpackb(packb(od), object_pairs_hook=pair_hook, use_list=1) == seq def test_pairlist(): pairlist = [(b'a', 1), (2, b'b'), (b'foo', b'bar')] packer = Packer() packed = packer.pack_map_pairs(pairlist) unpacked = unpackb(packed, object_pairs_hook=list) assert pairlist == unpacked msgpack-python-0.3.0/test/test_read_size.py0000644000076700000240000000350012067345632021455 0ustar inada-nstaff00000000000000"""Test Unpacker's read_array_header and read_map_header methods""" from msgpack import packb, Unpacker, OutOfData UnexpectedTypeException = ValueError def test_read_array_header(): unpacker = Unpacker() unpacker.feed(packb(['a', 'b', 'c'])) assert unpacker.read_array_header() == 3 assert unpacker.unpack() == b'a' assert unpacker.unpack() == b'b' assert unpacker.unpack() == b'c' try: unpacker.unpack() assert 0, 'should raise exception' except OutOfData: assert 1, 'okay' def test_read_map_header(): unpacker = Unpacker() unpacker.feed(packb({'a': 'A'})) assert unpacker.read_map_header() == 1 assert unpacker.unpack() == B'a' assert unpacker.unpack() == B'A' try: unpacker.unpack() assert 0, 'should raise exception' except OutOfData: assert 1, 'okay' def test_incorrect_type_array(): unpacker = Unpacker() unpacker.feed(packb(1)) try: unpacker.read_array_header() assert 0, 'should raise exception' except UnexpectedTypeException: assert 1, 'okay' def test_incorrect_type_map(): unpacker = Unpacker() unpacker.feed(packb(1)) try: unpacker.read_map_header() assert 0, 'should raise exception' except UnexpectedTypeException: assert 1, 'okay' def test_correct_type_nested_array(): unpacker = Unpacker() unpacker.feed(packb({'a': ['b', 'c', 'd']})) try: unpacker.read_array_header() assert 0, 'should raise exception' except UnexpectedTypeException: assert 1, 'okay' def test_incorrect_type_nested_map(): unpacker = Unpacker() unpacker.feed(packb([{'a': 'b'}])) try: unpacker.read_map_header() assert 0, 'should raise exception' except UnexpectedTypeException: assert 1, 'okay' msgpack-python-0.3.0/test/test_seq.py0000644000076700000240000000246012067450776020312 0ustar inada-nstaff00000000000000#!/usr/bin/env python # coding: utf-8 import six import io import msgpack binarydata = [chr(i) for i in range(256)] binarydata = six.b("".join(binarydata)) def gen_binary_data(idx): data = binarydata[:idx % 300] return data def test_exceeding_unpacker_read_size(): dumpf = io.BytesIO() packer = msgpack.Packer() NUMBER_OF_STRINGS = 6 read_size = 16 # 5 ok for read_size=16, while 6 glibc detected *** python: double free or corruption (fasttop): # 20 ok for read_size=256, while 25 segfaults / glibc detected *** python: double free or corruption (!prev) # 40 ok for read_size=1024, while 50 introduces errors # 7000 ok for read_size=1024*1024, while 8000 leads to glibc detected *** python: double free or corruption (!prev): for idx in range(NUMBER_OF_STRINGS): data = gen_binary_data(idx) dumpf.write(packer.pack(data)) f = io.BytesIO(dumpf.getvalue()) dumpf.close() unpacker = msgpack.Unpacker(f, read_size=read_size, use_list=1) read_count = 0 for idx, o in enumerate(unpacker): assert type(o) == bytes assert o == gen_binary_data(idx) read_count += 1 assert read_count == NUMBER_OF_STRINGS msgpack-python-0.3.0/test/test_sequnpack.py0000644000076700000240000000501012101664064021470 0ustar inada-nstaff00000000000000#!/usr/bin/env python # coding: utf-8 import six from msgpack import Unpacker, BufferFull from msgpack.exceptions import OutOfData from pytest import raises def test_partialdata(): unpacker = Unpacker() unpacker.feed(b'\xa5') with raises(StopIteration): next(iter(unpacker)) unpacker.feed(b'h') with raises(StopIteration): next(iter(unpacker)) unpacker.feed(b'a') with raises(StopIteration): next(iter(unpacker)) unpacker.feed(b'l') with raises(StopIteration): next(iter(unpacker)) unpacker.feed(b'l') with raises(StopIteration): next(iter(unpacker)) unpacker.feed(b'o') assert next(iter(unpacker)) == b'hallo' def test_foobar(): unpacker = Unpacker(read_size=3, use_list=1) unpacker.feed(b'foobar') assert unpacker.unpack() == ord(b'f') assert unpacker.unpack() == ord(b'o') assert unpacker.unpack() == ord(b'o') assert unpacker.unpack() == ord(b'b') assert unpacker.unpack() == ord(b'a') assert unpacker.unpack() == ord(b'r') with raises(OutOfData): unpacker.unpack() unpacker.feed(b'foo') unpacker.feed(b'bar') k = 0 for o, e in zip(unpacker, 'foobarbaz'): assert o == ord(e) k += 1 assert k == len(b'foobar') def test_foobar_skip(): unpacker = Unpacker(read_size=3, use_list=1) unpacker.feed(b'foobar') assert unpacker.unpack() == ord(b'f') unpacker.skip() assert unpacker.unpack() == ord(b'o') unpacker.skip() assert unpacker.unpack() == ord(b'a') unpacker.skip() with raises(OutOfData): unpacker.unpack() def test_maxbuffersize(): with raises(ValueError): Unpacker(read_size=5, max_buffer_size=3) unpacker = Unpacker(read_size=3, max_buffer_size=3, use_list=1) unpacker.feed(b'fo') with raises(BufferFull): unpacker.feed(b'ob') unpacker.feed(b'o') assert ord('f') == next(unpacker) unpacker.feed(b'b') assert ord('o') == next(unpacker) assert ord('o') == next(unpacker) assert ord('b') == next(unpacker) def test_readbytes(): unpacker = Unpacker(read_size=3) unpacker.feed(b'foobar') assert unpacker.unpack() == ord(b'f') assert unpacker.read_bytes(3) == b'oob' assert unpacker.unpack() == ord(b'a') assert unpacker.unpack() == ord(b'r') # Test buffer refill unpacker = Unpacker(six.BytesIO(b'foobar'), read_size=3) assert unpacker.unpack() == ord(b'f') assert unpacker.read_bytes(3) == b'oob' assert unpacker.unpack() == ord(b'a') assert unpacker.unpack() == ord(b'r') msgpack-python-0.3.0/test/test_subtype.py0000644000076700000240000000063412067451037021205 0ustar inada-nstaff00000000000000#!/usr/bin/env python # coding: utf-8 from msgpack import packb, unpackb from collections import namedtuple class MyList(list): pass class MyDict(dict): pass class MyTuple(tuple): pass MyNamedTuple = namedtuple('MyNamedTuple', 'x y') def test_types(): assert packb(MyDict()) == packb(dict()) assert packb(MyList()) == packb(list()) assert packb(MyNamedTuple(1, 2)) == packb((1, 2)) msgpack-python-0.3.0/test/test_unpack_raw.py0000644000076700000240000000143112067452100021630 0ustar inada-nstaff00000000000000"""Tests for cases where the user seeks to obtain packed msgpack objects""" import six from msgpack import Unpacker, packb def test_write_bytes(): unpacker = Unpacker() unpacker.feed(b'abc') f = six.BytesIO() assert unpacker.unpack(f.write) == ord('a') assert f.getvalue() == b'a' f = six.BytesIO() assert unpacker.skip(f.write) is None assert f.getvalue() == b'b' f = six.BytesIO() assert unpacker.skip() is None assert f.getvalue() == b'' def test_write_bytes_multi_buffer(): long_val = (5) * 100 expected = packb(long_val) unpacker = Unpacker(six.BytesIO(expected), read_size=3, max_buffer_size=3) f = six.BytesIO() unpacked = unpacker.unpack(f.write) assert unpacked == long_val assert f.getvalue() == expected