Generated by Cython 0.24
Yellow lines hint at Python interaction.
Click on a line that starts with a "+
" to see the C code that Cython generated for it.
Raw output: nvpair.pxi
001: # cython: c_string_type=unicode, c_string_encoding=ascii
002: #-
003: # Copyright (c) 2014 iXsystems, Inc.
004: # All rights reserved.
005: #
006: # Redistribution and use in source and binary forms, with or without
007: # modification, are permitted provided that the following conditions
008: # are met:
009: # 1. Redistributions of source code must retain the above copyright
010: # notice, this list of conditions and the following disclaimer.
011: # 2. Redistributions in binary form must reproduce the above copyright
012: # notice, this list of conditions and the following disclaimer in the
013: # documentation and/or other materials provided with the distribution.
014: #
015: # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
016: # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
017: # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
018: # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
019: # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
020: # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
021: # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
022: # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
023: # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
024: # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
025: # SUCH DAMAGE.
026: #
027:
028: cimport nvpair
+029: import collections
__pyx_t_2 = __Pyx_Import(__pyx_n_s_collections, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_collections, __pyx_t_2) < 0) __PYX_ERR(2, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+030: import numbers
/* "nvpair.pxi":30 * cimport nvpair * import collections * import numbers # <<<<<<<<<<<<<< * import cython * from types cimport * */ __pyx_t_2 = __Pyx_Import(__pyx_n_s_numbers, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_numbers, __pyx_t_2) < 0) __PYX_ERR(2, 30, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
031: import cython
032: from types cimport *
033: from libc.stdint cimport uintptr_t
034: from libc.stdlib cimport malloc, free
035:
036:
037: @cython.internal
+038: cdef class NVList(object):
struct __pyx_obj_6libzfs_NVList { PyObject_HEAD struct __pyx_vtabstruct_6libzfs_NVList *__pyx_vtab; nvlist_t *handle; int foreign; }; /* … */ struct __pyx_vtabstruct_6libzfs_NVList { PyObject *(*get_raw)(struct __pyx_obj_6libzfs_NVList *, PyObject *); nvpair_t *(*__pyx___get_pair)(struct __pyx_obj_6libzfs_NVList *, PyObject *); PyObject *(*__pyx___get_value)(struct __pyx_obj_6libzfs_NVList *, nvpair_t *, struct __pyx_opt_args_6libzfs_6NVList___get_value *__pyx_optional_args); }; static struct __pyx_vtabstruct_6libzfs_NVList *__pyx_vtabptr_6libzfs_NVList;
039: cdef nvpair.nvlist_t* handle
040: cdef int foreign
041:
+042: def __init__(self, uintptr_t nvlist=0, otherdict=None):
/* Python wrapper */ static int __pyx_pw_6libzfs_6NVList_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_6libzfs_6NVList_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { uintptr_t __pyx_v_nvlist; PyObject *__pyx_v_otherdict = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nvlist,&__pyx_n_s_otherdict,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_nvlist); if (value) { values[0] = value; kw_args--; } } case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_otherdict); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(2, 42, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } if (values[0]) { __pyx_v_nvlist = __Pyx_PyInt_As_size_t(values[0]); if (unlikely((__pyx_v_nvlist == (uintptr_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 42, __pyx_L3_error) } else { __pyx_v_nvlist = ((uintptr_t)0); } __pyx_v_otherdict = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 42, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.NVList.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_6NVList___init__(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self), __pyx_v_nvlist, __pyx_v_otherdict); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_6NVList___init__(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, uintptr_t __pyx_v_nvlist, PyObject *__pyx_v_otherdict) { PyObject *__pyx_v_k = NULL; PyObject *__pyx_v_v = NULL; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("libzfs.NVList.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_k); __Pyx_XDECREF(__pyx_v_v); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+043: if nvlist:
__pyx_t_1 = (__pyx_v_nvlist != 0); if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+044: self.foreign = True
__pyx_v_self->foreign = 1;
+045: self.handle = <nvpair.nvlist_t*>nvlist
__pyx_v_self->handle = ((nvlist_t *)__pyx_v_nvlist);
046: else:
+047: self.foreign = False
/*else*/ { __pyx_v_self->foreign = 0;
+048: nvpair.nvlist_alloc(&self.handle, nvpair.NV_UNIQUE_NAME, 0)
nvlist_alloc((&__pyx_v_self->handle), NV_UNIQUE_NAME, 0); } __pyx_L3:;
049:
+050: if otherdict:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_otherdict); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 50, __pyx_L1_error)
if (__pyx_t_1) {
/* … */
}
+051: for k, v in otherdict.items():
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_otherdict, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (__pyx_t_4) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 51, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 51, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 51, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 51, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 51, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 51, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 51, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_7 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(2, 51, __pyx_L1_error) __pyx_t_9 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(2, 51, __pyx_L1_error) __pyx_L8_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_7); __pyx_t_7 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+052: self[k] = v
if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self), __pyx_v_k, __pyx_v_v) < 0)) __PYX_ERR(2, 52, __pyx_L1_error)
053:
054:
+055: def __dealloc__(self):
/* Python wrapper */ static void __pyx_pw_6libzfs_6NVList_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ static void __pyx_pw_6libzfs_6NVList_3__dealloc__(PyObject *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); __pyx_pf_6libzfs_6NVList_2__dealloc__(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); } static void __pyx_pf_6libzfs_6NVList_2__dealloc__(struct __pyx_obj_6libzfs_NVList *__pyx_v_self) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__dealloc__", 0); /* … */ /* function exit code */ __Pyx_RefNannyFinishContext(); }
+056: if not self.foreign:
__pyx_t_1 = ((!(__pyx_v_self->foreign != 0)) != 0); if (__pyx_t_1) { /* … */ }
+057: nvpair.nvlist_free(self.handle)
nvlist_free(__pyx_v_self->handle);
+058: self.handle = NULL
__pyx_v_self->handle = NULL;
059:
+060: cdef object get_raw(self, key):
static PyObject *__pyx_f_6libzfs_6NVList_get_raw(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, PyObject *__pyx_v_key) { nvpair_t *__pyx_v_pair; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_raw", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.NVList.get_raw", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+061: cdef nvpair.nvpair_t* pair = self.__get_pair(key)
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_v_self->__pyx_vtab)->__pyx___get_pair(__pyx_v_self, __pyx_v_key); if (unlikely(__pyx_t_1 == NULL)) __PYX_ERR(2, 61, __pyx_L1_error) __pyx_v_pair = __pyx_t_1;
+062: return self.__get_value(pair, False)
__Pyx_XDECREF(__pyx_r); __pyx_t_3.__pyx_n = 1; __pyx_t_3.wrap_dict = Py_False; __pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_v_self->__pyx_vtab)->__pyx___get_value(__pyx_v_self, __pyx_v_pair, &__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 62, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
063:
+064: cdef nvpair.nvpair_t* __get_pair(self, key) except NULL:
static nvpair_t *__pyx_f_6libzfs_6NVList___get_pair(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, PyObject *__pyx_v_key) { nvpair_t *__pyx_v_pair; nvpair_t *__pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get_pair", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("libzfs.NVList.__get_pair", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
065: cdef nvpair.nvpair_t* pair
+066: if nvpair.nvlist_lookup_nvpair(self.handle, key, &pair) != 0:
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(2, 66, __pyx_L1_error) __pyx_t_2 = ((nvlist_lookup_nvpair(__pyx_v_self->handle, __pyx_t_1, (&__pyx_v_pair)) != 0) != 0); if (__pyx_t_2) { /* … */ }
+067: raise ValueError('Key {0} not found'.format(key))
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Key_0_not_found, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (!__pyx_t_5) { __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); } else { __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_key); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(2, 67, __pyx_L1_error)
068:
+069: return pair
__pyx_r = __pyx_v_pair; goto __pyx_L0;
070:
+071: cdef object __get_value(self, nvpair.nvpair_t* pair, wrap_dict=True):
static PyObject *__pyx_f_6libzfs_6NVList___get_value(CYTHON_UNUSED struct __pyx_obj_6libzfs_NVList *__pyx_v_self, nvpair_t *__pyx_v_pair, struct __pyx_opt_args_6libzfs_6NVList___get_value *__pyx_optional_args) { PyObject *__pyx_v_wrap_dict = ((PyObject *)Py_True); nvlist_t *__pyx_v_nested; char *__pyx_v_cstr; void *__pyx_v_carray; uint_t __pyx_v_carraylen; int __pyx_v_boolean; int32_t __pyx_v_cint; uint64_t __pyx_v_clong; int __pyx_v_datatype; PyObject *__pyx_v_x = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get_value", 0); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_wrap_dict = __pyx_optional_args->wrap_dict; } } /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_35); __Pyx_AddTraceback("libzfs.NVList.__get_value", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF(__pyx_v_x); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_opt_args_6libzfs_6NVList___get_value { int __pyx_n; PyObject *wrap_dict; };
072: cdef nvpair.nvlist_t *nested
073: cdef char *cstr
074: cdef void *carray
075: cdef uint_t carraylen
076: cdef bint boolean
077: cdef int32_t cint
078: cdef uint64_t clong
079: cdef int datatype
080:
+081: datatype = nvpair.nvpair_type(pair)
__pyx_v_datatype = nvpair_type(__pyx_v_pair);
082:
+083: if datatype == nvpair.DATA_TYPE_STRING:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_STRING) != 0); if (__pyx_t_1) { /* … */ }
+084: nvpair.nvpair_value_string(pair, &cstr)
nvpair_value_string(__pyx_v_pair, (&__pyx_v_cstr));
+085: return cstr
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyUnicode_FromString(__pyx_v_cstr); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 85, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
086:
+087: if datatype == nvpair.DATA_TYPE_BOOLEAN:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_BOOLEAN) != 0); if (__pyx_t_1) { /* … */ }
+088: nvpair.nvpair_value_boolean_value(pair, <boolean_t*>&boolean)
nvpair_value_boolean_value(__pyx_v_pair, ((boolean_t *)(&__pyx_v_boolean)));
+089: return boolean
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_boolean); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
090:
+091: if datatype == nvpair.DATA_TYPE_BYTE:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_BYTE) != 0); if (__pyx_t_1) { /* … */ }
+092: nvpair.nvpair_value_byte(pair, <uchar_t*>&cint)
nvpair_value_byte(__pyx_v_pair, ((uchar_t *)(&__pyx_v_cint)));
+093: return cint
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int32_t(__pyx_v_cint); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
094:
+095: if datatype == nvpair.DATA_TYPE_INT8:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_INT8) != 0); if (__pyx_t_1) { /* … */ }
+096: nvpair.nvpair_value_int8(pair, <int8_t*>&cint)
nvpair_value_int8(__pyx_v_pair, ((int8_t *)(&__pyx_v_cint)));
+097: return cint
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int32_t(__pyx_v_cint); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
098:
+099: if datatype == nvpair.DATA_TYPE_UINT8:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_UINT8) != 0); if (__pyx_t_1) { /* … */ }
+100: nvpair.nvpair_value_uint8(pair, <uint8_t*>&cint)
nvpair_value_uint8(__pyx_v_pair, ((uint8_t *)(&__pyx_v_cint)));
+101: return cint
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int32_t(__pyx_v_cint); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
102:
+103: if datatype == nvpair.DATA_TYPE_INT16:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_INT16) != 0); if (__pyx_t_1) { /* … */ }
+104: nvpair.nvpair_value_int16(pair, <int16_t*>&cint)
nvpair_value_int16(__pyx_v_pair, ((int16_t *)(&__pyx_v_cint)));
+105: return cint
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int32_t(__pyx_v_cint); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
106:
+107: if datatype == nvpair.DATA_TYPE_UINT16:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_UINT16) != 0); if (__pyx_t_1) { /* … */ }
+108: nvpair.nvpair_value_uint16(pair, <uint16_t*>&cint)
nvpair_value_uint16(__pyx_v_pair, ((uint16_t *)(&__pyx_v_cint)));
+109: return cint
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int32_t(__pyx_v_cint); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
110:
+111: if datatype == nvpair.DATA_TYPE_INT32:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_INT32) != 0); if (__pyx_t_1) { /* … */ }
+112: nvpair.nvpair_value_int32(pair, <int32_t*>&cint)
nvpair_value_int32(__pyx_v_pair, ((int32_t *)(&__pyx_v_cint)));
+113: return cint
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_int32_t(__pyx_v_cint); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
114:
+115: if datatype == nvpair.DATA_TYPE_UINT32:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_UINT32) != 0); if (__pyx_t_1) { /* … */ }
+116: nvpair.nvpair_value_uint32(pair, <uint32_t*>&clong)
nvpair_value_uint32(__pyx_v_pair, ((uint32_t *)(&__pyx_v_clong)));
+117: return clong
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_clong); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
118:
+119: if datatype == nvpair.DATA_TYPE_INT64:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_INT64) != 0); if (__pyx_t_1) { /* … */ }
+120: nvpair.nvpair_value_int64(pair, <int64_t*>&clong)
nvpair_value_int64(__pyx_v_pair, ((int64_t *)(&__pyx_v_clong)));
+121: return clong
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_clong); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
122:
+123: if datatype == nvpair.DATA_TYPE_UINT64:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_UINT64) != 0); if (__pyx_t_1) { /* … */ }
+124: nvpair.nvpair_value_uint64(pair, <uint64_t*>&clong)
nvpair_value_uint64(__pyx_v_pair, ((uint64_t *)(&__pyx_v_clong)));
+125: return clong
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_uint64_t(__pyx_v_clong); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
126:
+127: if datatype == nvpair.DATA_TYPE_BYTE_ARRAY:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_BYTE_ARRAY) != 0); if (__pyx_t_1) { /* … */ }
+128: nvpair.nvpair_value_byte_array(pair, <uchar_t**>&carray, &carraylen)
nvpair_value_byte_array(__pyx_v_pair, ((uchar_t **)(&__pyx_v_carray)), (&__pyx_v_carraylen));
+129: return [x for x in (<uchar_t *>carray)[:carraylen]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyUnicode_FromStringAndSize(((const char*)((uchar_t *)__pyx_v_carray)) + 0, __pyx_v_carraylen - 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_init_unicode_iteration(__pyx_t_3, (&__pyx_t_5), (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(2, 129, __pyx_L1_error) for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_5; __pyx_t_9++) { __pyx_t_4 = __pyx_t_9; __pyx_t_10 = PyUnicode_FromOrdinal(__Pyx_PyUnicode_READ(__pyx_t_7, __pyx_t_6, __pyx_t_4)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_10); __pyx_t_10 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_x))) __PYX_ERR(2, 129, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
130:
+131: if datatype == nvpair.DATA_TYPE_INT8_ARRAY:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_INT8_ARRAY) != 0); if (__pyx_t_1) { /* … */ }
+132: nvpair.nvpair_value_int8_array(pair, <int8_t**>&carray, &carraylen)
nvpair_value_int8_array(__pyx_v_pair, ((int8_t **)(&__pyx_v_carray)), (&__pyx_v_carraylen));
+133: return [x for x in (<uint8_t *>carray)[:carraylen]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyUnicode_FromStringAndSize(((const char*)((uint8_t *)__pyx_v_carray)) + 0, __pyx_v_carraylen - 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_init_unicode_iteration(__pyx_t_3, (&__pyx_t_4), (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(2, 133, __pyx_L1_error) for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_4; __pyx_t_9++) { __pyx_t_5 = __pyx_t_9; __pyx_t_10 = PyUnicode_FromOrdinal(__Pyx_PyUnicode_READ(__pyx_t_7, __pyx_t_6, __pyx_t_5)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_10); __pyx_t_10 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_x))) __PYX_ERR(2, 133, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
134:
+135: if datatype == nvpair.DATA_TYPE_UINT8_ARRAY:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_UINT8_ARRAY) != 0); if (__pyx_t_1) { /* … */ }
+136: nvpair.nvpair_value_uint8_array(pair, <uint8_t**>&carray, &carraylen)
nvpair_value_uint8_array(__pyx_v_pair, ((uint8_t **)(&__pyx_v_carray)), (&__pyx_v_carraylen));
+137: return [x for x in (<uint8_t *>carray)[:carraylen]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyUnicode_FromStringAndSize(((const char*)((uint8_t *)__pyx_v_carray)) + 0, __pyx_v_carraylen - 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_init_unicode_iteration(__pyx_t_3, (&__pyx_t_5), (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(2, 137, __pyx_L1_error) for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_5; __pyx_t_9++) { __pyx_t_4 = __pyx_t_9; __pyx_t_10 = PyUnicode_FromOrdinal(__Pyx_PyUnicode_READ(__pyx_t_7, __pyx_t_6, __pyx_t_4)); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_10); __pyx_t_10 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_x))) __PYX_ERR(2, 137, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
138:
+139: if datatype == nvpair.DATA_TYPE_INT16_ARRAY:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_INT16_ARRAY) != 0); if (__pyx_t_1) { /* … */ }
+140: nvpair.nvpair_value_int16_array(pair, <int16_t**>&carray, &carraylen)
nvpair_value_int16_array(__pyx_v_pair, ((int16_t **)(&__pyx_v_carray)), (&__pyx_v_carraylen));
+141: return [x for x in (<int16_t *>carray)[:carraylen]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = (((int16_t *)__pyx_v_carray) + __pyx_v_carraylen); for (__pyx_t_13 = ((int16_t *)__pyx_v_carray); __pyx_t_13 < __pyx_t_12; __pyx_t_13++) { __pyx_t_11 = __pyx_t_13; __pyx_t_3 = __Pyx_PyInt_From_int16_t((__pyx_t_11[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_x))) __PYX_ERR(2, 141, __pyx_L1_error) } __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
142:
+143: if datatype == nvpair.DATA_TYPE_UINT16_ARRAY:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_UINT16_ARRAY) != 0); if (__pyx_t_1) { /* … */ }
+144: nvpair.nvpair_value_uint16_array(pair, <uint16_t**>&carray, &carraylen)
nvpair_value_uint16_array(__pyx_v_pair, ((uint16_t **)(&__pyx_v_carray)), (&__pyx_v_carraylen));
+145: return [x for x in (<uint16_t *>carray)[:carraylen]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_15 = (((uint16_t *)__pyx_v_carray) + __pyx_v_carraylen); for (__pyx_t_16 = ((uint16_t *)__pyx_v_carray); __pyx_t_16 < __pyx_t_15; __pyx_t_16++) { __pyx_t_14 = __pyx_t_16; __pyx_t_3 = __Pyx_PyInt_From_uint16_t((__pyx_t_14[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_x))) __PYX_ERR(2, 145, __pyx_L1_error) } __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
146:
+147: if datatype == nvpair.DATA_TYPE_INT32_ARRAY:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_INT32_ARRAY) != 0); if (__pyx_t_1) { /* … */ }
+148: nvpair.nvpair_value_int32_array(pair, <int32_t**>&carray, &carraylen)
nvpair_value_int32_array(__pyx_v_pair, ((int32_t **)(&__pyx_v_carray)), (&__pyx_v_carraylen));
+149: return [x for x in (<int32_t *>carray)[:carraylen]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_18 = (((int32_t *)__pyx_v_carray) + __pyx_v_carraylen); for (__pyx_t_19 = ((int32_t *)__pyx_v_carray); __pyx_t_19 < __pyx_t_18; __pyx_t_19++) { __pyx_t_17 = __pyx_t_19; __pyx_t_3 = __Pyx_PyInt_From_int32_t((__pyx_t_17[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_x))) __PYX_ERR(2, 149, __pyx_L1_error) } __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
150:
+151: if datatype == nvpair.DATA_TYPE_UINT32_ARRAY:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_UINT32_ARRAY) != 0); if (__pyx_t_1) { /* … */ }
+152: nvpair.nvpair_value_uint32_array(pair, <uint32_t**>&carray, &carraylen)
nvpair_value_uint32_array(__pyx_v_pair, ((uint32_t **)(&__pyx_v_carray)), (&__pyx_v_carraylen));
+153: return [x for x in (<uint32_t *>carray)[:carraylen]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_21 = (((uint32_t *)__pyx_v_carray) + __pyx_v_carraylen); for (__pyx_t_22 = ((uint32_t *)__pyx_v_carray); __pyx_t_22 < __pyx_t_21; __pyx_t_22++) { __pyx_t_20 = __pyx_t_22; __pyx_t_3 = __Pyx_PyInt_From_uint32_t((__pyx_t_20[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_x))) __PYX_ERR(2, 153, __pyx_L1_error) } __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
154:
+155: if datatype == nvpair.DATA_TYPE_INT64_ARRAY:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_INT64_ARRAY) != 0); if (__pyx_t_1) { /* … */ }
+156: nvpair.nvpair_value_int64_array(pair, <int64_t**>&carray, &carraylen)
nvpair_value_int64_array(__pyx_v_pair, ((int64_t **)(&__pyx_v_carray)), (&__pyx_v_carraylen));
+157: return [x for x in (<int64_t *>carray)[:carraylen]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_24 = (((int64_t *)__pyx_v_carray) + __pyx_v_carraylen); for (__pyx_t_25 = ((int64_t *)__pyx_v_carray); __pyx_t_25 < __pyx_t_24; __pyx_t_25++) { __pyx_t_23 = __pyx_t_25; __pyx_t_3 = __Pyx_PyInt_From_int64_t((__pyx_t_23[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_x))) __PYX_ERR(2, 157, __pyx_L1_error) } __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
158:
+159: if datatype == nvpair.DATA_TYPE_UINT64_ARRAY:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_UINT64_ARRAY) != 0); if (__pyx_t_1) { /* … */ }
+160: nvpair.nvpair_value_uint64_array(pair, <uint64_t**>&carray, &carraylen)
nvpair_value_uint64_array(__pyx_v_pair, ((uint64_t **)(&__pyx_v_carray)), (&__pyx_v_carraylen));
+161: return [x for x in (<uint64_t *>carray)[:carraylen]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_27 = (((uint64_t *)__pyx_v_carray) + __pyx_v_carraylen); for (__pyx_t_28 = ((uint64_t *)__pyx_v_carray); __pyx_t_28 < __pyx_t_27; __pyx_t_28++) { __pyx_t_26 = __pyx_t_28; __pyx_t_3 = __Pyx_PyInt_From_uint64_t((__pyx_t_26[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_x))) __PYX_ERR(2, 161, __pyx_L1_error) } __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
162:
+163: if datatype == nvpair.DATA_TYPE_STRING_ARRAY:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_STRING_ARRAY) != 0); if (__pyx_t_1) { /* … */ }
+164: nvpair.nvpair_value_string_array(pair, <char***>&carray, &carraylen)
nvpair_value_string_array(__pyx_v_pair, ((char ***)(&__pyx_v_carray)), (&__pyx_v_carraylen));
+165: return [x for x in (<char**>carray)[:carraylen]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_30 = (((char **)__pyx_v_carray) + __pyx_v_carraylen); for (__pyx_t_31 = ((char **)__pyx_v_carray); __pyx_t_31 < __pyx_t_30; __pyx_t_31++) { __pyx_t_29 = __pyx_t_31; __pyx_t_3 = __Pyx_PyUnicode_FromString((__pyx_t_29[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_v_x))) __PYX_ERR(2, 165, __pyx_L1_error) } __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
166:
+167: if datatype == nvpair.DATA_TYPE_NVLIST:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_NVLIST) != 0); if (__pyx_t_1) { /* … */ }
+168: nvpair.nvpair_value_nvlist(pair, &nested)
nvpair_value_nvlist(__pyx_v_pair, (&__pyx_v_nested));
+169: return dict(NVList(<uintptr_t>nested)) if wrap_dict else NVList(<uintptr_t>nested)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_wrap_dict); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 169, __pyx_L1_error) if (__pyx_t_1) { __pyx_t_3 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_nested)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&PyDict_Type)), __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; } else { __pyx_t_3 = __Pyx_PyInt_FromSize_t(((uintptr_t)__pyx_v_nested)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_2 = __pyx_t_3; __pyx_t_3 = 0; } __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
170:
+171: if datatype == nvpair.DATA_TYPE_NVLIST_ARRAY:
__pyx_t_1 = ((__pyx_v_datatype == DATA_TYPE_NVLIST_ARRAY) != 0); if (__pyx_t_1) { /* … */ }
+172: nvpair.nvpair_value_nvlist_array(pair, <nvpair.nvlist_t***>&carray, &carraylen)
nvpair_value_nvlist_array(__pyx_v_pair, ((nvlist_t ***)(&__pyx_v_carray)), (&__pyx_v_carraylen));
+173: return [dict(NVList(x)) if wrap_dict else NVList(x) for x in (<uintptr_t *>carray)[:carraylen]]
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_33 = (((uintptr_t *)__pyx_v_carray) + __pyx_v_carraylen); for (__pyx_t_34 = ((uintptr_t *)__pyx_v_carray); __pyx_t_34 < __pyx_t_33; __pyx_t_34++) { __pyx_t_32 = __pyx_t_34; __pyx_t_3 = __Pyx_PyInt_FromSize_t((__pyx_t_32[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_wrap_dict); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 173, __pyx_L1_error) if (__pyx_t_1) { __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_v_x); __Pyx_GIVEREF(__pyx_v_x); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_x); __pyx_t_35 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_t_10, NULL); if (unlikely(!__pyx_t_35)) __PYX_ERR(2, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_35); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_35); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_35); __pyx_t_35 = 0; __pyx_t_35 = __Pyx_PyObject_Call(((PyObject *)(&PyDict_Type)), __pyx_t_10, NULL); if (unlikely(!__pyx_t_35)) __PYX_ERR(2, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_35); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_3 = __pyx_t_35; __pyx_t_35 = 0; } else { __pyx_t_35 = PyTuple_New(1); if (unlikely(!__pyx_t_35)) __PYX_ERR(2, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_35); __Pyx_INCREF(__pyx_v_x); __Pyx_GIVEREF(__pyx_v_x); PyTuple_SET_ITEM(__pyx_t_35, 0, __pyx_v_x); __pyx_t_10 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_t_35, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_35); __pyx_t_35 = 0; __pyx_t_3 = __pyx_t_10; __pyx_t_10 = 0; } if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(2, 173, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
174:
+175: def __contains__(self, key):
/* Python wrapper */ static int __pyx_pw_6libzfs_6NVList_5__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ static int __pyx_pw_6libzfs_6NVList_5__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_6NVList_4__contains__(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self), ((PyObject *)__pyx_v_key)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_6NVList_4__contains__(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, PyObject *__pyx_v_key) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__contains__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.NVList.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; }
+176: return nvpair.nvlist_exists(self.handle, key)
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(2, 176, __pyx_L1_error) __pyx_r = nvlist_exists(__pyx_v_self->handle, __pyx_t_1); goto __pyx_L0;
177:
+178: def __delitem__(self, key):
/* Python wrapper */ static int __pyx_pw_6libzfs_6NVList_7__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ static int __pyx_pw_6libzfs_6NVList_7__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__delitem__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_6NVList_6__delitem__(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self), ((PyObject *)__pyx_v_key)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_6NVList_6__delitem__(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, PyObject *__pyx_v_key) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__delitem__", 0); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("libzfs.NVList.__delitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_6NVList_10generator(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
+179: nvpair.nvlist_remove(self.handle, key, self.type(key))
__pyx_t_1 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) __PYX_ERR(2, 179, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (!__pyx_t_4) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); } else { __pyx_t_5 = PyTuple_New(1+1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = NULL; __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_5, 0+1, __pyx_v_key); __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = ((data_type_t)__Pyx_PyInt_As_data_type_t(__pyx_t_2)); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 179, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; nvlist_remove(__pyx_v_self->handle, __pyx_t_1, __pyx_t_6);
180:
+181: def __iter__(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_6NVList_9__iter__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_6libzfs_6NVList_9__iter__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iter__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_6NVList_8__iter__(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_6NVList_8__iter__(struct __pyx_obj_6libzfs_NVList *__pyx_v_self) { struct __pyx_obj_6libzfs___pyx_scope_struct____iter__ *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__iter__", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct____iter__ *)__pyx_tp_new_6libzfs___pyx_scope_struct____iter__(__pyx_ptype_6libzfs___pyx_scope_struct____iter__, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_6NVList_10generator, (PyObject *) __pyx_cur_scope, __pyx_n_s_iter, __pyx_n_s_NVList___iter); if (unlikely(!gen)) __PYX_ERR(2, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.NVList.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_6NVList_10generator(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 181, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct____iter__ { PyObject_HEAD nvpair_t *__pyx_v_pair; struct __pyx_obj_6libzfs_NVList *__pyx_v_self; };
+182: cdef nvpair.nvpair_t *pair = NULL
__pyx_cur_scope->__pyx_v_pair = NULL;
+183: while True:
while (1) {
+184: pair = nvpair.nvlist_next_nvpair(self.handle, pair)
__pyx_cur_scope->__pyx_v_pair = nvlist_next_nvpair(__pyx_cur_scope->__pyx_v_self->handle, __pyx_cur_scope->__pyx_v_pair);
+185: if pair is NULL:
__pyx_t_1 = ((__pyx_cur_scope->__pyx_v_pair == NULL) != 0); if (__pyx_t_1) { /* … */ }
+186: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L0;
187:
+188: yield nvpair.nvpair_name(pair)
__pyx_t_2 = __Pyx_PyUnicode_FromString(nvpair_name(__pyx_cur_scope->__pyx_v_pair)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L7_resume_from_yield:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 188, __pyx_L1_error) }
189:
+190: def get(self, key, object default=None):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_6NVList_12get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_6NVList_12get(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_key = 0; PyObject *__pyx_v_default = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_default,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_default); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) __PYX_ERR(2, 190, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_key = values[0]; __pyx_v_default = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 190, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.NVList.get", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_6NVList_11get(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self), __pyx_v_key, __pyx_v_default); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_6NVList_11get(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_default) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("libzfs.NVList.get", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+191: if not key in self:
__pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, ((PyObject *)__pyx_v_self), Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 191, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+192: return default
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_default); __pyx_r = __pyx_v_default; goto __pyx_L0;
193:
+194: return self[key]
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
195:
+196: def type(self, key):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_6NVList_14type(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ static PyObject *__pyx_pw_6libzfs_6NVList_14type(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("type (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_6NVList_13type(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self), ((PyObject *)__pyx_v_key)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_6NVList_13type(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, PyObject *__pyx_v_key) { nvpair_t *__pyx_v_pair; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("type", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.NVList.type", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+197: cdef nvpair.nvpair_t *pair = self.__get_pair(key)
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_v_self->__pyx_vtab)->__pyx___get_pair(__pyx_v_self, __pyx_v_key); if (unlikely(__pyx_t_1 == NULL)) __PYX_ERR(2, 197, __pyx_L1_error) __pyx_v_pair = __pyx_t_1;
+198: return nvpair.nvpair_type(pair)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_data_type_t(nvpair_type(__pyx_v_pair)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
199:
+200: def set(self, key, value, typeid):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_6NVList_16set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_6NVList_16set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_key = 0; PyObject *__pyx_v_value = 0; PyObject *__pyx_v_typeid = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("set (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_key,&__pyx_n_s_value,&__pyx_n_s_typeid,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; case 1: if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("set", 1, 3, 3, 1); __PYX_ERR(2, 200, __pyx_L3_error) } case 2: if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_typeid)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("set", 1, 3, 3, 2); __PYX_ERR(2, 200, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) __PYX_ERR(2, 200, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_key = values[0]; __pyx_v_value = values[1]; __pyx_v_typeid = values[2]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("set", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 200, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.NVList.set", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_6NVList_15set(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self), __pyx_v_key, __pyx_v_value, __pyx_v_typeid); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_6NVList_15set(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value, PyObject *__pyx_v_typeid) { struct __pyx_obj_6libzfs_NVList *__pyx_v_cnvlist = 0; void *__pyx_v_carray; PyObject *__pyx_v_idx = NULL; PyObject *__pyx_v_i = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("set", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_32); __Pyx_XDECREF(__pyx_t_47); __Pyx_XDECREF(__pyx_t_48); __Pyx_AddTraceback("libzfs.NVList.set", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_cnvlist); __Pyx_XDECREF(__pyx_v_idx); __Pyx_XDECREF(__pyx_v_i); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
201: cdef NVList cnvlist
+202: cdef void* carray = NULL
__pyx_v_carray = NULL;
203: cdef uintptr_t cptr
204:
205: # Oh god, this is tedious...
206:
+207: if isinstance(value, (str, unicode)):
__pyx_t_2 = PyString_Check(__pyx_v_value); __pyx_t_3 = (__pyx_t_2 != 0); if (!__pyx_t_3) { } else { __pyx_t_1 = __pyx_t_3; goto __pyx_L4_bool_binop_done; } __pyx_t_3 = PyUnicode_Check(__pyx_v_value); __pyx_t_2 = (__pyx_t_3 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L4_bool_binop_done:; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+208: if typeid == nvpair.DATA_TYPE_STRING:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_STRING); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 208, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 208, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { /* … */ }
+209: nvpair.nvlist_add_string(self.handle, key, value)
__pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(2, 209, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_v_value); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(2, 209, __pyx_L1_error) nvlist_add_string(__pyx_v_self->handle, __pyx_t_6, __pyx_t_7);
+210: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
211:
+212: if isinstance(value, type(None)):
__pyx_t_2 = PyObject_IsInstance(__pyx_v_value, ((PyObject *)Py_TYPE(Py_None))); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(2, 212, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
}
+213: if typeid == nvpair.DATA_TYPE_BOOLEAN:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_BOOLEAN); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 213, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 213, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_1) { /* … */ }
+214: nvpair.nvlist_add_boolean(self.handle, key)
__pyx_t_8 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(2, 214, __pyx_L1_error) nvlist_add_boolean(__pyx_v_self->handle, __pyx_t_8);
+215: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
216:
+217: if isinstance(value, bool):
__pyx_t_4 = ((PyObject*)&PyBool_Type); __Pyx_INCREF(__pyx_t_4); __pyx_t_1 = PyObject_IsInstance(__pyx_v_value, __pyx_t_4); if (unlikely(__pyx_t_1 == -1)) __PYX_ERR(2, 217, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+218: if typeid == nvpair.DATA_TYPE_BOOLEAN:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_BOOLEAN); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 218, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 218, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { /* … */ }
+219: nvpair.nvlist_add_boolean_value(self.handle, key, <boolean_t>value)
__pyx_t_9 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_9) && PyErr_Occurred())) __PYX_ERR(2, 219, __pyx_L1_error) __pyx_t_10 = __Pyx_PyInt_As_boolean_t(__pyx_v_value); if (unlikely((__pyx_t_10 == (boolean_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 219, __pyx_L1_error) nvlist_add_boolean_value(__pyx_v_self->handle, __pyx_t_9, ((boolean_t)__pyx_t_10));
+220: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
221:
+222: if isinstance(value, numbers.Number):
__pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_numbers); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_Number); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = PyObject_IsInstance(__pyx_v_value, __pyx_t_4); if (unlikely(__pyx_t_2 == -1)) __PYX_ERR(2, 222, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+223: if typeid == nvpair.DATA_TYPE_BYTE:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 223, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 223, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_1) { /* … */ }
+224: nvpair.nvlist_add_byte(self.handle, key, <char>value)
__pyx_t_11 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_11) && PyErr_Occurred())) __PYX_ERR(2, 224, __pyx_L1_error) __pyx_t_12 = __Pyx_PyInt_As_char(__pyx_v_value); if (unlikely((__pyx_t_12 == (char)-1) && PyErr_Occurred())) __PYX_ERR(2, 224, __pyx_L1_error) nvlist_add_byte(__pyx_v_self->handle, __pyx_t_11, ((char)__pyx_t_12));
+225: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
226:
+227: if typeid == nvpair.DATA_TYPE_UINT8:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_UINT8); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 227, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 227, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_1) { /* … */ }
+228: nvpair.nvlist_add_uint8(self.handle, key, <uint8_t>value)
__pyx_t_13 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_13) && PyErr_Occurred())) __PYX_ERR(2, 228, __pyx_L1_error) __pyx_t_14 = __Pyx_PyInt_As_uint8_t(__pyx_v_value); if (unlikely((__pyx_t_14 == (uint8_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 228, __pyx_L1_error) nvlist_add_uint8(__pyx_v_self->handle, __pyx_t_13, ((uint8_t)__pyx_t_14));
+229: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
230:
+231: if typeid == nvpair.DATA_TYPE_INT8:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_INT8); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 231, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 231, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_1) { /* … */ }
+232: nvpair.nvlist_add_int8(self.handle, key, <int8_t>value)
__pyx_t_15 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_15) && PyErr_Occurred())) __PYX_ERR(2, 232, __pyx_L1_error) __pyx_t_16 = __Pyx_PyInt_As_int8_t(__pyx_v_value); if (unlikely((__pyx_t_16 == (int8_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 232, __pyx_L1_error) nvlist_add_int8(__pyx_v_self->handle, __pyx_t_15, ((int8_t)__pyx_t_16));
+233: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
234:
+235: if typeid == nvpair.DATA_TYPE_UINT16:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_UINT16); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 235, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 235, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_1) { /* … */ }
+236: nvpair.nvlist_add_uint16(self.handle, key, <uint16_t>value)
__pyx_t_17 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_17) && PyErr_Occurred())) __PYX_ERR(2, 236, __pyx_L1_error) __pyx_t_18 = __Pyx_PyInt_As_uint16_t(__pyx_v_value); if (unlikely((__pyx_t_18 == (uint16_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 236, __pyx_L1_error) nvlist_add_uint16(__pyx_v_self->handle, __pyx_t_17, ((uint16_t)__pyx_t_18));
+237: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
238:
+239: if typeid == nvpair.DATA_TYPE_INT16:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_INT16); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 239, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 239, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_1) { /* … */ }
+240: nvpair.nvlist_add_int16(self.handle, key, <int16_t>value)
__pyx_t_19 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_19) && PyErr_Occurred())) __PYX_ERR(2, 240, __pyx_L1_error) __pyx_t_20 = __Pyx_PyInt_As_int16_t(__pyx_v_value); if (unlikely((__pyx_t_20 == (int16_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 240, __pyx_L1_error) nvlist_add_int16(__pyx_v_self->handle, __pyx_t_19, ((int16_t)__pyx_t_20));
+241: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
242:
+243: if typeid == nvpair.DATA_TYPE_UINT32:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_UINT32); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 243, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 243, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_1) { /* … */ }
+244: nvpair.nvlist_add_uint32(self.handle, key, <uint32_t>value)
__pyx_t_21 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_21) && PyErr_Occurred())) __PYX_ERR(2, 244, __pyx_L1_error) __pyx_t_22 = __Pyx_PyInt_As_uint32_t(__pyx_v_value); if (unlikely((__pyx_t_22 == (uint32_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 244, __pyx_L1_error) nvlist_add_uint32(__pyx_v_self->handle, __pyx_t_21, ((uint32_t)__pyx_t_22));
+245: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
246:
+247: if typeid == nvpair.DATA_TYPE_INT32:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_INT32); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 247, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_1) { /* … */ }
+248: nvpair.nvlist_add_int32(self.handle, key, <int32_t>value)
__pyx_t_23 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_23) && PyErr_Occurred())) __PYX_ERR(2, 248, __pyx_L1_error) __pyx_t_24 = __Pyx_PyInt_As_int32_t(__pyx_v_value); if (unlikely((__pyx_t_24 == (int32_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 248, __pyx_L1_error) nvlist_add_int32(__pyx_v_self->handle, __pyx_t_23, ((int32_t)__pyx_t_24));
+249: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
250:
+251: if typeid == nvpair.DATA_TYPE_UINT64:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_UINT64); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 251, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_1) { /* … */ }
+252: nvpair.nvlist_add_uint64(self.handle, key, <uint64_t>value)
__pyx_t_25 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_25) && PyErr_Occurred())) __PYX_ERR(2, 252, __pyx_L1_error) __pyx_t_26 = __Pyx_PyInt_As_uint64_t(__pyx_v_value); if (unlikely((__pyx_t_26 == (uint64_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 252, __pyx_L1_error) nvlist_add_uint64(__pyx_v_self->handle, __pyx_t_25, ((uint64_t)__pyx_t_26));
+253: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
254:
+255: if typeid == nvpair.DATA_TYPE_INT64:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_INT64); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 255, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 255, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_1) { /* … */ }
+256: nvpair.nvlist_add_int64(self.handle, key, <int64_t>value)
__pyx_t_27 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_27) && PyErr_Occurred())) __PYX_ERR(2, 256, __pyx_L1_error) __pyx_t_28 = __Pyx_PyInt_As_int64_t(__pyx_v_value); if (unlikely((__pyx_t_28 == (int64_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 256, __pyx_L1_error) nvlist_add_int64(__pyx_v_self->handle, __pyx_t_27, ((int64_t)__pyx_t_28));
+257: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
258:
+259: if isinstance(value, NVList):
__pyx_t_1 = __Pyx_TypeCheck(__pyx_v_value, __pyx_ptype_6libzfs_NVList);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+260: if typeid == nvpair.DATA_TYPE_NVLIST:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_NVLIST); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 260, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 260, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { /* … */ }
+261: cnvlist = <NVList>value
__pyx_t_4 = __pyx_v_value;
__Pyx_INCREF(__pyx_t_4);
__pyx_v_cnvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_4);
__pyx_t_4 = 0;
+262: nvpair.nvlist_add_nvlist(self.handle, key, cnvlist.handle)
__pyx_t_29 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_29) && PyErr_Occurred())) __PYX_ERR(2, 262, __pyx_L1_error) nvlist_add_nvlist(__pyx_v_self->handle, __pyx_t_29, __pyx_v_cnvlist->handle);
+263: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
264:
+265: if isinstance(value, dict):
__pyx_t_2 = PyDict_Check(__pyx_v_value);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
}
+266: if typeid == nvpair.DATA_TYPE_NVLIST:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_NVLIST); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 266, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 266, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_1) { /* … */ }
+267: cnvlist = NVList(otherdict=value)
__pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_otherdict, __pyx_v_value) < 0) __PYX_ERR(2, 267, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_6libzfs_NVList), __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_cnvlist = ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_4); __pyx_t_4 = 0;
+268: nvpair.nvlist_add_nvlist(self.handle, key, cnvlist.handle)
__pyx_t_29 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_29) && PyErr_Occurred())) __PYX_ERR(2, 268, __pyx_L1_error) nvlist_add_nvlist(__pyx_v_self->handle, __pyx_t_29, __pyx_v_cnvlist->handle);
+269: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
270:
+271: if isinstance(value, collections.Sequence):
__pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_collections); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_Sequence); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = PyObject_IsInstance(__pyx_v_value, __pyx_t_5); if (unlikely(__pyx_t_1 == -1)) __PYX_ERR(2, 271, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+272: if typeid == nvpair.DATA_TYPE_STRING_ARRAY:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_STRING_ARRAY); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 272, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 272, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { /* … */ }
+273: carray = malloc(len(value) * sizeof(char*))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 273, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(char *))));
+274: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_4 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_5 = __pyx_v_value; __Pyx_INCREF(__pyx_t_5); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_31 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 274, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 274, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 274, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_5); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 274, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_4); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+275: (<char**>carray)[idx] = i
__pyx_t_33 = __Pyx_PyObject_AsString(__pyx_v_i); if (unlikely((!__pyx_t_33) && PyErr_Occurred())) __PYX_ERR(2, 275, __pyx_L1_error) __pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 275, __pyx_L1_error) (((char **)__pyx_v_carray)[__pyx_t_34]) = __pyx_t_33;
276:
+277: nvpair.nvlist_add_string_array(self.handle, key, <char**>carray, len(value))
__pyx_t_35 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_35) && PyErr_Occurred())) __PYX_ERR(2, 277, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 277, __pyx_L1_error) nvlist_add_string_array(__pyx_v_self->handle, __pyx_t_35, ((char **)__pyx_v_carray), __pyx_t_30);
278:
+279: if typeid == nvpair.DATA_TYPE_BOOLEAN_ARRAY:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_BOOLEAN_ARRAY); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 279, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 279, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { /* … */ }
+280: carray = malloc(len(value) * sizeof(char*))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 280, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(char *))));
+281: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_5 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_4 = __pyx_v_value; __Pyx_INCREF(__pyx_t_4); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_31 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 281, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 281, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 281, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_4); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 281, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_5, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+282: (<boolean_t*>carray)[idx] = i
__pyx_t_10 = __Pyx_PyInt_As_boolean_t(__pyx_v_i); if (unlikely((__pyx_t_10 == (boolean_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 282, __pyx_L1_error) __pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 282, __pyx_L1_error) (((boolean_t *)__pyx_v_carray)[__pyx_t_34]) = __pyx_t_10;
283:
+284: nvpair.nvlist_add_boolean_array(self.handle, key, <boolean_t*>carray, len(value))
__pyx_t_36 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_36) && PyErr_Occurred())) __PYX_ERR(2, 284, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 284, __pyx_L1_error) nvlist_add_boolean_array(__pyx_v_self->handle, __pyx_t_36, ((boolean_t *)__pyx_v_carray), __pyx_t_30);
285:
+286: if typeid == nvpair.DATA_TYPE_BYTE_ARRAY:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_BYTE_ARRAY); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { /* … */ }
+287: carray = malloc(len(value) * sizeof(char))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 287, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(char))));
+288: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_4 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_5 = __pyx_v_value; __Pyx_INCREF(__pyx_t_5); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_31 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 288, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 288, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 288, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_5); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 288, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_4); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+289: (<char*>carray)[idx] = i
__pyx_t_12 = __Pyx_PyInt_As_char(__pyx_v_i); if (unlikely((__pyx_t_12 == (char)-1) && PyErr_Occurred())) __PYX_ERR(2, 289, __pyx_L1_error) __pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 289, __pyx_L1_error) (((char *)__pyx_v_carray)[__pyx_t_34]) = __pyx_t_12;
290:
+291: nvpair.nvlist_add_byte_array(self.handle, key, <uchar_t*>carray, len(value))
__pyx_t_37 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_37) && PyErr_Occurred())) __PYX_ERR(2, 291, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 291, __pyx_L1_error) nvlist_add_byte_array(__pyx_v_self->handle, __pyx_t_37, ((uchar_t *)__pyx_v_carray), __pyx_t_30);
292:
+293: if typeid == nvpair.DATA_TYPE_UINT8_ARRAY:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_UINT8_ARRAY); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 293, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { /* … */ }
+294: carray = malloc(len(value) * sizeof(uint8_t))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 294, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(uint8_t))));
+295: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_5 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_4 = __pyx_v_value; __Pyx_INCREF(__pyx_t_4); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_31 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 295, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 295, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 295, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_4); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 295, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_5, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+296: (<uint8_t*>carray)[idx] = i
__pyx_t_14 = __Pyx_PyInt_As_uint8_t(__pyx_v_i); if (unlikely((__pyx_t_14 == (uint8_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 296, __pyx_L1_error) __pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 296, __pyx_L1_error) (((uint8_t *)__pyx_v_carray)[__pyx_t_34]) = __pyx_t_14;
297:
+298: nvpair.nvlist_add_uint8_array(self.handle, key, <uint8_t*>carray, len(value))
__pyx_t_38 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_38) && PyErr_Occurred())) __PYX_ERR(2, 298, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 298, __pyx_L1_error) nvlist_add_uint8_array(__pyx_v_self->handle, __pyx_t_38, ((uint8_t *)__pyx_v_carray), __pyx_t_30);
299:
+300: if typeid == nvpair.DATA_TYPE_INT8_ARRAY:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_INT8_ARRAY); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 300, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 300, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { /* … */ }
+301: carray = malloc(len(value) * sizeof(int8_t))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 301, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(int8_t))));
+302: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_4 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_5 = __pyx_v_value; __Pyx_INCREF(__pyx_t_5); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_31 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 302, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 302, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 302, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_5); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 302, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_4); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+303: (<int8_t*>carray)[idx] = i
__pyx_t_16 = __Pyx_PyInt_As_int8_t(__pyx_v_i); if (unlikely((__pyx_t_16 == (int8_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 303, __pyx_L1_error) __pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 303, __pyx_L1_error) (((int8_t *)__pyx_v_carray)[__pyx_t_34]) = __pyx_t_16;
304:
+305: nvpair.nvlist_add_int8_array(self.handle, key, <int8_t*>carray, len(value))
__pyx_t_39 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_39) && PyErr_Occurred())) __PYX_ERR(2, 305, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 305, __pyx_L1_error) nvlist_add_int8_array(__pyx_v_self->handle, __pyx_t_39, ((int8_t *)__pyx_v_carray), __pyx_t_30);
306:
+307: if typeid == nvpair.DATA_TYPE_UINT16_ARRAY:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_UINT16_ARRAY); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { /* … */ }
+308: carray = malloc(len(value) * sizeof(uint16_t))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 308, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(uint16_t))));
+309: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_5 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_4 = __pyx_v_value; __Pyx_INCREF(__pyx_t_4); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_31 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 309, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 309, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 309, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_4); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 309, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_5, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+310: (<uint16_t*>carray)[idx] = i
__pyx_t_18 = __Pyx_PyInt_As_uint16_t(__pyx_v_i); if (unlikely((__pyx_t_18 == (uint16_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 310, __pyx_L1_error) __pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 310, __pyx_L1_error) (((uint16_t *)__pyx_v_carray)[__pyx_t_34]) = __pyx_t_18;
311:
+312: nvpair.nvlist_add_uint16_array(self.handle, key, <uint16_t*>carray, len(value))
__pyx_t_40 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_40) && PyErr_Occurred())) __PYX_ERR(2, 312, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 312, __pyx_L1_error) nvlist_add_uint16_array(__pyx_v_self->handle, __pyx_t_40, ((uint16_t *)__pyx_v_carray), __pyx_t_30);
313:
+314: if typeid == nvpair.DATA_TYPE_INT16_ARRAY:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_INT16_ARRAY); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 314, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 314, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { /* … */ }
+315: carray = malloc(len(value) * sizeof(int16_t))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 315, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(int16_t))));
+316: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_4 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_5 = __pyx_v_value; __Pyx_INCREF(__pyx_t_5); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_31 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 316, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 316, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 316, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_5); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 316, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_4); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+317: (<uint16_t*>carray)[idx] = i
__pyx_t_18 = __Pyx_PyInt_As_uint16_t(__pyx_v_i); if (unlikely((__pyx_t_18 == (uint16_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 317, __pyx_L1_error) __pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 317, __pyx_L1_error) (((uint16_t *)__pyx_v_carray)[__pyx_t_34]) = __pyx_t_18;
318:
319:
+320: nvpair.nvlist_add_int16_array(self.handle, key, <int16_t*>carray, len(value))
__pyx_t_41 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_41) && PyErr_Occurred())) __PYX_ERR(2, 320, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 320, __pyx_L1_error) nvlist_add_int16_array(__pyx_v_self->handle, __pyx_t_41, ((int16_t *)__pyx_v_carray), __pyx_t_30);
321:
+322: if typeid == nvpair.DATA_TYPE_UINT32_ARRAY:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_UINT32_ARRAY); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 322, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 322, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { /* … */ }
+323: carray = malloc(len(value) * sizeof(uint32_t))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 323, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(uint32_t))));
+324: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_5 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_4 = __pyx_v_value; __Pyx_INCREF(__pyx_t_4); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_31 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 324, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 324, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 324, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_4); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 324, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_5, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+325: (<uint32_t*>carray)[idx] = i
__pyx_t_22 = __Pyx_PyInt_As_uint32_t(__pyx_v_i); if (unlikely((__pyx_t_22 == (uint32_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 325, __pyx_L1_error) __pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 325, __pyx_L1_error) (((uint32_t *)__pyx_v_carray)[__pyx_t_34]) = __pyx_t_22;
326:
+327: nvpair.nvlist_add_uint32_array(self.handle, key, <uint32_t*>carray, len(value))
__pyx_t_42 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_42) && PyErr_Occurred())) __PYX_ERR(2, 327, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 327, __pyx_L1_error) nvlist_add_uint32_array(__pyx_v_self->handle, __pyx_t_42, ((uint32_t *)__pyx_v_carray), __pyx_t_30);
328:
+329: if typeid == nvpair.DATA_TYPE_INT32_ARRAY:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_INT32_ARRAY); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 329, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 329, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { /* … */ }
+330: carray = malloc(len(value) * sizeof(int32_t))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 330, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(int32_t))));
+331: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_4 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_5 = __pyx_v_value; __Pyx_INCREF(__pyx_t_5); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_31 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 331, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 331, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 331, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_5); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 331, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_4); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+332: (<int32_t*>carray)[idx] = i
__pyx_t_24 = __Pyx_PyInt_As_int32_t(__pyx_v_i); if (unlikely((__pyx_t_24 == (int32_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 332, __pyx_L1_error) __pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 332, __pyx_L1_error) (((int32_t *)__pyx_v_carray)[__pyx_t_34]) = __pyx_t_24;
333:
+334: nvpair.nvlist_add_int32_array(self.handle, key, <int32_t*>carray, len(value))
__pyx_t_43 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_43) && PyErr_Occurred())) __PYX_ERR(2, 334, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 334, __pyx_L1_error) nvlist_add_int32_array(__pyx_v_self->handle, __pyx_t_43, ((int32_t *)__pyx_v_carray), __pyx_t_30);
335:
+336: if typeid == nvpair.DATA_TYPE_UINT64_ARRAY:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_UINT64_ARRAY); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 336, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 336, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { /* … */ }
+337: carray = malloc(len(value) * sizeof(uint64_t))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 337, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(uint64_t))));
+338: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_5 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_4 = __pyx_v_value; __Pyx_INCREF(__pyx_t_4); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_31 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 338, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 338, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 338, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_4); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 338, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_5, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 338, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+339: (<uint64_t*>carray)[idx] = i
__pyx_t_26 = __Pyx_PyInt_As_uint64_t(__pyx_v_i); if (unlikely((__pyx_t_26 == (uint64_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 339, __pyx_L1_error) __pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 339, __pyx_L1_error) (((uint64_t *)__pyx_v_carray)[__pyx_t_34]) = __pyx_t_26;
340:
+341: nvpair.nvlist_add_uint64_array(self.handle, key, <uint64_t*>carray, len(value))
__pyx_t_44 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_44) && PyErr_Occurred())) __PYX_ERR(2, 341, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 341, __pyx_L1_error) nvlist_add_uint64_array(__pyx_v_self->handle, __pyx_t_44, ((uint64_t *)__pyx_v_carray), __pyx_t_30);
342:
+343: if typeid == nvpair.DATA_TYPE_INT64_ARRAY:
__pyx_t_5 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_INT64_ARRAY); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 343, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_2) { /* … */ }
+344: carray = malloc(len(value) * sizeof(int64_t))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 344, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(int64_t))));
+345: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_4 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_5 = __pyx_v_value; __Pyx_INCREF(__pyx_t_5); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_31 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 345, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 345, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 345, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_5, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_5); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 345, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_4); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+346: (<int64_t*>carray)[idx] = i
__pyx_t_28 = __Pyx_PyInt_As_int64_t(__pyx_v_i); if (unlikely((__pyx_t_28 == (int64_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 346, __pyx_L1_error) __pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 346, __pyx_L1_error) (((int64_t *)__pyx_v_carray)[__pyx_t_34]) = __pyx_t_28;
347:
+348: nvpair.nvlist_add_int64_array(self.handle, key, <int64_t*>carray, len(value))
__pyx_t_45 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_45) && PyErr_Occurred())) __PYX_ERR(2, 348, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 348, __pyx_L1_error) nvlist_add_int64_array(__pyx_v_self->handle, __pyx_t_45, ((int64_t *)__pyx_v_carray), __pyx_t_30);
349:
+350: if typeid == nvpair.DATA_TYPE_NVLIST_ARRAY:
__pyx_t_4 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_NVLIST_ARRAY); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_v_typeid, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 350, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(2, 350, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { /* … */ }
+351: carray = malloc(len(value) * sizeof(nvpair.nvlist_t*))
__pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 351, __pyx_L1_error)
__pyx_v_carray = malloc((__pyx_t_30 * (sizeof(nvlist_t *))));
+352: for idx, i in enumerate(value):
__Pyx_INCREF(__pyx_int_0); __pyx_t_5 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_value)) || PyTuple_CheckExact(__pyx_v_value)) { __pyx_t_4 = __pyx_v_value; __Pyx_INCREF(__pyx_t_4); __pyx_t_30 = 0; __pyx_t_31 = NULL; } else { __pyx_t_30 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_31 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_31)) __PYX_ERR(2, 352, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_31)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_30 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 352, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } else { if (__pyx_t_30 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_32 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_30); __Pyx_INCREF(__pyx_t_32); __pyx_t_30++; if (unlikely(0 < 0)) __PYX_ERR(2, 352, __pyx_L1_error) #else __pyx_t_32 = PySequence_ITEM(__pyx_t_4, __pyx_t_30); __pyx_t_30++; if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); #endif } } else { __pyx_t_32 = __pyx_t_31(__pyx_t_4); if (unlikely(!__pyx_t_32)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 352, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_32); } __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_32); __pyx_t_32 = 0; __Pyx_INCREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); __pyx_t_32 = __Pyx_PyInt_AddObjC(__pyx_t_5, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = __pyx_t_32; __pyx_t_32 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+353: cnvlist = <NVList>i
__pyx_t_32 = __pyx_v_i; __Pyx_INCREF(__pyx_t_32); __Pyx_XDECREF_SET(__pyx_v_cnvlist, ((struct __pyx_obj_6libzfs_NVList *)__pyx_t_32)); __pyx_t_32 = 0;
+354: (<uintptr_t*>carray)[idx] = <uintptr_t>cnvlist.handle
__pyx_t_34 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_34 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(2, 354, __pyx_L1_error) (((uintptr_t *)__pyx_v_carray)[__pyx_t_34]) = ((uintptr_t)__pyx_v_cnvlist->handle);
355:
+356: nvpair.nvlist_add_nvlist_array(self.handle, key, <nvpair.nvlist_t**>carray, len(value))
__pyx_t_46 = __Pyx_PyObject_AsString(__pyx_v_key); if (unlikely((!__pyx_t_46) && PyErr_Occurred())) __PYX_ERR(2, 356, __pyx_L1_error) __pyx_t_30 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_30 == -1)) __PYX_ERR(2, 356, __pyx_L1_error) nvlist_add_nvlist_array(__pyx_v_self->handle, __pyx_t_46, ((nvlist_t **)__pyx_v_carray), __pyx_t_30);
357:
+358: if carray != NULL:
__pyx_t_2 = ((__pyx_v_carray != NULL) != 0); if (__pyx_t_2) { /* … */ }
+359: free(carray)
free(__pyx_v_carray);
360:
+361: return
__Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0;
362:
+363: raise ValueError('Value not compatible with type specified: {0}'.format(type(value).__name__))
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Value_not_compatible_with_type_s, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_32 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_n_s_name); if (unlikely(!__pyx_t_32)) __PYX_ERR(2, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __pyx_t_47 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_47 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_47)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_47); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } if (!__pyx_t_47) { __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_32); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 363, __pyx_L1_error) __Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0; __Pyx_GOTREF(__pyx_t_5); } else { __pyx_t_48 = PyTuple_New(1+1); if (unlikely(!__pyx_t_48)) __PYX_ERR(2, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_48); __Pyx_GIVEREF(__pyx_t_47); PyTuple_SET_ITEM(__pyx_t_48, 0, __pyx_t_47); __pyx_t_47 = NULL; __Pyx_GIVEREF(__pyx_t_32); PyTuple_SET_ITEM(__pyx_t_48, 0+1, __pyx_t_32); __pyx_t_32 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_48, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_48); __pyx_t_48 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_5, 0, 0, 0); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __PYX_ERR(2, 363, __pyx_L1_error)
364:
+365: def __getitem__(self, key):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_6NVList_18__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ static PyObject *__pyx_pw_6libzfs_6NVList_18__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_6NVList_17__getitem__(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self), ((PyObject *)__pyx_v_key)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_6NVList_17__getitem__(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, PyObject *__pyx_v_key) { nvpair_t *__pyx_v_pair; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.NVList.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
366: cdef nvpair.nvpair_t *pair
367:
+368: pair = self.__get_pair(key)
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_v_self->__pyx_vtab)->__pyx___get_pair(__pyx_v_self, __pyx_v_key); if (unlikely(__pyx_t_1 == NULL)) __PYX_ERR(2, 368, __pyx_L1_error) __pyx_v_pair = __pyx_t_1;
+369: return self.__get_value(pair)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_v_self->__pyx_vtab)->__pyx___get_value(__pyx_v_self, __pyx_v_pair, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
370:
+371: def __setitem__(self, key, value):
/* Python wrapper */ static int __pyx_pw_6libzfs_6NVList_20__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /*proto*/ static int __pyx_pw_6libzfs_6NVList_20__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_6NVList_19__setitem__(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self), ((PyObject *)__pyx_v_key), ((PyObject *)__pyx_v_value)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_6libzfs_6NVList_19__setitem__(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__", 0); __Pyx_INCREF(__pyx_v_key); /* … */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_AddTraceback("libzfs.NVList.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_XDECREF(__pyx_v_key); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+372: if type(key) is unicode:
__pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_key)) == ((PyObject *)(&PyUnicode_Type))); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+373: key = str(key)
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key); __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_4); __pyx_t_4 = 0;
374:
+375: if type(value) is bool or value is None:
__pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_value)) == ((PyObject*)&PyBool_Type)); __pyx_t_5 = (__pyx_t_1 != 0); if (!__pyx_t_5) { } else { __pyx_t_2 = __pyx_t_5; goto __pyx_L5_bool_binop_done; } __pyx_t_5 = (__pyx_v_value == Py_None); __pyx_t_1 = (__pyx_t_5 != 0); __pyx_t_2 = __pyx_t_1; __pyx_L5_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+376: self.set(key, value, nvpair.DATA_TYPE_BOOLEAN)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_BOOLEAN); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_key); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_value); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
377:
+378: if type(value) is int:
__pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_value)) == ((PyObject *)(&PyInt_Type))); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+379: self.set(key, value, nvpair.DATA_TYPE_UINT64)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_UINT64); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } __pyx_t_7 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_v_key); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_value); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
380:
+381: if type(value) is str or type(value) is unicode:
__pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_value)) == ((PyObject *)(&PyString_Type))); __pyx_t_5 = (__pyx_t_2 != 0); if (!__pyx_t_5) { } else { __pyx_t_1 = __pyx_t_5; goto __pyx_L9_bool_binop_done; } __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_value)) == ((PyObject *)(&PyUnicode_Type))); __pyx_t_2 = (__pyx_t_5 != 0); __pyx_t_1 = __pyx_t_2; __pyx_L9_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+382: self.set(key, str(value), nvpair.DATA_TYPE_STRING)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_value); __pyx_t_9 = __Pyx_PyObject_Call(((PyObject *)(&PyString_Type)), __pyx_t_7, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_STRING); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } __pyx_t_10 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_8, __pyx_v_key); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_8, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_8, __pyx_t_7); __pyx_t_9 = 0; __pyx_t_7 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
383:
+384: if type(value) is NVList:
__pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_value)) == ((PyObject *)__pyx_ptype_6libzfs_NVList)); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+385: self.set(key, value, nvpair.DATA_TYPE_NVLIST)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_NVLIST); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_key); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_value); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
386:
+387: if type(value) is list:
__pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_value)) == ((PyObject *)(&PyList_Type))); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
388: # We need some heuristics here...
+389: if len(value) == 0:
__pyx_t_8 = PyObject_Length(__pyx_v_value); if (unlikely(__pyx_t_8 == -1)) __PYX_ERR(2, 389, __pyx_L1_error)
__pyx_t_1 = ((__pyx_t_8 == 0) != 0);
if (__pyx_t_1) {
/* … */
}
390: # don't know what to do!
+391: return
__pyx_r = 0; goto __pyx_L0;
392:
+393: if type(value[0]) is NVList:
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_value, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_t_4)) == ((PyObject *)__pyx_ptype_6libzfs_NVList)); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+394: self.set(key, value, nvpair.DATA_TYPE_NVLIST_ARRAY)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_NVLIST_ARRAY); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } __pyx_t_7 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_10); __pyx_t_10 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_v_key); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_value); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
395:
+396: if type(value[0]) is int:
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_value, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_t_4)) == ((PyObject *)(&PyInt_Type))); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+397: self.set(key, value, nvpair.DATA_TYPE_INT32_ARRAY)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_INT32_ARRAY); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } __pyx_t_10 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_8, __pyx_v_key); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_8, __pyx_v_value); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_8, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
398:
+399: if type(value[0]) is long:
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_value, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_t_4)) == ((PyObject *)(&PyLong_Type))); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+400: self.set(key, value, nvpair.DATA_TYPE_INT64_ARRAY)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_INT64_ARRAY); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_7 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_7) { __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_key); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_value); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
401:
+402: if type(value[0]) is str or type(value) is unicode:
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_value, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_t_4)) == ((PyObject *)(&PyString_Type))); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_5 = (__pyx_t_1 != 0); if (!__pyx_t_5) { } else { __pyx_t_2 = __pyx_t_5; goto __pyx_L18_bool_binop_done; } __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_value)) == ((PyObject *)(&PyUnicode_Type))); __pyx_t_1 = (__pyx_t_5 != 0); __pyx_t_2 = __pyx_t_1; __pyx_L18_bool_binop_done:; if (__pyx_t_2) { /* … */ }
+403: self.set(key, value, nvpair.DATA_TYPE_STRING_ARRAY)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_STRING_ARRAY); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } __pyx_t_7 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_10); __pyx_t_10 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_v_key); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_v_value); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
404:
+405: if type(value) is dict:
__pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_value)) == ((PyObject *)(&PyDict_Type))); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ }
+406: self.set(key, value, nvpair.DATA_TYPE_NVLIST)
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_From_data_type_t(DATA_TYPE_NVLIST); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = NULL; __pyx_t_8 = 0; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_8 = 1; } } __pyx_t_10 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(__pyx_v_key); __Pyx_GIVEREF(__pyx_v_key); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_8, __pyx_v_key); __Pyx_INCREF(__pyx_v_value); __Pyx_GIVEREF(__pyx_v_value); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_8, __pyx_v_value); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_8, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
407:
+408: def get_type(self, key):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_6NVList_22get_type(PyObject *__pyx_v_self, PyObject *__pyx_v_key); /*proto*/ static PyObject *__pyx_pw_6libzfs_6NVList_22get_type(PyObject *__pyx_v_self, PyObject *__pyx_v_key) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_type (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_6NVList_21get_type(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self), ((PyObject *)__pyx_v_key)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_6NVList_21get_type(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, PyObject *__pyx_v_key) { nvpair_t *__pyx_v_pair; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("get_type", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("libzfs.NVList.get_type", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+409: pair = self.__get_pair(key)
__pyx_t_1 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_v_self->__pyx_vtab)->__pyx___get_pair(__pyx_v_self, __pyx_v_key); if (unlikely(__pyx_t_1 == NULL)) __PYX_ERR(2, 409, __pyx_L1_error) __pyx_v_pair = __pyx_t_1;
+410: return nvpair.nvpair_type(pair)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_data_type_t(nvpair_type(__pyx_v_pair)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 410, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
411:
+412: def keys(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_6NVList_24keys(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_6NVList_24keys(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("keys (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_6NVList_23keys(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_6NVList_23keys(struct __pyx_obj_6libzfs_NVList *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("keys", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("libzfs.NVList.keys", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+413: return list(self)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PySequence_List(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
414:
+415: def values(self):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_6NVList_26values(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_6libzfs_6NVList_26values(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("values (wrapper)", 0); __pyx_r = __pyx_pf_6libzfs_6NVList_25values(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_6NVList_25values(struct __pyx_obj_6libzfs_NVList *__pyx_v_self) { CYTHON_UNUSED PyObject *__pyx_v_k = NULL; PyObject *__pyx_v_v = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("values", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("libzfs.NVList.values", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_k); __Pyx_XDECREF(__pyx_v_v); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_6NVList_29generator1(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value); /* proto */
+416: return [v for k, v in self.items()]
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } if (__pyx_t_4) { __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else { __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 416, __pyx_L1_error) } __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __pyx_t_6 = NULL; } else { __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 416, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_6)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 416, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_COMPILING_IN_CPYTHON __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(2, 416, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(2, 416, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; #if CYTHON_COMPILING_IN_CPYTHON Py_ssize_t size = Py_SIZE(sequence); #else Py_ssize_t size = PySequence_Size(sequence); #endif if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(2, 416, __pyx_L1_error) } #if CYTHON_COMPILING_IN_CPYTHON if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_7 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_7); if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(2, 416, __pyx_L1_error) __pyx_t_9 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(2, 416, __pyx_L1_error) __pyx_L6_unpacking_done:; } __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_7); __pyx_t_7 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_v_v))) __PYX_ERR(2, 416, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
417:
+418: def items(self, raw=False):
/* Python wrapper */ static PyObject *__pyx_pw_6libzfs_6NVList_28items(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_6libzfs_6NVList_28items(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_raw = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("items (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_raw,0}; PyObject* values[1] = {0}; values[0] = ((PyObject *)Py_False); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (kw_args > 0) { PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_raw); if (value) { values[0] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "items") < 0)) __PYX_ERR(2, 418, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_raw = values[0]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("items", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 418, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("libzfs.NVList.items", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_6libzfs_6NVList_27items(((struct __pyx_obj_6libzfs_NVList *)__pyx_v_self), __pyx_v_raw); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_6libzfs_6NVList_27items(struct __pyx_obj_6libzfs_NVList *__pyx_v_self, PyObject *__pyx_v_raw) { struct __pyx_obj_6libzfs___pyx_scope_struct_1_items *__pyx_cur_scope; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("items", 0); __pyx_cur_scope = (struct __pyx_obj_6libzfs___pyx_scope_struct_1_items *)__pyx_tp_new_6libzfs___pyx_scope_struct_1_items(__pyx_ptype_6libzfs___pyx_scope_struct_1_items, __pyx_empty_tuple, NULL); if (unlikely(!__pyx_cur_scope)) { __Pyx_RefNannyFinishContext(); return NULL; } __Pyx_GOTREF(__pyx_cur_scope); __pyx_cur_scope->__pyx_v_self = __pyx_v_self; __Pyx_INCREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __Pyx_GIVEREF((PyObject *)__pyx_cur_scope->__pyx_v_self); __pyx_cur_scope->__pyx_v_raw = __pyx_v_raw; __Pyx_INCREF(__pyx_cur_scope->__pyx_v_raw); __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_raw); { __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_6libzfs_6NVList_29generator1, (PyObject *) __pyx_cur_scope, __pyx_n_s_items, __pyx_n_s_NVList_items); if (unlikely(!gen)) __PYX_ERR(2, 418, __pyx_L1_error) __Pyx_DECREF(__pyx_cur_scope); __Pyx_RefNannyFinishContext(); return (PyObject *) gen; } /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("libzfs.NVList.items", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_gb_6libzfs_6NVList_29generator1(__pyx_CoroutineObject *__pyx_generator, PyObject *__pyx_sent_value) /* generator body */ { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("None", 0); __pyx_L3_first_run:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 418, __pyx_L1_error) /* … */ /* function exit code */ PyErr_SetNone(PyExc_StopIteration); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("items", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_L0:; __Pyx_XDECREF(__pyx_r); __pyx_r = 0; __pyx_generator->resume_label = -1; __Pyx_Coroutine_clear((PyObject*)__pyx_generator); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ struct __pyx_obj_6libzfs___pyx_scope_struct_1_items { PyObject_HEAD nvpair_t *__pyx_v_pair; PyObject *__pyx_v_raw; struct __pyx_obj_6libzfs_NVList *__pyx_v_self; };
+419: cdef nvpair.nvpair_t *pair = NULL
__pyx_cur_scope->__pyx_v_pair = NULL;
+420: while True:
while (1) {
+421: pair = nvpair.nvlist_next_nvpair(self.handle, pair)
__pyx_cur_scope->__pyx_v_pair = nvlist_next_nvpair(__pyx_cur_scope->__pyx_v_self->handle, __pyx_cur_scope->__pyx_v_pair);
+422: if pair is NULL:
__pyx_t_1 = ((__pyx_cur_scope->__pyx_v_pair == NULL) != 0); if (__pyx_t_1) { /* … */ }
+423: return
__Pyx_XDECREF(__pyx_r);
__pyx_r = NULL;
goto __pyx_L0;
424:
+425: yield (nvpair.nvpair_name(pair), self.__get_value(pair, not raw))
__pyx_t_2 = __Pyx_PyUnicode_FromString(nvpair_name(__pyx_cur_scope->__pyx_v_pair)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_v_raw); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(2, 425, __pyx_L1_error) __pyx_t_3 = __Pyx_PyBool_FromLong((!__pyx_t_1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5.__pyx_n = 1; __pyx_t_5.wrap_dict = __pyx_t_3; __pyx_t_4 = ((struct __pyx_vtabstruct_6libzfs_NVList *)__pyx_cur_scope->__pyx_v_self->__pyx_vtab)->__pyx___get_value(__pyx_cur_scope->__pyx_v_self, __pyx_cur_scope->__pyx_v_pair, &__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); /* return from generator, yielding value */ __pyx_generator->resume_label = 1; return __pyx_r; __pyx_L7_resume_from_yield:; if (unlikely(!__pyx_sent_value)) __PYX_ERR(2, 425, __pyx_L1_error) }